Subscription API

General provisions

Endpoint:
https://statgw.devtodev.com/subscriptions/api?apikey={project’s API key}
Query type: POST
The query body is a JSON object with fields described in the table below.

Fields

Name
Description
notificationType
Type of notification
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
startDateMs
Subscription start date in milliseconds in UTC
expiresDateMs
Subscription expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
price
Subscription price
currency
Currency of the subscription payment
isTrial
The event is flagged if it’s trial ana d isn’t flagged if it’s a subscription
gracePeriod
Extension of subscription renewal date in days. If this field is filled in and the user didn’t renew the subscription before the expiration date, then wait for gracePeriod days to flag it as expired
Fields for user identification (Attention! Regardless of the type of notification, at least one of the user IDs must be specified in the query)
idfa
Available platforms: iOS
idfv
Available platforms: iOS
advertisingId
Available platforms: Android, Windows
androidId
Available platforms: Android
userId
The same as Main ID in user card
customId
String custom user ID
Available platforms: all platforms
devtodevId
d2d numeric user idAvailable platforms: all platforms

Notification types

Notification types
Description
purchase
First-time subscription purchase
renewal
Active subscription renewal
refund
Money refund
cancellation
Cancellation of an active subscription and proportional refund

Server response

If the notification is accepted, the response status is 200. If the query is incorrect, the response status is 400. In case of an internal error, the response status is 500.
In case the status is 400 or 500, the error description will be indicated in the query body as a JSON object:
{
"title": "Bad request",
"error": "Not set parameter api-key"
}

Notification types and corresponding fields

  1. 1.
    Available notification types for a trial (all postbacks should be flagged as ‘isTrial = true’):
  • purchase - trial subscription
  • cancellation - subscription cancellation before the end of that trial
2. Available notification types for subscription purchase:
  • purchase - subscription purchase
  • renewal - subscription renewal
  • cancellation - premature termination of a subscription and proportional refund
  • refund - money refund

Trial purchase

Field name
Description
notificationType
Notification type = purchase
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
startDateMs
Trial start date in milliseconds in UTC
expiresDateMs
Trial expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
isTrial
true

Trial cancellation

Field name
Description
notificationType
Notification type = cancellation
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
expiresDateMs
Trial expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
isTrial
true

Subscription purchase

Field name
Description
notificationType
Notification type = purchase
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
startDateMs
Subscription start date in milliseconds in UTC
expiresDateMs
Subscription expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
isTrial
false
price
Subscription price
currency
Currency of the subscription payment
gracePeriod
Extension of subscription renewal date in days

Subscription renewal

Field name
Description
notificationType
Notification type = renewal
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
startDateMs
Subscription start date in milliseconds in UTC
expiresDateMs
Subscription expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
isTrial
false
price
Subscription price
currency
Currency of the subscription payment
gracePeriod
Extension of subscription renewal date in days

Subscription cancellation

Field name
Description
notificationType
Notification type = cancellation
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
expiresDateMs
Subscription expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
isTrial
false

Subscription refund

Field name
Description
notificationType
Notification type = refund
originalTransactionId
ID of the original transaction
transactionId
Transaction ID
expiresDateMs
Subscription expiration date in milliseconds in UTC
product
Subscription SKU
productType
Subscription type (line)
isTrial
false
price
The amount of money refunded to the user
currency
Currency of the subscription payment

Query example

POST https://statgw.devtodev.com/subscriptions/api?apikey=ak-cDNRQl0Lypq4AOUrx8aGGMnmJT1FSebd
{
"notificationType":"PURCHASE",
"transactionId":"transactionId",
"startDateMs":1640072573468,
"expiresDateMs":1640245373468,
"product":"com.demo.bundle.weekly",
"price":90.9,
"currency":"RUB",
"isTrial":false,
"devtodevId":4064192
}
Last modified 6mo ago