• Documentation
  • API Reference
Overview
Guides
    Get StartedGood to KnowAccess Tokens
    Core APIs
    Alternative APIs
      ISO PaymentsPayouts (Premium)FX Connect
Other Information
Changelog
Downloads
Support
Alternative APIs

Payouts (Premium)

The Payout Service enables secure, automated disbursements such as supplier invoices, payroll and refunds, while eliminating transaction limits and the need for manual banking procedures. Funds are first placed in our dedicated client funds account before final disbursement via the national clearing system Bankgirot or Plusgirot. This guide shows you how to initiate a payout, as well as how to look up the creditor name to validate the Bankgiro or Plusgiro number of the recipient.

For requests to the Payout Service API, you need an access token with scope set to paymentinitiation corporate.

Initiating payouts in the production environment requires completed KYC verification on the PSU's organization. Refer to the KYC guide for information on how to implement this.

1. Create Payout

The first step of the payout process is to create a payout resource. This specifies the payout instructions to Open Payments for the final disbursement of funds.

Endpoint

Code
POST /premium/v1/payouts

Headers

NameTypeDescription
X-Request-IDstring(uuid)The ID of the request, unique to the call, as determined by the initiating party.
PSU-IDstringThe ID used to identify the PSU at the bank. Typically a local social security number or another unique login ID.
PSU-Corporate-IDstringThe Corporate ID of the PSU when acting on behalf of an organization, e.g. Org. nummer for SE, KVK for NL.

Request Body

NameTypeDescription
instructedAmountobjectThe amount and currency of the money to be transferred.
debtorAccountobjectThe account from which the payment will be debited.
creditorGiroobjectThe Bankgirot or Plusgirot account to which the payment will be credited.
creditorNamestringThe full name of the payment recipient.
creditorAgentstringThe BIC of the payment recipient's bank.
requestedExecutionDatestring(date)The date when the payment is scheduled to be executed in ISO 8601 format, e.g. 2025-10-31.
invoiceRefstringA custom invoice reference.
ocrRefstringA Giro OCR reference.
debtorAccountMessagestringA personal message from the payer to themselves.
creditorAccountMessagestringA personal message from the payer to the recipient.
TerminalCode
curl -X POST "https://api.openbankingplatform.com/premium/v1/payouts" \ -H "Accept: application/json" \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIn0..." \ -H "Content-Type: application/json" \ -H "X-Request-ID: dda491aa-7434-4502-8861-7256f986cdbf" \ -H "PSU-ID: 123456789001" \ -H "PSU-Corporate-ID: 1234567890" \ -d '{ "instructedAmount": { "currency": "SEK", "amount": "1300.00" }, "debtorAccount": { "iban": "SE123456789000532811" }, "creditorGiro": { "giroNumber": "123-4567", "giroType": "BANKGIRO" }, "creditorName": "Acme AB", "creditorAgent": "HANDSESS", "requestedExecutionDate": "2026-01-01", "invoiceRef": "Invoice Nr 4421", "ocrRef": "1234567894", "debtorAccountMessage": "Personal note", "creditorAccountMessage": "Invoice payment" }'

Response

Code
{ "payoutId": "a74fbba9-88d7-4dac-93a4-15d454cdafff", "transactionStatus": "RCVD", "_links": { "confirmPayout": { "href": "/premium/v1/payouts/confirm" }, "self": { "href": "/premium/v1/payouts/a74fbba9-88d7-4dac-93a4-15d454cdafff" } } }

2. Confirm Payout

Then, you make the following request to confirm that there is an upcoming payout.

Endpoint

Code
PUT /premium/v1/payouts/confirm

Headers

NameTypeDescription
X-Request-IDstring(uuid)The ID of the request, unique to the call, as determined by the initiating party.
PSU-IDstringThe ID used to identify the PSU at the bank. Typically a local social security number or another unique login ID.
PSU-Corporate-IDstringThe Corporate ID of the PSU when acting on behalf of an organization, e.g. Org. nummer for SE, KVK for NL.

Request Body

NameTypeDescription
payoutIdsarrayThe IDs of the payouts to include in the confirmation.
TerminalCode
curl -X PUT "https://api.openbankingplatform.com/premium/v1/payouts/confirm" \ -H "Accept: application/json" \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIn0..." \ -H "Content-Type: application/json" \ -H "X-Request-ID: 1397b1c9-62af-41d5-b201-cb6ef2f70a72" \ -H "PSU-ID: 123456789001" \ -H "PSU-Corporate-ID: 1234567890" \ -d '{ "payoutIds": [ "a74fbba9-88d7-4dac-93a4-15d454cdafff" ] }'

Response

Code
{ "reference": "OPENXU3WCG", "totalAmount": { "currency": "SEK", "amount": "1300.00" } }

The response contains a generated payout reference, which will be used in the next step.

3. Send Funds

After successfully confirming the payout, the funds should be sent to Open Payments' client funds account with the reference provided in the Confirm Payout response. This payment may be made via the PIS or any other payment method as long as it is referred to via said reference. Once we detect that the funds have been made available in our client funds account, they will automatically be disbursed to the ultimate beneficiary according to Bankgirot and Plusgirot's cut-off times.

The general cut-off time for same-day settlement is 09:15 CET. For bank-specific cut-off times, please contact us.

4. Get Payout

Finally, you can make the following request to check the status of the payout.

Endpoint

Code
GET /premium/v1/payouts/{payoutId}

Path Parameters

NameTypeDescription
payoutIdstringThe ID of the payout that was created.

Headers

NameTypeDescription
X-Request-IDstring(uuid)The ID of the request, unique to the call, as determined by the initiating party.
PSU-IDstringThe ID used to identify the PSU at the bank. Typically a local social security number or another unique login ID.
PSU-Corporate-IDstringThe Corporate ID of the PSU when acting on behalf of an organization, e.g. Org. nummer for SE, KVK for NL.
TerminalCode
curl -X GET "https://api.openbankingplatform.com/premium/v1/payouts/a74fbba9-88d7-4dac-93a4-15d454cdafff" \ -H "Accept: application/json" \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIn0..." \ -H "Content-Type: application/json" \ -H "X-Request-ID: 9c62543c-c8d8-43d8-a7a2-aef97c71fe17" \ -H "PSU-ID: 123456789001" \ -H "PSU-Corporate-ID: 1234567890"

Response

Code
{ "creditorAgent": "HANDSESS", "remittanceInformationUnstructured": "1234567894", "debtorAccountMessage": "Personal note", "creditorAccountMessage": "Invoice payment", "transactionStatus": "ACTC", "creditorAccount": { "bankgiroNumber": "123-4567" }, "creditorName": "Acme AB", "debtorAccount": { "iban": "SE123456789000532811", "currency": "SEK" }, "instructedAmount": { "currency": "SEK", "amount": "1300.00" } }

Once the funds have been settled in the beneficiary's account, the payout will have transactionStatus ACTC.

Last modified on April 30, 2026
ISO PaymentsFX Connect
On this page
    • 1. Create Payout
    • 2. Confirm Payout
    • 3. Send Funds
    • 4. Get Payout
JSON
JSON
JSON