SellAuth

Reseller Public A P I

Endpoints for approved resellers of a shop. Authenticate with your <b>reseller API key</b> — generated on the shop's customer panel under Reseller — sent as a Bearer token. Seller dashboard API keys will not work here.

Dynamic Delivery Receiver

Fulfils a dynamic delivery request from your own shop out of this shop's stock, charged to your reseller balance. You normally never call this yourself: paste the per-variant delivery URL from your reseller panel into your own SellAuth shop's Dynamic URL field and it is called automatically on each sale. Requests must be signed: X-Signature = HMAC-SHA256 of the raw request body using the webhook secret you saved on the reseller panel, plus a current unix X-Timestamp (max 5 minutes old) and an Idempotency-Key. The JSON body is the standard SellAuth dynamic delivery payload; quantity is read from item.quantity. Responses are plain text: a 2xx body contains the deliverables (newline-separated), a 4xx body is the failure reason shown on your shop's checkout.

POST
/v1/reseller/dynamic/{token}

Path Parameters

tokenRequiredstring

Your dynamic delivery token (embedded in the URLs from your reseller panel).

Query Parameters

product_idRequiredinteger

Product to deliver (from the panel URL).

variant_idRequiredinteger

Variant to deliver (from the panel URL).

Header Parameters

X-Signaturestring
X-Timestampstring
Idempotency-Keystring
curl -X POST "https://api.sellauth.com/v1/reseller/dynamic/AbCdEf123" \
  -H "X-Signature: hmac-sha256-hex-of-raw-body" \
  -H "X-Timestamp: 1786200000" \
  -H "Idempotency-Key: sender-invoice-item-key"

Delivered — body contains the deliverables

"EXAMPLE-KEY-1"

List Products

The reseller catalog: enrolled products with list price, your price and stock per variant, plus your dynamic delivery URL for each variant.

GET
/v1/reseller/products

Authorization

AuthorizationRequiredBearer <token>

You can retrieve your API key by visiting your dashboard and clicking Account > API.

In: header

Query Parameters

pageinteger

Page number.

perPageinteger

Products per page, 1-100.

curl -X GET "https://api.sellauth.com/v1/reseller/products" \
  -H "Authorization: Bearer <token>"

{
  "current_page": 1,
  "data": [
    {
      "id": 123,
      "name": "Example Product",
      "currency": "USD",
      "variants": [
        {
          "id": 456,
          "name": "1 Month",
          "price": 10,
          "reseller_price": 9,
          "discount_percentage": 10,
          "stock": 25,
          "deliverables_type": "serials",
          "dynamic_url": "https://api.sellauth.com/v1/reseller/dynamic/{your_token}?product_id=123&variant_id=456"
        }
      ]
    }
  ],
  "from": 1,
  "last_page": 1,
  "per_page": 20,
  "to": 1,
  "total": 1
}

Get Balance

Your reseller balance, tier and lifetime stats. Top up your balance on the shop's customer panel (Balance page).

GET
/v1/reseller/balance

Authorization

AuthorizationRequiredBearer <token>

You can retrieve your API key by visiting your dashboard and clicking Account > API.

In: header

curl -X GET "https://api.sellauth.com/v1/reseller/balance" \
  -H "Authorization: Bearer <token>"

{
  "balance": 100.5,
  "currency": "USD",
  "tier": {
    "name": "Gold",
    "discount_percentage": 10,
    "image_url": null
  },
  "total_spent_usd": 250,
  "total_orders": 12,
  "next_tier": {
    "name": "Platinum",
    "discount_percentage": 15,
    "min_spent_usd": "500.00",
    "min_sales_count": 50,
    "image_url": null
  }
}

List Invoices

Your reseller invoices, newest first.

GET
/v1/reseller/invoices

Authorization

AuthorizationRequiredBearer <token>

You can retrieve your API key by visiting your dashboard and clicking Account > API.

In: header

Request Body

application/jsonOptional
perPageinteger

Must be at least 1. Must not be greater than 100.

Query Parameters

pageinteger

Page number.

perPageinteger

Invoices per page, 1-100.

curl -X GET "https://api.sellauth.com/v1/reseller/invoices" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "perPage": 15
  }'

{
  "current_page": 1,
  "data": [
    {
      "id": 100,
      "status": "completed",
      "price_usd": "9.00",
      "reseller_source": 1,
      "completed_at": "2026-07-23T12:00:01.000000Z",
      "created_at": "2026-07-23T12:00:00.000000Z"
    }
  ],
  "from": 1,
  "last_page": 1,
  "per_page": 20,
  "to": 1,
  "total": 1
}

Create Invoice

Creates an invoice charged to your reseller balance and delivered from stock. Serial and dynamic deliverables are returned synchronously; check pending items via Get Invoice. Optionally send an Idempotency-Key header (unique per invoice, reused on retries): if a request times out, retrying with the same key returns the original invoice instead of charging you twice.

POST
/v1/reseller/invoices

Authorization

AuthorizationRequiredBearer <token>

You can retrieve your API key by visiting your dashboard and clicking Account > API.

In: header

Request Body

application/jsonRequired
itemsRequiredarray<object>

The items to order.

Header Parameters

Idempotency-Keystring
curl -X POST "https://api.sellauth.com/v1/reseller/invoices" \
  -H "Idempotency-Key: invoice-58f3a2" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "product_id": 123,
        "variant_id": 456,
        "quantity": 1
      }
    ]
  }'

{
  "id": 100,
  "unique_id": "9f2b3c4d5e6f7",
  "status": "completed",
  "total_usd": 9,
  "source": "api",
  "created_at": "2026-07-23T12:00:00.000000Z",
  "completed_at": "2026-07-23T12:00:01.000000Z",
  "items": [
    {
      "product_id": 123,
      "product_name": "Example Product",
      "variant_id": 456,
      "variant_name": "1 Month",
      "quantity": 1,
      "status": "completed",
      "total_price_usd": 9,
      "reseller_discount": 1,
      "delivered": [
        "EXAMPLE-KEY-1"
      ]
    }
  ]
}

Get Invoice

A reseller invoice with its delivery (keys / deliverables per item). Accepts either the numeric invoice ID or the unique_id.

GET
/v1/reseller/invoices/{id}

Authorization

AuthorizationRequiredBearer <token>

You can retrieve your API key by visiting your dashboard and clicking Account > API.

In: header

Path Parameters

idRequiredstring

The invoice ID (numeric) or unique_id.

curl -X GET "https://api.sellauth.com/v1/reseller/invoices/{id}" \
  -H "Authorization: Bearer <token>"

{
  "id": 100,
  "unique_id": "9f2b3c4d5e6f7",
  "status": "completed",
  "total_usd": 9,
  "source": "api",
  "created_at": "2026-07-23T12:00:00.000000Z",
  "completed_at": "2026-07-23T12:00:01.000000Z",
  "items": [
    {
      "product_id": 123,
      "product_name": "Example Product",
      "variant_id": 456,
      "variant_name": "1 Month",
      "quantity": 1,
      "status": "completed",
      "total_price_usd": 9,
      "reseller_discount": 1,
      "delivered": [
        "EXAMPLE-KEY-1"
      ]
    }
  ]
}