Skip to main content
Qonversion validates user receipts with app stores and sends subscription events to your HTTP endpoints. Keep in mind events delivery time when using webhooks to manage subscriber statuses on your back-end. Webhook delivery is asynchronous and typically completes within tens of seconds, but the exact latency depends on store-side notification timing, your server’s response time, and any retries. For real-time subscription status on the client-side, use the checkEntitlements method of the Qonversion SDK.

1. Set up the webhook URL

  1. Navigate to the Integrations section in your Qonversion account and select Webhooks.
  2. Register your URL and Qonversion will send a request
  3. Press the “Add new integration” or “Save” button. If the endpoint server returns a 200 response code, the integration is activated.

Sandbox webhook URL

The Webhooks integration form also exposes a separate Sandbox Webhook URL field. Production-environment events are delivered to the main URL; sandbox-environment events (environment: "sandbox") are delivered to the Sandbox URL when it is set. If you receive sandbox events but leave the Sandbox URL empty, Qonversion will fail to deliver them and they will be retried until the per-event tracking window expires.

2. Request format

Qonversion sends POST request to webhook URL every time an event occurs. The request includes an Authorization header of the form Basic <token>, where <token> is the Header Authorization-Token Value you configured in the Webhooks integration settings - it is sent as-is, not base64-encoded as in standard HTTP Basic auth. Use it to protect your server from unwanted requests.

SSL certificate

Remember, maintaining secure connections is essential for the integrity and reliability of your application’s communication.Ensure the SSL certificate used is not expired and your server’s CA bundle is up-to-date to recognize the latest root CAs.
Request Header:
Request Body:

Revenue and price fields

There are 3 fields that contain transaction details:
  • The revenue field contains a dictionary with details depending on your integration setting Send sales as proceed.
  • The price field always contains a gross price that is charged to a user.
  • The transaction field contains params of the transaction related to the event.

Revenue

Price

Transaction

For the Billing Issue, Trial Canceled, Subscription Canceled, Subscription Upgraded events, the transaction_id field will be the same as for the previous related event. For the Subscription Renewed, Subscription Downgraded, Subscription Product Changed events, we’re sending a newer transaction_id.

Apple Search Ads attribution fields

You need to set up Apple Search Ads integration first, then we will send ASA attribution with all new events for only attributed users. The data in the table below can be found in the asa_attribution field.
Learn more about fileds from Apple AdSevices documentation.

Retries between Qonversion and Destination Server

Qonversion increases the delivery rate to your server with retries. Retries happen automatically if your server is not responding (returns a non-2xx status, times out, or is unreachable). This substantially improves the data delivery rate. After the initial attempt fails, Qonversion schedules up to five retries spread over roughly 24 hours, then abandons the per-event delivery job. The tracking record itself is retained for 7 days. Retries have the following schedule (delay measured from the previous attempt):
Tenjin Refund Keeper