This guide walks through the full offramp flow: receive crypto into your account, convert it to fiat, and pay out to a bank account.
Prerequisites
- An active account with a crypto balance (funded via on-chain deposit to your account’s funding method)
- A bank beneficiary registered for the destination bank account
Flow overview
- Crypto arrives in your account (e.g., USDC sent to your account’s on-chain funding address)
- Create a quote to convert USDC to USD
- Execute the quote — balances update atomically
- Initiate a fiat payout to a bank beneficiary
Step 1: Check your balance
Verify that crypto funds have arrived:
Step 2: Register a bank beneficiary
If you haven’t already, create a bank beneficiary for the destination account:
Step 3: Create a quote
Request a quote to convert USDC to USD. Use toAmount if you need a specific USD amount to arrive:
Quotes expire after 5 minutes. Execute before expiresAt or create a new one.
Step 4: Execute the quote
Your account now holds 49,985.00 USD.
Step 5: Initiate fiat payout
Send the USD to the registered bank beneficiary:
Why LOCKED?
Unlike crypto payouts (which complete immediately on-chain), fiat payouts go through banking rails that take time. The LOCKED status means:
- Funds have been debited from the account and are no longer available
- The payout has been submitted to the banking provider
- The transfer will settle according to the method’s timeline (same-day for domestic wires, 1-2 days for SEPA, etc.)
The bank object in the response is a snapshot of the beneficiary’s bank details at the time of payout. Even if you update the beneficiary later, this transaction’s bank details are fixed.
Summary
Crypto vs. fiat payouts