AppScan
Browse all 61 articles
API

Billing

The plan, the subscription, checkout, the portal, the trial, invoices, and the public pricing endpoint.

MethodPathNeedsReturns
GET/pricingpublicplans, prices, limits and AI task costs; cached five minutes
GET/billing/overvieworganization.readplan, subscription, credits, payment methods on offer
POST/billing/checkoutbilling.manage201 { checkout { url } }; { priceCode, provider? }
POST/billing/portalbilling.manage201 { url } from the method that is paying
POST/billing/subscription/changebilling.manage{ priceCode } → { subscription, transition, approval }
POST/billing/subscription/cancelbilling.manageat the period end; entitlements continue until then
POST/billing/subscription/reactivatebilling.manageclears the cancellation
POST/billing/trialbilling.managestarts the one free trial
GET/billing/invoices/:id/pdfbilling.managethe invoice, or the receipt naming the reseller
POST/billing/webhooks/stripepublic, signed202 { eventId, status }
POST/billing/webhooks/paypalpublic, signedthe same, in PayPal’s dialect
POST/billing/webhooks/paddlepublic, signedthe same, in Paddle’s dialect

Prices are server-owned and the browser never tells the backend that a payment happened: only a verified webhook or a normalized provider response writes paid state. A per-method surcharge, if one is configured, is disclosed before the click and frozen on the checkout.

Something here wrong, missing or out of date? Tell us and we will fix the page.