Stablecoin Deposits
If you already hold USDC or USDT in a wallet or exchange, you can transfer it to your Consul balance directly. This is instant and requires no conversion. You will receive aninbound_transfer.created webhook event once funds arrive.
By default, funds must be sent as USDC or USDT on Base. If you need support for other
tokens or chains, contact support to enable.
Fiat Deposits
Consul converts fiat deposits into USDC and credits your balance. Use the Deposits API to initiate a fiat deposit programmatically.
PSE in Colombia and SPEI in Mexico can be enabled on request.
Example
1. Link a Bank Account
Before creating a deposit, you need a linked bank account. The bank account determines the currency and payment rail. See the Bank Accounts guide for the full schema and examples for each supported currency.2. Create a Deposit Quote
Request a quote with the Create a Deposit Quote endpoint. The currency and payment rail are determined by the linked bank account:id.
3. Execute the Deposit
Execute the quote with the Execute a Deposit endpoint to lock in the rate and receive transfer instructions:Transfer object containing fiat_transfer_instructions - the details
needed to complete the transfer from your bank:
transfer_memo when initiating the wire or transfer from your bank.
Each payment rail has a different set of transfer instructions. See the schema in
Execute a Deposit for the full details or contact support.
Deposit Lifecycle
A deposit can be in one of the following states:Deposit Lifecycle Diagram
Deposit Lifecycle Diagram
The following state diagram shows the lifecycle of a deposit.

