Bank payouts
Make seamless payouts to your customer’s bank accounts with Bank payouts. Access local clearing methods globally, circumventing the challenges of international payments and simplifying complex payment infrastructures.
You can send a payout in two ways: (1) use a bank account payment instrument that you have previously created and stored, or (2) use the bank account fields required for the country and currency to which you want to pay out funds.
Use the get bank account field formatting endpoint to retrieve the relevant bank account fields and formatting for the country and currency to which you'll be paying out.
Once you've done that, you can either use those bank account details directly in your payout request, or use them to create a reusable bank account payment instrument, which you can then use in your Bank payout requests.
Request a Bank payout by using the relevant bank account fields or a bank account payment instrument (prefixed by src_
). To get a detailed view of all required and optional fields, see our API reference.
post
https://api.checkout.com/payments
Header | Value |
---|---|
required |
|
required |
|
optional | An optional idempotency key for safely retrying payout requests. |
Information
See our API reference for the full specification.
Field name | Description |
---|---|
required object | Details about the payout source. |
required string | The type of source. Set this to |
required string | The source identifier. This is prefixed by |
required object | Details about the payout destination. |
required object | The type of payout destination. Set this to InformationTo create a bank account payment instrument, use our Instruments API. |
required string | The bank account payment instrument identifier. This is prefixed by |
required integer(>=0) | The amount you want to pay out to the destination account. The exact format depends on the currency. NoteYou must specify either the destination |
required string (3 chars) | The three-letter ISO code of the destination currency. The currency should match that of the destination account. |
optional string | An optional reference you can later use to identify this payout. |
required object | Details about the billing descriptor. |
required string | The reference that is (where possible) displayed on the account holder's statement. |
required object | Details about the sender of the payout's funds. Conditional if sender is not the same as the entity. |
required string | The type of sender. This can be |
required string | The sender's address. |
required string | The sender's unique ID. |
optional object | Details about the instruction for payouts to bank accounts. |
optional string | An optional description of the payout purpose, for example |
optional string (enum) | The preferred payment scheme or network the bank transfer will be sent through. This can be one of:
Bank details must be in line with the chosen scheme. |
required string | The processing channel identifier. |
1{2"source": {3"type": "currency_account",4"id": "ca_y3oqhf46pyzuxjbcn2giaqnb44"5},6"destination": {7"type": "id",8"id": "src_gsd2agaqd2sernz5tpcfv555nq"9},10"amount": 1000,11"currency": "GBP",12"reference": "PO-215-5721",13"billing_descriptor": {14"reference": "Withdrawal"15},16"instruction": {17"purpose": "Withdrawal"18},19"processing_channel_id": "pc_hpswyyx23geezflc2ocz3exn4y"20}
If your payout request was successfully sent, you will receive a 202 response, with the status Pending
. If your request was unsuccessful, you will receive a 422 or 429 response containing an error code.
You will then receive a webhook notification indicating the status of your payout
1{2"id": "pay_dvxl6j6stpqufkzfgbaahmfrzm",3"status": "Pending",4"reference": "PO-215-5721",5"instruction": {6"value_date": "2020-06-12T22:27:42.512594Z"7},8"_links": {9"self": {10"href": "https://api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm"11},12"actions": {13"href": "https://api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm/actions"14}15}16}
After receiving the response to your payout request, you will get a webhook notification indicating the status of your payout:
- If your payout is successful, you will receive a
payment_paid
webhook, with a10000
response code and theApproved
summary. - If your payout is declined, you will receive a
payment_declined
webhook with a50001-50399
response code and a summary explaining the reason for the decline. View the list of response codes.
Information
Use our testing guide to test different payout scenarios.
1{2"id": "evt_ooratpvrc4yezkrjjrfohi26te",3"type": "payment_paid",4"version": "1.0.33",5"created_on": "2023-09-20T14:09:04.7926938Z",6"data": {7"id": "pay_dvxl6j6stpqufkzfgbaahmfrzm",8"reference": "PO-215-5721",9"action_id": "act_y37vtskjeweuhfy4mhiggxhpgu",10"response_code": "10000",11"response_summary": "Approved",12"amount": 1000,13"currency": "GBP",14"source": {15"type": "currency_account",16"card_on_file": false,17"id": "ca_y3oqhf46pyzuxjbcn2giaqnb44"18},19"destination": {20"type": "bank_account",21"id": "src_vovjchw6exauvjrdzpmfu3sm3y",22"fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"23},24"processed_on": "2023-09-20T14:09:03.2717864Z",25"instruction": {26"value_date": "2023-09-20T00:00:00+00:00"27},28"event_links": {29"payment": "https://api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm",30"payment_actions": "https://api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm/actions"31}32},33"_links": {34"self": {35"href": "https://api.sandbox.checkout.com/workflows/events/evt_ooratpvrc4yezkrjjrfohi26te"36},37"subject": {38"href": "https://api.sandbox.checkout.com/workflows/events/subject/pay_dvxl6j6stpqufkzfgbaahmfrzm"39},40"payment": {41"href": "https://api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm"42},43"payment_actions": {44"href": "https://api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm/actions"45}46}47}