# Request Bank Payouts > **Information** > > This guide is for Enterprise Bank Payouts. For Bank Payouts to Platform sub-entities, see [Process sub-entity Bank Payouts](https://www.checkout.com/docs/platforms/process-sub-entity-payouts/process-bank-payouts.md). Bank Payouts enables you to pay funds out to your customer’s bank accounts. You can access local clearing methods around the world, circumventing the challenges of international payments and simplifying complex payment infrastructures. --- ## How it works In your payout request, you can provide as the destination a bank account payment instrument, or bank account fields. **Bank account payment instrument** You provide a reusable bank account payment instrument. For a new instrument: 1. [Check the required bank account field formatting](https://www.checkout.com/docs/payments/request-payouts/bank-payouts/bank-account-field-formatting.md) for the country and currency you want to pay out to. 2. [Create a bank account payment instrument](https://www.checkout.com/docs/payments/store-and-manage-credentials/store-credentials/payment-instruments.md#Create_the_instrument). 3. Request a payout and provide the instrument ID. For an existing instrument, request a payout and provide the instrument ID. **Bank account fields** You provide the destination bank account details. 1. [Check the required bank account field formatting](https://www.checkout.com/docs/payments/request-payouts/bank-payouts/bank-account-field-formatting.md) for the country and currency you want to pay out to. 2. Request a payout and provide the required bank account fields. Checkout.com verifies the bank account before processing the payout. --- ## Request a payout Call the [Request a payment or payout](https://api-reference.checkout.com/tag/Payments/#operation/requestAPaymentOrPayout) endpoint. > **Information** > > Your base URL's `{prefix}` value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints.md). **Production** `POST` `https://{prefix}.api.checkout.com/payments` **Sandbox** `POST` `https://{prefix}.api.sandbox.checkout.com/payments` **Bank account payment instrument** In the request body, provide the following: - `source.id` – The sending sub-account's unique identifier, prefixed with `ca_`. - `source.type` – Set to `currency_account`. - `destination.type` – Set to `id`. - `destination.id` – The unique identifier for the bank account payment instrument, prefixed with `src_`. - `amount` - `currency` - `billing_descriptor.reference` - `processing_channel_id` Optionally, if the sender is different to the entity: - `sender.type` – This can be `corporate` or `individual`, or `instrument`. - `sender.reference` – The sender's unique identifier. **Bank account fields** In the request body, provide the following: - `source.id` – The sending sub-account's unique identifier, prefixed with `ca_`. - `source.type` – Set to `currency_account`. - `destination.type` – Set to `bank_account`. - `destination.country` - `destination.account_type` – This can be `cash`, `current`, or `savings`.
Some beneficiary banks do not accept payouts to savings accounts. - `amount` - `currency` - `billing_descriptor.reference` - `processing_channel_id` - `sender.type` – This can be `corporate`, `individual`, or `instrument`. - `sender.reference` – The sender's unique identifier. Provide the following bank details fields as required for the destination country: - `destination.iban` - `destination.account_number` - `destination.bank_code` - `destination.branch_code` - `destination.bban` - `destination.swift_bic` - `destination.account_holder` - `account_holder.type` – This can be `corporate` or `individual`. - `account_holder.first_name` - `account_holder.last_name` - `account_holder.billing_address.address.country` - `account_holder.billing_address.address_line1` – Required for corporate, not for individual - `account_holder.billing_address.address.city` – Required for corporate, not for individual - `iban` – Required in all supported European countries - `swift_bic` – Required in all supported European countries ### Request examples **Bank account payment instrument** ```json { "source": { "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44", "type": "currency_account" }, "destination": { "id": "src_gsd2agaqd2sernz5tpcfv555nq", "type": "id" }, "amount": 1000, "currency": "GBP", "reference": "PO-215-5721", "billing_descriptor": { "reference": "Withdrawal" }, "instruction": { "scheme": "local" }, "processing_channel_id": "pc_hpswyyx23geezflc2ocz3exn4y" } ``` **Bank account fields** ```json { "source": { "id": "ca_y3oqhf46pyzuxjbcn2giaqnb44", "type": "currency_account" }, "destination": { "type": "bank_account", "account_type": "current", "account_number": "01008704", "bank_code": "110350", "country": "GB", "account_holder": { "type": "individual", "first_name": "John", "last_name": "Smith", "billing_address": { "address_line1": "123 Example St.", "city": "London", "zip": "SW1A 1AA", "country": "GB" } } }, "amount": 1000, "currency": "GBP", "reference": "PO-215-5721", "billing_descriptor": { "reference": "Withdrawal" }, "instruction": { "purpose": "Withdrawal" }, "processing_channel_id": "pc_hpswyyx23geezflc2ocz3exn4y" } ``` ### Response examples If your payout request was sent: - Successfully – You receive a `202 Accepted` response, with the status `Pending`. - Unsuccessfully – You receive a `422 Unprocessable Content` or `429 Too Many Requests` response containing an error code. **202** ```json { "id": "pay_dvxl6j6stpqufkzfgbaahmfrzm", "status": "Pending", "reference": "PO-215-5721", "instruction": { "value_date": "2024-06-12T22:27:42.512594Z" }, "_links": { "self": { "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm" }, "actions": { "href": "https://{prefix}.api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm/actions" } } } ``` **422** ```json { "request_id": "0HM5M8APSODP0:00000018", "error_type": "request_invalid", "error_codes": ["source_currency_account_not_found"] } ``` **429** ```json { "request_id": "0HL80RJLS76I7", "error_type": "request_invalid", "error_codes": ["duplicate_request"] } ``` --- ## Webhooks You can [configure your webhook server](https://www.checkout.com/docs/developer-resources/event-notifications/receive-webhooks/configure-your-webhook-server.md) and subscribe to the following webhooks about the payout's status: - Successful payout – You receive a [Payment paid](https://www.checkout.com/docs/developer-resources/event-notifications/event-types/payment_paid.md) webhook, with `"response_code": "10000"`, and `"response_summary": "Approved"`. - Declined payout – You receive a [Payment declined](https://www.checkout.com/docs/developer-resources/event-notifications/event-types/payment_declined.md) webhook with `"response_code": "50001-50399"`, and a `response_summary` explaining the reason for the decline. > **Information** > > For more information, see [API response codes](https://www.checkout.com/docs/developer-resources/codes/api-response-codes.md). --- ## Testing To test different payout scenarios, see [Bank Payouts testing](https://www.checkout.com/docs/testing/bank-payouts-testing.md). --- ## Report To view all pending, successful, rejected, and declined bank payouts during a specified time frame, see the [Bank Payouts Report](https://www.checkout.com/docs/payments/retrieve-payment-reports/bank-payouts-report.md). --- ## Related topics - [Bank account field formatting](https://www.checkout.com/docs/payments/request-payouts/bank-payouts/bank-account-field-formatting.md): View the bank account field formatting required to create bank account instruments, or request bank payouts for each supported country.