NAV Navigation
CURL Node.JS PHP Go

Zinari API

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The Zinari API provides a unified, user friendly and secure layer for developers to build their applications with support for different cryptocurrencies.

Create demo invoice:

Shows invoice example, non refundable

Typical Workflow

This is a typical core workflow for using different Zinari endpoints. A simple use-case is building an online store that accepts a selection of cryptocurrencies as payment options. Another example is creating a fundraising page for an event which accepts donations from different cryptocurrencies.

One more complex user case, a website developer can manage multiple client stores with cryptocurrencies integration since an Zinari account can have multiple stores linked with different cryptocurrency wallets. Service subscription mode is also supported by us. For these advanced user cases, please check the endpoint sections for details.

Supported cryptocurrency:

All examples are provided for the MainNet.

Registration

curl 'https://api.zinari.org/v2/register-zina' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce'
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce';

var options = {
    url: 'https://api.zinari.org/v2/register-zina',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce'
);
$response = Requests::post('https://api.zinari.org/v2/register-zina', $headers, $data);
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/register-zina", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"You only need to confirm email now"}

POST /v2/register-zina

Register a new account

Password requirements:

Do not use common sequences or your private details, add another word or two, consider using lowercase and uppercase and special symbols

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /v2/register-zina

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Creating Store

curl 'https://api.zinari.org/create-store' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn&name=myawesomestore'
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn';

var options = {
    url: 'https://api.zinari.org/create-store',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'xpub' => 'vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn'
);
$response = Requests::post('https://api.zinari.org/create-store', $headers, $data);
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/create-store", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Example response:

{"trade":"Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp","token":"108977327347814744673750678559203866607310312666213682394904038637537833731647","store":"ExCAYgcTx6PyDimVaCgmJ1VSdEaDoUkhRoTLgnmmqrrc","wallet":true}

POST /create-store

Creating new store

Beside the API reply, you should also receive email with store details

You could connect a wallet at this step, or you could connect it later

To connect your wallet, you need to provide Master Public key (xPub) for your wallet.

xPub keys can never be used to access your funds. The xPub does not contain any private key information.

Interested in How to find xPub key in your wallet?

Example for electrum wallet:

You could find xPub in electrum in Wallet->Wallet Information

Beside API reply you should also receive an email with store details

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
xpub body [string] false Master Public key (xPub)
name body [string] true store name

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

Response Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
store body [string] true store id
wallet body [boolean] true is wallet connected to the store

OPTIONS /create-store

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connecting Wallet

Connect BTC Wallet

curl 'https://api.zinari.org/connect-wallet' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'

curl 'https://api.zinari.org/connect-wallet-btc' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'

curl 'https://api.zinari.org/connect-wallet-btc-single' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=1HDhRLuWSXwBQLC3oxTQNKyPjos9BEufdF&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'

curl 'https://api.zinari.org/change-store-btc-wallet-status' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&single=false&store=4Y2otkewdai44wp23j7pbDwvt22E4a2oUnHJ8KYaGwKp'
// Connect BTC wallet (xPub)

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

// Connect BTC wallet (single address)

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=1HDhRLuWSXwBQLC3oxTQNKyPjos9BEufdF&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-btc-single',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

/* Connect BTC wallet  (xPub) */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'xpub' => 'vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet', $headers, $data);

/* Connect BTC wallet  (single address) */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => '1HDhRLuWSXwBQLC3oxTQNKyPjos9BEufdF',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-btc-single', $headers, $data);

// Connect BTC wallet (xPub)

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpub5Gqqu8RiML18u93aJLEaEGXxE7CCtjx3Lg84UTYowu86RkDzNCW9nJ5tPp59MvHdmDiD5sSLc3wpR2zqcfjhjarVTqxdHQsZFDFXaaQimPn&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Connect BTC wallet (single address)

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"strings"
)

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=1HDhRLuWSXwBQLC3oxTQNKyPjos9BEufdF&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-btc-single", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}


Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}
{"success":"Store bitcoin wallet single status is set to: true"}

POST /connect-wallet or POST /connect-wallet-btc

Connect a new Bitcoin wallet to the store (using xPub key)

To connect your wallet you need to provide Master Public key (xPub) for your wallet.

xPub keys can never be used to access your funds. The xPub does not contain any private key information.

You can find xPub in electrum in Wallet->Wallet Information

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
xpub body [string] true Master Public key (xPub)
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet or /connect-wallet-btc

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

POST /connect-wallet-btc-single

Connect a new Bitcoin wallet to the store (using address)

To connect your wallet your need to provide your wallet address. This can even be an exchange address, however we recommend you use a cold wallet, and not to store your funds on the exchange. Alsom the exchange could take some fees for deposits. In case you are using our Dashboard this is default method for a new user. In case your a big merchant with high frequent multiple transactions we recommend you use xPub key (that generates a new address for every invoice).

Also, in case you are using the API directly, you are required to connect the xPub key first anyway. Afterwards, you connect the bitcoin single address to a store, that store would be using the Bitcoin single address automatically, however you could switch a store back to the xPub by using /change-store-btc-wallet-status

In case you are a new user and used Dashboard we would use our own xPub key, but still be using the bitcoin single address that you are provided; change-store-btc-wallet-status is changed to true automatically after you connect the single bitcoin address. However, you could connect your own xPub key as well.

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true Bitcoin address
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-btc-single

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

POST /change-store-btc-wallet-status

Change store status between Bitcoin xPub and Bitcoin single address

You could provide single=true or single=false to enable or disable Bitcoin single address for your store. Consider that if you disable it, you must also have your own xPub key connected (connect-wallet-btc) to the wallet. Also, every invoice that was created with connected single address would be still using Bitcoin single address. Same apply for xPub key (in case you didn't connected single address before the created invoice with connected xPub key); that invoice would still be using the address that is generated from xPub key.

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
single body [string] true ether true or false
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /change-store-btc-wallet-status

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None
curl 'https://api.zinari.org/connect-wallet-ltc' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpubd55ruGbQfbahASUtRGdzeUCnKkvVuCgXjnMZGYG3r3cu9kP1LW8ifB48ZN2mDEjmLjhh3CuikintZGGyPEAXpVDJHdLmrAcSYzMehiqrKax&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect LTC wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpubd55ruGbQfbahASUtRGdzeUCnKkvVuCgXjnMZGYG3r3cu9kP1LW8ifB48ZN2mDEjmLjhh3CuikintZGGyPEAXpVDJHdLmrAcSYzMehiqrKax&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-ltc',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect LTC wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'xpub' => 'vpubd55ruGbQfbahASUtRGdzeUCnKkvVuCgXjnMZGYG3r3cu9kP1LW8ifB48ZN2mDEjmLjhh3CuikintZGGyPEAXpVDJHdLmrAcSYzMehiqrKax',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-ltc', $headers, $data);
// Connect LTC wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&xpub=vpubd55ruGbQfbahASUtRGdzeUCnKkvVuCgXjnMZGYG3r3cu9kP1LW8ifB48ZN2mDEjmLjhh3CuikintZGGyPEAXpVDJHdLmrAcSYzMehiqrKax&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-ltc", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-ltc

Connect a new Litecoin wallet to the store

To connect your wallet you need to provide Master Public key (xPub) for your wallet.

xPub keys can never be used to access your funds. The xPub does not contain any private key information.

You can find xPub in electrum-ltc in Wallet->Wallet Information

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
xpub body [string] true Master Public key (xPub)
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-ltc

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect ETH Wallet

curl 'https://api.zinari.org/connect-wallet-eth' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect ETH wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-eth',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect ETH wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => '0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-eth', $headers, $data);
// Connect ETH wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-eth", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-eth

Connect a new Ethereum wallet to the store

To connect your wallet you need to provide your wallet address.

You could use any wallet, for example: MyEtherWallet

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-eth

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Ethereum Tokens

curl 'https://api.zinari.org/connect-wallet-eth-token' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=USDT'
// Connect USDT Wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=USDT';

var options = {
    url: 'https://api.zinari.org/connect-wallet-eth-token',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect USDT wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => '0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E',
	'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc',
	'name' => 'USDT'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-eth-token', $headers, $data);
// Connect USDT wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=USDT}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-eth-token", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-eth-token

Connect a new Ethereum wallet to the store, for use with Ethereum token

To connect your wallet you need to provide your wallet address and Token name

You could use any wallet, for example: MyEtherWallet

Sometimes legacy mew has better token management

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id
name body [string] true token name (DAI, USDT)

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

POST /add-new-eth-token

Request to add new token support

Only users with forgingblock administrator role could confirm request

Parameters

Parameter In Type Required Description
contract body [string] true token contract address
decimals body [string] true token decimals
name body [string] true token name (for ex.: DAI or USDT)

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-eth-token and /add-new-eth-token

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect Monero Wallet

curl 'https://api.zinari.org/connect-wallet-xmr' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=47EmdKL6kPfFGD9E2PK3izHcdGZRwTrALLMBjo2gVXFwX6wsYcvfsEGFrHAwMkB3Wu6jUYjGc2WozMJ1Z1ACcJwkBjdce86&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&viewkey=544abexxxxxe2xxxx390xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
// Connect Monero wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=47EmdKL6kPfFGD9E2PK3izHcdGZRwTrALLMBjo2gVXFwX6wsYcvfsEGFrHAwMkB3Wu6jUYjGc2WozMJ1Z1ACcJwkBjdce86&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&viewkey=544abexxxxxe2xxxx390xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

var options = {
    url: 'https://api.zinari.org/connect-wallet-xmr',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Monero wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
	'address' => '47EmdKL6kPfFGD9E2PK3izHcdGZRwTrALLMBjo2gVXFwX6wsYcvfsEGFrHAwMkB3Wu6jUYjGc2WozMJ1Z1ACcJwkBjdce86',
	'viewkey' => '544abexxxxxe2xxxx390xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-xmr', $headers, $data);
// Connect Monero wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=47EmdKL6kPfFGD9E2PK3izHcdGZRwTrALLMBjo2gVXFwX6wsYcvfsEGFrHAwMkB3Wu6jUYjGc2WozMJ1Z1ACcJwkBjdce86&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&viewkey=544abexxxxxe2xxxx390xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-xmr", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-xmr

Connect a new Monero wallet to the store

To connect your wallet you need to provide your wallet address and secret viewkey (secret viewkey doesn't provide control on funds, but makes transaction details not private, and allows us to get exact amounts from transactions).

You could find your secret viewkey in Monero GUI Wallet in Settings->Show seed & keys

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id
viewkey body [string] true wallet secret viewkey

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-xmr

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect XTZ Wallet

curl 'https://api.zinari.org/connect-wallet-xtz' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=tz1WtUam6YiTYod57FiqxiCy3hTQ1vRiKbM2&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect XTZ wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=tz1WtUam6YiTYod57FiqxiCy3hTQ1vRiKbM2&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-xtz',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect XTZ wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => 'tz1WtUam6YiTYod57FiqxiCy3hTQ1vRiKbM2',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-xtz', $headers, $data);
// Connect XTZ wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=tz1WtUam6YiTYod57FiqxiCy3hTQ1vRiKbM2&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-xtz", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-xtz

Connect a new Tezos wallet to the store

To connect your wallet you need to provide your wallet address.

You could use any wallet, for example: Galleon

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-xtz

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect EOS Wallet

curl 'https://api.zinari.org/connect-wallet-eos' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=proxyrozy123&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect EOS wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=proxyrozy123&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-eos',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect EOS wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => 'proxyrozy123',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-eos', $headers, $data);
// Connect EOS wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=proxyrozy123&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-eos", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-eos

