Worldline Debtor Preference Retrieval API

The Debtor Preference Retrieval API from Worldline — 1 operation(s) for debtor preference retrieval.

Operations 1

GET /preferences/{Psuid}/ Get PSU preferred bank and preferred account #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wordline-debtor-preference-retrieval-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wordline-debtor-preference-retrieval-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Banking Payment Initiation Service Debtor Preference Retrieval API
  description: '### Introduction

    There are several flows (sequence of API calls) to complete a payment. Which

    API''s are required depend on the choosen `PaymentProduct`, ASPSP (debtor bank) and the chosen strong customer

    authentication approach. The response of an API call will indicate in the ''Links'' section which next

    API call is required to complete the payment. Both PSD2 and IDEAL payments are supported.


    #### PSD2 Sandbox

    Several AspspId''s are available to test specific PSD2 payment initiation scenario''s, see sandbox documentation.


    The following authorization token can be used to test in the sandbox (unlike a real token this one doesn''t expire):

    **97fb13a74c712d8c7a50476e71769eaf**

    '
  version: 3.15.0
servers:
- url: https://xs2a.awltest.de/xs2a/routingservice/services/ob/pis/v3
  description: PSD2 Sandbox
- url: https://digitalroutingservice.awltest.de/xs2a/routingservice/services/ob/pis/v3
  description: iDEAL Sandbox
