---
title: "Update StoreKit Status"
method: PATCH
path: "/iap/transactions/{transaction_id}/storekit-status"
tags: ["Transactions"]
---

# Update StoreKit Status

`PATCH /iap/transactions/{transaction_id}/storekit-status`

Reports a StoreKit subscription state change for a migration transaction. As of 2026-04-27, this is a *trigger to verify* endpoint: when the SDK reports `storekit_status=2` (anything other than active), the backend queries Apple's App Store Server API itself and persists what Apple reports onto the transaction's `storekit_apple_status` and `storekit_subscription_end` fields. Billing-relevant data is never sourced from the client.

## Path parameters

- `transaction_id` string, required

## Request body

- object
  - `storekit_status` 1 | 2, required — `1` = active (finished successfully, no further action). `2` = anything-not-active (cancelled, expired, billing retry, grace period, revoked). When `2` is reported, the backend triggers a server-side Apple App Store Server API query to resolve the canonical state.
  - `storekit_original_transaction_id` string — Apple `originalTransactionId` for the subscription. Used by the backend to query Apple's API for the canonical subscription state when `storekit_status=2`. Optional — the backend will fall back to the value stored at transaction creation time when omitted.
  - `storekit_subscription_end` string, date-time — Deprecated as of 2026-04-27. Accepted for backwards compatibility but **ignored** — the backend now resolves the actual subscription expiry from Apple's App Store Server API. Existing SDKs may continue sending this field; new SDKs should omit it.

## Response `200`

Status updated

- object
  - `id` string — The transaction ID.
  - `storekit_status` integer — The updated StoreKit status.

## Other responses

- `400` — Invalid request -- missing or malformed parameters.
- `401` — Invalid or missing API key.
- `404` — Resource not found.

## Changes

- **2026-04-27** `b97ca95cf092` — 2 info
  - added the new optional request property `storekit_original_transaction_id`
  - added the new optional request property `storekit_subscription_end`
- **2026-03-22** `8c7fa6fb5be3` — 1 info
  - endpoint added
- **2025-12-11** `919eb7a392aa` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/zerosettle/apis/zerosettle-iap-api/changes/iap/transactions/:transaction_id/storekit-status/patch.md)

---

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