Connect a new EOS account to the store

To connect your wallet you need to provide your wallet account name.

You could use any wallet, for example: SimplEOS

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet account name
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-eos

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

EOS Tokens

curl 'https://api.zinari.org/connect-wallet-eos-token' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=fbtstaccount&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=IQ'
// Connect Everipedia Wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=fbtstaccount&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=IQ';

var options = {
    url: 'https://api.zinari.org/connect-wallet-eos-token',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Everipedia wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => 'fbtstaccount',
	'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc',
	'name' => 'IQ'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-eos-token', $headers, $data);
// Connect Everipedia wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=fbtstaccount&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=IQ}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-eos-token", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-eos-token

Connect a new EOS token wallet account to the store

To connect your wallet you need to provide your wallet account name

You could use any wallet, for example: SimplEOS

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet account name
store body [string] true store id
name body [string] true token name (IQ)

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

POST /add-new-eos-token

Request to add new token support

Only users with forgingblock administrator role could confirm request

Parameters

Parameter In Type Required Description
code body [string] true Representation of privileged EOSIO name type, for ex.: eosio.token
name body [string] true token name (for ex.: IQ)

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-eos-token and /add-new-eos-token

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect Digibyte Wallet

curl 'https://api.zinari.org/connect-wallet-dgb' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=dgb1qk23j5f2te4yvaegwgxj5uhr9jn3k9awr2ht7lr&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect Digibyte wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=dgb1qk23j5f2te4yvaegwgxj5uhr9jn3k9awr2ht7lr&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-dgb',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Digibyte wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => 'dgb1qk23j5f2te4yvaegwgxj5uhr9jn3k9awr2ht7lr',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-dgb', $headers, $data);
// Connect Digibyte wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=dgb1qk23j5f2te4yvaegwgxj5uhr9jn3k9awr2ht7lr&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-dgb", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-dgb

Connect a new Digibyte wallet to the store

To connect your wallet you need to provide your wallet address.

You could use any wallet, for example: Official DigiByte Wallet

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-dgb

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect ReddCoin Wallet

curl 'https://api.zinari.org/connect-wallet-rdd' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=Rhf1ND9ZiqJgfMmXqj3UenM8W98zvWHKXm&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect ReddCoin wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=Rhf1ND9ZiqJgfMmXqj3UenM8W98zvWHKXm&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-rdd',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect ReddCoin wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => 'Rhf1ND9ZiqJgfMmXqj3UenM8W98zvWHKXm',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-rdd', $headers, $data);
// Connect ReddCoin wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=Rhf1ND9ZiqJgfMmXqj3UenM8W98zvWHKXm&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-rdd", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-rdd

Connect a new ReddCoin wallet to the store

To connect your wallet you need to provide your wallet address.

You could use any wallet, for example: Reddcoin Core Wallet

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-rdd

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect Ravencoin Wallet

curl 'https://api.zinari.org/connect-wallet-rvn' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=RNecXg9GkKtRAGhRXtW2nmKvzKL7HSksNz&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Connect Ravencoin wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=RNecXg9GkKtRAGhRXtW2nmKvzKL7HSksNz&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/connect-wallet-rvn',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Ravencoin wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => 'RNecXg9GkKtRAGhRXtW2nmKvzKL7HSksNz',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/connect-wallet-rvn', $headers, $data);
// Connect Ravencoin wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=RNecXg9GkKtRAGhRXtW2nmKvzKL7HSksNz&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/connect-wallet-rvn", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /connect-wallet-rvn

Connect a new Ravencoin wallet to the store

To connect your wallet you need to provide your wallet address.

You could use any wallet, for example: Ravencoin Wallet

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /connect-wallet-rvn

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect KSM Wallet

curl 'https://api.zinari.org/v2/connect-wallet-ksm' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Ef42pGYNzM9wttEAquij2zcYSGnNmfdy4ktL2mCqZm8Ftdu'
// Connect KSM wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Ef42pGYNzM9wttEAquij2zcYSGnNmfdy4ktL2mCqZm8Ftdu';

var options = {
    url: 'https://api.zinari.org/v2/connect-wallet-ksm',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect KSM wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'address' => 'Ef42pGYNzM9wttEAquij2zcYSGnNmfdy4ktL2mCqZm8Ftdu'
);
$response = Requests::post('https://api.zinari.org/v2/connect-wallet-ksm', $headers, $data);
// Connect KSM wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Ef42pGYNzM9wttEAquij2zcYSGnNmfdy4ktL2mCqZm8Ftdu}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/connect-wallet-ksm", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /v2/connect-wallet-ksm

Connect a new Kusama wallet to the store

To connect your wallet you need to provide your wallet address.

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
address body [string] true wallet address

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /v2/connect-wallet-ksm

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect Xenios Coin

curl 'https://api.zinari.org/v2/connect-wallet-xnc' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf'
// Connect Xenios Coin wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf';

var options = {
    url: 'https://api.zinari.org/v2/connect-wallet-xnc',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Xenios Coin wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'address' => 'Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf'
);
$response = Requests::post('https://api.zinari.org/v2/connect-wallet-xnc', $headers, $data);
// Connect Xenios Coin wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/connect-wallet-xnc", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /v2/connect-wallet-xnc

Connect a new Xenios Coin wallet to the store

To connect your wallet you need to provide your wallet address.

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
address body [string] true wallet address

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /v2/connect-wallet-xnc

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect Oduwa Coin

curl 'https://api.zinari.org/v2/connect-wallet-owc' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf'
// Connect Oduwa Coin wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf';

var options = {
    url: 'https://api.zinari.org/v2/connect-wallet-owc',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Oduwa Coin wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'address' => 'Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf'
);
$response = Requests::post('https://api.zinari.org/v2/connect-wallet-owc', $headers, $data);
// Connect Oduwa Coin wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=Xy43NMxC2HBJYfXuDDq6iQ3KVZQaaKn8uf}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/connect-wallet-owc", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /v2/connect-wallet-owc

Connect a new Oduwa Coin wallet to the store

To connect your wallet you need to provide your wallet address.

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
address body [string] true wallet address

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /v2/connect-wallet-owc

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect TUSC

curl 'https://api.zinari.org/v2/connect-wallet-tusc' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=testtest1'
// Connect TUSC

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=testtest1';

var options = {
    url: 'https://api.zinari.org/v2/connect-wallet-tusc',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect TUSC */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'address' => 'testtest1'
);
$response = Requests::post('https://api.zinari.org/v2/connect-wallet-tusc', $headers, $data);
// Connect TUSC

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&address=testtest1}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/connect-wallet-tusc", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /v2/connect-wallet-tusc

Connect a new TUSC account to the store

To connect you need to provide your registed account name

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
address body [string] true account name

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /v2/connect-wallet-tusc

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Connect Zinari

curl 'https://api.zinari.org/v2/connect-wallet-bsc-token' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=ZINA'
// Connect Zinari Wallet

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=ZINA';

var options = {
    url: 'https://api.zinari.org/v2/connect-wallet-bsc-token',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Connect Zinari Wallet */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'address' => '0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E',
	'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc',
	'name' => 'ZINA'
);
$response = Requests::post('https://api.zinari.org/v2/connect-wallet-bsc-token', $headers, $data);
// Connect Zinari Wallet

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&address=0x1Cf4E5001AB8D369d2d76B87658eE719f85e2D6E&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=ZINA}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/connect-wallet-bsc-token", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc wallet was successfully updated"}

POST /v2/connect-wallet-bsc-token

Connect a new BSC wallet to the store, for use with Zinari

To connect your wallet you need to provide your wallet address and Token name

You could use any wallet, for example: Metamask with BSC (Binance Smart Chain) network selected

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
address body [string] true wallet address
store body [string] true store id
name body [string] true token name (WBNB, BUSD, ZINA)

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

Wallets Connection Status

curl 'https://api.zinari.org/wallet-connection-status' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce'
curl 'https://api.zinari.org/wallet-connection-status-store' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Wallet's Connection Status

request(options, callback);

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce';

