Skip to main content

Server Webhook

Definition

Upon receiving a receipt request in the Receipt Validator, we can forward the App Store response to your server endpoint for further processing. This allows implementing custom behaviour on your backend for potentially backing up user inventory or getting more insights into user workflows using advanced purchase statistics. INDIE plan and higher.

RV-Webhook.png

You can enter your server endpoint in the app settings, by navigating to Apps > App Options > Edit. When saving a webhook address for the first time, your endpoint must respond with a 200 status code to prove its existence. Also, a new header private key will be generated.

note

Please be informed that only accountable purchase receipts are sent to your server. An accountable receipt is defined as a successful purchase that reduced your validation quota, i.e. a new purchase or subscription renewal.

caution

Currently webhook messages are not reliable, which means that there is no retry or queue mechanism, in case of system outages or failures on the sending or receiving server. This might change in the future. If you need reliable webhooks, please contact Support for a discussion.

FieldValue
Content-Typeapplication/json
X-App-IdYour 16 alphanumeric characters long app identifier.
X-Auth-KeyAuto-generated private key. Check this in your backend to ensure the request source is actually valid. Contact Support if your key was compromised.

Content

A string in JSON format.

FieldValue
transactionApp Store-generated unique transaction identifier.
dataReceipt data of the accountable purchase. For more information please refer to the validation response.
storeThe originating App Store. GooglePlay or AppleAppStore
userOnly present on user-initiated receipt requests. App Store server-server notifications do not provide user identifiers.

The client-provided or server generated (v4 UUID) unique user identifier.