---
title: "Create a Polar-hosted credit checkout"
method: POST
path: "/v1/billing/checkout"
tags: ["Billing"]
---

# Create a Polar-hosted credit checkout

`POST /v1/billing/checkout`

## Request

- Base URL: `https://api.asoskill.com`
- URL: `https://api.asoskill.com/v1/billing/checkout`
- Auth: HTTP bearer

Returns a URL that the account owner must open to complete payment. Creating checkout does not cost a credit.

## Request body

- CheckoutRequest
  - `packId` string, required

## Response `200`

Manual action containing a short-lived Polar Checkout URL

- CheckoutResponse
  - `status` 'action_required', required
  - `action` object, required
    - `type` 'open_url', required
    - `url` string, uri, nullable, required
    - `expiresAt` integer, required
    - `message` string, required
  - `requestId` string, required

## Other responses

- `400`: The request body or parameters are invalid; no credit is consumed
- `401`: The bearer credential is missing, invalid, expired, or revoked; no credit is consumed
- `403`: The account is unavailable or disabled; no credit is consumed
- `428`: The current Terms and Privacy Policy must be reviewed before purchasing credits
- `429`: Request capacity or a rate allowance was exceeded; no credit is consumed. Respect Retry-After when present, otherwise retry with exponential backoff and jitter.
- `500`: Unexpected processing failure; any reserved credit is restored
- `503`: ASO Skill or an upstream service is temporarily unavailable; any reserved credit is restored. Retry after the indicated delay when provided.

---

[API](https://skmtc.dev/asoskill/apis/aso-skill-developer-api.md) · [All operations](https://skmtc.dev/asoskill/apis/aso-skill-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/asoskill/apis/aso-skill-developer-api/revisions/c9808e5357cf?raw)