var options = {
    url: 'https://api.zinari.org/wallet-connection-status,
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Wallets Connection Status */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce'
);
$response = Requests::post('https://api.zinari.org/wallet-connection-status', $headers, $data);
// Wallets Connection Status

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/wallet-connection-status", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{
    "btc": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "xpub": "tpubD8szuhbEMy3YsXcfREnurMrKu8b5mNS6iXkoPoPj3pdkHEX9wjgNAs4zgG56tEYiNQUjCQ9L4UUxsniaSvQyDVfzG86n8mAmNcyE7ppPzCL"
        },
        {
            "store": "Ars6dcaC2sKSQL7dJ88JHDx8ewS1DdDh5VuXotWypqVu",
            "xpub": "tpubD8szuhbEMy3YsXcfREnurMrKu8b5mNS6iXkoPoPj3pdkHEX9wjgNAs4zgG56tEYiNQUjCQ9L4UUxsniaSvQyDVfzG86n8mAmNcyE7ppPzCL-[legacy]"
        }
    ],
    "ltc": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "xpub": "tpubD98231kvgEd78q3yYBCLGZj9zpK3mqAb7dzJBt7Zki8Z1EgAv3Jw3k3Eqp2iiYzqwvUD9jciD9L321ziDUqoJQ2o5uUvhWuegQ5MEvBcM3M"
        },
        {
            "store": "Ars6dcaC2sKSQL7dJ88JHDx8ewS1DdDh5VuXotWypqVu",
            "xpub": ""
        }
    ],
    "eth": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "0x1cf4e5001ab8d369d2d76b87658ee719f85e2d6e"
        }
    ],
    "ethTokens": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "0x1cf4e5001ab8d369d2d76b87658ee719f85e2d6e",
            "name": "DAI"
        },
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "0x1cf4e5001ab8d369d2d76b87658ee719f85e2d6e",
            "name": "USDT"
        }
    ],
    "bch": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "xpub": "tpubD6NzVbkrYhZ4XQucnzr7LNP8MrMjASTn7h1Xz9Eqj8rnq3bxL31qZF1t9k9vJ4GQJKQA63b1RZQixmwxhaX74xzWR4Hm9t8mBAoquxrNLQh"
        }
    ],
    "eos": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "proxyrozy123"
        }
    ],
    "eosTokens": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "eedae1dair5w",
            "name": "IQ"
        },
        {
            "store": "Ars6dcaC2sKSQL7dJ88JHDx8ewS1DdDh5VuXotWypqVu",
            "address": "eedae1dair5w",
            "name": "IQ"
        }
    ],
    "xmr": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "47EmdKL6kPfFGD9E2PK3izHcdGZRwTrALLMBjo2gVXFwX6wsYcvfsEGFrHAwMkB3Wu6jUYjGc2WozMJ1Z1ACcJwkBjdce86",
            "viewkey": "544xxx"
        }
    ],
    "dgb": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "DKcG9GiYeCnvHbnBHsdTsYGfmMfYjFLQAv"
        }
    ],
    "rdd": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "Rhf1ND9ZiqJgfMmXqj3UenM8W98zvWHKXm"
        }
    ],
    "rvn": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "mmZFk7bQiWN5C4ga74xCNpPGnK3BrNQPT3"
        }
    ],
    "xtz": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "tz1VttGDs9M2kr3zMfLRHqACpAcNcKY2bYj5"
        }
    ]
}

{
    "btc": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "xpub": "tpubD8szuhbEMy3YsXcfREnurMrKu8b5mNS6iXkoPoPj3pdkHEX9wjgNAs4zgG56tEYiNQUjCQ9L4UUxsniaSvQyDVfzG86n8mAmNcyE7ppPzCL"
        }
    ],
    "ltc": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "xpub": "tpubD98231kvgEd78q3yYBCLGZj9zpK3mqAb7dzJBt7Zki8Z1EgAv3Jw3k3Eqp2iiYzqwvUD9jciD9L321ziDUqoJQ2o5uUvhWuegQ5MEvBcM3M"
        }
    ],
    "eth": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "0x1cf4e5001ab8d369d2d76b87658ee719f85e2d6e"
        }
    ],
    "ethTokens": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "0x1cf4e5001ab8d369d2d76b87658ee719f85e2d6e",
            "name": "DAI"
        },
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "0x1cf4e5001ab8d369d2d76b87658ee719f85e2d6e",
            "name": "USDT"
        }
    ],
    "bch": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "xpub": "tpubD6NzVbkrYhZ4XQucnzr7LNP8MrMjASTn7h1Xz9Eqj8rnq3bxL31qZF1t9k9vJ4GQJKQA63b1RZQixmwxhaX74xzWR4Hm9t8mBAoquxrNLQh"
        }
    ],
    "eos": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "proxyrozy123"
        }
    ],
    "eosTokens": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "eedae1dair5w",
            "name": "IQ"
        }
    ],
    "trx": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "419ad6fcdd3b423843d1b7077e3f08e50f02fa911c"
        }
    ],
    "xmr": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "47EmdKL6kPfFGD9E2PK3izHcdGZRwTrALLMBjo2gVXFwX6wsYcvfsEGFrHAwMkB3Wu6jUYjGc2WozMJ1Z1ACcJwkBjdce86",
            "viewkey": "544xxx"
        }
    ],
    "dgb": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "DKcG9GiYeCnvHbnBHsdTsYGfmMfYjFLQAv"
        }
    ],
    "rdd": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "Rhf1ND9ZiqJgfMmXqj3UenM8W98zvWHKXm"
        }
    ],
    "rvn": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "mmZFk7bQiWN5C4ga74xCNpPGnK3BrNQPT3"
        }
    ],
    "xtz": [
        {
            "store": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
            "address": "tz1VttGDs9M2kr3zMfLRHqACpAcNcKY2bYj5"
        }
    ]
}

POST /wallet-connection-status

Shows all connected wallets per account

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)

POST /wallet-connection-status-store

Shows all connected wallets for the store

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /wallet-connection-status and /wallet-connection-status-store

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Store Management

List All Stores, Remove a Store, & Change or Get Store Name

curl 'https://api.zinari.org/stores-list' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce'

curl 'https://api.zinari.org/remove-store' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'

curl 'https://api.zinari.org/get-store-name' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'

curl 'https://api.zinari.org/change-store-name' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=newstorename'
// List All Stores

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce';

var options = {
    url: 'https://api.zinari.org/stores-list',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Remove Store
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/remove-store',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Get Store Name
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/get-store-name',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Change Store Name
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=newstorename';

var options = {
    url: 'https://api.zinari.org/change-store-name',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

/* List All Stores */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce'
);
$response = Requests::post('https://api.zinari.org/stores-list', $headers, $data);

/* Remove Store */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/remove-store', $headers, $data);

/* Get Store Name */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/get-store-name', $headers, $data);

/* Change Store Name */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
	'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc',
	'name' => 'newstorename'
);
$response = Requests::post('https://api.zinari.org/change-store-name', $headers, $data);

// List All Stores

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/stores-list", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Remove Store

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/remove-store", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Get Store Name

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/get-store-name", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Change Store Name

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc&name=newstorename}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/change-store-name", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response example:

{"stores":[{"id":"DowbehHRkPNAqLTh3iwoNQwoARo3Jig2rE8Y8avgU4KC","name":"storename1"},{"id":"9ZTsUdvkdzDqvHq2MxF9SmBPhj5KvVSN3gQSNGmGBLyH","name":"storename2"}]}
{"success":"Store 8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc was successfully removed"}
{"name":"awesomestore"}
{"name":"newstorename"}

POST /stores-list

List All Stores ID's and Name's

Call support GET for request with a cookie

POST /remove-store & POST /get-store-name

Remove a store

POST /get-store-name

Get store name

POST /change-store-name

Change store name

Parameters

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
store body [string] true store id
name body [string] true store name

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /stores-list, /remove-store

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Shopify Integration

curl 'https://api.zinari.org/v2/add-shopify-store' -H 'Content-Type: application/x-www-form-urlencoded' \
--data '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&source=https://username.myshopify.com'

curl 'https://api.zinari.org/v2/add-source-shopify-store' -H 'Content-Type: application/x-www-form-urlencoded' \
--data '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&source=https://username2.myshopify.com'

curl 'https://api.zinari.org/v2/remove-source-shopify-store' -H 'Content-Type: application/x-www-form-urlencoded' \
--data '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&source=https://username2.myshopify.com'

curl 'https://api.zinari.org/v2/get-shopify-store-source' -H 'Content-Type: application/x-www-form-urlencoded' \
--data '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240'

POST /v2/add-shopify-store

Add Shopify Store for integration (you run this only once on creation), after which you should use /add-source-shopify-store even if removed all domain URLs

Correct domain name URL examples: https://username.myshopify.com, https://username.myshopify.com/, http://username.myshopify.com, http://mystore.com, https://mystore.com, https://mystore.com/

Incorrect domain name URL examples: https://username.myshopify.com/someproductlocation, https://mystore.com/someproductlocation, mystore.com, username.myshopify.com, https://username.myshopify.com/?_cd=2263d5ac8bde3e6f61ccba03711adc43d0a1cfdcdaaf98536a99c22e3286844c&_uid=61409788069&preview_theme_id=

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
source body [string] true Shopify Store Domain URL

POST /v2/add-source-shopify-store

Add Shopify Store Domain URL for integration

Correct domain name URL examples: https://username.myshopify.com, https://username.myshopify.com/, http://username.myshopify.com, http://mystore.com, https://mystore.com, https://mystore.com/

Incorrect domain name URL examples: https://username.myshopify.com/someproductlocation, https://mystore.com/someproductlocation, mystore.com, username.myshopify.com, https://username.myshopify.com/?_cd=2263d5ac8bde3e6f61ccba03711adc43d0a1cfdcdaaf98536a99c22e3286844c&_uid=61409788069&preview_theme_id=

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
source body [string] true Shopify Store Domain URL

POST /v2/remove-source-shopify-store

Remove Shopify Store Domain URL from integration

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
source body [string] true Shopify Store Domain URL to remove

POST /v2/get-shopify-store-source

Get and Array with current domain URLs for Shopify Store integration

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token

Invoice Management

Every new invoice lifetime is 15 minutes (avoiding volatility fluctuations)

Invoice status could be

Working directly with new invoices

curl 'https://api.zinari.org/create-invoice' -H 'Content-Type: application/x-www-form-urlencoded' \ 
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&amount=1550&currency=usd'

curl 'https://api.zinari.org/check-invoice' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&invoice=6174qz7YsYceLU1WSELTA8'

curl 'https://api.zinari.org/check-invoice-status' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&invoice=6174qz7YsYceLU1WSELTA8'

