• Documentation
  • API Reference
Information
Core APIs
    ASPSP Information Service
      Get ASPSP ListgetGet ASPSP DetailsgetGet Country ListgetGet Platform Statusget
    Consent Service
      Create ConsentpostGet ConsentgetDelete ConsentdeleteGet Consent StatusgetGet Consent AuthorisationsgetCreate Consent AuthorisationpostGet Consent Authorisation SCA StatusgetStart Consent Authorisationput
    Account Information Service (AIS)
      Get Account ListgetGet Account DetailsgetGet BalancesgetGet Transaction ListgetGet Transaction DetailsgetGet Card Account ListgetGet Card Account DetailsgetGet Card BalancesgetGet Card Transaction Listget
    Payment Initiation Service (PIS)
      Create PaymentpostGet PaymentgetCancel PaymentdeleteGet Payment StatusgetGet Payment AuthorisationsgetCreate Payment AuthorisationpostGet Payment Authorisation SCA StatusgetStart Payment AuthorisationputGet Payment Cancellation AuthorisationsgetCreate Payment Cancellation AuthorisationpostGet Payment Cancellation Authorisation SCA StatusgetStart Payment Cancellation AuthorisationputCreate Signing BasketpostGet Signing BasketgetDelete Signing BasketdeleteGet Signing Basket StatusgetCreate Signing Basket AuthorisationpostGet Signing Basket Authorisation SCA StatusgetStart Signing Basket AuthorisationputCreate FX QuotepostGet FX Quoteget
    KYC Service
      Create KYCpostGet KYC Statusget
Alternative APIs
    ISO Payments
      Create PaymentpostCreate Payment (Cross-Border)postGet PaymentgetConfirm Paymentput
    FX Connect
      Create FX QuotepostGet FX QuotegetConfirm Cross-Border Paymentput
Premium APIs
    Bankgiro Lookup
      Get Creditor NamegetGet Giro Numbersget
    Payout Service
      Create PayoutpostGet PayoutgetConfirm Payoutput
    Verification of Payee (VoP)
      Submit Verification RequestpostSubmit Bulk Verification Requestpost
    SEPA Direct Debit
      Create SEPA Direct Debit Payment (Beta)postGet PaymentgetConfirm Paymentput
Schemas
Open Payments API
Open Payments API

SEPA Direct Debit

Server

The SEPA Direct Debit API allows you to initiate EUR-denominated collections directly from your customer's bank account in the Netherlands by submitting debit instructions in JSON format, from which an ISO 20022 pain.008 file is generated and sent to the debtor's bank under a valid mandate.


Create SEPA Direct Debit Payment (Beta)

POST
https://api.openbankingplatform.com
/iso/beta/payments/sepa-direct-debit

Initiates a SEPA Direct Debit payment by submitting direct debit payment instructions via ISO.

Create SEPA Direct Debit Payment (Beta) › Headers

X-Request-ID
​string · uuid · required

ID of the request, unique to the call, as determined by the initiating party.

