Stablecoin to USD

Seamlessly enable your users to convert stablecoins into fiat dollars.

Our off-ramp product allows a user to convert stablecoins into fiat dollars. Programmatically transfer stablecoins to Bridge and tell us where and via what payment method you want to receive USD. We handle all the underlying conversions and funds orchestration required to deposit fiat into a customer's bank account.

To facilitate an off-ramp, first you need to:

Bridge offers 2 ways to convert stablecoins into fiat:

  1. Submit a POST /transfers request
  2. Create a Liquidation Address and send funds to it

Example - POST /transfers

Here is an example showing how to off-ramp USDC into a bank account via wire.

First, call the POST /transfers endpoint

curl --location --request POST 'https://api.bridge.xyz/v0/transfers' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <API Key>' \
--header 'Idempotency-Key: <generate a idempotency-key>' \
--data-raw '{
  "amount": "100.00",
  "developer_fee": "0.5",
  "on_behalf_of": "customer_123",
  "source": {
    "payment_rail": "polygon",
    "currency": "usdc",
    "from_address": "0xdeadbeef",
  },
  "destination": {
    "payment_rail": "wire",
    "currency": "usd",
    "external_account_id": "external_account_123",
  }
}'

Bridge will respond with:

{
  "id": "transfer_123",
  "amount": "100.00",
  "developer_fee": "0.5",
  "state": "awaiting_funds",
  "on_behalf_of": "customer_123",
  "source_deposit_instructions": {
    "payment_rail": "polygon",
    "amount": "100.00",
    "currency": "usdc",
    "from_address": "0xdeadbeef",
    "to_address": "0xc0ffee",
  },
  "source": {
    "payment_rail": "polygon",
    "currency": "usdc",
    "from_address": "0xdeadbeef",
  },
  "destination": {
    "payment_rail": "wire",
    "currency": "usd",
    "external_account_id": "external_account_123",
  },
  "receipt": {
    "initial_amount": "100.0",
    "developer_fee": "0.5",
    "exchange_fee": "0.0",
    "gas_fee": "0.0",
    "subtotal_amount": "99.5",
    "final_amount": "99.5"
  },
  "created_at": "2023-04-26 00:44:03",
  "updated_at": "2023-04-26 00:44:03",
}

Then, have your customer send crypto into their Bridge deposit address, specified in source_deposit_instructions. When the crypto lands and has been confirmed by Bridge, we will automatically send the wire.

Example - Liquidation Address

A Liquidation Address represents a blockchain address that is tied to a bank account. A customer can send USDC to their Liquidation Address, and on a daily schedule, the balance in that address is liquidated and drained out to their connected external account.

First call the POST /customers/customer_123/liquidation_addresses

curl --location --request POST 'https://api.bridge.xyz/v0/customers/customer_123/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <API Key>' \
--header 'Idempotency-Key: <generate a idempotency-key>' \
--data-raw '{
  "chain": "ethereum",
  "currency": "usdc",
  "external_account_id": "external_account_123",
}'

Bridge will respond with a blockchain address:

{
  "id": "liquidation_address_123",
  "chain": "ethereum",
  "address": "0xc0ffee",
  "external_account_id": "external_account_123",
}

Now, simply instruct the customer to send their crypto to the liquidation address and each day, Bridge will drain these addresses and send an ACH payment.