wappier Pricing APIs
Download OpenAPI specification:Download
The wappier exposed Pricing APIs allow game publishers to integrate with wappier Pricing products.
The wappier integration team will share with you the keys and values of headers that you should use for authentication of all exposed wappier pricing APIs.
Authentication headers:
- "X-Wappier-Api-key": "APIKey" , a unique UUID-format identifier for your game in wappier server.
- "X-Wappier-token": "token" , a unique alphanumeric identifier identifier for your game in wappier server.
This set of endpoints allows the caller to get detailed Purchase Reports about all the transactions that have been tracked by the wappier SDK.
Purchase Reports by date range
This endpoint queries the available purchase reports within the specified date range and returns the matched documents, utilizing pagination.
Request Body schema: application/json
| start | number pagination parameter, the first document to fetch in the response. In the first page request, the value is by default 0. |
| end | number pagination parameter, the last document to fetch in the response. If end - start exceeds the page limit then an error is returned. |
object |
Responses
Request samples
- Payload
{- "start": 0,
- "end": 0,
- "dates": {
- "from": "string",
- "to": "string",
- "onlyValid": true
}
}Response samples
- 200
- 400
- 401
{- "total": 0,
- "next_start": 0,
- "purchaseReports": {
- "_id": "613736bdb3b404367007252b",
- "header": {
- "wappierId": "c7b97449-00ea-547b-a829-bf858dfb0ea2",
- "username": "259f07150ce974f3",
- "clientId": "11196ac8-4f5c-4ef0-bd3f-cb551d0585a0",
- "clientSequence": "416",
- "apiKey": "4a1c70fd-8654-49dc-882a-54eef5e7b897",
- "app": "com.wappier.trivitap",
- "platform": "android",
- "sdkVersion": "4.0.2",
- "clientSha": "e0cedcdb",
- "timezone": "America/New_York",
- "unixTime": "1631008445472",
- "appVersion": "10.5.1",
- "language": "en-US",
- "deviceId": "WAP_5ab587b0-bba0-4171-8f63-43446bf71f8e",
- "sessionId": "80960695-2c72-44de-b277-48175c1c817e",
- "utcTime": "2021-09-07T09:54:05.472Z"
}, - "payload": {
- "revenue": 4.99,
- "purchaseType": "",
- "currency": "USD",
- "iApReceipt": "GPA.3323-0083-0776-16137",
- "purchaseData": {
- "productId": "com.wappier.game.sku1.wap_4de6",
- "purchaseToken": "cndcdlpalioadpgoamkdfngg.AO-J1OywlC3UcS8Q6nU1-LftPu01e0n_cbPwwvHgO0pu66yOwoS0E2jXLivQLNCgjiKO7R00IiTVoBHdVnkPsKkf6OAGNgnCJmriNv2fzSU3igHdDl7KEro",
- "purchaseTime": "1631008435889",
- "purchaseState": "PURCHASED"
}, - "dpData": {
- "pricingTestId": "60118eef82eef848d10a2a93",
- "group": "B",
- "productId": "com.wappier.game.sku1.wap_4de6",
- "originalSku": "com.wappier.game.sku1"
}, - "iApReceiptSdk": "GPA.3323-0083-0776-16137",
- "revenueUsd": 4.99,
- "data": {
- "validPurchase": true,
- "firstPurchase": null
}
}, - "points": 0,
- "validPurchase": true,
- "pricing": true,
- "country": "US",
- "createdAt": "2021-09-07T09:54:05.879Z"
}
}Purchase Reports by multiple receiptIds
This endpoint queries the available Purchase Reports by multiple receiptIds and returns the matched documents.
Request Body schema: application/json
| receipts | Array of strings |
| onlyValid | boolean flag to return only tracked purchases that have been validated using Purchase validation functionality default value is true. |
Responses
Request samples
- Payload
{- "receipts": [
- "receiptId1",
- "receiptId2"
], - "onlyValid": "bool"
}Response samples
- 200
- 400
- 401
{- "total": 0,
- "purchaseReports": {
- "_id": "613736bdb3b404367007252b",
- "header": {
- "wappierId": "c7b97449-00ea-547b-a829-bf858dfb0ea2",
- "username": "259f07150ce974f3",
- "clientId": "11196ac8-4f5c-4ef0-bd3f-cb551d0585a0",
- "clientSequence": "416",
- "apiKey": "4a1c70fd-8654-49dc-882a-54eef5e7b897",
- "app": "com.wappier.trivitap",
- "platform": "android",
- "sdkVersion": "4.0.2",
- "clientSha": "e0cedcdb",
- "timezone": "America/New_York",
- "unixTime": "1631008445472",
- "appVersion": "10.5.1",
- "language": "en-US",
- "deviceId": "WAP_5ab587b0-bba0-4171-8f63-43446bf71f8e",
- "sessionId": "80960695-2c72-44de-b277-48175c1c817e",
- "utcTime": "2021-09-07T09:54:05.472Z"
}, - "payload": {
- "revenue": 4.99,
- "purchaseType": "",
- "currency": "USD",
- "iApReceipt": "GPA.3323-0083-0776-16137",
- "purchaseData": {
- "productId": "com.wappier.game.sku1.wap_4de6",
- "purchaseToken": "cndcdlpalioadpgoamkdfngg.AO-J1OywlC3UcS8Q6nU1-LftPu01e0n_cbPwwvHgO0pu66yOwoS0E2jXLivQLNCgjiKO7R00IiTVoBHdVnkPsKkf6OAGNgnCJmriNv2fzSU3igHdDl7KEro",
- "purchaseTime": "1631008435889",
- "purchaseState": "PURCHASED"
}, - "dpData": {
- "pricingTestId": "60118eef82eef848d10a2a93",
- "group": "B",
- "productId": "com.wappier.game.sku1.wap_4de6",
- "originalSku": "com.wappier.game.sku1"
}, - "iApReceiptSdk": "GPA.3323-0083-0776-16137",
- "revenueUsd": 4.99,
- "data": {
- "validPurchase": true,
- "firstPurchase": null
}
}, - "points": 0,
- "validPurchase": true,
- "pricing": true,
- "country": "US",
- "createdAt": "2021-09-07T09:54:05.879Z"
}
}Purchase Report for specific receiptId
This endpoint queries the available Purchase Reports for this specific receiptId and returns the matched documents.
path Parameters
| receiptId required | string The receipt id |
query Parameters
| onlyValid | boolean flag to return only tracked purchases that have been validated using Purchase validation functionality default value is true. |
Responses
Response samples
- 200
- 400
- 401
{- "purchaseReports": {
- "_id": "613736bdb3b404367007252b",
- "header": {
- "wappierId": "c7b97449-00ea-547b-a829-bf858dfb0ea2",
- "username": "259f07150ce974f3",
- "clientId": "11196ac8-4f5c-4ef0-bd3f-cb551d0585a0",
- "clientSequence": "416",
- "apiKey": "4a1c70fd-8654-49dc-882a-54eef5e7b897",
- "app": "com.wappier.trivitap",
- "platform": "android",
- "sdkVersion": "4.0.2",
- "clientSha": "e0cedcdb",
- "timezone": "America/New_York",
- "unixTime": "1631008445472",
- "appVersion": "10.5.1",
- "language": "en-US",
- "deviceId": "WAP_5ab587b0-bba0-4171-8f63-43446bf71f8e",
- "sessionId": "80960695-2c72-44de-b277-48175c1c817e",
- "utcTime": "2021-09-07T09:54:05.472Z"
}, - "payload": {
- "revenue": 4.99,
- "purchaseType": "",
- "currency": "USD",
- "iApReceipt": "GPA.3323-0083-0776-16137",
- "purchaseData": {
- "productId": "com.wappier.game.sku1.wap_4de6",
- "purchaseToken": "cndcdlpalioadpgoamkdfngg.AO-J1OywlC3UcS8Q6nU1-LftPu01e0n_cbPwwvHgO0pu66yOwoS0E2jXLivQLNCgjiKO7R00IiTVoBHdVnkPsKkf6OAGNgnCJmriNv2fzSU3igHdDl7KEro",
- "purchaseTime": "1631008435889",
- "purchaseState": "PURCHASED"
}, - "dpData": {
- "pricingTestId": "60118eef82eef848d10a2a93",
- "group": "B",
- "productId": "com.wappier.game.sku1.wap_4de6",
- "originalSku": "com.wappier.game.sku1"
}, - "iApReceiptSdk": "GPA.3323-0083-0776-16137",
- "revenueUsd": 4.99,
- "data": {
- "validPurchase": true,
- "firstPurchase": null
}
}, - "points": 0,
- "validPurchase": true,
- "pricing": true,
- "country": "US",
- "createdAt": "2021-09-07T09:54:05.879Z"
}
}This set of endpoints returns information for all wappier price suggestions for your game.
Get Price Suggestions
This endpoint returns high-level information for all wappier price suggestions for your application.
Responses
Response samples
- 200
- 400
- 401
{- "apiKey": "32b6bfa5-4296-4409-a090-d99ed9bdb9ff",
- "package": "com.wappier.game",
- "priceSuggestions": [
- {
- "id": "60647c3c2b0daf5e86f3388d",
- "status": "pending",
- "uniqueSkus": [
- "testSKU1"
], - "createdAt": "2022-03-31T09:43:32.873Z",
- "pendingAt": "2022-03-31T09:43:32.973Z"
}, - {
- "id": "60647c3c2b0daa66d6f459a2",
- "status": "rejected",
- "uniqueSkus": [
- "testSKU2"
], - "createdAt": "2022-03-15T09:43:32.873Z",
- "rejectedAt": "2022-03-16T13:28:09.719Z",
- "comment": "Price for ES is too low!!"
}, - {
- "id": "60647c3c2b0daf6a86f3387e",
- "status": "completed",
- "uniqueSkus": [
- "testSKU3"
], - "createdAt": "2022-01-15T09:43:32.873Z",
- "completedAt": "2022-02-30T18:21:55.492Z"
}
]
}Get Price suggestion by id
This endpoint returns detailed information about a specific price suggestion document. You would get all suggested prices for each sku per country. Hint: For game publisher internal reporting purposes, you can get the price suggestions which have been already applied by calling this enpoint and using as parameter the suggestionIds with status:"approved". You can find those suggestionIds by calling the endpoint "Get Price Suggestions".
path Parameters
| suggestionId required | string the price suggestion unique identifier on wappier platform |
Responses
Response samples
- 200
- 400
- 401
{- "id": "62ab0fffa6002d316096172f",
- "status": "pending",
- "platform": "android",
- "apiKey": "aa440g30-a2c9-4z8e-b161-7933b496d8ac",
- "package": "com.wappier.game",
- "pendingAt": "2022-05-12T09:32:14.518Z",
- "createdAt": "2022-05-12T09:32:14.518Z",
- "skuPrices": {
- "length": 1,
- "skus": [
- {
- "sku": "com.wappier.game.sku1",
- "basePrice": {
- "priceMicros": 1990000,
- "priceTier": null,
- "currency": "USD"
}, - "localPrices": [
- {
- "country": "GR",
- "appliedPrice": "15000000",
- "appliedPriceTier": null,
- "recommendedPrice": "20000000",
- "recommendedPriceTier": null,
- "defaultPrice": "10000000",
- "defaultPriceTier": null,
- "percChangeFromCurrent": "50%",
- "percChangeFromDefault": "100%",
- "currency": "EUR"
}
]
}
]
}
}Get Pending Price Suggestion
This endpoint returns detailed information about the pending price suggestion document for your application. Please note that you can have either none or one pending price suggestion every time.
Responses
Response samples
- 200
- 400
- 401
{- "id": "62ab0fffa6002d316096172f",
- "status": "pending",
- "platform": "android",
- "apiKey": "aa440g30-a2c9-4z8e-b161-7933b496d8ac",
- "package": "com.wappier.game",
- "pendingAt": "2022-05-12T09:32:14.518Z",
- "createdAt": "2022-05-12T09:32:14.518Z",
- "skuPrices": {
- "length": 1,
- "skus": [
- {
- "sku": "com.wappier.game.sku1",
- "basePrice": {
- "priceMicros": 1990000,
- "priceTier": null,
- "currency": "USD"
}, - "localPrices": [
- {
- "country": "GR",
- "appliedPrice": "15000000",
- "appliedPriceTier": null,
- "recommendedPrice": "20000000",
- "recommendedPriceTier": null,
- "defaultPrice": "10000000",
- "defaultPriceTier": null,
- "percChangeFromCurrent": "50%",
- "percChangeFromDefault": "100%",
- "currency": "EUR"
}
]
}
]
}
}Reject price suggestion
This endpoint updates the status of the specific pending price suggestion to rejected. Please make sure that you have checked the recommeded by wappier prices for all skus, before you reject the pending price suggestion programmatically. We highly recommend you to add the reason of the rejection. Hint: You can find the pending suggestionId which must be added in the request body as value of the property "id" by calling the "Get Pending Price Suggestion" endpoint.
Request Body schema: application/json
| id | string the suggestionId you have decided to reject. |
| comment | string the reason for rejection (optional) |
Responses
Request samples
- Payload
{- "id": "string",
- "comment": "string"
}Response samples
- 200
- 400
- 401
{- "id": "62ab0fffa6002d316096172f",
- "status": "rejected",
- "apiKey": "aa440g30-a2c9-4z8e-b161-7933b496d8ac",
- "platform": "android",
- "package": "com.wappier.game",
- "rejectedAt": "2022-05-12T09:32:14.518Z",
- "createdAt": "2022-05-12T09:32:14.518Z",
- "skuPrices": {
- "length": 1,
- "skus": [
- {
- "sku": "com.wappier.game.sku1",
- "basePrice": {
- "priceMicros": 1990000,
- "priceTier": null,
- "currency": "USD"
}, - "localPrices": [
- {
- "country": "GR",
- "appliedPrice": "15000000",
- "appliedPriceTier": null,
- "recommendedPrice": "20000000",
- "recommendedPriceTier": null,
- "defaultPrice": "10000000",
- "defaultPriceTier": null,
- "percChangeFromCurrent": "50%",
- "percChangeFromDefault": "100%",
- "currency": "EUR"
}
]
}
]
}
}Approve price suggestion
This endpoint updates the status of the specific pending price suggestion to approved. Please make sure that you have checked the recommeded by wappier prices for all skus, before you approve the pending price suggestion programmatically. Please note that by this action the publisher just approves the suggested prices and this endpoint does not apply the suggested prices to the stores. The wappier Operations team will apply the prices. Hint: You can find the pending suggestionId which must be added in the request body as value of the property "id" by calling the "Get Pending Price Suggestion" endpoint.
Request Body schema: application/json
| id | string the suggestionId you have decided to approve. |
Responses
Request samples
- Payload
{- "id": "string"
}Response samples
- 200
- 400
- 401
{- "id": "62ab0fffa6002d316096172f",
- "status": "approved",
- "platform": "android",
- "apiKey": "aa440g30-a2c9-4z8e-b161-7933b496d8ac",
- "package": "com.wappier.game",
- "approvedAt": "2022-05-12T09:32:14.518Z",
- "createdAt": "2022-05-12T09:32:14.518Z",
- "skuPrices": {
- "length": 1,
- "skus": [
- {
- "sku": "com.wappier.game.sku1",
- "basePrice": {
- "priceMicros": 1990000,
- "priceTier": null,
- "currency": "USD"
}, - "localPrices": [
- {
- "country": "GR",
- "appliedPrice": "15000000",
- "appliedPriceTier": null,
- "recommendedPrice": "20000000",
- "recommendedPriceTier": null,
- "defaultPrice": "10000000",
- "defaultPriceTier": null,
- "percChangeFromCurrent": "50%",
- "percChangeFromDefault": "100%",
- "currency": "EUR"
}
]
}
]
}
}This set of endpoints allows the calling application to integrate with wappier Global Pricing and Promotional Pricing services. It works in a user-centric way requiring wappier to maintain a full state for application users (events, transactions, etc.).
Global Pricing for specific user
This endpoint queries the available Global Pricing configuration for the specific userId and returns an SKUMap with the data found.
path Parameters
| userId required | string The user's id |
Responses
Response samples
- 200
- 400
- 401
{- "isTarget": true,
- "isInScope": true,
- "uuid": "f2db8bfb-bc89-5a3d-92d6-52d3c4032f64",
- "country": "GR",
- "data": [
- {
- "key": "sku_1",
- "value": [
- {
- "id": "612650626b91b67fdc6fdc66",
- "proxySku": "sku_1.wap_4a67",
- "start": 1587714323,
- "end": 4102444800
}
]
}
]
}Promotional Pricing offers for specific user
This endpoint queries the available Promotional Pricing configuration for the specific userId and returns a map with data found that matches the given tags.
path Parameters
| userId required | string The user's id |
Request Body schema: application/json
| tags | Array of strings personalized pricing offers that contain request body tags will be found |
Responses
Request samples
- Payload
{- "tags": [
- "string"
]
}Response samples
- 200
- 400
- 401
{- "isTarget": true,
- "isInScope": true,
- "uuid": "f2db8bfb-bc89-5a3d-92d6-52d3c4032f64",
- "country": "GR",
- "data": [
- {
- "key": "tag1",
- "value": [
- {
- "id": "612650626b91b67fdc6fdc66",
- "data": [
- "SKU1",
- "SKU2"
], - "start": 1587714323,
- "end": 4102444800
}
]
}
]
}This set of endpoints allows the calling application to integrate with wappier Global Pricing service only. It works in a user agnostic way without keeping any state for application users.
Global Pricing for all countries
This endpoint returns an SKUMap for all countries configured for this application.
Responses
Response samples
- 200
- 400
- 401
{- "uuid": "f2db8bfb-bc89-5a3d-92d6-52d3c4032f64",
- "data": [
- {
- "key": "GR",
- "value": [
- {
- "key": "sku_1",
- "value": [
- {
- "id": "615ec62d19fa590e5cf13843",
- "start": 1587714323,
- "end": 4102444800,
- "proxySku": "testProxySku"
}
]
}
]
}
]
}Global Pricing for a country
This endpoint returns an SKUMap for the specific country for this application (given country is enabled).
path Parameters
| country required | string The country's code (ISO 2-letter code) |
Responses
Response samples
- 200
- 400
- 401
{- "uuid": "f2db8bfb-bc89-5a3d-92d6-52d3c4032f64",
- "data": [
- {
- "key": "GR",
- "value": [
- {
- "key": "sku_1",
- "value": [
- {
- "id": "615ec62d19fa590e5cf13843",
- "start": 1587714323,
- "end": 4102444800,
- "proxySku": "sku_1.wap_4a67"
}
]
}
]
}
]
}Global Pricing for a user
This endpoint returns an SKUMap for the specific country and userId for this application. This call is only available for Global Pricing and doesn't depend on any state for the given user and the caller has to specify the country.
path Parameters
| country required | string The country's code (ISO 2-letter code) |
| userId required | string User's id |
Responses
Response samples
- 200
- 400
- 401
{- "isTarget": true,
- "isInScope": true,
- "uuid": "f2db8bfb-bc89-5a3d-92d6-52d3c4032f64",
- "country": "GR",
- "data": [
- {
- "key": "sku_1",
- "value": [
- {
- "id": "612650626b91b67fdc6fdc66",
- "proxySku": "sku_1.wap_4a67",
- "start": 1587714323,
- "end": 4102444800
}
]
}
]
}User status for a user
This endpoint returns pricing status for a given country and userId for this application, doesn't depend on any state for the given user and the caller has to specify the country.
path Parameters
| country required | string The country's code (ISO 2-letter code) |
| userId required | string User's id |
Responses
Response samples
- 200
- 400
- 401
{- "isTarget": true,
- "isInScope": true
}These APIs allows the calling application to setup the specific store service account details. The service account is used by wappier manage application IAP using the store specific API.
Google service account
This endpoint sets the service account for Google Play Console for this application. This enables wappier platform to perform operation on the application listing on Google Play Console using the provided API.
Request Body schema: application/json
| client_x509_cert_url | string value from google json key. |
| auth_provider_x509_cert_url | string value from google json key. |
| token_uri | string value from google json key. |
| auth_uri | string value from google json key. |
| client_id | string value from google json key. |
| client_email | string value from google json key. |
| private_key | string value from google json key. |
| private_key_id | string value from google json key. |
| project_id | string value from google json key. |
| type | string value from google json key. |
Responses
Request samples
- Payload
{- "client_x509_cert_url": "string",
- "auth_provider_x509_cert_url": "string",
- "token_uri": "string",
- "auth_uri": "string",
- "client_id": "string",
- "client_email": "string",
- "private_key": "string",
- "private_key_id": "string",
- "project_id": "string",
- "type": "string"
}Response samples
- 200
- 400
- 401
{- "message": "googleServiceAccount updated successfully"
}Google service account by uploading file.
This endpoint sets the service account for Google Play Console for this application. This enables wappier platform to perform operation on the application listing on Google Play Console using the provided API.
Request Body schema: multipart/form-data
The Request Body of this request is a form containing .
| fileName | string <binary> |
Responses
Response samples
- 200
- 400
- 401
{- "message": "appleServiceAccount updated successfully"
}Apple service account
This endpoint sets the service account for App Store Connect API for this application. This enables wappier platform to perform operation on the application listing on Apple App Store.
Request Body schema: multipart/form-data
The Request Body of this request is a form containing .
| issuerId | string |
| apiKeyId | string |
| appId | string |
| privateKey | string <binary> |
| reviewScreenshot | string <binary> |
Responses
Response samples
- 200
- 400
- 401
{- "message": "appleServiceAccount updated successfully"
}This endpoint allows the calling application to set the specific configuration parameters needed for the correct operation of wappier Pricing services.
Mailing list
This endpoint sets the mailing list to receive email notifications for price suggestion updates for this application.
Request Body schema: application/json
Responses
Request samples
- Payload
[- "mail1@org1.com",
- "mail2@org1.com"
]Response samples
- 200
- 400
- 401
{- "message": "Mailing list updated successfully"
}