# Get a checkout link

> A Stripe Checkout link that starts the customer's subscription, with a free trial when their account has one. The customer finishes it on Stripe's page, where any card is entered.

Canonical: https://revnu.com/docs/setup-checkout
Last updated: 2026-10-16

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

## Response

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

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](https://revnu.com/docs/setup-status.md) 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": "…" }` |
| 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.
