> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unicontrol.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Apple App Store Server Notifications V2 receiver

> Receives JWS-signed lifecycle notifications from Apple (subscriptions, renewals, refunds). The signature lives inside the JWS itself — no signature header is used.



## OpenAPI

````yaml https://portal.unicontrol.me/v1/openapi post /v1/webhooks/apple-iap
openapi: 3.1.0
info:
  title: Unicontrol API
  description: Welcome
  version: 1.0.0
servers:
  - url: http://0.0.0.0:3000
    description: Local Server
  - url: https://portal.test.flexhome.casa
    description: Development
  - url: https://portal.unicontrol.me
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/webhooks/apple-iap:
    post:
      tags:
        - Webhooks
      summary: Apple App Store Server Notifications V2 receiver
      description: >-
        Receives JWS-signed lifecycle notifications from Apple (subscriptions,
        renewals, refunds). The signature lives inside the JWS itself — no
        signature header is used.
      operationId: postV1WebhooksApple-iap
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                signedPayload:
                  type: string
                  description: >-
                    JWS containing notification payload
                    (header.payload.signature)
              required:
                - signedPayload
            example:
              signedPayload: eyJhbGciOiJFUzI1NiIs...
      responses:
        '200':
          description: Webhook processed
          content:
            application/json:
              example:
                status: true
                message: Webhook handled successfully.
        '400':
          description: Bad request
          content:
            application/json:
              example:
                error: Missing signedPayload
      security: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````