- Introduction
- Additional documents
- General API Information
- HTTP Return Codes
- Error Codes
- Common response parts
- Wallet management API
A safe wallet to store, manage, send, and receive digital assets. Users need an easy way to access and manage their digital assets. ZamWallet is an application for iOS and Android that allows users to store, access, manage, send, and receive crypto directly from their mobile phones.
The Zam.io API that serves for creating and managing Your wallet:
- Registration and account management
- Cryptocurrency buy/sell orders
- Working with external wallets
- Ability to update rate information
- HTTP
4XX
return codes are used for malformed requests; the issue is on the sender's side. - HTTP
400
return code is used when the WAF Limit (Web Application Firewall) has been violated. - HTTP
404
return code is used when requested data not found. - HTTP
408
return code is used when request timeout exceeded. - HTTP
5XX
return codes are used for internal errors; the issue is on Zam's side. It is important to NOT treat this as a failure operation; the execution status is UNKNOWN and could have been a success. - HTTP
500
return code is used when internal server error occured. - HTTP
503
return code is used when requested service is unreachable.
- Any endpoint can return an ERROR
Sample Payload below:
{
"meta": {
"status": "OK",
"message": "ERROR - Authorization error"
},
"data": {}
}
The response always consist of two objects meta
and data
.
The meta
object has two parameters status
that could be "OK"
or "ERROR"
and message
with status description values: "SUCCESS"
"Not found"
and etc..
data
object will contain either no object or response's payload.
The endpoint stands for wallet management as account administration, ordering transactions, adding/deleting external wallets and etc..
New user registration request.
Request type and URL:
POST https://zam.io/api/auth
Request parameters:
Name | Type | Description |
---|---|---|
phone | STRING | User’s phone number. Should contain at least 10 characters. |
fullName | STRING | User’s full name(Surname, Name, Patronymic/Middle Name). |
refCode | STRING | The referral code that user received if was invited. |
codeRequest | OBJECT | Subrequest for number verification. Contains “phone” field that was mentioned above. |
Request example:
{
"phone": "0647744360",
"fullName": "Name Surname",
"refCode": "{referral code}",
"codeRequest":
{
"phone": "0647744360"
}
}
Response parameters:
Name | Type | Description |
---|---|---|
passportMessage | STRING | Passport phrase. |
agreement | OBJECT | An agreement object that consist of parameters describet below. |
id | STRING | UUID of agreement document. Example: 173e4567-e89b-12d3-a456-426624174000 . |
name | STRING | The agreement file name. |
url | STRING | The agreement file's URL. |
Response example:
{
"meta":
{
"status": "OK",
"message": "Success"
},
"data":
{
"passportMessage": "Passport phrase",
"agreement":
{
"id": "173e4567-e89b-12d3-a456-426624174000",
"name": "Security agreement",
"url": "/api/auth/documents/173e4567-e89b-12d3-a456-426614174000"
}
}
}
Simple password change request.
Request type and URL:
POST https://zam.io/api/auth/change
Request parameters:
Name | Type | Description |
---|---|---|
oldPassword | STRING | Old password's hash. |
newPassword | STRING | New password's hash. |
Request example:
{
"oldPassword": "839a54bf20626e4942bc8f11873f0654",
"newPassword": "fb29ed3264c5a92bcf74eccd7489e828"
}
Response example:
{
"meta":
{
"status": "OK",
"message": "Success"
}
}
Security agreement for user to accept.
Request type and URL:
GET https://zam.io/api/auth/documents/:documentId
The response returns security agreement file to download.
Request to delete authorized account.
Request type and URL:
DELETE https://zam.io/api/auth/delete
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {}
}
Request for Zam wallet's private key generation
Request type and URL:
GET https://zam.io/api/auth/privateKey
Response parameters:
Name | Type | Description |
---|---|---|
privateKey | STRING | Zam wallet's private key. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"privateKey": "bd0c8e3bd998a500b0984584a7245ca0"
}
}
Request for authorization token.
Request type and URL:
POST https://zam.io/api/auth/token
Request parameters:
Name | Type | Description |
---|---|---|
token | STRING | Last expired token. |
deviceId | STRING | Device’s UUID. |
login | STRING | User’s login. |
password | STRING | Hash of user’s password. |
Request example:
{
"token": "94a08da1fecbb6e8b46990538c7b50b2",
"deviceId": "123e4567-e89b-12d3-a456-426614174000",
"login": "UserName",
"password": "fb29ed3264c5a92bcf74eccd7489e828"
}
Response parameters:
Name | Type | Description |
---|---|---|
token | STRING | Last expired token. |
agreement | OBJECT | An object with three parameters described. |
id | STRING | UUID of agreement document. Example: 173e4567-e89b-12d3-a456-426624174000 . |
name | STRING | The agreement file name. |
url | STRING | The agreement file's URL. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"token": "94a08da1fecbb6e8b46990538c7b50b2",
"agreement": {
"id": "173e4567-e89b-12d3-a456-426624174000",
"name": "Security agreement",
"url": "/api/auth/documents/173e4567-e89b-12d3-a456-426614174000"
}
}
}
Request for transaction order to buy/sell cryptocurrency. Headers of request are described below Here should be table
Request parameters:
Name | Type | Description | Example |
---|---|---|---|
priority | STRING | Transaction priority (default value - MEDIUM, optional - TOP). | MEDIUM |
blockchainFrom | STRING | Source platform name. | Binance |
blockchainTo | STRING | Destination platform name. | Binance |
addressContractFrom | STRING | Contract adrress on source wallet. | |
addressContractTo | STRING | Contract address on destiantion wallet. | |
adressFrom | STRING | Soruce wallet address. | cosmos18ta688t40kmped54stvdgvgrazmyh0zqwhmhf5 |
addressTo | STRING | Destionation wallet address. | 12PUTiN2VjQQzkmSNU7AauHNrQSuadbmhH |
currency | STRING | Cryptocurrency shortname. | BTC |
amount | STRING | Cryptrocurrency amount. | 3.45 |
dateCreate | STRING | Order creation date:time. | 1947-04-26T15:41:07.646Z |
Request type and URL:
GET https://zam.io/api/order?priority=MEDIUM&blockchainFrom=string&blockchainTo=string&addressContractFrom=string&addressContractTo=string&adressFrom=string&addressTo=string&amount=string&paymentRestrictionTransaction=string
Response parameters:
Name | Type | Description |
---|---|---|
blockchainFrom | STRING | Source platform name |
blockchainTo | STRING | Destination platform name. |
addressTo | STRING | Destionation wallet address. |
amount | STRING | Cryptrocurrency amount. |
dateCreate | STRING | Order creation date:time. |
addressContractFrom | STRING | Contract adrress on source wallet. |
addressContractTo | STRING | Contract address on destiantion wallet. |
adressFrom | STRING | Soruce wallet address. |
currency | STRING | Cryptocurrency shortname. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"blockchainFrom": "",
"blockchainTo": "",
"addressTo": "",
"amount": "34.00",
"dateCreate": "1947-04-26T15:41:07.646Z",
"addressContractFrom": "",
"addressContractTo": "",
"adressFrom": "",
"currency": "USD"
}
}
The buy operation that follows after receiving transaction order.
Request parameters:
Name | Type | Description | Example |
---|---|---|---|
priority | STRING | Transaction priority (default value - MEDIUM, optional - TOP). | MEDIUM |
blockchainTo | STRING | Destination platform name. | Binance |
addressContractTo | STRING | Contract address on destiantion wallet. | |
addressTo | STRING | Destionation wallet address. | 12PUTiN2VjQQzkmSNU7AauHNrQSuadbmhH |
currency | STRING | Cryptocurrency shortname. | BTC |
amount | STRING | Cryptrocurrency amount. | 3.45 |
dateCreate | STRING | Order creation date:time. | 1947-04-26T15:41:07.646Z |
order | STRING | Reference to transaction order for payment. |
Request type and URL:
PUT https://zam.io/api/order/purchase?priority=MEDIUM&blockchainTo=string&addressContractTo=string&addressTo=string&amount=string&paymentRestrictionTransaction=string
Response parameters:
Name | Type | Description |
---|---|---|
blockchainTo | STRING | Destination platform name. |
addressTo | STRING | Destionation wallet address. |
amount | STRING | Cryptrocurrency amount. |
dateCreate | STRING | Order creation date:time. |
order | STRING | Reference to transaction order for payment. |
addressContractTo | STRING | Contract address on destiantion wallet. |
currency | STRING | Cryptocurrency shortname. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"blockchainTo": "",
"addressTo": "",
"amount": "34.00",
"dateCreate": "1947-04-26T15:41:07.646Z",
"order": "",
"addressContractTo": "",
"currency": "USD"
}
}
The sell operation that follows after receiving transaction order. FPS - Fast Payment System
Request type and URL:
PUT https://zam.io/api/order/sale?priority=MEDIUM&blockchainFrom=string&blockchainTo=string&addressContractFrom=string&addressContractTo=string&adressFrom=string&addressTo=string&amount=string&paymentRestrictionTransaction=string
Request parameters:
Name | Type | Description |
---|---|---|
spbPhone1 | STRING | Phone number registered on FPS. |
spbName1 | STRING | Full name registered on on FPS. |
visaCardNumber2 | STRING | 16 digit card number. |
visaName2 | STRING | Fullname of card holder. |
masterCardNumber3 | STRING | 16 digit card number. |
bankAccountPaymentAccount4 | STRING | |
bankAccountBIK4 | STRING | |
bankAccountName4 | STRING |
Request example:
{
"spbPhone1": "",
"spbName1": "",
"visaCardNumber2": "0000 0000 0000 0000",
"visaName2": "Name Surname",
"masterCardNumber3": "0000 0000 0000 0000",
"masterName3": "Name Surname",
"bankAccountPaymentAccount4": "",
"bankAccountBIK4": "",
"bankAccountName4": ""
}
Response parameters:
Name | Type | Description |
---|---|---|
priority | STRING | Transaction priority (default value - MEDIUM, optional - TOP). |
blockchainFrom | STRING | Source platform name. |
blockchainTo | STRING | Destination platform name. |
addressTo | STRING | Destionation wallet address. |
amount | STRING | Cryptrocurrency amount. |
dateCreate | STRING | Order creation date:time. |
addressContractFrom | STRING | Contract adrress on source wallet. |
addressContractTo | STRING | Contract address on destiantion wallet. |
adressFrom | STRING | Soruce wallet address. |
currency | STRING | Cryptocurrency shortname. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"blockchainFrom": "",
"blockchainTo": "",
"addressTo": "",
"amount": "34.00",
"dateCreate": "1947-04-26T15:41:07.646Z",
"addressContractFrom": "",
"addressContractTo": "",
"adressFrom": "",
"currency": "USD"
}
}
Request for adding external wallet.
Request type and URL:
POST https://zam.io/api/otherCrypto
Request parameters:
Name | Type | Description |
---|---|---|
blockchain | STRING | Platform name. |
addressContract | STRING | Wallet’s contract address. |
adress | STRING | Wallet's adress. |
Request example:
{
"blockchain": "Zam",
"addressContract": "",
"adress": ""
}
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {}
}
Request to disable external wallet. Headers are described below.
Request parameters:
Name | Type | Description |
---|---|---|
blockchain | STRING | Platform name. |
addressContract | STRING | Wallet’s contract address. |
adress | STRING | Wallet's adress. |
Request type and URL:
DELETE https://zam.io/api/otherCrypto?blockchain=string&addressContract=string&address=string
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {}
}
Request for top 50 crypto currencies with currency to Zam/dollar rate.
Request type and URL:
GET https://zam.io/api/rate
Response is an object array of currencies' describtions and rate data. Parameters:
Name | Type | Description |
---|---|---|
blockchain | STRING | Platform name. |
address | STRING | Wallet's adress. |
currency | STRING | Cryptocurrency shortname. |
rateToDollar | STRING | Rate to dollar. |
rateToZam | STRING | Rate to Zam. |
amount | STRING | Cryptrocurrency amount. |
dateCreate | STRING | Date:time of exchange rate actualization. |
addressContract | STRING | Wallet’s contract address. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": [
{
"blockchain": "BTC",
"address": "",
"currency": "BTC",
"rateToDollar": "100000.00",
"rateToZam": "0.5",
"amount": "34.5",
"dateRate": "1947-04-26T15:41:07.646Z",
"addressContract": ""
},
{
"blockchain": "ETH",
"address": "",
"currency": "BTC",
"rateToDollar": "200",
"rateToZam": "0.005",
"amount": "34.5",
"dateRate": "1947-04-26T15:41:07.646Z",
"addressContract": ""
}
]
}
Gets rate to dollar. Headers are described below.
Request parameters:
Name | Type | Description |
---|---|---|
currency | STRING | Cryptocurrency shortname. |
blockchain | STRING | Platform name. |
addressContract | STRING | Wallet’s contract address. |
Request type and URL:
GET https://zam.io/api/rate/dollar?currency=string&blockchain=string&addressContract=string
Response parameters:
Name | Type | Description |
---|---|---|
blockchain | STRING | Platform name. |
address | STRING | Wallet's adress. |
currency | STRING | Cryptocurrency shortname. |
rateToDollar | STRING | Rate to dollar. |
rateToZam | STRING | Rate to Zam. |
amount | STRING | Cryptrocurrency amount. |
dateCreate | STRING | Date:time of exchange rate actualization. |
addressContract | STRING | Wallet’s contract address. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data":{
"blockchain": "ETH",
"address": "",
"currency": "BTC",
"rateToDollar": "200",
"rateToZam": "0.005",
"amount": "34.5",
"dateRate": "1947-04-26T15:41:07.646Z",
"addressContract": ""
}
}
Gets rate to Zam. Headers are described below.
Request parameters:
Name | Type | Description |
---|---|---|
currency | STRING | Cryptocurrency shortname. |
blockchain | STRING | Platform name. |
addressContract | STRING | Wallet’s contract address. |
Request type and URL:
GET https://zam.io/api/rate/zam?currency=string&blockchain=string&addressContract=do dipisicing
Response parameters:
Name | Type | Description |
---|---|---|
blockchain | STRING | Platform name. |
address | STRING | Wallet's adress. |
currency | STRING | Cryptocurrency shortname. |
rateToDollar | STRING | Rate to dollar. |
rateToZam | STRING | Rate to Zam. |
amount | STRING | Cryptrocurrency amount. |
dateCreate | STRING | Date:time of exchange rate actualization. |
addressContract | STRING | Wallet’s contract address. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data":{
"blockchain": "ETH",
"address": "",
"currency": "BTC",
"rateToDollar": "200",
"rateToZam": "0.005",
"amount": "34.5",
"dateRate": "1947-04-26T15:41:07.646Z",
"addressContract": ""
}
}
Request for balance information on all enabled wallets.
Request type and URL:
GET https://zam.io/api/amount
Request is an array of objects that describes wallet data. Parameters:
Response parameters:
Name | Type | Description |
---|---|---|
blockchain | STRING | Platform name. |
address | STRING | Wallet's adress. |
currency | STRING | Cryptocurrency shortname. |
amount | STRING | Cryptrocurrency amount. |
addressContract | STRING | Wallet’s contract address. |
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": [
{
"blockchain": "BTC",
"address": "",
"currency": "BTC",
"amount": "34.56",
"addressContract": ""
},
{
"blockchain": "Zam",
"address": "",
"currency": "Zam",
"amount": "34.56",
"addressContract": ""
}
]
}
Request type and URL:
GET https://zam.io/api/history
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": [
{
"blockchainFrom": "BTC",
"blockchainTo": "Zam",
"addressTo": "",
"amount": "34.56",
"commission": [
{
"paymentTransaction": "",
"commissionTransaction": ""
},
{
"paymentTransaction": "",
"commissionTransaction": ""
}
],
"dateCreate": "1947-04-26T15:41:07.646Z",
"dateConfirm": "1947-04-26T15:41:07.646Z",
"addressContractFrom": "",
"addressContractTo": "",
"adressFrom": "",
"currency": ""
},
{
"blockchainFrom": "ETH",
"blockchainTo": "Zam",
"addressTo": "",
"amount": "34.56",
"commission": [
{
"paymentTransaction": "",
"commissionTransaction": ""
},
{
"paymentTransaction": "",
"commissionTransaction": ""
}
],
"dateCreate": "1947-04-26T15:41:07.646Z",
"dateConfirm": "1947-04-26T15:41:07.646Z",
"addressContractFrom": "",
"addressContractTo": "",
"adressFrom": "",
"currency": ""
}
]
}
Request type and URL:
GET https://zam.io/api/notifications?offset=0&limit=10
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"notifications": [
{
"title": "Money purchase",
"text": "2.1 ETH were purchased to Your wallet (address ...), from address ... в 09:02:57 18.06.2021y.",
"date": "2020-10-05T10:04:07.666Z",
"read": true
},
{
"title": "Money purchase",
"text": "2.1 ETH were purchased to Your wallet (address ...), from address ... в 09:02:57 18.06.2021y.",
"date": "1947-04-26T15:41:07.646Z",
"read": true
}
],
"pagination": {
"offset": 0,
"limit": 10,
"total": 100
}
}
}
Request to get approximate rate and cost of transaction. Headers are described below.
Request parameters:
Name | Type | Description | Example |
---|---|---|---|
priority | STRING | Transaction priority (default value - MEDIUM, optional - TOP). | MEDIUM |
blockchainFrom | STRING | Source platform name. | Binance |
blockchainTo | STRING | Destination platform name. | Binance |
addressContractFrom | STRING | Contract adrress on source wallet. | |
addressContractTo | STRING | Contract address on destiantion wallet. | |
adressFrom | STRING | Soruce wallet address. | cosmos18ta688t40kmped54stvdgvgrazmyh0zqwhmhf5 |
addressTo | STRING | Destionation wallet address. | 12PUTiN2VjQQzkmSNU7AauHNrQSuadbmhH |
currency | STRING | Cryptocurrency shortname. | BTC |
amount | STRING | Cryptrocurrency amount. | 3.45 |
paymentRestrictionTransaction | STRING | Payment limit for transaction. | 5.147 |
Request type and URL:
GET https://zam.io/api/calculation?priority=MEDIUM&blockchainFrom=string&blockchainTo=string&addressContractFrom=string&addressContractTo=string&adressFrom=string&addressTo=string&amount=string&paymentRestrictionTransaction=string
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {
"blockchainFrom": "",
"blockchainTo": "",
"addressTo": "",
"amount": "",
"commission": [
{
"paymentTransaction": "",
"commissionTransaction": ""
},
{
"paymentTransaction": "",
"commissionTransaction": ""
}
],
"dateActual": "1947-04-26T15:41:07.646Z",
"addressContractFrom": "",
"addressContractTo": "",
"adressFrom": "",
"currency": ""
}
}