Skip to main content
A transfer progresses through a sequence of statuses from the moment you create it until the fiat reaches your recipient. Poll GET /api/payouts/transfer/{transfer_id} to track progress.

Statuses

StatusMeaning
ready_to_processThe transfer is created and waiting for your USDC deposit.
processingThe deposit was received and funds are being converted.
transfer_createdConversion is complete and the outgoing fiat transfer to the recipient has been created.
completedThe payment has been sent to the recipient.
failedThe transfer failed at some stage. Check the error field.
refundedThe transfer could not be completed and the deposited USDC was returned to the sender’s wallet.
Each response also includes a status_label with a human-readable description of the current status.

Refunds

When a transfer is refunded, the refund_tx_hash field contains the on-chain Base transaction hash of the USDC returned to the sender. Use it to verify the refund on a block explorer such as basescan.org. The refunded status is set by the operations team and is permanent.

Looking up a transfer

Lookup is global by transfer_id. Any valid API key for your organization can retrieve any transfer by its ID — including transfers created from the dashboard or with a different key — as long as you know the ID. Transfer IDs are unguessable 24-character identifiers.
v2 transfers add two earlier statuses before processingawaiting_deposit and pending_match — because you confirm the deposit yourself with a transaction hash. See v1 vs v2 transfers.

Concurrent transfers

Multiple transfers can be in flight at once. Each v1 transfer gets its own unique deposit address and settles independently.