Create payout

Request a payout from one of your balances to the balance's configured bank account.

The payout will be executed on the next scheduled business day. If no amount is specified, the full available balance minus any configured balance reserve is paid out.

Once the payout is created with status requested, you can cancel it via the Cancel payout endpoint, up until the payout moves to initiated.

Creating a payout via the API automatically sets the balance's transferFrequency to never, pausing any previously configured automatic settlement schedule. To resume automatic settlements, update the transfer frequency via the dashboard.

Webhooks

Subscribe to the following webhook events to track payout status changes. See the Webhook Subscriptions API for details on subscribing.

EventDescription
payout.initiatedThe payout is being executed and funds are reserved.
payout.processing-at-bankThe payout has been submitted to the bank.
payout.completedThe payout has been sent to the destination bank account.
payout.canceledThe payout was canceled via the API before being submitted to the bank.
payout.failedThe payout failed after creation, including bank rejections and post-submission cancellations.

Payout failure reasons

A payout request may fail immediately if one of the following conditions applies:

  • A payout is already scheduled for the next business day for this balance.
  • The balance has insufficient funds.
  • The balance is not active.
  • Payouts are blocked for this organization.
  • The balance has queued refunds.
  • One of the organization's balances is below the negative balance threshold.
  • The payout destination (bank account) is invalid or not configured.

Access with

API key

Advanced access token with payouts.write

OAuth access with payouts.write

Query Params
boolean

Most API credentials are specifically created for either live mode or test mode. In those cases the testmode query parameter must not be sent. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the testmode query parameter to true.

Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.

Body Params
string
required

The identifier of the balance that will be paid out. Example: bal_gVMhHKqSSRYJyPsuoPNFH.

amount
object | null

In v2 endpoints, monetary amounts are represented as objects with a currency and value field.

string
length ≤ 255

The description that will appear on the bank statement for this payout.

boolean | null

Whether to create the entity in test mode or live mode.

Most API credentials are specifically created for either live mode or test mode, in which case this parameter must not be sent. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting testmode to true.

Responses

Language
Credentials
LoadingLoading…
Response
Choose an example:
application/hal+json