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

# Apple Server-to-Server Notifications

> How to forward Apple's server-to-server notifications to Qonversion so renewal, refund and subscription-status events arrive in real time.

Apple sends a notification to a URL of your choice every time a subscription event happens on your app — renewals, refunds, billing retries, status changes. Qonversion exposes one URL per project; pasting it into App Store Connect is a one-time setup.

<Note>
  Without S2S notifications, Qonversion still detects events by polling Apple, but updates land minutes to hours late and analytics quality degrades. The wizard surfaces the URL on Step 4 specifically because of this — production environments should always have S2S enabled.
</Note>

## 1. Copy the URL from Qonversion

The Apple Server-to-Server Notification URL is available in two places — grab it from whichever is closer to where you are:

* **Project Settings → Stores → Apple App Store** card. Once your iOS store is configured, the URL appears at the bottom of the platform card with a copy icon next to it. Open this any time after the initial setup.
* **Step 4 · Production readiness** of the iOS configuration wizard, in the **Apple Server-to-Server Notification URL** field. Most natural during first-time setup.

The URL looks like `https://api.qonversion.io/v1/apple-s2s/<your-project-key>`. Click the copy icon next to it.

<Frame caption="From Project Settings → Stores → Apple App Store card">
  <img src="https://mintcdn.com/qonversion/TjrWtPzj8zd9JvSw/images/docs/ios-s2s-from-settings.png?fit=max&auto=format&n=TjrWtPzj8zd9JvSw&q=85&s=77c504493eafa2e4d02b2d90c0c4176e" width="1628" height="746" data-path="images/docs/ios-s2s-from-settings.png" />
</Frame>

<Frame caption="From Step 4 of the iOS configuration wizard">
  <img src="https://mintcdn.com/qonversion/TjrWtPzj8zd9JvSw/images/docs/ios-s2s-from-wizard.png?fit=max&auto=format&n=TjrWtPzj8zd9JvSw&q=85&s=7484843650ca4fdc48be46e728675726" width="1034" height="777" data-path="images/docs/ios-s2s-from-wizard.png" />
</Frame>

## 2. Paste into App Store Connect

1. [Log in](https://appstoreconnect.apple.com/login) to App Store Connect.
2. Open **My Apps**, click your app, then choose **App Information** in the left sidebar.
3. Scroll to the **App Store Server Notifications** section.
4. Paste the URL into the **Production Server URL** field.
5. Choose **Version 2** for the Server Notifications version (Version 1 is legacy).
6. Click **Save** at the top of the page.

<Frame caption="App Store Connect — App Store Server Notifications section">
  <img src="https://mintcdn.com/qonversion/TjrWtPzj8zd9JvSw/images/docs/ios-s2s-paste-url.png?fit=max&auto=format&n=TjrWtPzj8zd9JvSw&q=85&s=e43335f32409d2f84c019d893f7328ab" width="2304" height="989" data-path="images/docs/ios-s2s-paste-url.png" />
</Frame>

<Tip>
  If you also test in the App Store sandbox, paste the same URL into the **Sandbox Server URL** field — Qonversion accepts both production and sandbox notifications on the same endpoint.
</Tip>

## Troubleshooting

### Apple shows "Could not verify your URL"

App Store Connect probes the URL when you save. The probe expects an HTTP 200 response within a few seconds. If you see this error:

* Make sure you copied the full URL including `https://` and the project key.
* Make sure you're not behind a corporate proxy that's rewriting outbound requests.
* Try saving again after a minute — Apple's probe occasionally times out on transient network blips.

### Notifications aren't appearing in Qonversion analytics

* Check that you saved with **Version 2** selected. Qonversion supports both, but Version 2 carries a richer payload.
* Verify the URL points to the **same project** you're configuring in Qonversion — projects don't share keys.
* Wait 10-15 minutes after the first eligible event (renewal, refund, etc.) — Apple batches some notification types.

***

## What's next?

After this step, your iOS configuration is complete. Test the integration end-to-end:

* Make a sandbox purchase and confirm it appears in Qonversion within seconds (not minutes).
* Trigger a refund in App Store Connect and confirm the refund event arrives.
