POST
/api/public/v1/payoutsCreate a payout
Moves money out to the entity’s bank account. Gated on Stripe’s live state rather than our mirror of it: the account needs a bank external account (or payouts enabled), and the amount has to be within the **available** USD balance — pending funds are not yours to move yet. The Transaction and its journal entry are written by the `payout.paid` webhook, not by this call, so a payout raised through the API lands in the books exactly like a scheduled one.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Settings → Company → API, and to a teammate under Employee → Permissions.
payouts:write
Request Body
| Property | Type | Description |
|---|---|---|
legalEntityId | string | Which entity is paying out. |
amount | number | Cents. Minimum 100 ($1.00). |
description | string | Shown on the bank statement line. |
POSTExample request
curl
curl -X POST "https://www.pxb.app/api/public/v1/payouts" \
-H "Authorization: Bearer your_access_token" \
-H "Content-Type: application/json" \
-d '{
"legalEntityId": "le_7788",
"amount": 420000,
"description": "August draw"
}'200Example response
json
{
"message": "Payout initiated!",
"content": {
"payoutId": "po_1abc",
"amount": 420000,
"arrivalDate": 1788220800
}
}400Example response
json
{
"message": "Insufficient available balance. $1,200.00 available."
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.