Reward Accumulation Postback API

In order to notify publisher that a user earned rewards through Buzzvil product, server-to-server integration between Buzzvil server and publisher’s server is necessary.

 

Please check detailed guide below according to your situation.

Please follow the steps below:

  1. Build a server endpoint where you can receive point accumulation request from Buzzvil.

    • Will name this endpoint url as “postback url”

  2. Integrate Buzzvil’s postback API following this guide.

  3. Inform your account manager of your postback url.

Please inform your account manager of which countries you are serving your application.

Follow BuzzStore integration guide to integrate Buzzvil’s reward system to your app.


Introduction

This postback API is only for publishers who are using Batch postback. For detail, please contact to Buzzvil BD Manager.

  • As batch postback sums up total points per user, the total number of requests per day is a lot less than that of real-time postback.

  • Please keep in mind that your server will receive several requests at a specific time. (00:00AM Local time)

 

 

Content

Detail

Content

Detail

1

Request Direction

Buzzvil → Publisher Server

2

HTTP Request method

POST - application/x-www-form-urlencoded

3

HTTP Request URL

Defined by publisher

4

HTTP Request Parameters

Refer to the table below

5

HTTP Response Code

BuzzScreen determines the success of the request based on the response code received from the publisher.

  • 200 (ok): Success

    • The code when the publisher server processed the request properly.

  • Response code other than 200: BuzzScreen retries the request to the publisher server up to 5 times exponentially within 24 hours.

    • Retries exponentially - 1 minute, 10 minutes, 1 hour, 3 hours, 24 hours

Note that even if the body contains an error, BuzzScreen will not retry if the response code is 200.

HTTP Request Parameters

Field

Type

Detail

Field

Type

Detail

transaction_id

String(64)

Use this to prevent duplicate rewards payouts.

If there exists a record with the same transaction_id in your server, don't give out the rewards to prevent duplicated payment.

user_id

String

User_id defined by publisher

event_at

Long

(timestamp)

The timestamp of the reward event in timestamp value. Time will be in UTC of the date.

Mostly, it's the same as the time of API request. However, it could vary in case there was the second trial of request.

extra

String

The date on which the user data has been collected. The format is 'YYYY-MM-DD HH:mm:ss'.

action_type

String

The type of action that the user has done in order to get the point.
New types can be added later.

  • d: daily user activity

point

Integer

Total reward points to offer for users

  • Total reward point is calculated based on user's daily activity.

data optional

String

Use this parameter when the parameters are encrypted. Please refer to the below for more information.

  • data : This is only included when parameter encryption is enabled.

    • Please refer to HTTP Request Parameter Encryption below.

Please use Postman API Client with the below settings to run internal postback tests:

  • Set request type as POST and enter the postback url

  • Add a Content-Type header with the value of application/x-www-form-urlencoded

 

  • Add the necessary HTTP request parameters in the x-www-form-urlencoded body with appropriate values

Request Parameter Validation optional

HTTP Request Parameter Encryption

Guide for decrypting data parameter when HTTP Request Parameter Encryption is enabled. Please follow the process below in order.

  1. JSON serialized parameters with UTF-8 encoding

  2. AES (CBC mode, PKCS7 padding) encryption

  3. base64 encoding

Encrypted data should be sent as 'data' parameter in HTTP POST request. When receiving it, data parameter from HTTP POST request should be decrypted as below.

  1. base64 decoding

  2. AES decoding

  3. JSON load

Please request for AES key and IV value to your account manager.

  • Example in plaintext

{ "transaction_id": 429482977, "user_id": "testuserid76301", "event_at": 1442984268, "extra": "2018-09-18 00:00:00", "action_type": "d", "point": 2 }
  • Example in ciphertext

    AES key and IV value in the example are both 12341234asdfasdf.

ePmd4+b9COUcUg2QZpzxugysNB/6TjE7uMWp1v3go6WO4gtbkotgijn6RPdb79pVkBlhxw2zQu7sWn+BM9+0YFXgVmIrl7nlqFhZQ8/0xDTZN48LNttvSLRnDCHXxeU7Mfucfw8wDa/1/+SbSgn9UoSUzHVDDk40Rt2S5nopQ0xqLedo2wPEQl9wovkhf+JrdD9ltEB9TFw1Uf+hvg8EQIBQp5bQIDlRzafh1hXhGH59vYdjO4TsjjlsX2eUa/v9