• 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

FX Connect

Server

FX Connect enables you to execute cross-border payments without integrating the Payment Initiation Service (PIS), operating seamlessly on top of your own existing bank integrations. With FX Connect, you can provide your users with real-time, transparent institutional FX rates for spot and forward transactions, together with automated cross-border settlement — while continuing to use your platform's own bank connections to initiate payments.


Create FX Quote

POST
https://api.openbankingplatform.com
/psd2/paymentinitiation/v1/fx

Requests an FX Quote for cross-border payments.

Create FX Quote › 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.

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.

Create FX Quote › Request Body

JSON Body of a create FX quote request.
fxQuote
sourceCurrency
​string

The source currency.

targetCurrency
​string

The target currency.

countryCode
​string

The target country.

amount
​string

The requested amount in target currency.

requestedExecutionDate
​string · date

The requested execution date, for future payments.

Create FX Quote › Responses

Created

Body of the JSON response for a successful create FX quote request.
fxQuoteResponse-201
fxQuoteId
​fxQuoteId · required

Resource identification of the generated FX quote.

fxRate
​fxRate · required

Rate of the generated FX quote.

fee
​fee · required

Fee of the generated FX quote.

totalAmount
​totalAmount · required

Total amount of the generated FX quote.

validFrom
​validFrom · date · required

The FX quote is valid from this date.

validTo
​validTo · date · required

The FX quote is valid to this date.

POST/psd2/paymentinitiation/v1/fx
curl https://api.openbankingplatform.com/psd2/paymentinitiation/v1/fx \ --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 '{ "sourceCurrency": "SEK", "targetCurrency": "USD", "requestedExecutionDate": "2026-01-01", "countryCode": "US", "amount": "130.00" }'
Example Request Body
{ "sourceCurrency": "SEK", "targetCurrency": "USD", "requestedExecutionDate": "2026-01-01", "countryCode": "US", "amount": "130.00" }
json
JSON Body of an FX Quote request
application/json
Example Responses
{ "fxQuoteId": "Q100000ABC", "fxRate": "11.05254986", "fee": "1.50", "totalAmount": "1440.53", "validFrom": "2025-11-09T09:36:24.0142906Z", "validTo": "2025-11-10T23:59:59.0000000Z" }
json
Response
application/json

Get FX Quote

GET
https://api.openbankingplatform.com
/psd2/paymentinitiation/v1/fx/{fxQuoteId}

Get an existing FX Quote.

Get FX Quote › path Parameters

fxQuoteId
​fxQuoteId · required

Resource identification of the FX Quote.

Resource identification of the generated FX quote.

Get FX Quote › 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-User-Agent
​string · required

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

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.

Get FX Quote › Responses

OK

Body of the JSON response for a successful get FX quote request.
fxQuoteResponse-200
fxQuoteId
​fxQuoteId · required

Resource identification of the generated FX quote.

fxRate
​fxRate · required

Rate of the generated FX quote.

fee
​fee · required

Fee of the generated FX quote.

validFrom
​validFrom · date · required

The FX quote is valid from this date.

validTo
​validTo · date · required

The FX quote is valid to this date.

GET/psd2/paymentinitiation/v1/fx/{fxQuoteId}
curl https://api.openbankingplatform.com/psd2/paymentinitiation/v1/fx/:fxQuoteId \ --header 'X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721' \ --header 'X-BicFi: <string>' \ --header 'PSU-ID: 199002092386' \ --header 'PSU-User-Agent: <string>' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "fxQuoteId": "Q100000ABC", "fxRate": "11.05254986", "fee": "1.50", "validFrom": "2025-11-09T09:36:24.0142906Z", "validTo": "2025-11-10T23:59:59.0000000Z" }
json
application/json

Confirm Cross-Border Payment

PUT
https://api.openbankingplatform.com
/psd2/paymentinitiation/v1/fx/{fxQuoteId}

Confirm intent to initiate a cross-border payment with an FX Quote.

Confirm Cross-Border Payment › path Parameters

fxQuoteId
​fxQuoteId · required

Resource identification of the FX Quote.

Resource identification of the generated FX quote.

Confirm Cross-Border 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-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.

Confirm Cross-Border Payment › Request Body

Request Body for a cross-border payment initiation via JSON.
paymentInitiationCrossBorder_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
endToEndIdentification
​string · maxLength: 35
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[]

Additional regulatory reporting information, if applicable.

Confirm Cross-Border Payment › Responses

OK

The payment instructions for a payment to be made to Open Payments client funds account.
confirmCrossBorderPaymentIntentResponse
​accountReference

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}$

Creditor Name

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

BICFI

Example: AAAADEBBXXX
​accountReference

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
creditorAddress
​countryCode · pattern: [A-Z]{2}

ISO 3166 ALPHA2 country code

Example: SE
remittanceInformationUnstructured
​remittanceInformationUnstructured · maxLength: 140

Unstructured remittance information

Example: Ref Number Merchant
requestedExecutionDate
​string

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

PUT/psd2/paymentinitiation/v1/fx/{fxQuoteId}
curl https://api.openbankingplatform.com/psd2/paymentinitiation/v1/fx/:fxQuoteId \ --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 'Authorization: Bearer <token>' \ --data '{ "instructedAmount": { "amount": "130.00", "currency": "EUR" }, "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "creditorAccount": { "iban": "FI2112345600000785", "currency": "EUR" }, "creditorName": "Acme AB", "creditorAddress": { "country": "FI" }, "creditorAgent": "NDEAFIHH", "creditorAgentName": "Nordea Bank Abp", "requestedExecutionDate": "2026-09-21", "remittanceInformationUnstructured": "Ref Number Merchant" }'
Example Request Body
{ "instructedAmount": { "amount": "130.00", "currency": "EUR" }, "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "creditorAccount": { "iban": "FI2112345600000785", "currency": "EUR" }, "creditorName": "Acme AB", "creditorAddress": { "country": "FI" }, "creditorAgent": "NDEAFIHH", "creditorAgentName": "Nordea Bank Abp", "requestedExecutionDate": "2026-09-21", "remittanceInformationUnstructured": "Ref Number Merchant" }
json
application/json
Example Responses
{ "creditorAccount": { "iban": "SE1412000000000012345678", "currency": "SEK" }, "creditorName": "Open Payments FX", "creditorAgent": "DABASESX", "debtorAccount": { "iban": "SE4550000000058398257466", "currency": "SEK" }, "instructedAmount": { "amount": "1440.53", "currency": "SEK" }, "creditorAddress": { "country": "SE" }, "remittanceInformationUnstructured": "OPESE12345", "requestedExecutionDate": "2026-09-21" }
json
application/json

ISO PaymentsBankgiro Lookup