// Create new invoice

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var options = {
    url: 'https://api.zinari.org/create-invoice',
    headers: headers
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Get invoice details

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&invoice=6174qz7YsYceLU1WSELTA8';

var options = {
    url: 'https://api.zinari.org/check-invoice',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Get invoice status

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&invoice=6174qz7YsYceLU1WSELTA8';

var options = {
    url: 'https://api.zinari.org/check-invoice-status',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}
 /* Create new invoice */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'token' => '27045735428019377312427720305400499206734565713678297173539855010884886478240',
    'amount' => '1550',
    'currency' => 'usd'
);
$response = Requests::post('https://api.zinari.org/create-invoice', $headers, $data);


 /* Get invoice details */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'token' => '27045735428019377312427720305400499206734565713678297173539855010884886478240',
    'invoice' => '6174qz7YsYceLU1WSELTA8'
);
$response = Requests::post('https://api.zinari.org/check-invoice', $headers, $data);

 /* Get invoice status */
 
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg',
    'token' => '27045735428019377312427720305400499206734565713678297173539855010884886478240',
    'invoice' => '6174qz7YsYceLU1WSELTA8'
);
$response = Requests::post('https://api.zinari.org/check-invoice-status', $headers, $data);
// Create new invoice

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&amount=1550&currency=usd}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/create-invoice", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Get invoice details

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&invoice=6174qz7YsYceLU1WSELTA8}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/check-invoice", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Get invoice status

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=3s9LBmZb8yvXT5Dyb7rdrVMKmJkLXiknwPQ84TNxPACg&token=27045735428019377312427720305400499206734565713678297173539855010884886478240&invoice=6174qz7YsYceLU1WSELTA8}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/check-invoice-status", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"id":"U8B7S21kdo8mB7TDtqDUDG","amount":1550,"currency":"USD","realAmount":"0.40162157","creation":1552319384000,"expiration":1552320284000,"payUrl":"bitcoin:tb1qufxkm89aybhp600aycm54s5ycdj2pqz9hzxj4l?amount=0.40162157","status":"new","url":"https://api.zinari.org/invoice?id=7hqLE4VN5eS5DyhZLzCVby"}

{"id":"U8B7S21kdo8mB7TDtqDUDG","amount":1550,"currency":"USD","realAmount":"0.40162157","creation":1552319384000,"expiration":1552320284000,"payUrl":"bitcoin:tb1qufxkm89aybhp600aycm54s5ycdj2pqz9hzxj4l?amount=0.40162157","status":"new","url":"https://api.zinari.org/invoice?id=7hqLE4VN5eS5DyhZLzCVby"}

{"status":"new"}

POST /create-invoice

Create new invoice

POST /check-invoice

Get invoice details

POST /check-invoice-status

Get invoice status

Most common invoice statuses are: new (for a new invoice), confirmed (successful payment), complete (6 confirmations on chain, as for bitcoin) and expired (invoice expired)

In case you need to perform a request inside a public script you should use GET instead as this would save trade and token from exposure

Parameters

For /create-invoice

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
amount body [string] true amount for the price
currency body [string] true currency code in ISO 4217
link body [string] false url to follow after the payment
notification body [string] false url for IPN request (used by e-commerce software)
order body [string] false uniq order id (equal to the order id in e-commerce software)

For /check-invoice and /check-invoice-status

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
invoice body [string] true invoice id

OPTIONS /create-invoice, /check-invoice, /check-invoice-status

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

IPN Response Example & Explanation

IPN is sent in case notification parameter is provided. Main IPN purpose is to send notifications to e-commerce software. IPNs are not signed, so it always better to use /check-invoice or /check-invoice-status directly when it's possible.

{"id": "U8B7S21kdo8mB7TDtqDUDG", "url": "https://api.zinari.org/invoice?id=7hqLE4VN5eS5DyhZLzCVby", "posData": null, "status": "confirmed", "btcPrice": "0.40162157", "btcPaid": "0.40162157", "btcDue": "0.00000000"}

Invoices History

curl 'https://api.zinari.org/get-invoices' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce'

curl 'https://api.zinari.org/get-store-invoices' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'

curl 'https://api.zinari.org/get-store-all-invoices'  -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
// Get history with all invoices for a store

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc';

var options = {
    url: 'https://api.zinari.org/get-store-invoices',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Get history with all invoices for a store */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'store' => '8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc'
);
$response = Requests::post('https://api.zinari.org/get-store-invoices', $headers, $data);
// Get history with all invoices for a store 

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=8z5ncxMzgZ8qTQKkgwpxiLMhpzajbx2AZATgBnJynesc}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/get-store-invoices", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

