Qonversion

The Qonversion Inc. Developer Hub

Welcome to the Qonversion Inc. developer hub. You'll find comprehensive guides and documentation to help you start working with Qonversion Inc. as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Webhooks

Send in-app subscription and purchase events to your server with webhooks

Qonversion validates user receipts with app stores and sends real-time data to your HTTP endpoints. You can monitor user subscription events and react immediately to changes in your app's subscription status.

1. Set up the webhook URL

  1. Navigate to the Integrations section in Qonversion and select Webhooks.
  2. Register your URL and Qonversion will send a request. If the endpoint server returns a 200 response code, the integration is activated.

2. Request format

Qonversion sends POST request to webhook URL every time an event occurs. The request header contains Authorization-Token Value as Basic authorization field. Use that to protect your server from unwanted requests.

Request Header:

Authorization: Basic {Header Authorization-Token}
Accept: application/json

Request Body:

{
   "event_name": "trial_converted",
   "user_id": "3YjIDEUDaf_5g4IdWw6zcMlLgfg_YQp2",
   "custom_user_id": "",
   "advertiser_id": "9FD1767D-8B48-45BD-A2F4-1C08B08E56F2",
   "time": 1600000000,
   "product_id": "com.myapp.subs.9.99.trial",
   "revenue": {
      "value": 7.99,
      "value_usd": 9.99,
      "currency": "EUR",
      "is_proceed": 0,
      "proceeds_rate": 70  
   },
   "price": {
      "value": 7.99,
      "value_usd": 9.99,
      "currency": "EUR"
   },
   "transaction": {
      "transaction_id": 500000601234560,
      "original_transaction_id": 500000601234560,
      "expires": 1600259200
   },
   "properties": {
      "_q_email": "[email protected]"
   },
   "device_id": "0E66565D-4F3A-E366-B3D4-B5DDAC6BBE2E",
   "environment": "production",
   "platform": "iOS",
   "ip": "10.0.0.1",
   "old_product_id": "com.myapp.subs.4.99.trial",
   "new_product_id": "com.myapp.subs.9.99.trial",
}

Column

Required

Description

event_name

yes

Event name provided in the integration config.
See the details on the events tracked here.

user_id

yes

Unique user identifier assigned by Qonversion.

custom_user_id

yes

Unique user identifier provided by SDK.

advertiser_id

yes

IDFA or AAID.

time

yes

A time an app store changed a subscription status or a time Qonversion detected the change in the UNIX epoch time format in seconds. Read more about events time here.

product_id

yes

App Store or Google Play Store product identifier.

revenue

yes

Dictionary with transaction revenue details. Only events with value filled.

price

yes

Dictionary containing the price details of the product.

transaction

yes

Dictionary with store transaction IDs and expiration timestamp.

properties

yes

User properties provided by SDK. Read more about user properties here.

device_id

yes

identifierForVendor or Settings Secure Android ID.

environment

yes

"production" or "sandbox".

platform

yes

"iOS" or "Android".

ip

yes

Application device IP address.

old_product_id

no

Previous product (for product change events)

new_product_id

no

New product (for product change events)

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

Column

Required

Description

value

yes

Value in user's currency

value_usd

yes

Value in USD

currency

yes

Three-letter ISO currency code

is_proceed

yes

1 – if values are net of app stores' commission;
0 - if values are before deducting app stores commission;

proceeds_rate

yes

70 or 85; Proceeds rate that developer receives after deducting app stores commission.

Transaction

Column

Required

Description

transaction_id

yes

from store

original_transaction_id

yes

from store

expires

yes

Expire timestamp for purchase, prolong or product change events, event timestamp for refund or upgrade events.

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. This substantially improves the data delivery rate.
Qonversion retries failed destination calls for 24 hours with an increased delay after each attempt. Retries have the following schedule:

Attempt

Delay

1

Immediately

2

5 minutes

3

4 hours

4

8 hours

5

24 hours

Updated 23 days ago


Webhooks


Send in-app subscription and purchase events to your server with webhooks

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.