Skip to main content
This example shows you how to add custom markup fees on top of Busha’s infrastructure costs.

Use Cases

  • Charging service fees on transactions
  • Adding profit margins to conversions

How Markups Work

To add your own fees, use a two-step approach:
  1. Customer Deposit: Create a quote for the total amount (base + markup) with a pay_in object
  2. Actual Conversion: After funds are received, create a second quote for only the base amount with a pay_out object
The difference between what the customer pays and what you spend on the conversion remains in your balance as profit.

Example: Markup on USDT Purchase

A customer wants to buy USDT worth 5,000 NGN. You want to charge a 10% markup (500 NGN profit).
1

Create Quote for Customer Deposit

Charge the customer 5,500 NGN (5,000 NGN + 500 NGN markup):
    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": "5500",
        "pay_in": {
          "type": "temporary_bank_account"
        }
      }'
Response:
{
  "status": "success",
  "message": "Created quote successfully",
  "data": {
    "id": "QUO_depositWith5500",
    "source_currency": "NGN",
    "target_currency": "NGN",
    "source_amount": "5500",
    "target_amount": "5500",
    "pay_in": {
      "type": "temporary_bank_account"
    },
    "status": "pending"
  }
}
2

Finalize Deposit Transfer

Generate the temporary bank account for customer deposit:
    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_depositWith5500"
      }'
Response:
{
  "status": "success",
  "message": "Created transfer successfully",
  "data": {
    "id": "TRF_customerDeposit",
    "quote_id": "QUO_depositWith5500",
    "source_amount": "5500",
    "pay_in": {
      "recipient_details": {
        "account_name": "Payaza(Business 1 Business)",
        "account_number": "7000384620",
        "bank_name": "78 FINANCE COMPANY LIMITED"
      },
      "type": "temporary_bank_account"
    },
    "status": "pending"
  }
}
Customer deposits 5,500 NGN to this bank account.
3

Monitor Transfer Status

If webhooks is setup, you’ll receive a notification when the deposit is complete. The customer’s funds are now in your balance and ready for conversion.
    {
      "event": "transfer.funds_received",
      "data": {
        "transfer_id": "TRF_customerDeposit",
        "source_amount": "5500",
        "source_currency": "NGN",
        "status": "funds_received"
      }
    }
Your balance now has 5,500 NGN.
4

Create Quote for Actual Conversion

Convert only 5,000 NGN to USDT (keeping 500 NGN as profit):
    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": "USDT",
        "source_amount": "5000",
        "pay_out": {
          "type": "balance"
        }
      }'
Response:
{
  "status": "success",
  "message": "Created quote successfully",
  "data": {
    "id": "QUO_actualConversion",
    "source_currency": "NGN",
    "target_currency": "USDT",
    "source_amount": "5000",
    "target_amount": "3.12",
    "rate": {
      "rate": "1602.56",
      "side": "buy",
      "source_currency": "NGN",
      "target_currency": "USDT"
    },
    "pay_out": {
      "type": "balance"
    }
  }
}
5

Execute Conversion Transfer

Finalize the conversion:
    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_actualConversion"
      }'
Result:
  • Customer receives 3.12 USDT
  • You spent 5,000 NGN from your balance
  • 500 NGN remains in your balance as profit

Example: Sell USDT for NGN with Markup

A customer wants to sell 50 USDT for NGN. You want to charge a 5% markup.
1

Get a Quote

Create a quote to see how much NGN the customer will receive:
    curl -X POST https://api.sandbox.busha.so/v1/quotes \
      -H "Authorization: Bearer YOUR_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "source_currency": "USDT",
        "target_currency": "NGN",
        "source_amount": "50"
      }'
Response:
{
  "status": "success",
  "message": "Created quote successfully",
  "data": {
    "id": "QUO_8xTKmNpR2vWq",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "source_currency": "USDT",
    "target_currency": "NGN",
    "source_amount": "50",
    "target_amount": "74487",
    "rate": {
      "product": "USDTNGN",
      "rate": "1489.74",
      "side": "sell",
      "type": "FIXED",
      "source_currency": "USDT",
      "target_currency": "NGN"
    },
    "fees": [],
    "reference": "QUO_8xTKmNpR2vWq",
    "status": "pending",
    "expires_at": "2025-11-27T14:43:26.906019648Z",
    "created_at": "2025-11-27T14:13:26.905993939Z"
  }
}
Calculate your markup:
  • Base amount: ₦74,487
  • 5% markup: ₦3,724
  • Customer receives: ₦70,763 (₦74,487 - ₦3,724)
  • You keep: ₦3,724 as profit
2

Execute the Sale

Use the quote ID to finalize the conversion:
    curl -X POST https://api.sandbox.busha.so/v1/transfers \
      -H "Authorization: Bearer YOUR_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "quote_id": "QUO_8xTKmNpR2vWq"
      }'
Response:
{
  "status": "success",
  "message": "Created transfer successfully",
  "data": {
    "id": "TRF_2mKpVxNzQwYr",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "quote_id": "QUO_8xTKmNpR2vWq",
    "description": "Sold USDT",
    "sub_description": "For NGN",
    "source_currency": "USDT",
    "target_currency": "NGN",
    "source_amount": "50",
    "target_amount": "74487",
    "trade": "sell",
    "rate": {
      "product": "USDTNGN",
      "rate": "1489.74",
      "side": "sell",
      "type": "FIXED"
    },
    "fees": [],
    "status": "pending",
    "created_at": "2025-11-27T14:14:06.134616492Z"
  }
}
3

Apply Your Markup

Your transaction breakdown:
  • 50 USDT converted to ₦74,487 (from Busha)
  • Customer paid: ₦70,763 (after your 5% markup)
  • Your profit: ₦3,724
You would then send ₦70,763 to the customer via bank transfer or their preferred payout method, keeping ₦3,724 as your service fee.

Learn More