[
    {
        "ReceivedDate": "2020-01-13T13:15:27.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "DS4rs123JN8chH8QXzXMnX",
        "InvoiceCreatedDate": "2020-01-13T13:05:46.000Z",
        "InvoiceExpirationDate": "2020-01-13T13:20:46.000Z",
        "InvoiceMonitoringDate": "2020-01-13T14:20:46.000Z",
        "PaymentId": "354b8163022dfde282b6e025c77beceed145aeea138a4dc01d7d51faf5643e72-1",
        "Destination": "tb1qgr3l8u8fhy2mlumqegu65ep4dkqskvuxzt3gec",
        "CryptoCode": "BTC",
        "ConversionRate": 8090.12550017418,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=DS4rs123JN8chH8QXzXMnX&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-11T05:14:29.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "BWqGGhrKEWJZ9HA1j7MXrs",
        "InvoiceCreatedDate": "2019-04-11T05:08:30.000Z",
        "InvoiceExpirationDate": "2019-04-11T05:23:30.000Z",
        "InvoiceMonitoringDate": "2019-04-11T06:23:30.000Z",
        "PaymentId": "e11e13e2742cfde626b51d197424bb91662bb0121ba1b35c5614230446d95b7a",
        "Destination": "tb1qgfh8epgz8zj92an36ykx2q7fwxqzuhnue4sjnd",
        "CryptoCode": "BTC",
        "ConversionRate": 5213.02452631038,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=BWqGGhrKEWJZ9HA1j7MXrs&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2020-02-17T13:06:43.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "5vVMoUsv4qhUvuu8s9t5ky",
        "InvoiceCreatedDate": "2020-02-17T12:59:31.000Z",
        "InvoiceExpirationDate": "2020-02-17T13:14:31.000Z",
        "InvoiceMonitoringDate": "2020-02-17T14:14:31.000Z",
        "PaymentId": "5962014ec62980a9b7b9e8080ef92ba7fceeea9009e73c1c60921b1a6cde3868-0",
        "Destination": "tb1qur8n45zc6u5easke9e8zz3cajt8906z22hgatq",
        "CryptoCode": "BTC",
        "ConversionRate": 9638.589,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=5vVMoUsv4qhUvuu8s9t5ky&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-10T18:51:08.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "5eQHjRpQ5myesbS9waS34D",
        "InvoiceCreatedDate": "2019-04-10T18:50:38.000Z",
        "InvoiceExpirationDate": "2019-04-10T19:05:38.000Z",
        "InvoiceMonitoringDate": "2019-04-10T20:05:38.000Z",
        "PaymentId": "d8abd7b6093d32bbb4c7a7bb7b59eff13ca3542f65ee89888d20746db02b726a",
        "Destination": "tb1qxxkgrf5qezxrhs2828mc5mz7cft0axf2d7ahe8",
        "CryptoCode": "BTC",
        "ConversionRate": 5437.09577642961,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=5eQHjRpQ5myesbS9waS34D&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-05T13:02:39.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "EtrctTJtah9BUuZJYQJp2L",
        "InvoiceCreatedDate": "2019-04-05T13:02:23.000Z",
        "InvoiceExpirationDate": "2019-04-05T13:17:23.000Z",
        "InvoiceMonitoringDate": "2019-04-05T14:17:23.000Z",
        "PaymentId": "e9ab7cdb3b507c58029242631fa0949c02aba449ae520f65279f6b4b2ebbd797",
        "Destination": "tb1q8dzdl52luedhyn7ly5tdth8dts0zw6rmuly33d",
        "CryptoCode": "BTC",
        "ConversionRate": 5028.43845060516,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=EtrctTJtah9BUuZJYQJp2L&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": null,
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "A4jCP6gTbsEtRfswrbZKen",
        "InvoiceCreatedDate": "2019-05-07T17:03:24.000Z",
        "InvoiceExpirationDate": "2019-05-07T17:18:24.000Z",
        "InvoiceMonitoringDate": "2019-05-07T18:18:24.000Z",
        "PaymentId": null,
        "Destination": "tb1qtw3uk4j4u0hxd4uj8agjyw9x088qyn6wttg99l",
        "ConversionRate": 5909.29000820981,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": null,
        "BuyerEmail": null,
        "Accounted": null,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=A4jCP6gTbsEtRfswrbZKen&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": "0.11531550",
        "EthRate": "$175.38",
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": null,
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "WiswGDmHiC2aqiATiWEud3",
        "InvoiceCreatedDate": "2019-05-07T11:42:30.000Z",
        "InvoiceExpirationDate": "2019-05-07T11:57:30.000Z",
        "InvoiceMonitoringDate": "2019-05-07T12:57:30.000Z",
        "PaymentId": null,
        "Destination": "tb1qgczevnfqf9xw5ce9m57ee4nhwr2uw6lskm8hh2",
        "ConversionRate": 5892.99314287078,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": null,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=WiswGDmHiC2aqiATiWEud3&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-05T13:15:38.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "XktmvPPeD22ZHeBK1iqtmV",
        "InvoiceCreatedDate": "2019-04-05T13:05:35.000Z",
        "InvoiceExpirationDate": "2019-04-05T13:20:35.000Z",
        "InvoiceMonitoringDate": "2019-04-05T14:20:35.000Z",
        "PaymentId": "6d74496a8084eac15a6af7f77ff9e0f13b268c40bbac85c568e717b64fce6308",
        "Destination": "tb1qw67j7m7zcc66gmuf6mc6ullzy4fgwejtqu27yu",
        "CryptoCode": "BTC",
        "ConversionRate": 5028.43845060516,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=XktmvPPeD22ZHeBK1iqtmV&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-10T16:46:44.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "2aUGbRCapf5GcKHcK2KJnZ",
        "InvoiceCreatedDate": "2019-04-10T16:41:02.000Z",
        "InvoiceExpirationDate": "2019-04-10T16:56:02.000Z",
        "InvoiceMonitoringDate": "2019-04-10T17:56:02.000Z",
        "PaymentId": "021c06d1dbfabaeba9378a05a2c3b9243f704d31bd92ffd651d04b7cc9e7cfc5",
        "Destination": "tb1q97n5eelvnfsfx8mpvscqdt38uhmrve59uk4cyd",
        "CryptoCode": "BTC",
        "ConversionRate": 5287.05211729067,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=2aUGbRCapf5GcKHcK2KJnZ&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-06T07:54:56.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "QziNEEcQGDaN8FQqBmXqAf",
        "InvoiceCreatedDate": "2019-04-06T07:53:11.000Z",
        "InvoiceExpirationDate": "2019-04-06T08:08:11.000Z",
        "InvoiceMonitoringDate": "2019-04-06T09:08:11.000Z",
        "PaymentId": "406e1b4354c7261b16b914a2929e05169c5a04fefa5f2e5384c35e62cb8ca79f-1",
        "Destination": "tb1qzgqgd72y5wkk5rne2wla80zm70ra40lfpklqaw",
        "CryptoCode": "BTC",
        "ConversionRate": 5020.57851110224,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=QziNEEcQGDaN8FQqBmXqAf&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": null,
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "GGtKcvbuaaXo6kfnwPybHd",
        "InvoiceCreatedDate": "2019-05-07T16:33:27.000Z",
        "InvoiceExpirationDate": "2019-05-07T16:48:27.000Z",
        "InvoiceMonitoringDate": "2019-05-07T17:48:27.000Z",
        "PaymentId": null,
        "Destination": "tb1qk4gck8z9pv6ej5ff7sugn94hm97rastddpqsu9",
        "ConversionRate": 5906.34461841557,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": null,
        "BuyerEmail": null,
        "Accounted": null,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=GGtKcvbuaaXo6kfnwPybHd&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": "0.11513736",
        "EthRate": "$175.68",
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": null,
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "UKD5b23dz7rzzmsy5vRvvu",
        "InvoiceCreatedDate": "2019-05-07T17:36:19.000Z",
        "InvoiceExpirationDate": "2019-05-07T17:51:19.000Z",
        "InvoiceMonitoringDate": "2019-05-07T18:51:19.000Z",
        "PaymentId": null,
        "Destination": "tb1qpf3ptyhwpcyegezpd8ma3356nylkten4ftxwlx",
        "ConversionRate": 5913.54195543885,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": null,
        "BuyerEmail": null,
        "Accounted": null,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=UKD5b23dz7rzzmsy5vRvvu&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": "0.11562632",
        "EthRate": "$174.57",
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": null,
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "KUzRUbjNXPpXy4eA9s9Jj2",
        "InvoiceCreatedDate": "2019-05-07T17:24:30.000Z",
        "InvoiceExpirationDate": "2019-05-07T17:39:30.000Z",
        "InvoiceMonitoringDate": "2019-05-07T18:39:30.000Z",
        "PaymentId": null,
        "Destination": "tb1qq5x5et5xkzlh62pcx3fyj9f0cn8kkysp3vxu2n",
        "ConversionRate": 5921.85192741704,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": null,
        "BuyerEmail": null,
        "Accounted": null,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=KUzRUbjNXPpXy4eA9s9Jj2&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": "0.11546427",
        "EthRate": "$174.77",
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-06-19T15:35:02.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": "9",
        "InvoiceId": "AV1b2VBA3Hb8cQQqSeQLXw",
        "InvoiceCreatedDate": "2019-06-19T15:34:15.000Z",
        "InvoiceExpirationDate": "2019-06-19T15:49:15.000Z",
        "InvoiceMonitoringDate": "2019-06-19T16:49:15.000Z",
        "PaymentId": "4c16cafe6a7915f6f8b6a255896b0cd5bd582df62c432505974ab0d0301b1541-0",
        "Destination": "tb1q35zxyylvvcj64fya6u8asx6zlxqy08lchsr0lz",
        "CryptoCode": "BTC",
        "ConversionRate": 9078.99249761391,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=AV1b2VBA3Hb8cQQqSeQLXw&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": null,
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "GoB4mGusi4NKb1L3kMZdyK",
        "InvoiceCreatedDate": "2019-05-07T17:09:02.000Z",
        "InvoiceExpirationDate": "2019-05-07T17:24:02.000Z",
        "InvoiceMonitoringDate": "2019-05-07T18:24:02.000Z",
        "PaymentId": null,
        "Destination": "tb1quss873kkrudszuucftrkxp8us4ywlr44s6fxyr",
        "ConversionRate": 5909.29000820981,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": null,
        "BuyerEmail": null,
        "Accounted": null,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=GoB4mGusi4NKb1L3kMZdyK&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": "0.11551228",
        "EthRate": "$175.14",
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-07-11T13:23:52.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "Bx679HRpUM2Ti1Lwn1y55J",
        "InvoiceCreatedDate": "2019-07-11T13:22:34.000Z",
        "InvoiceExpirationDate": "2019-07-11T13:37:34.000Z",
        "InvoiceMonitoringDate": "2019-07-11T14:37:34.000Z",
        "PaymentId": "987342f1eab2ef7011884225ce74d805aeb2761c5117490e95298c0a2e035a91-0",
        "Destination": "tb1qz0z25t35egsazmtnzee3apk7ymtphdtmrpvdvg",
        "CryptoCode": "BTC",
        "ConversionRate": 11689.469622758,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=Bx679HRpUM2Ti1Lwn1y55J&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-12-23T11:18:09.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "4pnDMfAD5s5PWVVXE4BctE",
        "InvoiceCreatedDate": "2019-12-23T11:17:15.000Z",
        "InvoiceExpirationDate": "2019-12-23T11:32:15.000Z",
        "InvoiceMonitoringDate": "2019-12-23T12:32:15.000Z",
        "PaymentId": "6c3609e1a8f3f5abcf297d9bcc5e7a0dc856f688f88db0e5e4f111e418d5119a-0",
        "Destination": "tb1q3yzscnwvjk2eft9rhgpycdvssfmsuw0wpele8w",
        "CryptoCode": "BTC",
        "ConversionRate": 7530.9323601033,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=4pnDMfAD5s5PWVVXE4BctE&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-05T14:01:24.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "FKSuQreLNBo6RqVjYUVDTb",
        "InvoiceCreatedDate": "2019-04-05T14:01:07.000Z",
        "InvoiceExpirationDate": "2019-04-05T14:16:07.000Z",
        "InvoiceMonitoringDate": "2019-04-05T15:16:07.000Z",
        "PaymentId": "096ad909d0c7611968aafa5484da013846b97557803e82089315786f6234cb0a",
        "Destination": "tb1qlfcqsze6k8rx9vmqpn27jparl4x77c8hau9cq7",
        "CryptoCode": "BTC",
        "ConversionRate": 5027.63776201246,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=FKSuQreLNBo6RqVjYUVDTb&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-06-28T14:30:40.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": "14",
        "InvoiceId": "BtgkS415X31Cn8L47tsarB",
        "InvoiceCreatedDate": "2019-06-28T14:28:23.000Z",
        "InvoiceExpirationDate": "2019-06-28T14:43:23.000Z",
        "InvoiceMonitoringDate": "2019-06-28T15:43:23.000Z",
        "PaymentId": "07ad915408d8fb06f8b2277d37ee3c57542e017de54b5cc92f564af335b1a5d9-0",
        "Destination": "tb1qjgnfup3p7s2vssakhyhx5eqv9zgnvyghrj5uk7",
        "CryptoCode": "BTC",
        "ConversionRate": 11765.6470966484,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=BtgkS415X31Cn8L47tsarB&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-04-05T12:59:46.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "PqGUBF3JzotxTwnGQ5N8DD",
        "InvoiceCreatedDate": "2019-04-05T12:50:53.000Z",
        "InvoiceExpirationDate": "2019-04-05T13:05:53.000Z",
        "InvoiceMonitoringDate": "2019-04-05T14:05:53.000Z",
        "PaymentId": "53dc9636f57dab521739ebeaa653de75aee1761f272e8d142f8f20af4e68e0b2",
        "Destination": "tb1q5zflf5lwxnza7mff7hpx6tr3m5qmlkpukck6yj",
        "CryptoCode": "BTC",
        "ConversionRate": 5041.0669819548,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": null,
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=PqGUBF3JzotxTwnGQ5N8DD&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    },
    {
        "ReceivedDate": "2019-08-19T05:21:01.000Z",
        "StoreId": "HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y",
        "OrderId": null,
        "InvoiceId": "4VVQ1yTFT7dXVpA48o27RL",
        "InvoiceCreatedDate": "2019-08-19T05:19:38.000Z",
        "InvoiceExpirationDate": "2019-08-19T05:34:38.000Z",
        "InvoiceMonitoringDate": "2019-08-19T06:34:38.000Z",
        "PaymentId": "2c91d947e3c355ab3a7ebfeb130e4f4f32cb62116da217754401324482a928db-0",
        "Destination": "tb1q5029e8p7udn5ze5t9u3au7rze9aer4x7geg3ga",
        "CryptoCode": "BTC",
        "ConversionRate": 10382.0971205188,
        "InvoiceCurrency": "USD",
        "InvoiceItemCode": null,
        "InvoiceStatus": "complete",
        "InvoiceExceptionStatus": "",
        "BuyerEmail": "[email protected]",
        "Accounted": true,
        "InvoicePaymentDetails": "https://api.zinari.org/invoice/status?invoiceId=4VVQ1yTFT7dXVpA48o27RL&paymentMethodId=BTC&_=1",
        "BchAmount": null,
        "BchRate": null,
        "BchPaidDetected": null,
        "DgbAmount": null,
        "DgbRate": null,
        "DgbPaidDetected": null,
        "EosAmount": null,
        "EosRate": null,
        "EosPaidDetected": null,
        "EosTlosAmount": null,
        "EosTlosRate": null,
        "EosTlosPaidDetected": null,
        "EosIqAmount": null,
        "EosIqRate": null,
        "EosIqPaidDetected": null,
        "EthAmount": null,
        "EthRate": null,
        "EthPaidDetected": null,
        "EthUsdtAmount": null,
        "EthUsdtRate": null,
        "EthUsdtPaidDetected": null,
        "EthDaiAmount": null,
        "EthDaiRate": null,
        "EthDaiPaidDetected": null,
        "RddAmount": null,
        "RddRate": null,
        "RddPaidDetected": null,
        "RvnAmount": null,
        "RvnRate": null,
        "RvnPaidDetected": null,
        "TronAmount": null,
        "TronRate": null,
        "TronPaidDetected": null,
        "TronUsdtAmount": null,
        "TronUsdtRate": null,
        "TronUsdtPaidDetected": null,
        "TronBttAmount": null,
        "TronBttRate": null,
        "TronBttPaidDetected": null,
        "XmrAmount": null,
        "XmrRate": null,
        "XmrPaidDetected": null,
        "XtzAmount": null,
        "XtzRate": null,
        "XtzPaidDetected": null
    }
]
{"invoices":[["9rX3PEE8U1rZuMppqtBarn"],["KLo7ca2xbxswBHuFYBjfsU"],["LNgzR6u1nNkcrVmamJkGWU"],["JPQcwAoAo5cdTgi5xNPGZ4"],["Q4c18wkfwDYBg8nQfpSxyq"],["SE7FuzCdaQfwPbD38mkJsQ"]]}