tags:
- name: Debtor Preference Retrieval
paths:
  /preferences/{Psuid}/:
    get:
      security:
      - Authorization: []
      tags:
      - Debtor Preference Retrieval
      description: 'Currently could be used only for iDEAL 2.0 payments

        '
      summary: Get PSU preferred bank and preferred account
      operationId: getAllPsuBanksWithAccounts
      parameters:
      - $ref: '#/components/parameters/Psuid'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      - $ref: '#/components/parameters/Signature'
      - $ref: '#/components/parameters/Digest'
      - $ref: '#/components/parameters/AspspId'
      - $ref: '#/components/parameters/InitiatingPartySubId'
      responses:
        200:
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
            Signature:
              $ref: '#/components/headers/Signature'
            Digest:
              $ref: '#/components/headers/Digest'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PsuBankPreferences'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        401:
          description: Missing or wrong IP Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        403:
          description: Expired IP Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      required:
      - Code
      - Message
      type: object
      additionalProperties: false
      properties:
        Code:
          pattern: '[0-9]{1,3}'
          type: string
        Message:
          maxLength: 140
          minLength: 1
          type: string
        Details:
          type: string
        Link:
          $ref: '#/components/schemas/Link'
      description: '|HTTP Status|Code |Description

        |-----------|-----|---------------------------------------

        |400        |001  |Bad client request

        |           |002  |The message does not comply the schema definition

        |           |008  |Duplicate message

        |           |101  |The client or merchant is unknown

        |           |102  |The client or merchant is inactive

        |           |105  |The aspsp is not active

        |           |122  |The PSU consent is not valid

        |           |133  |A conditional field is missing

        |           |136  |Consent could not be found

        |           |159  |Request is locked by another concurrent request, please try again later

        |401        |003  |Invalid signature

        |           |021  |Unauthorized

        |           |123  |The PSU consent is expired

        |           |132  |A pre-authentication is required - but could not be found

        |           |135  |The status of the payment does not allow cancellation.

        |           |140  |The transaction authentication number is wrong

        |           |141  |The transaction authentication number is not valid anymore.

        |           |142  |The transaction authentication number has expired.

        |           |143  |The transaction authentication number is not active anymore.

        |           |144  |The user account is locked.

        |           |145  |The user account is temporarily locked.

        |           |146  |The user password has expired.

        |           |147  |The user account does not support a second factor.

        |           |148  |The user password has expired.

        |           |149  |User credential validation failed.

        |           |153  |The online refunds API has not been activated for your tenant.

        |           |154  |Invalid digest

        |403        |007  |Initiating Party is not authorised

        |           |017  |Initiating party access token is expired

        |           |119  |A PSU subscription is present, but inactive

        |           |120  |Payment status is not in the AUTHORISED state and cannot be confirmed

        |           |134  |The payment amount is above the limit set in your PIS subscription

        |404        |104  |The Aspsp is unknown

        |           |110  |Resource could not be found

        |           |150  |No pre-authentication found

        |405        |137  |Request is not supported by Aspsp

        |415        |158  |Unsupported media type

        |500        |004  |An internal error occurred

        |           |116  |The aspsp responded with an error

        |           |152  |Invalid response from ASPSP

        |           |160  |Exchange rate information is not available for the requested date.

        |502        |012  |Aspsp did not authorise

        |503        |016  |Request limit of the ASPSP server exceeded

        '
    PsuBankPreferences:
      type: object
      additionalProperties: false
      description: 'The PSU preferenes details saved in the PSU Management

        '
      properties:
        AspspName:
          type: string
          description: 'The name of the ASPSP/Issuer

            '
        AspspLogoUrl:
          type: string
          description: 'the logo url of the ASPSP/Issuer

            '
        DebtorAccountIdentification:
          type: string
          description: 'The masked IBAN or any other identifier recognized by the PSU and ASPSP/Issuer

            '
    Link:
      required:
      - Href
      type: object
      additionalProperties: false
      properties:
        Href:
          maxLength: 1024
          minLength: 1
          type: string
  headers:
    MessageCreateDateTime:
      required: true
      schema:
        type: string
        format: date-time
      description: 'The message create date time.


        ISO 8601 DateTime.

        '
      example: '2020-09-25T08:15:00.856Z'
    Signature:
      required: false
      description: 'Required for IDEAL payments.

        '
      schema:
        type: string
    Digest:
      description: Is contained if and only if the `Signature` element is contained in the header of the request.
      schema:
        type: string
      example: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
    X-Request-ID:
      required: true
      description: 'UUID for unique request identification

        '
      schema:
        type: string
        maxLength: 36
        minLength: 1
      example: abcdef2e-3000-4000-88cc-ae40e3b113d7
  parameters:
    X-Request-ID:
      name: X-Request-ID
      in: header
      description: 'UUID for unique request identification.

        '
      required: true
      schema:
        maxLength: 36
        minLength: 1
        type: string
      example: abcdef2e-3000-4000-88cc-ae40e3b113d7
    InitiatingPartySubId:
      name: InitiatingPartySubId
      in: header
      schema:
        type: string
      description: 'External identification of the subsidiary initiating party.

        '
    MessageCreateDateTime:
      name: MessageCreateDateTime
      in: header
      description: 'The message create date time.


        ISO 8601 DateTime.

        '
      required: true
      schema:
        type: string
        format: date-time
      example: '2020-09-25T08:15:00.856Z'
    Psuid:
      name: Psuid
      in: path
      description: 'The Id of the PSU registered at the Open Banking Service

        '
      required: true
      schema:
        type: string
      example: 12345
    Signature:
      name: Signature
      in: header
      description: 'Conditionally required for iDEAL payments. The signature in the request should include a keyId with the value of fingerprint of the certificate

        '
      schema:
        type: string
    AspspId:
      name: AspspId
      in: header
      description: The AspspId used within the Open Banking Service to identify a specific ASPSP.
      schema:
        type: string
      example: '121'
    Digest:
      name: Digest
      in: header
      description: Is contained if and only if the `Signature` element is contained in the header of the request.
      schema:
        type: string
      example: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: 'The ''Authorization'' field must be filled with an access token.

        #### How to get an access token

        To request an access token, the Initiating Party must digitally sign the relevant request headers using the private key that corresponds to the certificate uploaded to the Open Banking Service Portal. This action is to be performed in the `POST /token` endpoint.


        Upon a successful request, the Open Banking Service provides the Initiating Party with an access token.


        #### Validity

        Tokens are valid for 60 minutes (3600 seconds). After 60 minutes have elapsed, the Initiating Party will need to request a new token.


        There is an overlap period during the last 10 minutes (between the 50th and 60th minute). This means if the Initiating Party were to request a new token between 50th minute to 60th minute, they would receive a new access token. However, for those 10 minutes, the previous token would also still be valid.

        '