API for Data Forwarding
SUBMIT PURCHASE DATA
Please follow this technical information for sending purchase data, that generated at buying using with bercode.
The implementation of the service is using Representational State Transfer (REST) architecture (http://en.wikipedia.org/wiki/Representational_state_transfer), and JavaScript Object Notation (JSON) (http://json.org) data transfer protocol. The service is easy to use with different development platforms and languages with REST and JSON.
You can query the code validity, the provided discount, and the commission rate, by giving the bercode used for the purchase.
It can be retrieved by HTTP GET calls at https://www.bercode.com/api/checkcode/[store]/[bercode] link, where the [store] is the Api ID of the merchant given on https://www.bercode.com page, where the purchase was, and the [bercode] is the value of the bercode, that you want to check. You can use HTTP Basic authentication for the login, with the Api ID and Api Key data, that you can get at the Purchase data – Purchase settings page of https://www.bercode.com site.
For example: https://www.bercode.com/api/checkcode/554732/348000419064329953
The answer contains the data that belongs to the [bercode] in JSON format:
Parameter |
Explanation |
error |
error code |
errortext |
description of the error, in case of error |
fueldiscount |
discount rate based on bercode for fuel at normal price |
specialfueldiscount |
discount rate based on bercode for fuel at special price |
discountpercent |
discount rate based on bercode at normal price |
specialdiscountpercent |
discount rate based on bercode at special price |
provisionpercent |
the value of the commission to be calculated from the discounted price |
specialprovisionpercent |
the value of the commission to be calculated from the discounted price in case of already discounted products |
fuelprovision |
the value of the commission to be calculated from the discounted price for fuel |
specialfuelprovision |
the value of the commission to be calculated from the discounted price for already discounted fuel |
discountunit |
Quantity unit of fuel discount. |
If the value of error is 0, then the Bercode is appropriate, and the discount can be provided.
If the code is wrong, then the value of error will be the following:
error |
errortext |
1 |
Unknown bercode |
2 |
Wrong bercode level |
3 |
The bercode is expired |
4 |
The bercode issuer is not authorized at the merchant. |
For example, the answer is: {"response":{"discountunit":"HUF/l","discountpercent":10,"specialdiscountpercent":5,"fueldiscount":8,"specialfueldiscount":4,"fuelprovision":"3.00","provisionpercent":3,"error":0,"errortext":""},"statusCode":200}
The given standard HTTP response codes for requests:
HTTP Status Code |
Explanation |
200 |
Data submit is okay. |
400 |
The request could not be understood by the server due to malformed syntax. |
401 |
The request requires user authentication. |
500 |
The server encountered an unexpected condition which prevented it from fulfilling the request. |
The summarized purchase data can be transferred via HTTP PUT calls to https://www.bercode.com/api/provision. You can use HTTP Basic authentication for the login, with the Api ID and Api Key data, that you can get at the Purchase data – Purchase settings page of https://www.bercode.com site. One PUT call can contains more object in one JSON array format, in the body of the PUT call. The MIME type of the PUT call must be application/json.
Description |
Type |
Explanation |
bercode |
String |
The value of the bercode used for the purchase. |
time |
String |
Purchase date and time in ISO8601 format. |
store |
String |
Merchant Api ID |
cr |
String |
The cash register code in the partner’s system, where the purchase was. It is optional. |
currency |
String |
ISO 4217 currency code. |
id |
String |
The unique ID of the purchase, in the partner’s system. |
tally |
Array |
Aggregated data of the purchased items. |
items | Array | Detailed data of the purchased items. It is optional. |
The tally array contains the products data aggregated by rule parameter. If the purchase contains normal price products only, or special price products only, then the prices must be added together, and it must be given in one row in the tally array. If the purchase contains normal price products and special price products too, then the tally array contains two rows.
Description |
Type |
Explanation |
rule |
Integer |
Value can be 0 or 1 only. 0 = normal price, 1 = special price |
price |
Number |
The sum of the normal price of the products. |
discountprice |
Number |
The sum of the special price of the products. |
discountpercent |
Number |
Percentage value of discount. |
provision |
Number |
Amount of payable commission. |
quantity |
Number |
The quantity of the products. |
discountunit |
Number |
The unit of the discount. Value can be 1 or 2 only. 1 - %, 2 – unit received in checkcode function discountunit parameter. The quantity is required in case of 2. |
The items array contains the detailed data of the products. It is optional. Its value is deleted from the server after 45 days.
Description |
Type |
Explanation |
item_serno |
Integer |
Lot number |
item_id | String | Product identifier |
item_name | String | Product name |
quantity | Number | Quantity |
unit_name | String | Packaging unit |
unit_price | Number | Net unit price |
vat | Number | Value added tax |
item_amount | Number | Item total amount payable |
For example: {"bercode":"348123415093345678", "time":"2013-07-08T15:20:38Z", "store":"554732", "cr":"028", "currency":"HUF", "id":"79e242c0",
"tally":[{"rule":0, "price":2381, "discountprice":2000, "discountpercent":16, "discountunit":1, "provision":60}]}
In case of fuel and shop product purchase:
{"bercode":"348123415093345678", "time":"2013-07-08T15:20:38Z", "store":"554732", "cr":"028", "id":"79e242c0", "currency":"HUF",
"tally":[{"rule":0, "price":1000, "discountprice":900, "discountpercent":10, "provision":27, "discountunit":1},{"quantity":"20", "rule":"0", "price":6000, "discountprice":5840, "discountpercent":8, "provision":60, "discountunit":2}]}
The given standard HTTP response codes for requests:
HTTP Status Code |
Explanation |
201 |
Data request is okay. |
400 |
The request could not be understood by the server due to malformed syntax. |
401 |
The request requires user authentication. |
409 |
The given ID already exists. |
500 |
The server encountered an unexpected condition which prevented it from fulfilling the request. |
It is enough to send the purchase data for the settlement; the following two options are optional:
The submitted purchase data can be check via HTTP GET calls to https://www.bercode.com/api/provision/[id]. You must give the unique ID of the purchase as the [id].
For example: https://bercode.com/api/provision/79e242c0
The response to the request contains the data for the given [id] in JSON format.
The given standard HTTP response codes for requests:
HTTP Status Code |
Explanation |
201 |
Data request is okay. |
400 |
The request could not be understood by the server due to malformed syntax. |
401 |
The request requires user authentication. |
404 |
The given ID not exists. |
500 |
The server encountered an unexpected condition which prevented it from fulfilling the request. |
The submitted purchase data can be delete via HTTP DELETE calls to https://www.bercode.com/api/provision/[id]. You must give the unique ID of the purchase, that you want to delete, as the [id].
For example: https://edc.hu/api/provision/79e242c0
HTTP Status Code |
Explanation |
201 |
Data request is okay. |
400 |
The request could not be understood by the server due to malformed syntax. |
401 |
The request requires user authentication. |
404 |
The given ID not exists. |
500 |
The server encountered an unexpected condition which prevented it from fulfilling the request. |
You can use barcodes on the https://www.bercode.com/content/uploads/tesztvonalkodok.pdf page to test the process.