---
title: "After a card checkout: the key it bought (shown once)"
method: POST
path: "/v1/public/claim-key"
tags: ["purchase"]
---

# After a card checkout: the key it bought (shown once)

`POST /v1/public/claim-key`

## Request

- Base URL: `https://outcometick.com`
- URL: `https://outcometick.com/v1/public/claim-key`
- Auth: none required

## Request body

- object
  - `sessionId` string, required: Stripe Checkout Session id from the success redirect

## Response `200`

OK

- IssuedKey: Returned once. `key` is present only on the first successful claim; later claims say where it went.
  - `key` string: The plaintext key. Shown once.
  - `keyId` string
  - `alreadyIssued` boolean
  - `emailedTo` string
  - `topUp` boolean
  - `product` 'data' | 'smart'
  - `tier` string
  - `venue` string
  - `dateScope` string
  - `expiresAt` string, date-time, nullable

## Other responses

- `202`: Paid but not active yet; poll
- `400`: Bad session id
- `404`: Unknown session
- `409`: Key already issued
- `429`: Rate limited; retry after the Retry-After header
- `503`: Temporarily unavailable; retry

---

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