Payment links
Share a URL that opens a hosted checkout — no integration code required.
A payment link is a shareable URL backed by a product, price, or package. When a customer opens it, PaymentKit creates a fresh checkout session and sends them to the hosted checkout page. The same link can be reused by any number of customers.
Use payment links for one-off charges, subscription sign-ups, or saving a payment method — without writing any checkout integration.
Create a payment link
Dashboard
API
- Go to Payment Links in the sidebar
- Click Create Payment Link
- Choose the mode (one-time payment, subscription, or setup)
- Add the prices or a package to charge for
- Optionally set a coupon, success URL, and expiry
- Click Create, then copy the shareable URL
The response includes a url you can share directly and a secure_token used by the public
endpoint below.
Modes
Request fields
All line items (or the chosen package) must share a single currency — mixed-currency links are rejected. Prices and packages must be active.
The payment link object
How customers pay
When a customer opens the link, the public share endpoint creates a checkout session and routes them to the hosted checkout:
This endpoint is public — no API key required — and is rate-limited to 10 requests per minute per IP.
- Browsers (HTML requests) are redirected straight to the hosted checkout page.
- API clients (JSON requests) receive the session details to redirect themselves:
Each open creates a new checkout session, so a single link serves many customers. After
payment the customer is sent to success_url; if they cancel, to return_url.
Manage payment links
Deactivating a link is permanent in effect for shared URLs — once is_active is false, opening
the link returns a generic error and no checkout session is created. Existing checkout sessions
already created from the link are unaffected.