Offramp wallet funds to an external account
This guide walks you through how to offramp funds from a Bridge-managed wallet to an external fiat account (e.g. a customer’s bank account) using the Transfers API.
Prerequisites
Before you start:
- A Bridge wallet with sufficient balance
- A verified customer (via KYC or business onboarding)
- External account created
Step 1: Create a transfer from a Bridge wallet to an external bank account
Use Create a transfer endpoint to move funds from a Bridge wallet to a fiat destination.
Request
curl --location --request POST 'https://api.bridge.xyz/v0/transfers' \
--header 'Api-Key: <API Key>' \
--header 'Idempotency-Key: <Unique Key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": "100.00",
"on_behalf_of": "cust_12345", // id of the customer who owns the wallet and ext. account
"source": {
"payment_rail": "bridge_wallet",
"currency": "usdb",
"bridge_wallet_id": "wallet_abc123" // id of the bridge wallet with funds
},
"destination": {
"payment_rail": "ach",
"currency": "usd",
"external_account_id": "ext_account_xyz789" // id of the customer bank account
}
}'
Step 2: Monitor transfer status
You can query the Get a transfer endpoint or listen to webhook events to retrieve the transfer details:
Request
curl --location --request GET 'https://api.bridge.xyz/v0/transfers/transfer_xyz' \
--header 'Api-Key: <API Key>' \
--header 'accept: application/json'
Response
{
"id": "transfer_xyz",
"state": "payment_processed",
"amount": "100.00",
"source": { ... },
"destination": {
"payment_rail": "ach",
"currency": "usd",
"external_account_id": "ext_account_xyz789"
},
...
}
Common states:
awaiting_funds
: waiting for source balancepayment_submitted
: funds handed off to banking partnerpayment_processed
: funds delivered to external account
Related Docs
Updated about 4 hours ago