Skip to main content
POST
Create a Payout Intent

Authorizations

Authorization
string
header
required

Cleff API key issued to a Business that self-registers via POST /v1/registration

Body

application/json
beneficiary_id
string<uuid>
required
bank_account_id
string<uuid>
required

Destination BankAccount for this disbursement. Must belong to the targeted Beneficiary and be in verified status.

amount_minor
number
required

Amount in minor units (e.g. cents). Max 9007199254740991 (2^53−1) to preserve JS integer precision.

Required range: x <= 9007199254740991
currency
string
required

ISO 4217 currency code

idempotency_key
string
required

Caller-supplied idempotency key, scoped to (Business, environment); 24h short-circuit window.

purpose_of_payment
enum<string>
required

Why the funds are being sent. Routefusion requires a purpose-of-payment on every transfer. Provisional corridor-agnostic set; coded values live behind the purpose-of-payment seam.

Available options:
advertising,
advisor_fees,
charity,
education,
family_support,
investment,
loan_repayment,
medical,
other,
payroll,
purchase_of_goods,
purchase_of_services,
real_estate,
royalties,
taxes,
treasury,
travel
external_ref
string

Business-supplied reference (e.g. tradeId/jobId).

validator_strategy
enum<string>

Override the per-Business default validator strategy for this Intent.

Available options:
manual
replaces_payout_id
string<uuid>

Self-link to a previously-failed Payout this Intent is replacing. The predecessor must be in failed state, belong to the same Business, and not have been replaced already.

via
object

Channel metadata. Server infers a default from the auth source (session→dashboard, API key→api). Clients may declare { channel: 'sdk', sdkVersion? } or { channel: 'cli', cliVersion? }; other channels are rejected.

Response

payout
object
required