POST
/api/v2/banking/payoutsPayout Step 4: create the payout after OTP verification.
Use the VerificationToken returned from POST /api/v2/banking/payouts/initiate after it has been verified by POST /api/v2/banking/otp/verify. If the quote was refreshed while the OTP screen was open, pass the latest CheckId and QuoteRequestId.
Authentication
Send your API key in the x-api-key header on every request.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| userId (query) | unknown | No |
Request body
application/json
| Field | Type | Required | Description |
|---|---|---|---|
| VerificationToken | string | No | Token returned by POST /api/v2/banking/payouts/initiate after it has been verified through the OTP endpoint. Required for POST /api/v2/banking/payouts. Token returned by POST /api/v2/banking/payouts/initiate after it has been verified through the OTP endpoint. Required for final payout creation. |
| CheckId | string | Yes | CheckId from POST /api/v2/banking/payouts/check. If the quote is refreshed on the OTP screen, send the latest quote/order ID here. CheckId returned by POST /api/v2/banking/payouts/check. When refreshing quotes during OTP, send the latest quote/order ID here. |
| QuoteRequestId | string | No | QuoteRequestId returned by POST /api/v2/banking/quotations. QuoteRequestId returned by POST /api/v2/banking/quotations. |
| PayeeId | unknown | Yes | Local payee ID from the payee list endpoint. Local payee ID from GET /api/v2/banking/payees. |
| Amount | string | Yes | Payout amount as a decimal string. |
| Currency | string | Yes | Payout currency, usually the payee currency. |
| FromCurrency | string | No | Currency to fund the payout from. When omitted, the payout currency is used. This must reflect the currency selected by the caller, because an Equals Money budget can hold multiple currencies under the same budget ID. |
| BalanceId | string | No | Optional provider balance or budget ID to fund the payout from. Optional provider balance or Equals Money budget ID used as funding source. |
Responses
201 — Created
| Field | Type | Required | Description |
|---|---|---|---|
| Id | unknown | No | |
| ExternalId | string | No | |
| ClientTransactionId | string | No | |
| Status | string | No | |
| Message | string | No | |
| FromAmount | string | No | |
| FromCurrency | string | No | |
| ToAmount | string | No | |
| ToCurrency | string | No | |
| Fees | array of PayoutFeeDto | No | |
| CreatedAt | string (date-time) | No |
400 — Bad Request
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
401 — Unauthorized
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
404 — Not Found
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
500 — Internal Server Error
| Field | Type | Required | Description |
|---|---|---|---|
| Message | string | No | |
| Code | string | No | |
| Status | unknown | No | |
| ValidationErrors | object | No | |
| Details | string | No |
Example request
curl -X POST "https://{base_url}/api/v2/banking/payouts" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"CheckId":"…","PayeeId":"…","Amount":"…","Currency":"…"}'This page is generated from the live OpenAPI specification and always matches the current API.