• 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

ISO Payments

Server

ISO Payments offers a direct and intuitive interface to the banks ISO 20022 products. By leveraging ISO 20022, you can automate and streamline a wide range of payment processes, including both domestic and international vendor payments and payroll.


Create Payment

POST
https://api.openbankingplatform.com
/iso/payments

Initiates an ISO payment by submitting the required payment instructions.

Create 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.

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 Payment › Request Body

oneOf
Exactly one variant must match.

Decision Table

VariantMatching Criteria
type = object · requires: debtorAccount, instructedAmount, creditorAccount +1 more
type = object · requires: debtorAccount, instructedAmount, creditorGiro +1 more
type = object · requires: debtorAccount, instructedAmount, creditorAccount +2 more
Properties for Domestic Payment:
Request Body for a domestic payment initiation via JSON.
isoPaymentInitiation_json
​amount · required
​accountReferenceWithGiro · required

Reference to an account by either

  • IBAN, of a payment account, or
  • BBAN, for payment accounts if there is no IBAN, or,
  • Bankgiro/Plusgiro for corporate Swedish accounts, 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).
​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
​address
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
requestedExecutionDate
​string

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

remittanceInformationUnstructured
​remittanceInformationUnstructured · maxLength: 140

Unstructured remittance information

Example: Ref Number Merchant
debtorAccountMessage
​debtorAccountMessage · maxLength: 140

Message for the debtor

Example: Personal note
​object[] · minItems: 1

List of credit notes to be offset against the payment.

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

Create Payment › Responses

Created

Body of the response for a successful payment initiation request.
isoPaymentInitiationRequestResponse-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
_links
​_linksIsoPaymentInitiation · required

A list of hyperlinks to be recognised by the TPP. Type of links admitted in this response:

  • 'confirmPayment': The link to the confirm endpoint, where a payment file is generated from the confirmed payment instructions.

  • 'self': The link to the payment initiation resource created by this request.

​tppMessage2XX[]
POST/iso/payments
curl https://api.openbankingplatform.com/iso/payments \ --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": { "currency": "SEK", "amount": "123.50" }, "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "creditorAccount": { "iban": "SE1412000000000012345678", "currency": "SEK" }, "creditorName": "Merchant123", "remittanceInformationUnstructured": "Ref Number Merchant", "debtorAccountMessage": "Personal note" }'
Example Request Body
{ "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
Example Responses
{ "transactionStatus": "RCVD", "paymentId": "a3cf0daa-6d43-4156-afd4-1d859ad448a8", "_links": { "confirmPayment": { "href": "/iso/payments/confirm" }, "self": { "href": "/iso/payments/a3cf0daa-6d43-4156-afd4-1d859ad448a8" } } }
json
application/json

Create Payment (Cross-Border)

POST
https://api.openbankingplatform.com
/iso/payments/cross-border

Initiates an ISO payment by submitting cross-border payment instructions.

Create Payment (Cross-Border) › 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.

FX-Quote-ID
​string · required

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

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 Payment (Cross-Border) › Request Body

Request Body for a cross-border payment initiation via JSON.
isoPaymentInitiationCrossBorder_json
​amount · required
​accountReferenceWithGiro · required

Reference to an account by either

  • IBAN, of a payment account, or
  • BBAN, for payment accounts if there is no IBAN, or,
  • Bankgiro/Plusgiro for corporate Swedish accounts, 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).
​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
​internationalAddress · required
creditorAgent
​bicfi · pattern: [A-Z]{6,6}[A-Z2-9][A… · required

BICFI

Example: AAAADEBBXXX
creditorAgentName
​creditorAgentName · maxLength: 35 · required

Creditor Agent Name

Example: Creditor Agent Name
requestedExecutionDate
​string

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

remittanceInformationUnstructured
​remittanceInformationUnstructured · maxLength: 140

Unstructured remittance information

Example: Ref Number Merchant
debtorAccountMessage
​debtorAccountMessage · maxLength: 140

Message for the debtor

Example: Personal note
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
​object[] · minItems: 1

List of credit notes to be offset against the payment.

​object[]

Additional regulatory reporting information, if applicable.

Create Payment (Cross-Border) › Responses

Created

Body of the response for a successful payment initiation request.
isoPaymentInitiationRequestResponse-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
_links
​_linksIsoPaymentInitiation · required

A list of hyperlinks to be recognised by the TPP. Type of links admitted in this response:

  • 'confirmPayment': The link to the confirm endpoint, where a payment file is generated from the confirmed payment instructions.

  • 'self': The link to the payment initiation resource created by this request.

​tppMessage2XX[]
POST/iso/payments/cross-border
curl https://api.openbankingplatform.com/iso/payments/cross-border \ --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 'FX-Quote-ID: Q100000ABC' \ --header 'Authorization: Bearer <token>' \ --data '{ "instructedAmount": { "currency": "EUR", "amount": "123.50" }, "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "creditorAccount": { "iban": "FI2112345600000785", "currency": "EUR" }, "creditorName": "Merchant123", "creditorAddress": { "street": "Example Street", "city": "Helsinki", "postalCode": "10115", "country": "FI" }, "creditorAgent": "NDEAFIHH", "creditorAgentName": "Nordea Bank Abp", "remittanceInformationUnstructured": "Ref Number Merchant", "debtorAccountMessage": "Personal note", "purposeCode": "SUPP" }'
Example Request Body
{ "instructedAmount": { "currency": "EUR", "amount": "123.50" }, "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "creditorAccount": { "iban": "FI2112345600000785", "currency": "EUR" }, "creditorName": "Merchant123", "creditorAddress": { "street": "Example Street", "city": "Helsinki", "postalCode": "10115", "country": "FI" }, "creditorAgent": "NDEAFIHH", "creditorAgentName": "Nordea Bank Abp", "remittanceInformationUnstructured": "Ref Number Merchant", "debtorAccountMessage": "Personal note", "purposeCode": "SUPP" }
json
application/json
Example Responses
{ "transactionStatus": "RCVD", "paymentId": "a3cf0daa-6d43-4156-afd4-1d859ad448a8", "_links": { "confirmPayment": { "href": "/iso/payments/confirm" }, "self": { "href": "/iso/payments/a3cf0daa-6d43-4156-afd4-1d859ad448a8" } } }
json
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

KYC ServiceFX Connect