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 integrate the Busha Off-Ramp widget to let users sell cryptocurrency and receive fiat directly in your application.
Use Cases
- Wallet app letting users cash out crypto
- Marketplace vendor payouts
- P2P trading platform
- Gaming platform withdrawals to local currency
Basic Integration
The quickest way to integrate the Off-Ramp widget is with a button that opens the widget in a new window:
<button
onclick="window.open('https://sandbox.sell.busha.io/?publicKey=YOUR_PUBLIC_KEY&side=sell&redirectUrl=https://your-app.com/handle-deposit', '_blank')"
>
Sell Crypto with Busha
</button>
Iframe Integration
For a more embedded experience, use an iframe:
<iframe
src="https://sandbox.sell.busha.io/?publicKey=YOUR_PUBLIC_KEY&side=sell&redirectUrl=https://your-app.com/handle-deposit"
width="100%"
height="700px"
style="border: 1px solid #e5e7eb; border-radius: 8px;"
title="Busha Off-Ramp Widget"
></iframe>
Pre-filled Integration Examples
Nigeria (NGN)
Kenya (KES)
Sell 0.005 ETH for NGN
<button
onclick="window.open('https://sandbox.sell.busha.io/?publicKey=YOUR_PUBLIC_KEY&side=sell&cryptoAsset=ETH&network=ETH&fiatCurrency=NGN&cryptoAmount=0.005&redirectUrl=https://your-app.com/handle-deposit', '_blank')"
>
Sell ETH for Naira
</button>
Sell USDT for NGN Bank Payout
<button
onclick="window.open('https://sandbox.sell.busha.io/?publicKey=YOUR_PUBLIC_KEY&side=sell&cryptoAsset=USDT&network=TRX&fiatCurrency=NGN&cryptoAmount=100&redirectUrl=https://your-app.com/handle-deposit', '_blank')"
>
Cash Out USDT to Bank
</button>
Sell Bitcoin for KES
<button
onclick="window.open('https://sandbox.sell.busha.io/?publicKey=YOUR_PUBLIC_KEY&side=sell&cryptoAsset=BTC&network=BTC&fiatCurrency=KES&cryptoAmount=0.001&redirectUrl=https://your-app.com/handle-deposit', '_blank')"
>
Sell Bitcoin for KES
</button>
Sell USDT for M-Pesa Payout
<button
onclick="window.open('https://sandbox.sell.busha.io/?publicKey=YOUR_PUBLIC_KEY&side=sell&cryptoAsset=USDT&network=TRX&fiatCurrency=KES&cryptoAmount=50&redirectUrl=https://your-app.com/handle-deposit', '_blank')"
>
Cash Out to M-Pesa
</button>
Configuration Parameters
| Parameter | Required | Description |
|---|
| publicKey | Yes | Your Busha Public API Key |
| side | Yes | Must be “sell” for off-ramp |
| redirectUrl | Yes | URL to redirect after transaction setup |
| cryptoAsset | No | Cryptocurrency to sell (e.g., BTC, ETH, USDT) |
| network | No | Blockchain network (e.g., BTC, ETH, POLYGON) |
| fiatCurrency | No | Target fiat currency (NGN for Nigeria, KES for Kenya) |
| cryptoAmount | No | Amount of crypto to sell |
| fiatAmount | No | Target fiat amount (ignores cryptoAmount if set) |
React Component Examples
Nigeria (NGN)
Kenya (KES)
import React from "react";
function SellEthereumButton() {
const openOffRamp = () => {
const params = new URLSearchParams({
publicKey: "YOUR_PUBLIC_KEY",
side: "sell",
cryptoAsset: "ETH",
network: "ETH",
fiatCurrency: "NGN",
cryptoAmount: "0.005",
redirectUrl: "https://your-app.com/handle-deposit",
});
window.open(
`https://sandbox.sell.busha.io/?${params.toString()}`,
"_blank"
);
};
return <button onClick={openOffRamp}>Sell Ethereum for Naira</button>;
}
export default SellEthereumButton;
import React from "react";
function SellBitcoinButton() {
const openOffRamp = () => {
const params = new URLSearchParams({
publicKey: "YOUR_PUBLIC_KEY",
side: "sell",
cryptoAsset: "BTC",
network: "BTC",
fiatCurrency: "KES",
cryptoAmount: "0.001",
redirectUrl: "https://your-app.com/handle-deposit",
});
window.open(
`https://sandbox.sell.busha.io/?${params.toString()}`,
"_blank"
);
};
return <button onClick={openOffRamp}>Sell Bitcoin for KES</button>;
}
export default SellBitcoinButton;
Complete Integration Flow
User Initiates Sell
User clicks “Sell Crypto” button in your app
Redirect to Off-Ramp Widget
Your app opens the Busha Off-Ramp widget with pre-filled parameters
User Configures Payout
User logs in to Busha, completes KYC if needed, and selects their payout
method: - Nigeria: Bank account - Kenya: M-Pesa or bank account
Redirect Back with Deposit Instructions
Busha redirects user back to your app with deposit address and amount
User Confirms and Sends Crypto
Your app displays the deposit instructions. User confirms and sends crypto
to the provided address
Busha Processes Payout
Once crypto is received, Busha processes the payout to the user’s selected
method
Learn More