---
title: "Apple App Store Webhook"
method: POST
path: "/api/payments/webhook/apple"
tags: ["payments"]
---

# Apple App Store Webhook

`POST /api/payments/webhook/apple`

## Request

- Base URL: `https://api.stellara.natlex.it` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stellara.natlex.it/api/payments/webhook/apple`
- Auth: none declared

Handle App Store Server Notifications V2 from Apple.

Mirrors `google_play_webhook` shape but for Apple's signed-JWS
notification model. The supported transitions are documented in
`core.app_store.map_apple_notification_status` — events that don't
encode a status transition (TEST, CONSUMPTION_REQUEST,
PRICE_INCREASE) are logged and swallowed.

Race-handling: we take FOR UPDATE on user_subscriptions in the same
transaction shape as `google_play_webhook` so a stale ASSN can't
overwrite a fresh `/verify-purchase` write that happened to land at
the same instant.

## Response `200`

Successful Response

- unknown

---

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