Skip to main content
Withdrawals allow you to offramp stablecoins from your treasury wallet directly to your bank account. This is the reverse of the funding process.

Prerequisites

Before you can withdraw funds, you must:
  1. Configure your bank account with your Crossmint CSE. This is the same bank account used for funding your treasury wallet via bank transfer.
  2. Receive your reference code (REF) from your Crossmint CSE. This is the same reference used in the funding memo format.

Via the Console

Authorized users can initiate withdrawals directly from the Crossmint Console:
  1. Navigate to crossmint.com/console
  2. Go to Wallets > Company Wallets
  3. Click the Withdraw button on your treasury wallet
  4. Follow the on-screen instructions to complete the withdrawal
To enroll additional authorized users for withdrawals, contact your Crossmint CSE.

Via API

To withdraw funds programmatically, initiate a stablecoin transfer from your treasury wallet to a bank destination.

Initiate a Withdrawal

Use the Transfer API with a special bank destination format:
  • Node.js
  • REST
const walletLocator = ""; // The locator of your treasury wallet
const bankAccountRef = ""; // The "ref" assigned to your bank account by crossmint

const treasuryWallet = await wallets.getWallet(walletLocator, {
    chain: "base",
    signer: { type: "api-key" },
});

const transfer = await treasuryWallet.send({
    to: `bank:${bankAccountRef}`,
    token: "usdc",
    amount: "1000",
});
Where bankAccountRef is the reference code assigned to your bank account by your Crossmint CSE (e.g., bank:XM00089). For more details on the Transfer API, see the Transfer Tokens guide.

Monitor Withdrawal Status

You can track the status of your withdrawal in two ways:

Query the Transfer API

Poll the transfer status endpoint to check progress:
curl --request GET \
    --url 'https://www.crossmint.com/api/2025-06-09/wallets/{walletLocator}/transfers/{transferId}' \
    --header 'X-API-KEY: <x-api-key>'

Listen to Webhooks

For real-time notifications, configure webhooks to receive transfer status updates:
  • Configure a webhook endpoint to receive messages for outgoing transfers by selecting the wallets.transfer.out event type
  • Verify the webhook signature to ensure it comes from Crossmint
  • The transfer will be marked as completed once the wire transfer has been sent to your bank account
See the webhooks guide for more details on webhook payloads.

Fees

Withdrawal fees will be deducted from your withdrawal amount. Contact your Crossmint CSE for details on fee structure.

Troubleshooting

If you encounter issues with a withdrawal (incorrect amount, failed transfer, etc.), contact our support team for assistance.