🔗 CheckoutPayment Links

Create a new payment link

Create a new payment link for invoices, subscriptions, or custom amounts

POST/payment-links

Create a new payment link for invoices, subscriptions, or custom amounts


Related endpoints

  • GET /payment-links — List payment links
  • GET /payment-links/{id} — Get payment link by ID
  • POST /payment-links/{id}/expire — Expire a payment link
  • PATCH /payment-links/{id}/status — Update payment link status
  • POST /payment-links/{id}/deactivate — Deactivate a payment link
  • POST /payment-links/{id}/activate — Activate a payment link
  • POST /payment-links/{id}/archive — Archive a payment link

Common errors

  • 400 invalid_request — malformed payload or failed validation.
  • 401 authentication_error — missing, invalid, expired, or revoked credential. Codes: authentication_failed, invalid_api_key, expired_api_key, api_key_revoked, session_invalid, merchant_required. Carries a WWW-Authenticate: Bearer challenge.
  • 409 conflict — Idempotency-Key collision with a different body, or a concurrent state-transition conflict.

Idempotency

Pass an Idempotency-Key header (UUID v4 recommended) to make retries safe. Keys are valid for 24 hours; see the idempotency guide.

x-api-key<token>

Your RevKeen merchant API key. Create and manage keys in Dashboard → Settings → Developer. Use rk_sandbox_* for staging/test and rk_live_* for production. The same key may be sent as Authorization: Bearer <key> if that suits your HTTP client better. A missing, invalid, expired, or revoked key returns 401 with a WWW-Authenticate: Bearer challenge; a valid key without the required scope returns 403.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

Stuck on an error response? Ask the RevKeen assistant to explain it.
curl -X POST "https://api.revkeen.com/v2/payment-links" \
  -H "x-api-key: $REVKEEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product_ids": [
      "11111111-1111-4111-8111-111111111111"
    ],
    "line_items": [
      {
        "price": "11111111-1111-4111-8111-111111111111",
        "price_data": {
          "currency": "USD",
          "unit_amount": 1000,
          "product_data": {
            "name": "example",
            "description": "Example request from API docs",
            "images": [
              "https://example.com/success"
            ],
            "metadata": {
              "key": "example"
            }
          },
          "product": "11111111-1111-4111-8111-111111111111"
        },
        "quantity": 1,
        "merchant_reference": "example-reference"
      }
    ],
    "name": "example",
    "slug": "example"
  }'

Synthetic documentation data, validated against the response schema; not a live API result.

{  "id": "00000000-0000-4000-8000-000000000001",  "merchant_id": "00000000-0000-4000-8000-000000000001",  "name": "Example customer",  "slug": "string",  "mode": "invoice",  "status": "active",  "url": "https://example.com/webhooks/revkeen",  "amount_minor": 0,  "currency": "str",  "invoice_id": "f4c4edb8-11e0-4b33-bcc1-482dc59ebb32",  "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627",  "product_ids": [    "00000000-0000-4000-8000-000000000001"  ],  "line_items": [    {      "product_id": "00000000-0000-4000-8000-000000000001",      "price_id": "5eff5d89-979e-4e4f-aa76-6cbbbf11362c",      "quantity": 1,      "merchant_reference": "string",      "is_adhoc": true,      "product_details": {        "name": "Example customer",        "description": "string",        "unit_amount": 0,        "currency": "string",        "recurring": {          "interval": "day",          "interval_count": 1        }      }    }  ],  "success_url": "http://example.com",  "cancel_url": "http://example.com",  "redirect_url": "http://example.com",  "collect_shipping": false,  "allow_promotion_codes": true,  "tax_behavior": "exclusive",  "metadata": {    "property1": null,    "property2": null  },  "expires_at": "2019-08-24T14:15:22Z",  "selection_mode": "bundle",  "default_product_id": "c121a2c4-c1b3-42a7-a0b4-a4d664ac7263",  "highlighted_product_id": "284a4c39-e955-434f-9f8c-f2d2b65f458a",  "created_at": "2026-09-01T12:00:00Z",  "updated_at": "2026-09-01T12:00:00Z"}

Put this endpoint to work