Create a payment link.
Create a payment link.
https://app.softsolz.uk/api/v1/services/payments/payment-linksRecent Requests
Kept only in this browserHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
titlestringrequiredLink title / Stripe line-item name.
currencystringrequiredISO 4217 3-letter currency code. Stored upper-cased.
kindstringSurface type. Any value other than "link" is treated as "button".
amount_centsinteger | nullFixed charge in MINOR units (cents/pence). When set, the link is fixed-amount and the minimum is ignored.
min_amount_centsinteger | nullMinimum allowed amount in MINOR units for a custom-amount link (used only when amount_cents is omitted).
descriptionstring | nullOptional longer description (max 2000 chars).
show_business_namebooleanShow the tenant business name on the hosted page.
button_colorstring | nullHex button background colour.
button_text_colorstring | nullHex button text colour.
Response
Response Body
idintegerPayment link id.tokenstringOpaque public token used in hosted-pay links and checkout-session creation.kindstringSurface type. "button" embeds on a page; "link" is a shareable hosted link.titlestringDisplay title / Stripe line-item name.descriptionstring | nullOptional longer description.amount_centsinteger | nullFixed charge amount in minor units, or null when the customer chooses the amount.min_amount_centsinteger | nullMinimum allowed amount in minor units for custom-amount links; null when a fixed amount is set.currencystringISO 4217 currency code, upper-cased.activebooleanWhether the link can currently take payments.show_business_namebooleanWhether the tenant business name is shown on the hosted page.button_colorstring | nullHex button background colour, or null.button_text_colorstring | nullHex button text colour, or null.paid_countintegerNumber of successful payments recorded against this link.created_atstringCreation timestamp.updated_atstringLast-update timestamp; round-trip as expected_updated_at for optimistic concurrency on PATCH.Request
curl --request POST \ --url https://app.softsolz.uk/api/v1/services/payments/payment-links \ --header 'Authorization: Bearer sk_live_your_key' \ --header 'Content-Type: application/json' \ --data '{ "title": "Premium plan", "currency": "gbp", "kind": "button", "amount_cents": 2500, "min_amount_cents": 500, "description": "One-off onboarding charge", "show_business_name": false, "button_color": "#1d4ed8", "button_text_color": "#ffffff"}'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 201
{ "data": { "id": 42, "token": "kQ8r3mZ7xv1nT0pL2bC9dE4f", "kind": "button", "title": "Premium plan", "description": "One-off onboarding charge", "amount_cents": 2500, "min_amount_cents": 500, "currency": "GBP", "active": true, "show_business_name": false, "button_color": "#1d4ed8", "button_text_color": "#ffffff", "paid_count": 12, "created_at": "2026-05-01T09:00:00.000Z", "updated_at": "2026-05-02T10:30:00.000Z" }}