API changelog
What changed in each version of the SUQO API.
The API is versioned independently of the dashboard and of the SDKs. When a new version is cut the previous one stays published at its own URL, and a selector at the top of the sidebar switches between them.
1.0.0
The published version of the External API, at /api/v1/. Changes are listed
newest first; nothing below removed an endpoint.
Checkout sessions
Added
POST /checkout-sessions/— open a session for one to ten items and send the buyer tocheckout_url. This is now the recommended way to collect payment. Each item is either an existingpbp_idor a partner-priced inline item, and prices are snapshotted when the session opens. See Create a checkout session.POST /customers/andPATCH /customers/{public_id}/— the customers resource is no longer read-only. Re-sending a phone you already hold corrects that customer and answers200instead of201, so the call is safe to retry. See Customers.- Rate limiting, on
POST /checkout-sessions/only: 20 sessions a minute per account, answered with429and adetailnaming the wait. Every other endpoint is unlimited. See Errors → Rate limits.
Changed
- Breaking.
checkout.succeededandcheckout.failedare now one delivery per checkout session, keyed bysession_idand carrying anitemsarray, instead of one per subscription keyed bysubscription_id. Payments taken through the legacyPOST /subscriptions/endpoint report through the same payload. See Webhook events. - Breaking. A customer's
idis a string public id (cus_…), never an integer. Code that parses it as a number must change. - Breaking. The customer and webhook path parameters are named
{public_id}, not{id}. POST /subscriptions/is now legacy. It is still supported and existing integrations keep working; new ones should open a checkout session instead. See Create a subscription.- The
403for an account that has not cleared KYC is now specified, with its own shape —status_codeandmessage, and nodetail. KYC is not enforced on the sandbox, andGET /products/and the/webhooks/routes do not require it at all.
Initial release
First published version of the External API.
Errors
Previous Page
Open a checkout session POST
Open a checkout session for one or more (up to 10) of your own billing periods. `customer_id` is optional and, if sent with a value, must be a customer already recorded on your account; omit it, or send it null or blank, to have the buyer enter their full name, email, phone and address at checkout. Each item's price is snapshotted at creation, so a plan edited afterwards cannot change what the buyer already saw. If two items resolve to the same product (e.g. via different `pbp_id`s), only the last one is kept. `return_url` is required and is where the buyer lands after paying. Send the returned `checkout_url` to the buyer to collect payment. This is the one rate-limited endpoint on the partner API — 20 sessions a minute per account by default, answered with 429 once exceeded.