---
title: "Create a Stripe Checkout link to pay a failed renewal by hand (plan status past_due); nothing is charged from this call"
method: POST
path: "/v1/subscription/pay"
---

# Create a Stripe Checkout link to pay a failed renewal by hand (plan status past_due); nothing is charged from this call

`POST /v1/subscription/pay`

## Request

- Base URL: `https://volai.cz`
- URL: `https://volai.cz/v1/subscription/pay`
- Auth: HTTP bearer

For a plan whose last renewal failed (`status: "past_due"`): creates a Stripe Checkout link that charges the renewal amount once and saves a new card; the new period starts from the payment. Nothing is charged from here, a HUMAN pays on the Stripe page. A plan that is not past due has nothing to pay and returns `invalid_state`. Supports `Idempotency-Key`.

## Headers

- `Idempotency-Key` string

## Response `200`

Checkout URL

- object
  - `checkoutUrl` string, required

## Other responses

- `400`: Error codes: invalid_state (request).
- `401`: Error codes: unauthorized (request).
- `403`: Error codes: account_suspended (account).
- `404`: Error codes: subscription_missing (account), user_not_found (account).
- `409`: Error codes: idempotency_in_progress (busy), subscription_canceled (account).
- `429`: Error codes: rate_limited (busy).
- `500`: Error codes: internal_error (service).
- `502`: Error codes: stripe_error (service).
- `503`: Error codes: stripe_not_configured (service), ledger_unavailable (service).

---

[API](https://skmtc.dev/volai/apis/volai-rest-api.md) · [All operations](https://skmtc.dev/volai/apis/volai-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/volai/apis/volai-rest-api/revisions/12029b05e2fa?raw)
