Payment links
A payment link is something to pay for: a title and an amount in a currency. Customers pay it at /pay/<id> on your server, or in a pop-up on your own site with @kite-01/js.

Fields
Section titled “Fields”| Field | Description |
|---|---|
title |
Shown at checkout. Up to 200 characters. |
currency |
USD, or any currency you’ve added a price feed for. |
amount |
A decimal string, such as "49" or "12.50". |
usage |
OneTime (default) or Reusable. A OneTime link can be paid once; further payments are rejected. A Reusable link accepts unlimited payments. |
lineItems |
Optional. Each has a name, price, quantity and optional image. They must add up to amount exactly. |
reference |
Optional. Your own ID for it, such as an order ID. Unique within the app, so creating a second link with the same reference fails with 409. |
meta |
Optional JSON for your own use. |
reference and meta are never shown to customers. They come back on the link, and on every transfer webhook for a payment made through it.
Creating one
Section titled “Creating one”In the dashboard, under Payment links:

From your backend, with the SDK:
const { data: link } = await kite.paymentLinks.create({ body: { title: "Pro plan", currency: "USD", amount: "49", usage: "OneTime", // or "Reusable" reference: order.id, },});
const url = `https://pay.example.com/pay/${link.id}`;Find it again later by reference:
const { data } = await kite.paymentLinks.list({ query: { reference: order.id },});One link or many
Section titled “One link or many”A link’s usage field controls how many times it can be paid:
OneTime(default): The link can be paid once. After a successful payment, further attempts are rejected. Use this for order-specific links where each order gets its own link with the order ID asreference.Reusable: The link accepts unlimited payments. Use this for donation pages, fixed-price products, or invoices sent by hand.
// One link per order (one-time)const { data: link } = await kite.paymentLinks.create({ body: { title: "Order #1234", currency: "USD", amount: "49", usage: "OneTime", reference: "order-1234", },});
// One reusable link for a productconst { data: link } = await kite.paymentLinks.create({ body: { title: "Pro subscription", currency: "USD", amount: "49", usage: "Reusable", },});