Comment on page
Webhooks
Learn about sending Deepwall events to your server via webhooks
Deepwall tracks user statuses by validating user receipts with stores and sends real-time data to your HTTP endpoints.
You can monitor the subscription events sent by Deepwall to manage your app flow for paid users and react immediately to changes in users subscription statuses.
For the webhooks service to be activated in Deepwall, you need to provide your webhook URL to Deepwall from the Deepwall management console.
Follow the steps below to configure the Webhooks URL:
1. Navigate to the Deepwall management console and go to App Settings.
2. Go to the Webhooks tab and enter your URL to Webhooks URL for Deepwall Server Notifications.
3. You can copy the API Key and use to protect your server from unwanted requests.

The registered URL will start receving data from Deepwall.
The following events are sent to your server via webhooks, if webhooks url is configured in Deepwall.
Event Name | Description |
purchased | User has purchased a non-subscription product (consumable, non-consumable, non-renewing subscription) |
trialSubscribed | User has started a free trial |
trialToPaidSubscribed | User is converted to a paid subscription at the end of the free trial |
subscribed | Users has started a paid subscription without a free trial |
renewed | User has renewed a paid subscription |
refunded | User has received a refund for a subscription or non-subscription payment |
autoRenewDisabled | User has disabled auto renewal |
autoRenewEnabled | User has enabled auto renewal |
moved | User has moved to another device |
You can use the
API key
optionally to protect your server from unwanted requests. You can get the API key
from App Settings menu in Deepwall Management Console.Deepwall sends a POST request to webhook URLs every time an event occurs. The request header contains the
API key
as the Secret value field. JSON
API-Key: Secret Value {API Key}
Accept: application/json
For Events Other than
moved
Request body for
purchased
, trialSubscribed
, trialToPaidSubscribed
, subscribed
, renewed
, refunded
, autoRenewDisabled
, autoRenewEnabled
.JSON
{
"uuid": "d18c11574e4ccd59",
"data": {
"event": "trialSubscribed",
"purchase": {
"orderId": "GPA.3326...",
"transactionId": "GPA.3326...",
"productCode": "com.product",
"quantity": 1,
"purchaseDate": "2021-02-21 16:55:06",
"expiresDate": "2021-02-24 18:54:55",
"cancellationDate": null,
"isTrialPeriod": 1,
"isRenewal": 0,
"order": {
"originalPurchaseDate": "2021-02-21 16:55:06",
"isSubscription": 1,
"isRefunded": 0,
"isActive": 0,
"isProduction": 1,
"inTrialPeriod": 1,
"inGracePeriod": 0,
"purchaseData": "W3sicHJvZHV..."
}
}
}
}
Column | Description |
uuid | Unique user identifier provided by the Deepwall SDK |
event | |
orderId | Order Id of the valid subscription in stores |
transactionId | Transaction Id in stores |
productCode | Purchased product code |
quantity | Purchase quantity |
purchaseDate | Date of purchase, the time store has charged the user's account |
expiresDate | End date of current subscription period |
cancellationDate | Refund date, NULL if user has not refunded |
isTrialPeriod | 1 if user started a trial, otherwise 0 |
isRenewal | 1 if purchase is a renewal and 0 if not |
originalPurchaseDate | Date of the original purchase date which is the first order of user |
isSubscription | 1 if purchase is a subscription and 0 if it is non-subscription |
isRefunded | 1 if purchase has been refunded and 0 if not |
isActive | 1 if automatic renewal is enabled, otherwise 0. isActive is 1 in billing retry and grace period. |
inTrialPeriod | 1 if user is in trial period, otherwise 0 |
inGracePeriod | 1 if user is in grace period, otherwise 0 |
Request for
moved
Request body for device moves for paid subscribers.
JSON
{
"uuid": "394B409C-CE78-4FA4-5CDA-0A0F3AEB",
"data": {
"event": "moved",
"moves": [{
"orderId": "1000000701866583",
"fromUuid": "2E10EC71-7E32-432B-9C44-5EA1C309",
"toUuid": "394B409C-CE78-4FA4-5CDA-0A0F3AEB"
}]
}
}
Column | Description |
uuid | Unique user identifier provided by Deepwall SDK |
event | |
order id | Order Id of the valid subscription in stores |
from uuid | Previous unique user identifier |
to uuid | New unique user identifier on the new device |
It’s important to respond quickly so you do not exceed a time-out limit when you are getting a webhook.
We recommend delaying app processing until a response is sent.
Last modified 1yr ago