---
title: "Mint a credit top-up checkout link for this product run. Pass pack_id ('small', 'medium' or 'large'). Returns a checkout_url the founder opens to pay; once payment succeeds the Dodo webhook adds the pack's credits to THIS enrollment automatically (no credits are granted here). Founder plan required (on a trial, create_checkout is the path there); scope 'act'. The top-up is always bound to the enrollment your key owns, never one supplied in the request, so it cannot credit another account. Rate limited per product. Inert until credit metering is enabled."
method: POST
path: "/api/v1/billing/topup"
---

# Mint a credit top-up checkout link for this product run. Pass pack_id ('small', 'medium' or 'large'). Returns a checkout_url the founder opens to pay; once payment succeeds the Dodo webhook adds the pack's credits to THIS enrollment automatically (no credits are granted here). Founder plan required (on a trial, create_checkout is the path there); scope 'act'. The top-up is always bound to the enrollment your key owns, never one supplied in the request, so it cannot credit another account. Rate limited per product. Inert until credit metering is enabled.

`POST /api/v1/billing/topup`

## Request

- Base URL: `https://afterlaunch.io`
- URL: `https://afterlaunch.io/api/v1/billing/topup`
- Auth: HTTP bearer

## Request body

- object
  - `pack_id` 'small' | 'medium' | 'large', required: The refill pack size. The founder sees the price on the checkout page.

## Response `200`

A checkout_url to open, bound to your own enrollment.

- object
  - `data` object, required
  - `meta` object, required
    - `enrollment_id` string, uuid, required
    - `generated_at` string, date-time, required

## Other responses

- `400`: Unknown pack_id (must be 'small', 'medium' or 'large'), or the account has no email on file to bill.
- `401`: Missing, invalid or revoked API key.
- `403`: The key does not carry the scope this endpoint requires.
- `429`: Per-key rate limit exceeded. Honour Retry-After.
- `502`: The top-up link could not be created; nothing was charged.
- `503`: Credit top-ups are not enabled yet (dark posture).

---

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