Choose a payment type
The payment type decides the rail.
See Send a payout for the fields each rail needs.
Lifecycle
Subscribe to
outflows.created, outflows.completed, outflows.failed and outflows.cancelled instead of polling. Treat the webhook as a prompt, then retrieve the transfer and read its status before you act. See Confirm state before acting.
Rules that affect your integration
- Idempotency.
unique_referenceidentifies a transfer for your entity. A second request with the same reference returns409 error_duplicate_resourceand does not return the original transfer. - Funds are checked at creation. If the account can’t cover the amount and fee, the request fails with
400 error_transfer_insufficient_fundsand the message states the available balance. - Currency conversion needs a quote. When the source account currency differs from the transfer
currency, pass anfx_quote_id. Each quote is single use. See FX quotes. - Payment details must be complete. A USD transfer to a bank account needs the full
bank_addresson the payment detail:line1,city,state,postal_codeandcountry. Otherwise the transfer returns422 error_validation_required_field_missingfor the missing field.