POST /get-invoices

Get history with all invoices with complete/confirmed/paid statuses

POST /get-store-invoices

Get history with all invoices for a store with complete/confirmed/paid statuses

POST /get-store-all-invoices

Get all previously created invoices IDs as array

Parameters

For /get-invoices, and /get-ln-invoices

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)

For /get-store-invoices and /get-store-ln-invoices

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

Response Parameters

For /get-invoices, /get-store-invoices

Parameter Description
ReceivedDate payment received date
StoreId store id
OrderId order Id
InvoiceId invoice id
InvoiceCreatedDate date of creation of the invoice
InvoiceExpirationDate date of expiration of the invoice
InvoiceMonitoringDate date when we cease to monitor events of the invoice
PaymentId unique identifier of a payment
Destination the destination address the customer paid to
CryptoCode currency code of the method of payment (e.g. BTC)
NetworkFee network fee paid by the user in this payment
ConvertionRate conversion rate at invoice creation to convert from CryptoCode to InvoiceCurrency
InvoiceCurrency currency of the invoice (e.g. USD)
InvoicePrice price of the invoice (without Network Fee, in InvoiceCurrency)
InvoiceItemCode item code of the invoice
InvoiceStatus status of the invoice (e.g. expired)
InvoiceException status of the invoice (e.g. paidPartial)
BuyerEmail customer email
InvoicePaymentDetails URL for the invoice in BTC (could be changed manually from BTC to the another cryptoCode, for ex. ETH)
BchAmount invoice amount in Bitcoin Cash
BchRate Bitcoin Cash conversion rate
BchPaidDetected Amount of payment in Bitcoin Cash that was detected for the invoice
DgbAmount invoice amount in DigiByte
DgbRate DigiByte conversion rate
DgbPaidDetected Amount of payment in DigiByte that was detected for the invoice
EosAmount invoice amount in EOS
EosRate EOS conversion rate
EosPaidDetected Amount of payment in EOS that was detected for the invoice
EosIqAmount Amount in IQ
EosIqRate IQ conversion rate
EosIqPaidDetected Amount of payment in IQ that was detected for the invoice
EthAmount Amount in Ethereum
EthRate Ethereum conversion rate
EthPaidDetected Amount of payment in ETH that was detected for the invoice
EthUsdtAmount Amount in USDT (on Ethereum)
EthUsdtRate USDT conversion rate
EthUsdtPaidDetected Amount of payment in USDT that was detected for the invoice
EthDaiAmount Amount in DAI (on Ethereum)
EthDaiRate DAI conversion rate
EthDaiPaidDetected Amount of payment in DAI that was detected for the invoice
RddAmount Amount in ReddCoin
RddRate ReddCoin conversion rate
RddPaidDetected Amount of payment in ReddCoin that was detected for the invoice
RvnAmount Amount in Ravencoin
RvnRate Ravencoin conversion rate
RvnPaidDetected Amount of payment in Ravencoin that was detected for the invoice
XmrAmount Amount in Monero
XmrRate Monero conversion rate
XmrPaidDetected Amount of payment in Monero that was detected for the invoice
XtzAmount Amount in Tezos
XtzRate Tezos conversion rate
XtzPaidDetected Amount of payment in Tezos that was detected for the invoice
BtcSingleRate Bitcoin conversion rate
BtcSingleAmount Amount in BTC
BtcSingleTxId Transactions that a used to verify that invoice is complete
BtcSingleTransactionsMempool All transactions in mempool at the time of invoice
BtcSingleMempool Full Mempool state dump
BtcSinglePaidDetectedMempool Amount of payment (im mempool) in BTC that was detected for the invoice
XncAmount Amount in Xenios Coin
XncRate Xenios Coin conversion rate
XncPaidDetected Amount of payment in Xenios Coin that was detected for the invoice
KsmAmount Amount in Kusama
KsmRate Kusama conversion rate
KsmPaidDetected Amount of payment in Kusama that was detected for the invoice
OwcAmount Amount in Oduwa
OwcRate Oduwa conversion rate
OwcPaidDetected Amount of payment in Oduwa that was detected for the invoice

OPTIONS /get-invoices, /get-store-invoices

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Extending invoice expiration time

curl 'https://api.zinari.org/v2/store-invoice-expiration' -H 'Content-Type: application/x-www-form-urlencoded' --data 'trade=2GhhbL55TyYUDqadvvEEpT5AafXynVTjqqTkMHhtW7T4&time=60'

// Extend invoice expiration time for a store

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=2GhhbL55TyYUDqadvvEEpT5AafXynVTjqqTkMHhtW7T4&time=60';

var options = {
    url: 'https://api.zinari.org/v2/store-invoice-expiration',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
 /* Extend invoice expiration time for a store */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'trade' => '2GhhbL55TyYUDqadvvEEpT5AafXynVTjqqTkMHhtW7T4',
    'time' => '60'
);
$response = Requests::post('https://api.zinari.org/v2/store-invoice-expiration', $headers, $data);
// Extend invoice expiration time for a store

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"strings"
)

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`trade=2GhhbL55TyYUDqadvvEEpT5AafXynVTjqqTkMHhtW7T4&time=60`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/store-invoice-expiration", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"success":"Store expiration time updated"}

POST /v2/store-invoice-expiration

Set invoice expiration time

time parameter is time in minutes, So, for example 30 is 30 minutes. Minimum value for time is 10, while maximum is 360 minutes

Parameters

Parameter In Type Required Description
trade body [string] true trade agreement id
time body [string] true time for expiration in minutes > 10 < 360

OPTIONS /v2/store-invoice-expiration

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Item Payment URLs (checkout)

curl 'https://api.zinari.org/create-item-sale' -H 'Content-Type: application/x-www-form-urlencoded' --data 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&amount=550&currency=rub&description=spoon&email=test%40fastmail.mx&count=2&name=bestspoon'

curl 'https://api.zinari.org/check-item' -H 'Content-Type: application/x-www-form-urlencoded' --data 'item=24ea53d945692da5f353b4cd323e7826'

curl 'https://api.zinari.org/check-item-status' -H 'Content-Type: application/x-www-form-urlencoded' --data 'item=24ea53d945692da5f353b4cd323e7826'

curl 'https://api.zinari.org/items-list' -H 'Content-Type: application/x-www-form-urlencoded' --data 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647'

curl 'https://api.zinari.org/v2/checkout-update' -H 'Content-Type: application/x-www-form-urlencoded' --data 'item=24ea53d945692da5f353b4cd323e7826&description=thebesttool&name=product1&trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&count=12'

// Create new Item Payment URL

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&amount=550&currency=rub&description=spoon&email=test%40fastmail.mx&count=2&name=bestspoon';

var options = {
    url: 'https://api.zinari.org/create-item-sale',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Check Item Payment Details
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'item=24ea53d945692da5f353b4cd323e7826';

var options = {
    url: 'https://api.zinari.org/check-item',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Display Details for All Ever Created Payment Urls
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647';

var options = {
    url: 'https://api.zinari.org/items-list',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Modify Item Payment Details
var fetch = require('node-fetch');

fetch('https://api.zinari.org/v2/checkout-update', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: 'item=24ea53d945692da5f353b4cd323e7826&description=thebesttool&name=product1&trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&count=12'
});

/* Create new Item Payment URL */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'trade' => 'Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp',
    'token' => '108977327347814744673750678559203866607310312666213682394904038637537833731647',
    'amount' => '550',
    'currency' => 'rub',
    'description' => 'spoon',
    'email' => '[email protected]',
	'count' => '2',
	'name'=> 'bestspoon'
);
$response = Requests::post('https://api.zinari.org/create-item-sale', $headers, $data);

/* Check Item Payment Details */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'item' => '24ea53d945692da5f353b4cd323e7826'
);
$response = Requests::post('https://api.zinari.org/check-item', $headers, $data);

/* Display Details for All Ever Created Payment Urls */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'trade' => 'Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp',
    'token' => '108977327347814744673750678559203866607310312666213682394904038637537833731647'
);
$response = Requests::post('https://api.zinari.org/items-list', $headers, $data);


/* Modify Item Payment Details */
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'item' => '24ea53d945692da5f353b4cd323e7826',
    'description' => 'thebesttool',
    'name' => 'product1',
    'trade' => 'Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp',
    'token' => '108977327347814744673750678559203866607310312666213682394904038637537833731647',
    'count' => '12'
);
$response = Requests::post('https://api.zinari.org/v2/checkout-update', $headers, $data);

