Create Subscription Checkout Session
Creates a hosted Dodo Payments checkout session for a subscription product. `productKey` and `interval` are validated against a fixed whitelist (the product catalog) before being handed off to Dodo — arbitrary product/interval combinations are rejected with `400`. A Redis lock prevents starting a second checkout while one is already in flight. Session-authenticated only; blocked for non-admins in production during the current rollout phase.
Internal session cookie for local development.
In: cookie
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/billing/checkout" \ -H "Content-Type: application/json" \ -d '{ "productKey": "portfolio_pro", "interval": "monthly" }'{ "success": true, "message": "string", "data": { "url": "string" }}