Skip to main content
Before you can issue payouts, your Consul balance must be funded. There are two ways to move money into your balance: stablecoin deposits and fiat deposits.

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 an inbound_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.
To find your Consul wallet address, go to Dashboard → Add Funds and copy the displayed wallet address.

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

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:
The response includes the exchange rate, fees, and a quote id.

3. Execute the Deposit

Execute the quote with the Execute a Deposit endpoint to lock in the rate and receive transfer instructions:
The response is a Transfer object containing fiat_transfer_instructions - the details needed to complete the transfer from your bank:
For USD wires and ACH pushes, use the 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

The following state diagram shows the lifecycle of a deposit.