---
title: "App Store Server Notification"
method: POST
path: "/api/billing/store/app-store-notifications"
tags: ["billing"]
---

# App Store Server Notification

`POST /api/billing/store/app-store-notifications`

## Request

- Base URL: `https://api.retirementlab.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.retirementlab.app/api/billing/store/app-store-notifications`
- Auth: none declared

Consume Apple App Store Server Notifications v2.

The notification envelope and nested transaction JWS must verify before any
state changes. We then re-verify the transaction through the store verifier
and only update an already-linked subscription row.

## Request body

- AppStoreNotificationRequest
  - `signedPayload` string, required

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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