Skip to main content

Overview

Enable users to deposit funds into their subaccounts using multiple methods:
  • Fiat Currency (e.g., NGN, BRL)
  • Stablecoins (USDC, USDT) on supported networks
  • Cryptocurrency (BTC via Lightning Network)
For a full list of supported currencies and networks, see the Supported Currencies page.

1. List Deposit Channels

Retrieve available funding methods, limits, and fees for a specific currency. You can filter the response to find the appropriate channelId for your deposit.

API Reference

See the full endpoint documentation
curl --request GET \
  --url https://api.bullring.finance/v1/ramp/banking/channels \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
Response
{
  "USDC": {
    "channels": [
      {
        "id": "usdc-channel-id-bullring-finance",
        "currency": "USDC",
        "min": 0,
        "max": 1500000000000000000,
        "rampType": "deposit",
        "channelType": "crypto",
        "status": "active"
      }
    ],
    "networks": [
      {
        "id": "eth-mainnet-network-id",
        "name": "Ethereum Mainnet",
        "code": "ETH-MAINNET"
      }
    ]
  },
  "NGN": {
    "channels": [
      {
        "id": "ngn-channel-id-bullring-finance",
        "currency": "NGN",
        "min": 100,
        "max": 10000000,
        "rampType": "deposit",
        "channelType": "fiat",
        "status": "active"
      }
    ]
  }
}

2. Initiate Deposit

Method A: Fiat Deposit

Initiate a bank transfer or other local payment method. The response will include banking details or payment instructions.

API Reference

See the full endpoint documentation
Example: NGN Deposit
curl --request POST \
  --url https://api.bullring.finance/v1/ramp/{subaccountId}/banking/deposits \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "channelId": "ngn-channel-id-bullring-finance",
    "source": {
      "accountType": "bank"
    }
  }'
Response
{
  "id": "deposit-uuid",
  "status": "pending",
  "amount": 5000,
  "currency": "NGN",
  "bankInfo": {
    "bankName": "Providus Bank",
    "accountNumber": "1234567890",
    "accountName": "Bullring Checkout"
  }
}

Method B: Crypto Deposit (On-Chain)

Get a dedicated deposit address for a specific blockchain network (e.g., Ethereum, Solana).

API Reference

See the full endpoint documentation
Example: Get USDC Address on Ethereum Sepolia
curl --request GET \
  --url https://api.bullring.finance/v1/ramp/{subaccountId}/banking/deposits/crypto/ETH-SEPOLIA \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
Response
{
  "id": "address-uuid",
  "address": "0x34e36e819b37577c66e7032e060866bd6a04e677",
  "chain": "ETH-SEPOLIA",
  "currency": "USDC"
}

Method C: Lightning Network Deposit (BTC)

Create a Lightning invoice for Bitcoin deposits.

API Reference

See the full endpoint documentation
curl --request POST \
  --url https://api.bullring.finance/v1/ramp/{subaccountId}/banking/deposits/lightning \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "amount": 10000,
    "currency": "usd",
    "note": "Top up"
  }'
Response
{
  "id": "invoice-uuid",
  "lightningInvoice": "lntbs108323630n1p53uucupp5t0...",
  "status": "unpaid",
  "paymentRequestAmount": 10000,
  "paymentRequestCurrency": "usd"
}

3. Listen for Webhook Events

Listen to webhook events to track the status of your deposits in real-time.
  • deposit.status.paid: The deposit has been successfully paid.
  • deposit.status.unpaid: The deposit failed.
See Deposit Events for payload details.

Common Mistakes

  • Incorrect Network: Sending crypto assets on the wrong network (e.g., sending USDC via Polygon to an Ethereum address) will result in permanent loss of funds. Always verify the network.
  • Unverified KYC: All deposit methods require the subaccount to have approved KYC. Attempting to deposit into an unverified account will return an error.
  • Ignoring Limits: Ensure the deposit amount is within the min and max limits specified in the channels response.
  • Wrong Channel ID: When making a fiat deposit, ensure you use the channelId corresponding to the correct currency and payment method.