Skip to main content

Withdrawing To Bank

This guide walks through everything needed to set up a merchant for fiat payouts after receiving crypto payments via Bullring Finance.
🧠 Note: You can start accepting payments immediately after merchant registration. However, to withdraw to bank account, the merchant must first complete verification and add their pix key.

Step 1: Complete KYB Verification

Get the KYB form URL for the merchant using the kyb endpoint:
GET /v1/ramp/subaccount/{id}/kyb
Sample Response:
{
  "formUrl": "https://forms.kycaid.com/2cfed1d30d8b4447b018c2d8b4748d129493"
}
Once the form is completed, you’ll receive a webhook event like:
{
  "event": "subaccount.status",
  "data": {
    "status": "verified"
  }
}
Wait until the merchant status is verified before proceeding.

Step 2: Add Merchant’s Pix Key

To receive fiat payouts, the merchant must register their Pix key:
POST /v1/ramp/subaccount/{id}/banks?accountId={accountId}
Body:
{
  "brlAccount": {
    "pixKey": "667.136.083-96"
  }
}
Sample Response:
{
  "id": "449eca18-9c77-472c-9e82-b08a18637759",
  "name": "Hugo Gonzalez"
}
This verifies and associates the bank account with the merchant.

Step 3: Set Payout Schedule (Optional)

You can configure daily automatic withdrawal times:
POST /v1/ramp/subaccount/{id}/withdrawal-schedule
Body:
{
  "dailyPayoutTime": "15:00"
}
Sample Response:
"Withdrawal schedule set successfully."

Step 4: Trigger a Withdrawal

To manually withdraw available balance (converted to fiat) to the registered bank account:
POST /v1/ramp/subaccount/{id}/withdrawals
Sample Response:
ok

Step 5: Monitor Status via Webhook

Bullring will notify your webhook when a withdrawal is processed:
{
  "event": "withdrawal.status.completed",
  "data": {
    "status": "completed",
    "amount": "496.50",
    "currency": "BRL"
  }
}
You can also poll:
GET /v1/ramp/subaccount/{id}/withdrawals
Or check a specific withdrawal:
GET /v1/ramp/subaccount/{id}/withdrawals/{withdrawalId}
Sample Response (Single Withdrawal):
{
  "id": "06506c54-8df0-4d5f-bdc0-50dbe29fb84e",
  "payoutAmountDueInCrypto": "85.06",
  "payoutAmountDueCurrency": "usdt",
  "payoutDueTime": "2025-04-18 17:00",
  "status": "completed",
  "bankAccountId": null,
  "paymentRequestCurrency": "brl",
  "amountStoreReceives": "496.5",
  "createdAt": "2025-04-17T17:06:47.212Z",
  "updatedAt": "2025-04-17T21:53:29.961Z"
}

That’s it! Your verified merchant can now receive fiat payouts 🚀