// Create new Item Payment URL

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&amount=550&currency=rub&description=spoon&email=test%40fastmail.mx&count=2&name=bestspoon}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/create-item-sale", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Check Item Payment Details

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{item=24ea53d945692da5f353b4cd323e7826}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/check-item", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Check Item Payment Details

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/items-list", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Modify Item Payment Details

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"strings"
)

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`item=24ea53d945692da5f353b4cd323e7826&description=thebesttool&name=product1&trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&count=12`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/v2/checkout-update", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"item":"24ea53d945692da5f353b4cd323e7826","amount":"550","currency":"RUB","description":"spoon","url":"https://api.zinari.org/item/24ea53d945692da5f353b4cd323e7826"}
{"item":"24ea53d945692da5f353b4cd323e7826","amount":"550","currency":"RUB","description":"spoon","status":false,"invoices":null}
{"status":false}
{"items":[{"item":"ccfdd6b43b2b6ca4f76bb7f9bbe820fb","email":"[email protected]","currency":"USD","amount":"550","description":"spoon","invoices":null,"count":2},{"item":"6727f9d6bea3905b8358e3ce33cc7d04","email":"[email protected]","currency":"USD","amount":"5050","description":"table","invoices":null,"count":1},{"item":"13244be7359c3ec4281eaa79a7cb4ab7","email":"[email protected]","currency":"USD","amount":"150","description":"cake","invoices":["JbskdTw7GuEvgg44KXZVmF"],"count":1},{"item":"948da028ed35efb14b30f0f3155a088f","email":"[email protected]","currency":"USD","amount":"250","description":"lake","invoices":null,"count":2}]}
{"item":"24ea53d945692da5f353b4cd323e7826","amount":"0.1","currency":"USD","description":"thebesttool","status":true,"invoices":["LqRkL4CtAPA2CZisnAQdXD","87b7KeaGTLnVkN8c8EeHG5"],"name":"product1","count":12}

POST /create-item-sale

Creates new item Payment URL

Once you open a payment URL, a new invoice for an item will be generated. And after the last item (check count parameter) is paid, new invoice generation will stop and item status will change to true

It could useful for static websites.

POST /check-item

Check item payment details

POST /check-item-status

Check item status

After the last item (check count parameter) is paid new invoice generation will stop and item status would change to true

POST /items-list

Details for All Ever Created Payment Urls

GET /item/ + Item ID

Generate invoice for certain item or show item details (ones all paid)

POST /v2/checkout-update

Update item payment details

Parameters

For /create-item-sale

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
currency body [string] true currency
amount body [string] true amount for the price
description body [string] true item description
name body [string] true item name
count body [boolean] true item availability count
email body [string] true email for notification

For /check-item and /check-item-status

Parameter In Type Required Description
item body [string] true item id

For /items-list

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token

For /v2/checkout-update

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
description body [string] true item description
name body [string] true item name
count body [boolean] true item availability count

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

Response Parameters

For /create-item-sale, /check-item, /check-item-status, /v2/checkout-update

Parameter Description
item item id
amount amount for the price
description item description
status item status (changes once the last item payed)
currency currency
name body
invoices array with all generated invoices
url item payment url

For /items-list

Array with values for: item, email, currency, amount, description, invoices, count

Parameter Description
item item id
amount amount for the price
description item description
status item status (changes once the last item payed)
currency currency
name body
invoices array with all generated invoices
url item payment url

OPTIONS /create-item-sale, /check-item, /check-item-status

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Crowdfunding

curl 'https://api.zinari.org/create-crowdfunding' -H 'Content-Type: application/x-www-form-urlencoded' --data 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&amount=1000&currency=rub&description=cake&email=test%40fastmail.mx&name=bestcake'

curl 'https://api.zinari.org/check-crowdfunding' -H 'Content-Type: application/x-www-form-urlencoded' --data 'fund=58e85d60e308043559c8ac9d2efb3c7cae10'

curl 'https://api.zinari.org/check-crowdfunding-status' -H 'Content-Type: application/x-www-form-urlencoded' --data 'fund=58e85d60e308043559c8ac9d2efb3c7cae10'

curl 'https://api.zinari.org/crowdfunds-list' -H 'Content-Type: application/x-www-form-urlencoded' --data 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647'

curl 'https://api.zinari.org/crowdfunding-donations' -H 'Content-Type: application/x-www-form-urlencoded' --data 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&fund=58e85d60e308043559c8ac9d2efb3c7cae10'
// Create new Crowdfunding

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&amount=1000&currency=rub&description=cake&email=test%40fastmail.mx&name=bestcake';

var options = {
    url: 'https://api.zinari.org/create-crowdfunding',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Check Crowdfunding Details
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'fund=58e85d60e308043559c8ac9d2efb3c7cae10';

var options = {
    url: 'https://api.zinari.org/check-crowdfunding',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Display Details for All Ever Created Crowdfunds
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647';

var options = {
    url: 'https://api.zinari.org/crowdfunds-list',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);


// Display Donations Details
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&fund=58e85d60e308043559c8ac9d2efb3c7cae10';

var options = {
    url: 'https://api.zinari.org/crowdfunding-donations',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Create new Crowdfunding */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'trade' => 'Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp',
    'token' => '108977327347814744673750678559203866607310312666213682394904038637537833731647',
    'amount' => '1000',
    'currency' => 'rub',
    'description' => 'cake',
	'email' => '[email protected]',
	'name'=> 'bestcake'
);
$response = Requests::post('https://api.zinari.org/create-crowdfunding', $headers, $data);


/* Check Crowdfunding Details */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'fund' => '58e85d60e308043559c8ac9d2efb3c7cae10'
);
$response = Requests::post('https://api.zinari.org/check-crowdfunding', $headers, $data);

/* Display Details for All Ever Created Crowdfunds */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'trade' => 'Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp',
    'token' => '108977327347814744673750678559203866607310312666213682394904038637537833731647'
);
$response = Requests::post('https://api.zinari.org/crowdfunds-list', $headers, $data);

/* Display Donations Details */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded');
$data = array(
    'trade' => 'Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp',
	'token' => '108977327347814744673750678559203866607310312666213682394904038637537833731647',
	'fund' => '58e85d60e308043559c8ac9d2efb3c7cae10'
);
$response = Requests::post('https://api.zinari.org/crowdfunding-donations', $headers, $data);
// Create new Crowdfunding

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&amount=1000&currency=rub&description=cake&email=test%40fastmail.mx&name=bestcake}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/create-crowdfunding", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}


// Check Crowdfunding Details

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{fund=58e85d60e308043559c8ac9d2efb3c7cae10}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/check-crowdfunding", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Display Details for All Ever Created Crowdfunds

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/crowdfunds-list", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Display Donations Details

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{trade=Agozs1WFhSk3zxELPoBDrFaZty5bWPHdZeAeQAHV8gqp&token=108977327347814744673750678559203866607310312666213682394904038637537833731647&fund=58e85d60e308043559c8ac9d2efb3c7cae10}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/crowdfunding-donations", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"fund":"58e85d60e308043559c8ac9d2efb3c7cae10","amount":"1000","currency":"RUB","description":"spoon","email":"[email protected]"}
{"fund":"58e85d60e308043559c8ac9d2efb3c7cae12","amount":"1000","currency":"RUB","description":"spoon","status":true,"invoices":["AiTGALf9M2ij6xHk7Xh5UP","NNst8RxtiorxXuVyVdfGqq","CyW1HdAKvKxRCccNVXgNfS","MJbq984yxcwchCneCMr1pK","HM8Jjuno6TSCe3jGYKV3nq"]
{"status":false}
{"funds":[{"fund":"386b1ebd78dc0fc962706a33a9faa4705b78","email":"[email protected]","currency":"RUB","amount":"1000","description":"cake","invoices":null},{"fund":"8d4e01c49572fa02d82c31281ba2c928eb40","email":"[email protected]","currency":"RUB","amount":"1000","description":"cake","invoices":null},{"fund":"06c024a312279c7d21b01fbbb19bc7bedfe6","email":"[email protected]","currency":"RUB","amount":"1000","description":"cake","invoices":["5dB3RVM7nnckEwKRcvVqoQ"]}]}
{"donations":[{"invoice":"5dB3RVM7nnckEwKRcvVqoQ","created":"2019-10-25T14:29:32.000Z","participantEmail":"[email protected]","status":"complete"}]}

POST /create-crowdfunding

Creates new Crowdfunding

Crowdfunding used to raise certain amount. Once amount is raised crowdfunding status changes to true and GET request with fund ID and amount would stop to generating new invoices

POST /check-crowdfunding

Check crowdfunding details

POST /check-crowdfunding-status

Check crowdfunding status

Once amount is raised crowdfunding status changes to true and GET request with fund ID and amount would stop to generating new invoices

POST /crowdfunds-list

Details for All Ever Created Crowdfunds

POST /crowdfunding-donations

Crowdfunding Donations Details

Displays private information with participants of crowdfunding (donations), includes participant email (email that was provided for the invoice)

GET /fund/ + Crowdfunding ID + / + Amount

Generates invoice for any amount to participate in the Crowdfunding

You can design images or buttons and specify exact amount inside the URL if there any need. Once crowdfunding amount is raised invoice generation would stop, and it would show crowdfunding details

Parameters

For /create-crowdfunding

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
currency body [string] true currency
amount body [string] true amount for the price
description body [string] true crowdfunding description
name body [string] true crowdfunding campaign name
email body [string] true email for notification

For /check-crowdfunding and /check-crowdfunding-status

Parameter In Type Required Description
fund body [string] true crowdfunding id

For /crowdfunds-list

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token

For /crowdfunding-donations

Parameter In Type Required Description
trade body [string] true trade agreement id
token body [string] true token
fund body [string] true crowdfunding id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

Response Parameters

For /create-crowdfunding, /check-crowdfunding and /check-crowdfunding-status

Parameter Description
fund crowdfunding id
amount amount to raise (goal)
description crowdfunding description or purpose
status crowdfunding status (changes once amount is collected)
currency currency
invoices array with all generated invoices
balance total amount collected

For /crowdfunds-list

Array with values for: Crowdfunding ID (fund), email, currency, amount, description, invoices IDs

For /crowdfunding-donations

Array with values for: Invoice ID, Invoice Creation Time, Participant's email, Invoice Status

OPTIONS /create-crowdfunding, /check-crowdfunding and /check-crowdfunding-status

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Attaching image to the item sale or crowdfunding

curl --location --request POST 'https://api.zinari.org/upload-image' --header 'trade:myTrageAgreement' --header 'Content-Type: multipart/form-data' --form 'image=@/home/test/Images/image.jpg'

curl 'https://api.zinari.org/get-image' -H 'Content-Type: application/x-www-form-urlencoded'  --data 'image=6b7c4e37754354dedba1c8a44dfc'

curl 'https://api.zinari.org/attach-image' -H 'Content-Type: application/x-www-form-urlencoded'  --data 'image=6b7c4e37754354dedba1c8a44dfc&id=6727f9d6bea3905b8358e3ce33cc7d04&store=HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y&trade:myTrageAgreement'
// Upload image

var request = require('request');

var headers = {
    'trade': 'myTrageAgreement',
    'Content-Type': 'multipart/form-data'
};

var options = {
    url: 'https://api.zinari.org/upload-image',
    method: 'POST',
    headers: headers
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Get image
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'image=6b7c4e37754354dedba1c8a44dfc';

var options = {
    url: 'https://api.zinari.org/get-image',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);


// Attach image to item-sale or crowdfunding
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'image=6b7c4e37754354dedba1c8a44dfc&id=6727f9d6bea3905b8358e3ce33cc7d04&store=HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y&trade:myTrageAgreement';

var options = {
    url: 'https://api.zinari.org/attach-image',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
/* Upload image */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'trade' => 'myTrageAgreement',
    'Content-Type' => 'multipart/form-data'
);
$response = Requests::post('https://api.zinari.org/upload-image', $headers);

/* Get image */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'image' => '6b7c4e37754354dedba1c8a44dfc'
);
$response = Requests::post('https://api.zinari.org/get-image', $headers, $data);

/* Attach image to item-sale or crowdfunding */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'image' => '6b7c4e37754354dedba1c8a44dfc',
    'id' => '6727f9d6bea3905b8358e3ce33cc7d04',
    'store' => 'HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y',
    'trade:myTrageAgreement' => ''
);
$response = Requests::post('https://api.zinari.org/attach-image', $headers, $data);
/// Upload image

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://api.zinari.org/upload-image", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("trade", "myTrageAgreement")
	req.Header.Set("Content-Type", "multipart/form-data")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Get image
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"strings"
)

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`image=6b7c4e37754354dedba1c8a44dfc`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/get-image", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Attach image to item-sale or crowdfunding
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"strings"
)

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`image=6b7c4e37754354dedba1c8a44dfc&id=6727f9d6bea3905b8358e3ce33cc7d04&store=HnKZ7xcEMBq9n1iNiLKz8soLwGezS3r7ErgbAbAGSZ9y&trade:myTrageAgreement`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/attach-image", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"image":"6b7c4e37754354dedba1c8a44dfc"}
{"base64":"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","mimetype":"image/png"}
{"success": "Image was successfully attached to the: 6727f9d6bea3905b8358e3ce33cc7d04"}

