Create a one-time payment
Creates a payment for a one-time product (frequencyInDays is null).
Returns a checkout URL to redirect your customer to.
For custom price products (isCustomPrice: true), provide priceCents and currency.
Subscription products? Use
POST /api/subscription/createinstead.
Documentation Index
Fetch the complete documentation index at: https://documentation.suby.fi/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
API key authentication
Body
ID of a one-time product
"pro_abc123"
Optional. If provided, a user account is created (or reused) immediately and linked to the payment. If omitted, the payment is created without a customer. The email will be collected on the hosted checkout page and the user will be linked to the payment at that moment.
"customer@example.com"
Optional. Customer first name. Used to prefill checkout fields. Ignored when customerEmail is omitted.
100"John"
Optional. Customer last name. Used to prefill checkout fields. Ignored when customerEmail is omitted.
100"Doe"
Price in cents as a string.
Required when the product has isCustomPrice: true. Must NOT be provided for fixed-price products.
"2500"
Currency for the price. Required when priceCents is provided, ignored otherwise.
USD, EUR "USD"
Your internal reference (order ID, invoice number, etc.)
255"order_789"
Custom key-value pairs. Returned in webhooks.
Extra fields shown on the checkout page to collect information from the customer
(e.g. Discord username, referral source, terms acceptance).
Customer responses are returned in the context.customFieldsResponse object of
every payment webhook.
Maximum 10 fields per payment. For subscriptions, fields are collected on the
initial checkout only — renewals do not re-prompt the customer, and their webhooks
will have customFields and customFieldsResponse set to null.
10Redirect URL after successful payment
"https://your-app.com/success"
Redirect URL if customer cancels
"https://your-app.com/cancel"