X-BicFi
​string · pattern: [A-Z]{6,6}[A-Z2-9][A… · required

Unique ID of the financial institution. For Banks this is the same as the SWIFT code, i.e. SWEDSESS for Swedbank SE.

Example: AAAASEBB
PSU-ID
​string · required

Client ID of the PSU in the ASPSP client interface. This is typically a local social security number or another unique login ID.

PSU-IP-Address
​string · ipv4 · required

The IP address of the PSU from the HTTP request between the PSU and the TPP.

PSU-User-Agent
​string · required

The Agent header from the HTTP request between the PSU and the TPP, identifying the browser used by the PSU.

X-AffiliatedASPSP-ID
​string

Some ASPSPs have sub-branches. The ID of an affiliated ASPSP as related to the X-BicFi header

PSU-Corporate-ID
​string

Corporate Client ID for the ASPSP. This is typically the unique Corporate ID in the local format. E.g. Org. nummer for SE, KVK for NL. Mandatory in the corporate scope.

PSU-Corporate-ID-Type
​string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

Consent-ID
​consentId

The ID of the consent authorizing access to the PSU's account information. This data element may be contained if the payment initiation transaction is part of a session, i.e. combined AIS/PIS service.

ID of the corresponding consent object as returned by an Account Information Consent Request.

Create SEPA Direct Debit Payment (Beta) › Request Body

JSON body for initiating a SEPA Direct Debit.
paymentInitiationSepaDirectDebit_json
requestedExecutionDate
​string · date · required

Date when payment is scheduled to be collected in ISO-Date Format, e.g. 2020-10-30.

creditorName
​creditorName · maxLength: 70 · pattern: ^[A-Za-z0-9 ]{1,70}$ · required

Creditor Name

Example: Creditor Name
​address · required
​accountReference · required

Reference to an account by either

  • IBAN, of a payment account, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
creditorId
​string · pattern: ^[A-Z]{2}\d{2}[A-Z0-… · required

A unique identifier assigned to the creditor authorising them to initiate SEPA Direct Debit collections.

Example: NL93ZZZ123456780001
localInstrumentCode
​string · enum · required

Local instrument code. See Statuses & Types documentation for full descriptions of values.

Enum values:
CORE
B2B
sequenceType
​directDebitSequenceType · enum · required

Sequence type for SEPA Direct Debit collections. See Statuses & Types documentation for full descriptions of values.

Enum values:
OOFF
FRST
RCUR
FNAL
​amount · required
​directDebitMandateRelatedInformation · required

Mandate information that authorises the SEPA Direct Debit.

debtorAgent
​bicfi · pattern: [A-Z]{6,6}[A-Z2-9][A… · required

BICFI

Example: AAAADEBBXXX
debtorName
​debtorName · maxLength: 70 · required

Debtor Name

Example: Debtor Name
​address · required
​accountReference · required

Reference to an account by either

  • IBAN, of a payment account, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
instructionId
​string · maxLength: 35

Instruction Id – identification for end-to-end processing.

creditorAgent
​bicfi · pattern: [A-Z]{6,6}[A-Z2-9][A…

BICFI

Example: AAAADEBBXXX
creditorAgentName
​creditorAgentName · maxLength: 35

Creditor Agent Name

Example: Creditor Agent Name
chargeBearer
​chargeBearer · enum

Charge Bearer. ChargeBearerType1Code from ISO20022

Enum values:
DEBT
CRED
SHAR
SLEV
ultimateCreditorName
​ultimateCreditorName · maxLength: 70 · pattern: ^[A-Za-z0-9 ]{1,70}$

Ultimate Creditor Name

Example: Creditor Name
​address
debtorAgentName
​debtorAgentName · maxLength: 35

Debtor Agent Name

Example: Debtor Agent Name
ultimateDebtorName
​ultimateDebtorName · maxLength: 70 · pattern: ^[A-Za-z0-9 ]{1,70}$

Ultimate Debtor Name

Example: Debtor Name
​address
purposeCode
​purposeCode · enum

ExternalPurpose1Code from ISO 20022. Values from ISO 20022 External Code List ExternalCodeSets_1Q2018 June 2018.

Enum values:
BKDF
BKFE
BKFM
BKIP
BKPP
CBLK
CDCB
CDCD
remittanceInformationUnstructuredArray
​remittanceInformationUnstructured[]

Array of unstructured remittance information

Example: ["Ref Number Merchant","Some Other Text"]
​directDebitStructuredRemittanceInformation[]

Array of structured remittance information elements.

​directDebitRegulatoryReportingData[] · maxItems: 10

Up to 10 regulatory reporting items.

Create SEPA Direct Debit Payment (Beta) › Responses

Created

Body of the response for a successful payment initiation request.
paymentInitiationRequestResponse-201
transactionStatus
​transactionStatus · enum · required

Uses codes from the ISO 20022 data table. See Statuses & Types documentation for full descriptions of values.

Enum values:
ACCC
ACCP
ACSC
ACSP
ACTC
ACWC
ACWP
RCVD
Example: ACSP
paymentId
​paymentId · required

ID of the generated payment initiation resource. Only available for transactions generated via the Open Banking Platform.

Example: 1234-wertiq-983
​_linksPaymentInitiation · required

A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP when processing the request.

Remark: All links can be relative or full links, to be decided by the ASPSP.

Type of links admitted in this response, (further links might be added for ASPSP defined extensions):

  • 'scaRedirect': In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser.
  • 'scaOAuth': In case of a SCA OAuth2 Approach, the ASPSP is transmitting the URI where the configuration of the Authorisation Server can be retrieved. The configuration follows the OAuth 2.0 Authorisation Server Metadata specification.
  • 'startAuthorisation': In case, where an explicit start of the transaction authorisation is needed, but no more data needs to be updated (no authentication method to be selected, no PSU identification nor PSU authentication data to be uploaded).
  • 'startAuthorisationWithPsuIdentification': The link to the authorisation endpoint, where the authorisation sub-resource has to be generated while uploading the PSU identification data.
  • 'startAuthorisationWithPsuAuthentication': The link to the authorisation endpoint, where the authorisation sub-resource has to be generated while uploading the PSU authentication data.
    • 'startAuthorisationWithEncryptedPsuAuthentication': Same as startAuthorisationWithPsuAuthentication where the authentication data need to be encrypted on application layer in uploading.
  • 'startAuthorisationWithAuthenticationMethodSelection': The link to the authorisation endpoint, where the authorisation sub-resource has to be generated while selecting the authentication method. This link is contained under exactly the same conditions as the data element "scaMethods"
  • 'startAuthorisationWithTransactionAuthorisation': The link to the authorisation endpoint, where the authorisation sub-resource has to be generated while authorising the transaction e.g. by uploading an OTP received by SMS.
  • 'self': The link to the payment initiation resource created by this request. This link can be used to retrieve the resource data.
  • 'status': The link to retrieve the transaction status of the payment initiation.
  • 'scaStatus': The link to retrieve the scaStatus of the corresponding authorisation sub-resource. This link is only contained, if an authorisation sub-resource has been already created.
Example: {"scaRedirect":{"href":"https://www.testbank.com/asdfasdfasdf"},"self":{"href":"/v1/payments/sepa-credit-transfers/1234-wertiq-983"}}
​authenticationObject[]

Optional list of available Strong Customer Authentication (SCA) methods, shown if SCA is required and the user can choose a method. When this is present, a startAuthorisationWithAuthenticationMethodSelection link will also be included for starting the authorisation with method selection.

​authenticationObject

Authentication Object

​challengeData

Contained in addition to the data element chosenScaMethod if challenge data is needed for SCA. In rare cases, this attribute is also used in the context of the startAuthorisationWithPsuAuthentication link.

psuMessage
​psuMessageText · maxLength: 512

Text to be displayed to the PSU

​verificationOfPayeeResponse

Body of the JSON response for a successful VoP request.

​tppMessage2XX[]
POST/iso/beta/payments/sepa-direct-debit
curl https://api.openbankingplatform.com/iso/beta/payments/sepa-direct-debit \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721' \ --header 'X-BicFi: <string>' \ --header 'PSU-ID: 199002092386' \ --header 'PSU-IP-Address: 192.168.8.78' \ --header 'PSU-User-Agent: <string>' \ --header 'Authorization: Bearer <token>' \ --data '{ "instructedAmount": { "amount": "130.00", "currency": "EUR" }, "creditorAccount": { "iban": "NL20INGB0001234567", "currency": "EUR" }, "creditorName": "Acme B.V.", "creditorId": "NL02ZZZ123456780000", "creditorAddress": { "street": "Example Street", "buildingNumber": "5", "city": "Amsterdam", "postalCode": "1012 AB", "country": "NL" }, "creditorAgent": "INGBNL2A", "creditorAgentName": "ING Bank N.V.", "debtorAccount": { "iban": "NL2112345600000785", "currency": "EUR" }, "debtorName": "Customer B.V.", "debtorAgent": "RABONL2U", "debtorAgentName": "Coöperatieve Rabobank U.A.", "debtorAddress": { "street": "Example Street", "buildingNumber": "5", "city": "Amsterdam", "postalCode": "1013 AB", "country": "NL" }, "localInstrumentCode": "CORE", "sequenceType": "RCUR", "mandateRelatedInformation": { "mandateId": "MANDATE-12345", "dateOfSignature": "2026-03-15" }, "requestedExecutionDate": "2026-05-19", "remittanceInformationUnstructuredArray": [ "Ref Number Merchant" ] }'
Example Request Body
{ "instructedAmount": { "amount": "130.00", "currency": "EUR" }, "creditorAccount": { "iban": "NL20INGB0001234567", "currency": "EUR" }, "creditorName": "Acme B.V.", "creditorId": "NL02ZZZ123456780000", "creditorAddress": { "street": "Example Street", "buildingNumber": "5", "city": "Amsterdam", "postalCode": "1012 AB", "country": "NL" }, "creditorAgent": "INGBNL2A", "creditorAgentName": "ING Bank N.V.", "debtorAccount": { "iban": "NL2112345600000785", "currency": "EUR" }, "debtorName": "Customer B.V.", "debtorAgent": "RABONL2U", "debtorAgentName": "Coöperatieve Rabobank U.A.", "debtorAddress": { "street": "Example Street", "buildingNumber": "5", "city": "Amsterdam", "postalCode": "1013 AB", "country": "NL" }, "localInstrumentCode": "CORE", "sequenceType": "RCUR", "mandateRelatedInformation": { "mandateId": "MANDATE-12345", "dateOfSignature": "2026-03-15" }, "requestedExecutionDate": "2026-05-19", "remittanceInformationUnstructuredArray": [ "Ref Number Merchant" ] }
json
application/json
Example Responses
{ "transactionStatus": "RCVD", "paymentId": "1234-wertiq-983", "_links": { "scaRedirect": { "href": "https://www.testbank.com/asdfasdfasdf" }, "self": { "href": "/psd2/paymentinitiation/v1/payments/domestic/1234-wertiq-983" }, "status": { "href": "/psd2/paymentinitiation/v1/payments/domestic/1234-wertiq-983/status" }, "scaStatus": { "href": "/psd2/paymentinitiation/v1/payments/domestic/1234-wertiq-983/authorisations/b391be2a-5fa0-4da5-afa7-6778d7ca2dc0" } } }
json
Response in case of a redirect with an implicitly created authorisation sub-resource
application/json

Get Payment

GET
https://api.openbankingplatform.com
/iso/payments/{paymentId}

Retrieves the details and status of an ISO payment.

Get Payment › path Parameters

paymentId
​paymentId · required

Resource identification of the generated payment initiation resource.

ID of the generated payment initiation resource. Only available for transactions generated via the Open Banking Platform.

Example: 1234-wertiq-983

Get Payment › Headers

X-Request-ID
​string · uuid · required

ID of the request, unique to the call, as determined by the initiating party.

X-BicFi
​string · pattern: [A-Z]{6,6}[A-Z2-9][A… · required

Unique ID of the financial institution. For Banks this is the same as the SWIFT code, i.e. SWEDSESS for Swedbank SE.

Example: AAAASEBB
PSU-ID
​string · required

Client ID of the PSU in the ASPSP client interface. This is typically a local social security number or another unique login ID.

PSU-IP-Address
​string · ipv4 · required

The IP address of the PSU from the HTTP request between the PSU and the TPP.

PSU-User-Agent
​string · required

The Agent header from the HTTP request between the PSU and the TPP, identifying the browser used by the PSU.

X-AffiliatedASPSP-ID
​string

Some ASPSPs have sub-branches. The ID of an affiliated ASPSP as related to the X-BicFi header

PSU-Corporate-ID
​string

Corporate Client ID for the ASPSP. This is typically the unique Corporate ID in the local format. E.g. Org. nummer for SE, KVK for NL. Mandatory in the corporate scope.

PSU-Corporate-ID-Type
​string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

Consent-ID
​consentId

The ID of the consent authorizing access to the PSU's account information. This data element may be contained if the payment initiation transaction is part of a session, i.e. combined AIS/PIS service.

ID of the corresponding consent object as returned by an Account Information Consent Request.

FX-Quote-ID
​string

ID of the FX Quote to be used for the payment. Used for cross-border payments only.

Get Payment › Responses

OK

Generic JSON response body consisting of the corresponding payment initation JSON body together with a transaction status field.
paymentInitiationWithStatusResponse
​accountReference · required

Reference to an account by either

  • IBAN, of a payment account, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
​amount · required
​accountReference · required

Reference to an account by either

  • IBAN, of a payment account, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
creditorName
​creditorName · maxLength: 70 · pattern: ^[A-Za-z0-9 ]{1,70}$ · required

Creditor Name

Example: Creditor Name
endToEndIdentification
​string · maxLength: 35
creditorAgent
​bicfi · pattern: [A-Z]{6,6}[A-Z2-9][A…

BICFI

Example: AAAADEBBXXX
​address
remittanceInformationUnstructured
​remittanceInformationUnstructured · maxLength: 140

Unstructured remittance information

Example: Ref Number Merchant
​remittanceInformationStructured

Structured remittance information

debtorAccountMessage
​debtorAccountMessage · maxLength: 140

Message for the debtor

Example: Personal note
requestedExecutionDate
​string

Date when payment is scheduled to be executed in ISO-Date Format, e.g. 2020-10-30

transactionStatus
​transactionStatus · enum

Uses codes from the ISO 20022 data table. See Statuses & Types documentation for full descriptions of values.

Enum values:
ACCC
ACCP
ACSC
ACSP
ACTC
ACWC
ACWP
RCVD
Example: ACSP
​tppMessage2XX[]
GET/iso/payments/{paymentId}
curl https://api.openbankingplatform.com/iso/payments/:paymentId \ --header 'X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721' \ --header 'X-BicFi: <string>' \ --header 'PSU-ID: 199002092386' \ --header 'PSU-IP-Address: 192.168.8.78' \ --header 'PSU-User-Agent: <string>' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "transactionStatus": "ACSC", "instructedAmount": { "currency": "SEK", "amount": "123.50" }, "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "creditorAccount": { "iban": "SE1412000000000012345678", "currency": "SEK" }, "creditorName": "Merchant123", "remittanceInformationUnstructured": "Ref Number Merchant", "debtorAccountMessage": "Personal note" }
json
application/json

Confirm Payment

PUT
https://api.openbankingplatform.com
/iso/payments/confirm

Confirms and finalizes a pending ISO payment and sends it for processing. Only confirmed payments are transmitted to the clearing system for execution.

Confirm Payment › Headers

X-Request-ID
​string · uuid · required

ID of the request, unique to the call, as determined by the initiating party.

X-BicFi
​string · pattern: [A-Z]{6,6}[A-Z2-9][A… · required

Unique ID of the financial institution. For Banks this is the same as the SWIFT code, i.e. SWEDSESS for Swedbank SE.

Example: AAAASEBB
PSU-ID
​string · required

Client ID of the PSU in the ASPSP client interface. This is typically a local social security number or another unique login ID.

PSU-IP-Address
​string · ipv4 · required

The IP address of the PSU from the HTTP request between the PSU and the TPP.

PSU-User-Agent
​string · required

The Agent header from the HTTP request between the PSU and the TPP, identifying the browser used by the PSU.

X-AffiliatedASPSP-ID
​string

Some ASPSPs have sub-branches. The ID of an affiliated ASPSP as related to the X-BicFi header

PSU-Corporate-ID
​string

Corporate Client ID for the ASPSP. This is typically the unique Corporate ID in the local format. E.g. Org. nummer for SE, KVK for NL. Mandatory in the corporate scope.

PSU-Corporate-ID-Type
​string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

Consent-ID
​consentId

The ID of the consent authorizing access to the PSU's account information. This data element may be contained if the payment initiation transaction is part of a session, i.e. combined AIS/PIS service.

ID of the corresponding consent object as returned by an Account Information Consent Request.

Confirm Payment › Request Body

ConfirmIsoPaymentRequest
paymentIds
​array | null · required
batchBookingPreferred
​boolean
Default: false

Confirm Payment › Responses

OK

Response containing information on the payment file uploaded to the bank.
ConfirmIsoPaymentResponse
​array | null
reference
​string | null
​amount
PUT/iso/payments/confirm
curl https://api.openbankingplatform.com/iso/payments/confirm \ --request PUT \ --header 'Content-Type: application/json' \ --header 'X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721' \ --header 'X-BicFi: <string>' \ --header 'PSU-ID: 199002092386' \ --header 'PSU-IP-Address: 192.168.8.78' \ --header 'PSU-User-Agent: <string>' \ --header 'Authorization: Bearer <token>' \ --data '{ "paymentIds": [ "a3cf0daa-6d43-4156-afd4-1d859ad448a8", "186901d2-2022-412f-a321-60062ef1ba1c", "84b1133c-9ef8-41dd-8dc1-0b64a8d955d3" ], "batchBookingPreferred": false }'
Example Request Body
{ "paymentIds": [ "a3cf0daa-6d43-4156-afd4-1d859ad448a8", "186901d2-2022-412f-a321-60062ef1ba1c", "84b1133c-9ef8-41dd-8dc1-0b64a8d955d3" ], "batchBookingPreferred": false }
json
application/json
Example Responses
{ "tppMessage": [ { "category": "INFORMATION", "code": "FILE_UPLOADED", "text": "OPE20250609T1057016350301Z" } ] }
json
application/json

Verification of Payee (VoP)