> ## 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.

# Payment Links

> Create payment links to accept crypto payments from customers.

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

Reusable payment links can be used multiple times by different customers. They're ideal for ongoing sales, subscriptions, or recurring donations.

### Create a Fixed Amount Reusable Link

Create a payment link for a specific amount that can be used multiple times:

```bash theme={null}
curl -X POST https://api.sandbox.busha.so/v1/payments/links \
  -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:**

```json theme={null}
{
  "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",
    "link": "YgFdIGWCWY3G"
  }
}
```

### Create a Variable Amount Reusable Link

Create a payment link where customers choose their own amount:

```bash theme={null}
curl -X POST https://api.sandbox.busha.so/v1/payments/links \
  -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",
    "quote_currency": "NGN",
    "target_currency": "USDT",
    "require_extra_info": [
      {
        "field_name": "email",
        "required": true
      }
    ],
    "dry_run": false
  }'
```

**Response:**

```json theme={null}
{
  "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",
    "quote_currency": "NGN",
    "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",
    "link": "AAuHvoU6NkKs"
  }
}
```

## One-Time Payment Links

One-time payment links are designed for single-use scenarios like invoices or unique transactions. Once paid, the link becomes inactive.

### Create a One-Time Fixed Amount Link

```bash theme={null}
curl -X POST https://api.sandbox.busha.so/v1/payments/links \
  -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:**

```json theme={null}
{
  "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",
    "link": "XyZ123AbC"
  }
}
```

## Retrieve a Payment Link

Get details of an existing payment link:

```bash theme={null}
curl -X GET https://api.sandbox.busha.so/v1/payments/links/YgFdIGWCWY3G \
  -H "Authorization: Bearer YOUR_SECRET_KEY"
```

**Response:**

```json theme={null}
{
  "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",
    "link": "YgFdIGWCWY3G",
    "pub_key": "pub_iSQAgqGFoVZOaVjYM8ZeW"
  }
}
```

## Update a Payment Link

Modify an existing payment link:

```bash theme={null}
curl -X PATCH https://api.sandbox.busha.so/v1/payments/links/YgFdIGWCWY3G \
  -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:**

```json theme={null}
{
  "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",
    "link": "YgFdIGWCWY3G"
  }
}
```

## Learn More

* [Payment Requests Guide](/guides/payment-requests/create-first-payment) - Create payment requests from links
* [Accepting Stablecoins Guide](/guides/accepting-stablecoin-payments/payment-links) - How to accept USDT and other stablecoins with payment links
* [Accepting Stablecoin Payments with the Widget](/guides/accepting-stablecoin-payments/payment-widget) - How to add stablecoin checkout to your website or app
* [Webhooks Setup](/guides/webhooks/setup) - Monitor payment link transactions
* [API Reference](/api-reference) - Complete payment links API documentation
