Zamio Docs
Search
K

Wallet Manager API

General API information

The Wallet Manager 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 Return Codes

  • 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.

Error Codes

  • Any endpoint can return an ERROR
Sample Payload below:
{
"meta": {
"status": "OK",
"message": "ERROR - Authorization error"
},
"data": {}
}

Common response parts

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 describtion values: "SUCCESS" "Not found" and etc.. data object will contain either no object or response's payload.

API methods

The API contains wallet management methods such as account administration, ordering transactions, adding/deleting external wallets and etc..

Account management requests

New User registration

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"
}
}
}

Password change

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"
}
}

Request for security agreements

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.

Delete account

Request to delete authorized account.
Request type and URL:
DELETE https://zam.io/api/auth/delete
Response example:
{
"meta": {
"status": "OK",
"message": "Success"
},
"data": {}
}

Generate private key

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"
}
}

Update token

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"
}
}
}

Order requests

Request for transaction order generation

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"
}
}

Order for cryptocurrency buy

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"
}
}

Order for cryptocurrency sell

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"
}
}

Enable or Disable external wallets

Enable external wallet

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": {}
}

Disable external wallet

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 rate information

Get top50 cryptocurrenies' information

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": ""
}
]
}

Selected cryptocurrency to dollar rate

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": ""
}
}