Payout
In order for the user to redeem his collected rewards, they must be paid out. A reward can only be paid out exactly once.
For an easier integration process and a more seamless user experience, we highly recommend using the server-side reward handling as laid out on this page. If you cannot handle the rewards via server and you need to handle them inside the app, please refer to this section instead.
Server-to-server payout
In order to use the server-to-server payout, you need to create an endpoint on your server that we can request in order to notify you of the user's rewards. Once you receive the notification, it will be up to you to deliver it to the user.
We highly recommend using server-to-server payout for rewards due to higher security and better transparency on your end.
Endpoint structure
We will call your endpoint with an HTTP GET
request and the configured parameters:
Parameter | Detail | Format | Type |
| The Id of the user that should get the rewards | string | mandatory |
| The request signature, which should be used to verify request authenticity. | string | mandatory |
| The amount of virtual currency the user should get | integer | mandatory |
| The name of the virtual currency | string | mandatory |
| The unique transaction ID | UUID v4 | mandatory |
| optional device id | string | optional |
| URL encoded app name in English | string | optional |
| optional app id of the sdk | string | optional |
| optional app id that generate the usage | string | optional |
| optional reward level | string | optional |
| optional reward type | string | optional |
| The network where the user was bought by your app, e.g. adwords, facebook, organic | string | optional |
| The channel of the campaign in the network where the user was bought, e.g. incent, video | string | optional |
| The encrypted package name or app id of the sub publisher app in the network where the user was bought | string | optional |
| The cleartext package name of app id of the sub publisher app in the network where the user was bought, e.g. com.domain.appName | string | optional |
| The placement of Playtime inside your app, e.g. shop | string | optional |
Security
To ensure that requests come from us, you should calculate the sid
parameter and compare it to the parameter sent in the callback. It is calculated as follows: sid = sha1(concatenate(trans_uuid, user_uuid, currency, coin_amount, device_id, sdk_app_id, s2s_token))
We will supply you with the parameter s2s_token
separately.
Example Endpoint URL:
https://example.com/example?[YourParamName]={user_uuid}&[YourParamName]={sid}&[YourParamName]={coin_amount}&[YourParamName]={currency}&[YourParamName]={trans_uuid}&[YourParamName]={ua_network}&[YourParamName]={ua_channel}&[YourParamName]={ua_subpublisher_encrypted}&[YourParamName]={ua_subpublisher_cleartext}&[YourParamName]={placement}
Last updated