---
title: "Create a one-time Stripe Checkout Session or request an untouched-block refund"
method: POST
path: "/v1/checkout"
tags: ["Billing"]
---

# Create a one-time Stripe Checkout Session or request an untouched-block refund

`POST /v1/checkout`

## Request

- Base URL: `https://api.scripthaul.com`
- URL: `https://api.scripthaul.com/v1/checkout`
- Auth: one of:
  - HTTP bearer
  - none

## Query parameters

- `action` 'refund'

## Request body

- union
  - object
    - `block` 5 | 20 | 50 | 200 | 1000, required
    - `email` string, email
  - object
    - `purchase_id` string, uuid, required
    - `reason` string

## Response `201`

Checkout URL

## Other responses

- `202`: Refund request accepted and submitted with an idempotent purchase-scoped identity
- `400`: Typed API error
- `401`: Typed API error
- `403`: Typed API error
- `409`: purchase_in_progress: an open Checkout Session for this account has not expired yet (retry_after gives the remaining seconds); or stripe_refund_conflict on a refund request
- `429`: new_account_purchase_limit: one purchase until 100 credits have been used; or the per-address checkout throttle
- `503`: Typed API error

---

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