---
title: "Start a paid-plan checkout (session-only)"
method: POST
path: "/api/v1/visa/stripe/checkout"
tags: ["Account & billing"]
---

# Start a paid-plan checkout (session-only)

`POST /api/v1/visa/stripe/checkout`

## Request

- Base URL: `https://visa.orizn.app`
- URL: `https://visa.orizn.app/api/v1/visa/stripe/checkout`
- Auth: API key in cookie `orizn_token`
- TypeScript: <https://skmtc.dev/orizn/apis/orizn-visa-api/docs/api/v1/visa/stripe/checkout/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object
  - `plan` 'hobby' | 'starter' | 'pro' | 'business', required
  - `billing` 'monthly' | 'annual'
  - `affiliate_id` string

## Response `200`

Stripe Checkout URL.

- object
  - `url` string

## Other responses

- `400`: Missing or malformed parameter.
- `401`: Missing API key, query param or session cookie.

---

[API](https://skmtc.dev/orizn/apis/orizn-visa-api.md) - [All operations](https://skmtc.dev/orizn/apis/orizn-visa-api/llms.txt) - [OpenAPI document](https://skmtc.dev/orizn/apis/orizn-visa-api/revisions/7d2f2bc68d08?raw)