POST /upload-image

Upload image

Uploads image. Image could be attached later to the payment url (item-sale) or to the crowdfunding, uses multipart/form-data

POST /get-image

Get image mimetype and its base64 representation

POST /attach-image

Attach image id to (item-sale) or to the crowdfunding

Attach image id to (item-sale) or to the crowdfunding. Every new invoice generated that has attached image would have imageId parametrs in status response

Account Control

Account Management

curl 'https://api.zinari.org/reset-password' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com'

curl 'https://api.zinari.org/change-email' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&newemail=test2%40forgingblock.io'

curl 'https://api.zinari.org/change-password' -H 'Content-Type: application/x-www-form-urlencoded' \
--data 'email=test%40zinaricoin.com&password=AeNu3miG7nahg&newpassword=myhardpwdAeng2uabohcehhh'
// Reset password

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com';

var options = {
    url: 'https://api.zinari.org/reset-password',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Change email
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&newemail=test2%40forgingblock.io';

var options = {
    url: 'https://api.zinari.org/change-email',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Change password

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=AeNu3miG7nahg&newpassword=myhardpwdAeng2uabohcehhh';

var options = {
    url: 'https://api.zinari.org/change-password',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

/* Reset password */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]'
);
$response = Requests::post('https://api.zinari.org/reset-password', $headers, $data);

/* Change email */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'newemail' => '[email protected]'
);
$response = Requests::post('https://api.zinari.org/change-email', $headers, $data);

/* Change password */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'AeNu3miG7nahg',
    'newpassword' => 'myhardpwdAeng2uabohcehhh'
);
$response = Requests::post('https://api.zinari.org/change-password', $headers, $data);
// Reset password

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/reset-password", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Change email

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&newemail=test2%40forgingblock.io}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/change-email", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	req.Header.Set("DNT", "1")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Change password

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=AeNu3miG7nahg&newpassword=myhardpwdAeng2uabohcehhh}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/change-password", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"success":"Check email inbox for reset link"}
{"success":"Check email inbox for email change link"}
{"success":"Password has been changed"}

POST /reset-password

Used to reset password

POST /change-email

Used to change email

POST /change-password

Used to change password

Password requirements:

Do not use common sequences or your private details, add another word or two, consider using lowercase and uppercase and special symbols

Parameters

Parameter In Type Required Description Scope
email body [string] true email reset-password, change-email, change-password
password body [string] true strong password (zxcvbn score >= 1) change-email, change-password
newpassword body [string] true new strong password (zxcvbn score >= 1) change-password
newemail body [string] true new email for password restore change-email

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /reset-password, /change-email and /change-password

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Account Informaton

curl 'https://api.zinari.org/provide-business-details' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&business=forgingblock&url=https://forgingblock.io'
curl 'https://api.zinari.org/get-business-details' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce'
// Provide Business Information

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&business=forgingblock&url=https://forgingblock.io';

var options = {
    url: 'https://api.zinari.org/provide-business-details',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Get Business Information

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=AeNu3miG7nahg';

var options = {
    url: 'https://api.zinari.org/get-business-details',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

/* Provide Business Information */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
	'business' => 'forgingblock',
	'url' => 'https://forgingblock.io',
);
$response = Requests::post('https://api.zinari.org/provide-business-details', $headers, $data);

/* Get Business Information */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'AeNu3miG7nahg'
);
$response = Requests::post('https://api.zinari.org/get-business-details', $headers, $data);
// Provide Business Information

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&business=forgingblock&url=https://forgingblock.io}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/provide-business-details", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	req.Header.Set("DNT", "1")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Get Business Information

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=AeNu3miG7nahg}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/get-business-details", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{'success': "New business information received"}
{"business":"forgingblock3","url":"https://api.zinari.org"}

POST /provide-business-details

Provide information about business

POST /get-business-details

Get information about business

Parameters

Parameter In Type Required Description Scope
email body [string] true email provide-business-details, get-business-details
password body [string] true strong password (zxcvbn score >= 1) provide-business-details, get-business-details
business body [string] true business name provide-business-details
url body [string] true website information provide-business-details

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /provide-business-details, get-business-details

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Backward compatibility with BitPay API

Backward compatibility allows invoicing and authorization in a similar way as BitPay API

POST /invoices

Creates an invoice for the calling merchant.

Fully compatible with BitPay API

GET /invoices

Retrieves invoices for the calling merchant filtered by query.

Fully compatible with BitPay API

POST /create-pairing

Used to create pairing code

curl 'https://api.zinari.org/create-pairing' -H 'Content-Type: application/x-www-form-urlencoded' --data 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=G8j4C7tEAYVotK2XR6L12senoZLkYjXy1sNXsmGc9d6F'
var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};

var dataString = 'email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=G8j4C7tEAYVotK2XR6L12senoZLkYjXy1sNXsmGc9d6F';

var options = {
    url: 'https://api.zinari.org/create-pairing',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);


<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce',
    'store' => 'G8j4C7tEAYVotK2XR6L12senoZLkYjXy1sNXsmGc9d6F'
);
$response = Requests::post('https://api.zinari.org/create-pairing', $headers, $data);
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{email=test%40zinaricoin.com&password=myhardpwdAeng2uabohce&store=G8j4C7tEAYVotK2XR6L12senoZLkYjXy1sNXsmGc9d6F}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/create-pairing", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"pairng":"2pqz9hz"}

POST /tokens

Used to receive API access using pairing

Parameters

For /tokens

Parameter In Type Required Description
guid body [string] true parameter to enforce idempotence for POST requests
id body [string] true client id
label body [string] true label for a client
pairingCode body [string] true pairing code

For /create-pairing

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
store body [string] true store id

Responses

Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

OPTIONS /tokens and /create-pairing

Response without content, but with supported methods

Status Meaning Description Schema
204 No Content No Content None

Using API in client-side applications

Sometimes when security is reliable in some client-side, applications cookie authentication could be used.

The cookie is valid for 6 hours and it allows the avoidance providing email and password or trade and token continuously for certain API calls.

However store param should be provided instead of trade and token

All calls except /withdraw-ln support cookie.

curl 'https://api.zinari.org/signin' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data '[email protected]&password=myhardpwdAeng2uabohce'

curl 'https://api.zinari.org/signout'
// Sign In

var request = require('request');

var headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
};

var dataString = '[email protected]&password=myhardpwdAeng2uabohce';

var options = {
    url: 'https://api.zinari.org/signin',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

// Sign Out

var request = require('request');

var options = {
    url: 'https://api.zinari.org/signout'
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

/* Sign In */

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8'
);
$data = array(
    'email' => '[email protected]',
    'password' => 'myhardpwdAeng2uabohce'
);
$response = Requests::post('https://api.zinari.org/signin', $headers, $data);

/* Sign Out */
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array();
$response = Requests::get('https://api.zinari.org/signout', $headers);
// Sign In

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	var data = []byte(`{[email protected]&password=myhardpwdAeng2uabohce}`)
	req, err := http.NewRequest("POST", "https://api.zinari.org/signin", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

// Sign Out
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://api.zinari.org/signout", nil)
	if err != nil {
		log.Fatal(err)
	}
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

Response examples:

{"success":"Sign In success"}
{"success":"Sign Out success"}

POST /signin

Sets 6 hours long cookie

For testing purposes /test/login.html webpage could be used to login.

Cookie could be find under name __forgingblock in cookie store

GET or POST /signout

Sets expired cookie

For /signin

Parameter In Type Required Description
email body [string] true email
password body [string] true strong password (zxcvbn score >= 1)
Status Meaning Description Schema
200 OK Request has succeeded None
400 Bad Request Malformed request syntax None
401 Unauthorized Authorization has been refused None
429 Too Many Requests Rate limiting: Too Many Requests None
422 Unprocessable Entity Unable to be processed None

Integrations

We provide several plugins for popular e-commerce software.

Supported e-commerce engines:

Integration with WooCommerce

Integration with PrestaShop

Integration with OpenCart

Integration with Zen Cart

Integration with Magento 2

Integration with Drupal Commerce 2

Integration with osCommerce 2

Integration with Shopify