Beta Ramps API
Payouts

Post Payouts

POST
/payouts

Authorization

headerAuthorizationBearer <token>

Scope: orders:write

Header Parameters

Idempotency-Key*string

Unique key making the create idempotent (16-64 chars of A-Z a-z 0-9 _ -).

Match^[a-zA-Z0-9_-]{16,64}$

Request Body

application/json
  1. body

Create a payout: an exchange from source_asset to target_asset within the target subaccount, followed by a deferred withdrawal of target_asset to a wallet or bank account once the exchange completes. The Idempotency-Key header is required. Provide exactly one of wallet_id or bank_account_id, and source_asset must differ from target_asset.

target_destination*string

Subaccount (prefix sub_) that receives the exchanged funds and is debited for the withdrawal. Required.

source_origin?string

Origin of the exchange's source funds (e.g. a subaccount sub_). Optional.

source_asset*string

Asset to convert from. Must differ from target_asset.

target_asset*string

Asset to convert to and withdraw. Must differ from source_asset.

source_amount?string

Decimal string. Provide source_amount or target_amount for the exchange leg.

target_amount?string

Decimal string. Alternative to source_amount.

wallet_id?string

Destination wallet (prefix wal_). Provide exactly one of wallet_id or bank_account_id.

bank_account_id?string

Destination bank account (prefix bnk_). Provide exactly one of wallet_id or bank_account_id.

network?string

Network for a wallet withdrawal (e.g. ethereum).

description?string

Optional free-text description carried onto the exchange order.

external_reference?string

Optional partner reference carried onto the exchange order.

Response Body

Payout workflow created. The exchange order is created immediately; the withdrawal order is created after the exchange completes.

application/json
  1. response

A payout workflow linking an exchange order to a deferred withdrawal order. withdrawal_order is absent until the exchange completes and the withdrawal order is created. Returned by POST /payouts and GET /payouts/{payout_id}.

id*string

Payout workflow ID (prefix pwf_).

status*string

Workflow status.

Value in"pending""withdrawal_created""completed""canceled""failed"
exchange_order*
withdrawal_order?
created_at*string
Formatdate-time
Example Request
curl -X POST 'https://api.betaramps.com/payouts' \  -H 'Idempotency-Key: string' \  -H 'Content-Type: application/json' \  -d '{  "source_origin": "sub_0192f4e3-8a9b-7c6d-5e4f-3a2b1c0d9e8f",  "target_destination": "sub_0192f4e3-8a9b-7c6d-5e4f-3a2b1c0d9e8f",  "source_asset": "BRL",  "target_asset": "USDT",  "source_amount": "1000",  "wallet_id": "wal_0192f4e6-1a2b-7c3d-8e4f-5a6b7c8d9e01",  "network": "ethereum",  "external_reference": "payout-2001"}'
Example Response
{  "id": "pwf_0192f4e8-2b3c-7d4e-9f50-6a7b8c9d0e12",  "status": "pending",  "exchange_order": {    "id": "ord_0192f4e3-8a9b-7c6d-5e4f-3a2b1c0d9e8f",    "type": "exchange",    "status": "pending",    "source_origin": "sub_0192f4e3-8a9b-7c6d-5e4f-3a2b1c0d9e8f",    "target_destination": "sub_0192f4e3-8a9b-7c6d-5e4f-3a2b1c0d9e8f",    "source_asset": "BRL",    "target_asset": "USDT",    "source_amount": "1000",    "target_amount": "182.49",    "fee": "1.00",    "price_reference": "5.45",    "rate_base_asset": "USDT",    "external_reference": "payout-2001",    "created_at": "2026-01-15T10:00:00Z"  },  "created_at": "2026-01-15T10:00:00Z"}