Skip to main content
Once you’ve sent the order’s USDC to deposit_address on Base, send us the transaction hash (the ID of your transfer). We check the transfer covers the order and start the payout.
Only for orders where deposit_submission_required is true. Automatic orders (every NGN order, and some KES M-Pesa phone and till orders) don’t need this, because we spot the transfer ourselves. Calling this for one returns 409.

Endpoint

Requires the offramp scope. Orders you don’t own return 404.

Body

string
required
The ID of the Base transaction where you sent the USDC to deposit_address. It starts with 0x followed by 64 letters and numbers. Each transaction can only pay for one order. Using one twice returns 409.

Example

Response (200)

The full order object with status: "settling":
The order’s rate, amount_local, and fee now show the actual payout, at the live rate. From here, watch for completed by checking the order or with the offramp.completed webhook. Sending the same hash again after it’s been accepted is harmless. You just get the order back as it is now.

Errors

A 422 means the payout did not start. Check that you sent exactly total_deposit_usdc, in USDC, on Base, to the order’s deposit_address, then send the hash again. If the order expires while you’re sorting it out, send the order_id and hash to support.