Payment links

Payment links are reusable hosted payment pages you can share with any number of buyers, unlike a checkout session, which is single-use and tied to one buyer. A link supports three modes: standard for fixed line items or subscription signup via plan_id, donation for variable buyer-chosen amounts, and event for ticket-tier sales. Each completed checkout through a link creates its own order behind the scenes, keeping payment links inside the orders-first model.

Links stay active until you deactivate them, they expire, or they hit an optional completion limit. Line items can come from your catalog (variants or bundles) or be defined ad hoc, with optional quantity and amount adjustment controls, custom fields, tipping, and promotion support.

Start with the Payment links guide. For choosing between hosted surfaces, see Payment links vs checkout sessions vs invoices.

The link's version covers its template, image, and delivery selection. Set delivery_method_ids on create or replace the array on PATCH with expected_version. PATCH requires that version when line_items, custom_fields, or delivery_method_ids is present. Omit an array to leave it unchanged; send [] to clear delivery methods or custom fields. Null and duplicate delivery method IDs are invalid. A stale save returns PAYMENT_LINK_CHANGED; retrieve the link before retrying. Use promotion_config.codes_enabled to control promotion-code entry.

The Payment link object#

Every field on a payment link, as returned by retrieve and carried by the endpoints below.

Attributes
completed_countintegerrequired
created_atstring

RFC3339 timestamp.

custom_fieldsarray of object
custom_textobject
customer_collectionobject
delivery_method_idsarray of string
descriptionstring
donation_max_amount_moneyobject

Monetary amount represented as integer minor units plus an ISO 4217 currency code.

donation_min_amount_moneyobject

Monetary amount represented as integer minor units plus an ISO 4217 currency code.

donation_suggested_amount_money_optionsarray of object
event_configobject
expirationobject
external_reference_idstring

Caller-owned identifier for this resource in an external system.

imageobject
inactive_messagestring
inventory_routing_sourceone of
legalobject
line_itemsarray of one of
max_completionsinteger
merchant_idstring
metadatamap of string
namestringrequired
payment_link_idstringrequired
payment_link_typeenum
standarddonationevent
paymentsobject
plan_idstring
promotion_configobject
redirectsobject
statusenumrequired
activeinactive
subscription_planobject or null
taxobject
themeobject
tipobject
total_quantity_soldinteger

Whole-number quantity; fractional quantities are not supported.

updated_atstring

RFC3339 timestamp.

urlstringrequired
versionintegerrequired
JSON
{
  "completed_count": 3,
  "created_at": "2026-03-17T14:30:00Z",
  "custom_fields": [
    {
      "custom_field_type": "dropdown",
      "key": "meal_preference",
      "label": "Meal preference",
      "options": [
        "Vegetarian",
        "Chicken",
        "Fish"
      ],
      "payment_link_custom_field_id": "plcf_123",
      "required": true
    }
  ],
  "description": "Event checkout",
  "event_config": {
    "event_at": "2026-05-12T19:00:00Z",
    "max_total_quantity": 500,
    "send_ticket_emails": true,
    "ticket_prefix": "GAL",
    "venue": "Pier 57, New York"
  },
  "image": {
    "alt": "Spring gala",
    "height": 900,
    "url": "https://images.withflintpay.com/ia_spring_gala/original",
    "width": 1600
  },
  "line_items": [
    {
      "key": "general-admission",
      "name": "General Admission",
      "payment_link_line_item_id": "plli_123",
      "quantity": 1,
      "unit_price_money": {
        "amount": 2500,
        "currency": "USD"
      }
    }
  ],
  "merchant_id": "mer_123",
  "metadata": {
    "campaign": "spring-gala"
  },
  "name": "Spring Gala",
  "payment_link_id": "pl_123",
  "payment_link_type": "event",
  "payments": {
    "enabled_payment_options": [
      "card",
      "apple_pay",
      "google_pay"
    ]
  },
  "status": "active",
  "total_quantity_sold": 42,
  "updated_at": "2026-03-17T14:30:00Z",
  "url": "https://checkout.withflintpay.com/pay/pl_123",
  "version": 1
}

Get public payment link#

GET/v1/payment-links/{payment_link_id}/publicNo API key required

Returns the sanitized buyer-facing payment-link snapshot and a private resolution context for this browser operation.

Path parameters
payment_link_idstringrequired

Flint payment link ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

PAYMENT_LINK_FULFILLMENT_UNAVAILABLERATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl https://api.withflintpay.com/v1/payment-links/pl_123/public \
  -H "Flint-Version: 2026-09-07" \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "merchant_logo": {
      "alt": "Merchant logo",
      "height": 512,
      "url": "https://images.withflintpay.com/ia_merchant_logo/original",
      "width": 512
    },
    "merchant_name": "Cedar & Stone Coffee",
    "payment_link": {
      "completed_count": 3,
      "custom_fields": [
        {
          "custom_field_type": "dropdown",
          "key": "roast_preference",
          "label": "Roast preference",
          "options": [
            "Light",
            "Medium",
            "Dark"
          ],
          "payment_link_custom_field_id": "plcf_123",
          "required": true
        }
      ],
      "description": "Monthly coffee membership",
      "image": {
        "alt": "Monthly roast box",
        "height": 800,
        "url": "https://images.withflintpay.com/ia_roast_box/original",
        "width": 1200
      },
      "name": "Roaster's club membership",
      "payment_link_id": "pl_123",
      "payment_link_type": "standard",
      "payments": {
        "enabled_payment_options": [
          "card",
          "apple_pay",
          "google_pay"
        ]
      },
      "plan_id": "plan_01JZEXAMPLEPLAN1234567890",
      "status": "active",
      "version": 1
    },
    "resolution_context": "plrc_v1.example_signed_resolution_context",
    "resolution_context_expires_at": "2026-05-13T19:00:00Z",
    "resolution_context_start_deadline_at": "2026-05-13T18:58:00Z",
    "subscription_preview": {
      "billing_interval": "monthly",
      "billing_interval_count": 1,
      "contract_term_months": 12,
      "early_termination_fee_money": {
        "amount": 5000,
        "currency": "USD"
      },
      "plan_image": {
        "alt": "Monthly roast box",
        "height": 800,
        "url": "https://images.withflintpay.com/ia_roast_box/original",
        "width": 1200
      },
      "plan_name": "Roaster's club",
      "recurring_total_money": {
        "amount": 2400,
        "currency": "USD"
      },
      "setup_fee_money": {
        "amount": 1000,
        "currency": "USD"
      },
      "trial_period_days": 14
    }
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}
Rate this doc