Prerequisites
Before you begin, complete the account and API key setup. Replace${YOUR_API_KEY} in the examples below with your sandbox API key.
Step 1: Create a bank account
Register a mock bank account using the create a wire bank account endpoint. This bank account serves as the source for depositing fiat and the destination for redeeming USDC.id from the response. You need it in the following
steps.
Step 2: Get wire instructions
Retrieve the wire instructions for your bank account using the get wire instructions endpoint. The response includes thetrackingRef and beneficiary
accountNumber you need to simulate a wire deposit.
trackingRef and the beneficiaryBank.accountNumber values for the
next step.
Step 3: Deposit fiat to mint USDC
Simulate a wire deposit using the create a mock wire payment endpoint. In the sandbox, this mints USDC into your Circle Mint account without moving real funds.Sandbox mock wire deposits process in batches and may take up to 15 minutes to
complete. Wait for the deposit to settle before continuing.
available balance confirms that your fiat deposit minted USDC
successfully.
Step 4: Transfer USDC onchain
Send USDC from your Circle Mint account to an external blockchain address. This step requires two API calls: create a recipient address, then create a transfer.4.1. Create a recipient address
Register a destination address using the create a recipient address endpoint. This example uses the Ethereum blockchain.4.2. Create a transfer
Send USDC to the recipient address using the create a transfer endpoint:pending status, moves to running once broadcast
onchain, and reaches complete after enough
blockchain confirmations.
Step 5: Redeem USDC to fiat
Convert your remaining USDC balance back to fiat by creating a payout to the bank account you registered in Step 1. Use the create a payout endpoint:Step 6: Verify the round trip
Check your final balance to confirm both the transfer and payout processed:- Deposited $100 USD via wire to mint 100 USDC.
- Transferred 25 USDC onchain to an Ethereum address.
- Redeemed 75 USDC back to fiat via wire payout.
The mock wire endpoint used in Step 3 is only available in the sandbox. In
production, initiate wire transfers from your own banking interface using the
wire instructions from Step 2. All other API calls in this guide work the same
in production. See Sandbox to
Production for details on
transitioning.