Skip to Content
Browse the Docs▾

Start the subscription

POST/api/v1/setup/checkout

Starts the customer's subscription. A free trial with no card starts at once; otherwise this returns a Stripe Checkout link the customer finishes on Stripe's page, where any card is entered.

curl -X POST -H "Authorization: Bearer $REVNU_API_TOKEN" https://revnu.com/api/v1/setup/checkout

Response

{ "url": "https://checkout.stripe.com/c/pay/cs_live_…" }

A free trial with no card (payment.cardAtCheckout is false in setup status) starts here, with no page to open:

{ "url": "https://revnu.com/dashboard", "started": true }

Then url is the customer's dashboard, not a payment page; poll setup status until the stage is start. If Stripe finds this customer already had a trial, you get a Checkout link instead.

Otherwise give the link to the customer. They open it and finish on Stripe's page themselves. Stripe's webhook, not this call, starts the subscription; poll setup status until the stage is start. Stripe Checkout links last 24 hours.

Before you hand it over, read payment from setup status and tell the customer what they are agreeing to: the price, the free period if any, and whether the page asks for a card. Each call makes a new Checkout session, and a new one stops the earlier link working, so ask for a new link only when the customer has lost theirs. The CLI's revnu setup checkout reuses the link it handed out.

Code Meaning
200 { "url": "…" }, or { "url": "…", "started": true } when a no-card trial started
409 rejected with a message: the review isn't confirmed yet, or the account has a YC deal and adds its card in the dashboard.

Frequently Asked Questions

Can an agent pay on the customer's behalf?

The customer pays on Stripe's page and enters their own card details there, so payment stays in their hands. Nothing in the API takes card details.