---
title: "Get Transaction"
method: GET
path: "/iap/transactions/{transaction_id}"
tags: ["Transactions"]
---

# Get Transaction

`GET /iap/transactions/{transaction_id}`

Retrieves the status and details of a specific transaction by its ID.

## Path parameters

- `transaction_id` string, required

## Response `200`

Transaction details

- Transaction — A purchase transaction.
  - `id` string — Transaction ID (UUID).
  - `product_id` string — The product's reference ID.
  - `status` 'pending' | 'processing' | 'succeeded' | 'failed' | 'refunded' | 'disputed' — Current transaction status.
  - `source` 'web_checkout' | 'store_kit' — Where the transaction originated.
  - `purchased_at` string, date-time — ISO 8601 timestamp of when the purchase was made.
  - `storekit_status` integer, nullable — StoreKit finish status: `1` = active (finished), `2` = anything-not-active (cancelled, expired, billing retry, grace period, revoked). Null for web checkout transactions. This is a coarse SDK-reported flag; consult `storekit_apple_status` for Apple's full state.
  - `storekit_apple_status` 1 | 2 | 3 | 4 | 5, nullable — Apple's full subscription status code from the App Store Server API. `1` = Active, `2` = Expired, `3` = BillingRetry, `4` = GracePeriod, `5` = Revoked. Null when no Apple-verified state has been recorded (e.g., before the SDK has reported a state change, or when ASC credentials are not configured for the tenant).
  - `expires_at` string, date-time, nullable — ISO 8601 expiry timestamp for subscription transactions. Null for one-time purchases.

## Other responses

- `401` — Invalid or missing API key.
- `404` — Resource not found.

---

[API](https://skmtc.net/zerosettle/apis/zerosettle-iap-api.md) · [All operations](https://skmtc.net/zerosettle/apis/zerosettle-iap-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerosettle/zerosettle-iap-api/versions/1a7aa12f3d5e/schema)
