Create transfer
Transfers
Create transfer
Create a merchant-initiated transfer
POST
Create transfer
Overview
Create a transfer to send funds to a saved recipient or an inline destination. Transfers support both NGN bank transfers and USD ACH/wire/SWIFT transfers. Transfers are funded from your merchant balance. Before creating a transfer, ensure your balance has sufficient funds. You can fund your balance in two ways:- Crypto deposits — send stablecoins to your merchant funding crypto wallet addresses.
- NGN deposits — transfer Naira to your permanent merchant funding NGN bank account (converted to USD at the current rate).
recipient_id or destination must be provided.
Saved vs inline recipients:
- Saved recipients are created separately via
POST /v1/recipientsand referenced byrecipient_id. - Inline recipients are created implicitly when
destinationis provided. - For inline USD destinations,
on_behalf_of.customer_idis effectively required because the inline recipient-creation flow needs a customer context. - That customer must already be tier-2 verified; otherwise inline USD recipient creation fails.
Idempotency: This endpoint is idempotent. Use
Idempotency-Key; X-Idempotency-Key is also accepted as a fallback.Authentication
Your merchant API key
Unique idempotency key for request deduplication.
X-Idempotency-Key is also accepted.Example: 550e8400-e29b-41d4-a716-446655440000Request Body
Transfer currency.Allowed values:
NGN | USDNGNtransfers: onlyBANK_ACCOUNTrecipients.USDtransfers: onlyUS_BANK_ACCOUNTorSWIFT_BANK_ACCOUNTrecipients.
Transfer amount as a decimal string in the target currency.Example:
50000.00Merchant-provided unique reference for the transfer.Example:
txn_abc123ID of a previously saved recipient (UUID). Mutually exclusive with
destination.Example: 750e8400-e29b-41d4-a716-446655440000Inline destination details. Mutually exclusive with
recipient_id.Optional metadata linking the transfer to a customer. Effectively required for inline USD destinations.
Request Examples
Response
Transfer ID (UUID)
Merchant-provided reference
External status:
PROCESSING, SETTLED, or FAILEDTransfer rail:
NGN_BANK or USD_BANKTransfer currency (
NGN or USD)Transfer amount in the target currency
Currency debited from the merchant balance (
USD)Total amount debited from the merchant withdrawal balance, including fees.
Fee amount.
Captured exchange rate snapshot. Present for NGN transfers.
Resolved recipient details
Customer metadata if provided
When the transfer was created (ISO 8601)
When the transfer settled (ISO 8601). Null if not yet settled.
Success Response
Notes
- A minimum effective USD debit of $1.00 is enforced.
- For NGN transfers,
amountis the NGN sent to the recipient anddebit_amountis the total USD debited from your withdrawal balance, including fees. - Saved USD recipients can be reused later without resending full destination details.
- Transfers emit
transfer.*webhooks:transfer.created,transfer.processing,transfer.submitted, thentransfer.completedortransfer.failed.transfer.requires_reviewis sent when a transfer is flagged.