Raw schema
{
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": [
"paddle",
"lemonsqueezy",
"polar",
"whop",
"creem",
"dodo",
"fastspring",
"twocheckout"
],
"description": "Merchant-of-record platform (or set the x-mor-provider header). paddle | lemonsqueezy | polar | whop | creem | dodo | fastspring | twocheckout."
},
"item": {
"type": "string",
"description": "The item id to sell. Paddle = price_id (pri_...) to bill the catalog price, OR product_id (pro_...) together with amount + currency to charge a CUSTOM price (donations, pay-what-you-want, variable services); Lemon Squeezy = variant_id (numeric); Polar = product_id (UUID); Whop = plan_id (plan_...); Creem = product_id (prod_...); Dodo = product_id (pdt_...); FastSpring = product path."
},
"store_id": {
"type": "string",
"description": "Required by Lemon Squeezy (your Store id) and FastSpring (your storefront, e.g. \"yourstore\" -> yourstore.onfastspring.com, used to build the hosted URL). Ignored by Paddle / Polar / Whop / Creem / Dodo."
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "Quantity (default 1). Supported by Paddle, Lemon Squeezy, Creem (units), Dodo, FastSpring; Polar and Whop checkouts are single-item."
},
"amount": {
"type": "number",
"description": "Optional price in the MAJOR currency unit (e.g. 19.99). Paddle: a custom price when item is a product_id (pro_...) — also send currency. Lemon Squeezy = custom_price override. Other providers use the catalog price (amount only drives the owner policy gate). "
},
"currency": {
"type": "string",
"description": "ISO currency code (e.g. TWD, USD, JPY). Required by Paddle when item is a product_id (pro_...) and amount is a custom price. Zero-decimal currencies (JPY, KRW, VND, CLP, ISK) are converted correctly."
},
"customer_email": {
"type": "string",
"description": "Optional buyer email to pre-fill on the checkout. Recommended for Dodo (its create requires a customer email)."
},
"country": {
"type": "string",
"description": "Dodo ONLY: 2-letter billing country code for the required billing address (default US; the buyer can change it on the hosted page). Ignored by other providers."
},
"success_url": {
"type": "string",
"description": "Optional https URL to send the buyer to after payment. Used by Polar (success_url), Lemon Squeezy (redirect), Whop (redirect_url), Creem (success_url), Dodo (return_url). Paddle sets this in its dashboard, not per call."
}
},
"required": [
"item"
]
}