Documentation Index
Fetch the complete documentation index at: https://docs.busha.io/llms.txt
Use this file to discover all available pages before exploring further.
This example shows you how to accept deposits into your Busha account via fiat (temporary bank accounts) or crypto (deposit addresses).
Use Cases
- Customer funding their wallet
- Accepting payments from users
- Processing incoming transfers
- Topping up account balances
Fiat Deposit via Temporary Bank Account
Get a Quote for the Deposit
Create a quote to generate a temporary bank account: curl -X POST https://api.sandbox.busha.so/v1/quotes \
-H "Authorization: Bearer YOUR_SECRET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_currency": "NGN",
"target_currency": "NGN",
"source_amount": "50000",
"pay_in": {
"type": "temporary_bank_account"
}
}'
Response:{
"status": "success",
"message": "Created quote successfully",
"data": {
"id": "QUO_vxcF2svmjMbxDp4T5dcD8",
"profile_id": "BUS_tg6yujbZ1nMu5BLQkPGGO",
"source_currency": "NGN",
"target_currency": "NGN",
"source_amount": "50000",
"target_amount": "49500",
"rate": {
"rate": "1",
"side": "sell",
"type": "FIXED",
"source_currency": "NGN",
"target_currency": "NGN"
},
"fees": [
{
"amount": {
"amount": "500",
"currency": "NGN"
},
"name": "payment gateway fee",
"type": "FIXED"
}
],
"pay_in": {
"type": "temporary_bank_account"
},
"status": "pending",
"expires_at": "2025-02-21T10:46:56.232278869Z",
"created_at": "2025-02-21T10:16:54.40130914Z",
"updated_at": "2025-02-21T10:16:54.401309215Z"
}
}
Finalize the Transfer to Get Bank Account Details
Use the quote ID to generate the temporary bank account: curl -X POST https://api.sandbox.busha.so/v1/transfers \
-H "Authorization: Bearer YOUR_SECRET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"quote_id": "QUO_vxcF2svmjMbxDp4T5dcD8"
}'
Response:{
"status": "success",
"message": "Created transfer successfully",
"data": {
"id": "TRF_LJB2GQb55Cs98LbpqgRMx",
"profile_id": "BUS_tg6yujbZ1nMu5BLQkPGGO",
"quote_id": "QUO_vxcF2svmjMbxDp4T5dcD8",
"source_currency": "NGN",
"target_currency": "NGN",
"source_amount": "50000",
"target_amount": "49500",
"rate": {
"rate": "1",
"side": "sell",
"type": "FIXED",
"source_currency": "NGN",
"target_currency": "NGN"
},
"fees": [
{
"amount": {
"amount": "500",
"currency": "NGN"
},
"name": "payment gateway fee",
"type": "FIXED"
}
],
"pay_in": {
"expires_at": "2025-02-21T10:46:56.232278869Z",
"recipient_details": {
"account_name": "Payaza(Business 1 Business)",
"account_number": "7000384620",
"bank_name": "78 FINANCE COMPANY LIMITED",
"email": "support@busha.co"
},
"type": "temporary_bank_account"
},
"status": "pending",
"created_at": "2025-02-21T10:16:54.40130914Z",
"updated_at": "2025-02-21T10:16:54.401309215Z"
}
}
Display Bank Details to Customer
Show the temporary bank account details to your customer:Account Details:
- Bank Name: 78 FINANCE COMPANY LIMITED
- Account Number: 7000384620
- Account Name: Payaza(Business 1 Business)
- Amount to Send: 50,000 NGN
- Expires: 2025-02-21 at 10:46 AM
Customer transfers money to this account from their bank app. Monitor Deposit Status
Check the transfer status to confirm when funds are received: curl -X GET https://api.sandbox.busha.so/v1/transfers/TRF_LJB2GQb55Cs98LbpqgRMx \
-H "Authorization: Bearer YOUR_SECRET_TOKEN"
Possible Statuses:
pending - Awaiting customer’s bank transfer
processing - Funds received, being processed
funds_received - Successfully credited to your balance
cancelled - Transfer cancelled
Crypto Deposit via Address
Get a Quote for Crypto Deposit
Create a quote to generate a crypto deposit address: curl -X POST https://api.sandbox.busha.so/v1/quotes \
-H "Authorization: Bearer YOUR_SECRET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_currency": "USDT",
"target_currency": "USDT",
"source_amount": "100",
"pay_in": {
"type": "address",
"network": "TRX"
}
}'
Response:{
"status": "success",
"message": "Created quote successfully",
"data": {
"id": "QUO_GxYibGxTIN5c",
"profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
"source_currency": "USDT",
"target_currency": "USDT",
"source_amount": "100",
"target_amount": "100",
"rate": {
"product": "",
"rate": "1",
"side": "sell",
"type": "FIXED",
"source_currency": "USDT",
"target_currency": "USDT"
},
"fees": [],
"pay_in": {
"network": "TRX",
"type": "address"
},
"pay_out": {
"type": "balance"
},
"reference": "QUO_GxYibGxTIN5c",
"status": "pending",
"created_at": "2025-10-30T14:35:16.487382045Z",
"updated_at": "2025-10-30T14:35:16.487382045Z"
}
}
Create Transfer to Get Deposit Address
Use the quote ID to generate the crypto deposit address: curl -X POST https://api.sandbox.busha.so/v1/transfers \
-H "Authorization: Bearer YOUR_SECRET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"quote_id": "QUO_GxYibGxTIN5c"
}'
Response:{
"status": "success",
"message": "Created transfer successfully",
"data": {
"id": "TRF_abc123xyz",
"profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
"quote_id": "QUO_GxYibGxTIN5c",
"source_currency": "USDT",
"target_currency": "USDT",
"source_amount": "100",
"target_amount": "100",
"rate": {
"product": "",
"rate": "1",
"side": "sell",
"type": "FIXED",
"source_currency": "USDT",
"target_currency": "USDT"
},
"fees": [],
"pay_in": {
"type": "address",
"address": "TXYZabc123def456ghi789jkl",
"network": "TRX",
"memo": null
},
"status": "pending",
"created_at": "2025-10-30T14:35:20.123456Z",
"updated_at": "2025-10-30T14:35:20.123456Z"
}
}
Display Deposit Address to Customer
Show the crypto deposit details to your customer:Deposit Instructions:
- Network: TRX (Tron)
- Address: TXYZabc123def456ghi789jkl
- Asset: USDT
- Amount: 100 USDT (minimum)
Customer sends USDT to this address from their wallet. Monitor Deposit Status
Check the transfer status to confirm when crypto is received: curl -X GET https://api.sandbox.busha.so/v1/transfers/TRF_abc123xyz \
-H "Authorization: Bearer YOUR_SECRET_TOKEN"
Possible Statuses:
pending - Awaiting blockchain confirmation
processing - Transaction confirmed, processing deposit
funds_received - Crypto credited to balance
cancelled - Deposit cancelled
Deposit for a Customer
To process deposits on behalf of a customer, include the customer’s profile ID in the header:
curl -X POST https://api.sandbox.busha.so/v1/quotes \
-H "X-BU-PROFILE-ID: CUSTOMER_PROFILE_ID" \
-H "Authorization: Bearer YOUR_SECRET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_currency": "NGN",
"target_currency": "NGN",
"source_amount": "50000",
"pay_in": {
"type": "temporary_bank_account"
}
}'
The deposit will be credited to the customer’s account instead of your business account.
Supported Networks for Crypto Deposits
- USDT: TRX (Tron), ERC20 (Ethereum), BEP20 (BSC), POLYGON
- BTC: BTC (Bitcoin)
- ETH: ETH (Ethereum)
- Other cryptos: Check supported networks via the Pairs API
Important Notes
Fiat Deposits
- Temporary bank accounts expire after 30 minutes
- Always check the
expires_at field
- If expired, create a new quote and transfer
- Fees are deducted from the deposited amount
Crypto Deposits
- Always specify the correct network
- Deposits require blockchain confirmations
- Minimum deposit amounts apply per asset
- Wrong network = lost funds (unrecoverable)
Learn More