Skip to content

Giftery API ​

API Reference ​

All Giftery API methods are available over the HTTPS protocol on URL https://api.giftery.es/v1

Request parameters ​

https://api.giftery.es/v1/?id={ID}&cmd={CMD}&data={DATA}&sig={SIG}&in={in}&out={json}
paramdescription
idRequired. ID assigned to partner.
cmdRequired. Method name.
dataRequired. Query parameters in the selected format.
sigRequired: Signature authorizing request validity.
inRequest parameters format (json / xml / url-encoded). Default: url-encoded
outOutput format (json / xml / url). Default: json

Example:

https://api.giftery.es/v1/
?id=322
&cmd=makeOrder
&data=product_id%3D726%26face%3D50%26testmode%3D1
&sig=0f7ebdda213e3ed38eede322a562ae5ad322f2154a5de7ebe1819e84645664e1

Steps to sign request (“sig” parameter generation) ​

paramdescription
cmdRequested method
data"data" as string from the request. Example: "product_id=343&face=2000"
secretSecret key assigned to partner

Calculate SHA256-hash of string concatenation

sig = sha256(cmd + data + secret) // sha256-hash from concatenated string, 64 chars

Example:

javascript
sig = sha256("testCmd" + "value=1" + "verySecretString");
sig == "18beeebac7b9889627aa67598faa50625cf400cd3073d0c0dc940ab3b8c6ae49"; // true

Request status and error handling ​

On success the response would be the following (parameter “out=json”):

json
{"status": "ok",  "data": {...}}

On error:

json
{"status": "error", "error": {"code": 3601, "text": "Некорректно заполнены поля: face"}}

Script for Postman ​

This pre-script will help configure the working environment in Postman for convenient interaction with the Giftery API.

javascript
/**
* GET https://{{host}}?cmd=Test&data=[]&sig={{sig}}&id={{id}}    
**/


const clientID = 'YOUR_ID';
const secretKey = 'YOUR_SECRET';
const apiHost = 'API_HOST';

let url = pm.request.url.toString();

let _cmd = getQueryParameter(url, 'cmd');
let _data = getQueryParameter(url, 'data');

let concatenatedString = _cmd + _data + secretKey;
let signature = CryptoJS.SHA256(concatenatedString).toString(CryptoJS.enc.Hex);

pm.environment.set('sig', signature);
pm.environment.set('id', clientID);
pm.environment.set('host', apiHost);

function getQueryParameter(url, parameterName) {
    const queryString = url.split('?')[1];
    if (!queryString) return "";

    const paramPairs = queryString.split('&');
    for (const pair of paramPairs) {
        const [key, ...rest] = pair.split('=');
        if (key === parameterName) {
            return decodeURIComponent(rest.join('='));
        }
    }
    return "";
}