Skip to main content
This example shows you how to create and manage payment links for accepting crypto payments.

Use Cases

  • E-commerce product checkout
  • Invoice payments
  • Donation campaigns
  • Subscription billing
  • Service payments
Reusable payment links can be used multiple times by different customers. They’re ideal for ongoing sales, subscriptions, or recurring donations. Create a payment link for a specific amount that can be used multiple times:
curl -X POST https://api.sandbox.busha.so/v1/payments/links \
  -H "X-BU-PROFILE-ID: YOUR_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fixed": true,
    "one_time": false,
    "name": "Product Payment Example",
    "title": "Buy Premium Package",
    "description": "Payment for premium subscription",
    "quote_amount": "10000",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "require_extra_info": [
      {
        "field_name": "email",
        "required": true
      }
    ],
    "dry_run": false
  }'
Response:
{
  "status": "success",
  "message": "Payment link created successfully",
  "data": {
    "id": "YgFdIGWCWY3G",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "fixed": true,
    "one_time": false,
    "name": "Product Payment Example",
    "title": "Buy Premium Package",
    "description": "Payment for premium subscription",
    "quote_amount": "10000",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "meta": {
      "require_extra_info": [
        {
          "field_name": "email",
          "required": true
        }
      ]
    },
    "status": "active",
    "created_at": "2025-10-30T11:29:42.842496434Z",
    "updated_at": "2025-10-30T11:29:42.842496434Z"
  }
}
Create a payment link where customers choose their own amount:
curl -X POST https://api.sandbox.busha.so/v1/payments/links \
  -H "X-BU-PROFILE-ID: YOUR_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fixed": false,
    "one_time": false,
    "name": "Donation Link",
    "title": "Support Our Project",
    "description": "Donate any amount you wish",
    "target_currency": "USDT",
    "require_extra_info": [
      {
        "field_name": "email",
        "required": true
      }
    ],
    "dry_run": false
  }'
Response:
{
  "status": "success",
  "message": "Payment link created successfully",
  "data": {
    "id": "AAuHvoU6NkKs",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "fixed": false,
    "one_time": false,
    "name": "Donation Link",
    "title": "Support Our Project",
    "description": "Donate any amount you wish",
    "target_currency": "USDT",
    "meta": {
      "require_extra_info": [
        {
          "field_name": "email",
          "required": true
        }
      ]
    },
    "status": "active",
    "created_at": "2025-10-30T11:30:29.223574773Z",
    "updated_at": "2025-10-30T11:30:29.223574773Z"
  }
}
One-time payment links are designed for single-use scenarios like invoices or unique transactions. Once paid, the link becomes inactive.
curl -X POST https://api.sandbox.busha.so/v1/payments/links \
  -H "X-BU-PROFILE-ID: YOUR_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fixed": true,
    "one_time": true,
    "name": "Invoice #12345",
    "title": "Pay Invoice",
    "description": "One-time invoice payment",
    "quote_amount": "50000",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "require_extra_info": [
      {
        "field_name": "email",
        "required": true
      }
    ]
  }'
Response:
{
  "status": "success",
  "message": "Payment link created successfully",
  "data": {
    "id": "XyZ123AbC",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "fixed": true,
    "one_time": true,
    "name": "Invoice #12345",
    "title": "Pay Invoice",
    "description": "One-time invoice payment",
    "quote_amount": "50000",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "meta": {
      "require_extra_info": [
        {
          "field_name": "email",
          "required": true
        }
      ]
    },
    "status": "active",
    "created_at": "2025-10-30T11:35:42.842496434Z",
    "updated_at": "2025-10-30T11:35:42.842496434Z"
  }
}
Get details of an existing payment link:
curl -X GET https://api.sandbox.busha.so/v1/payments/links/YgFdIGWCWY3G \
  -H "X-BU-PROFILE-ID: YOUR_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_KEY"
Response:
{
  "status": "success",
  "message": "Payment link retrieved successfully",
  "data": {
    "id": "YgFdIGWCWY3G",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "fixed": true,
    "one_time": false,
    "name": "Product Payment Example",
    "title": "Buy Premium Package",
    "description": "Payment for premium subscription",
    "quote_amount": "10000",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "meta": {
      "require_extra_info": [
        {
          "field_name": "email",
          "required": true
        }
      ]
    },
    "status": "active",
    "created_at": "2025-10-30T11:29:42.842496Z",
    "updated_at": "2025-10-30T11:29:42.842496Z",
    "pub_key": "pub_iSQAgqGFoVZOaVjYM8ZeW"
  }
}
Modify an existing payment link:
curl -X PATCH https://api.sandbox.busha.so/v1/payments/links/YgFdIGWCWY3G \
  -H "X-BU-PROFILE-ID: YOUR_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Product Payment",
    "description": "Updated: Premium subscription - now 15,000 NGN",
    "quote_amount": "15000"
  }'
Response:
{
  "status": "success",
  "message": "Payment link updated successfully",
  "data": {
    "id": "YgFdIGWCWY3G",
    "profile_id": "BUS_9rDAqqREdmMQcQj3zsRlL",
    "fixed": true,
    "one_time": false,
    "name": "Updated Product Payment",
    "title": "Buy Premium Package",
    "description": "Updated: Premium subscription - now 15,000 NGN",
    "quote_amount": "15000",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "meta": {
      "require_extra_info": [
        {
          "field_name": "email",
          "required": true
        }
      ]
    },
    "status": "active",
    "created_at": "2025-10-30T11:29:42.842496Z",
    "updated_at": "2025-10-30T11:33:05.58691Z"
  }
}

Learn More