Home
Welcome to our main self generated API documentation. For easy start, get Postman Collection
To view all our ecosystem documentation, please visit https://docs.cryptocoin.pro
Authentication
User Authenticate via Platform
Use this endpoint to authenticate an user with a Platform
JWT Payload { email|id: string, expire: required|timestamp|after_or_equal:now }
- email: the user email
- id: the user id
- expire: timestamp in future
Encription RS512
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/authenticate-jwt/1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/authenticate-jwt/1"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/authenticate-jwt/1',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/authenticate-jwt/1'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "164671|GbQm7ZZrGd9zbH0PsUnZezdXUzgVWnfnzH2H5Xmk",
"userId": "66de494e-6791-4290-996c-32f42041fbf4",
"ttl": 1209600,
"until": "2020-12-08T09:43:40.289719Z",
"created": "2020-11-24T09:43:40.289746Z"
}
}
Example response (401):
{
"error": "The account is inactive."
}
Example response (403):
{
"error": "The provided credentials are incorrect."
}
Example response (423):
{
"error": "The account is locked."
}
Example response (425):
{
"error": "The account login is restricted for the moment due brute force detected."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
POST /api/v1/authenticate-jwt/{platform}
URL Parameters
Parameter | Status | Description |
---|---|---|
platformId |
required | The platform ID. |
User Authenticate
Use this endpoint to authenticate as an user
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/authenticate" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"email@gmail.com","password":"12345678"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/authenticate"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "email@gmail.com",
"password": "12345678"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/authenticate',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'email@gmail.com',
'password' => '12345678',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/authenticate'
payload = {
"email": "email@gmail.com",
"password": "12345678"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "164671|GbQm7ZZrGd9zbH0PsUnZezdXUzgVWnfnzH2H5Xmk",
"userId": "66de494e-6791-4290-996c-32f42041fbf4",
"ttl": 1209600,
"until": "2020-12-08T09:43:40.289719Z",
"created": "2020-11-24T09:43:40.289746Z"
}
}
Example response (401):
{
"error": "The account is inactive."
}
Example response (403):
{
"error": "The provided credentials are incorrect."
}
Example response (423):
{
"error": "The account is locked."
}
Example response (425):
{
"error": "The account login is restricted for the moment due brute force detected."
}
HTTP Request
POST /api/v1/authenticate
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
email |
string | required | The user email - (email|max:191). |
password |
string | required | The user password - (max:191). |
User Logout
Requires authentication Use this endpoint to logout an user. It is used to destroy tokens for both types of authentication.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/logout" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/logout"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/logout',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/logout'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"status": "Success"
}
Example response (401):
{
"error": "Unauthenticated"
}
HTTP Request
POST /api/v1/user/logout
Bank
APIs for managing user banks
Bank Create
Requires authentication Use this endpoint to create user bank.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"bankName":"ING Bank","iban":"RO020NGB00009999002858000","swift":"123456","currency":"EUR"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"bankName": "ING Bank",
"iban": "RO020NGB00009999002858000",
"swift": "123456",
"currency": "EUR"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'bankName' => 'ING Bank',
'iban' => 'RO020NGB00009999002858000',
'swift' => '123456',
'currency' => 'EUR',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank'
payload = {
"bankName": "ING Bank",
"iban": "RO020NGB00009999002858000",
"swift": "123456",
"currency": "EUR"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "aa7a66a2-fbb5-422e-bc52-7912fa2c96f9",
"status": "CONFIRMED",
"bankName": "bank name",
"iban": "RO020NGB00009999002858000",
"swift": "123456",
"currency": "RON",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411215
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"currency": [
"The selected currency is invalid."
]
}
}
HTTP Request
POST /api/v1/user/{user}/bank
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
bankName |
string | required | The bank name - (max:191). |
iban |
string | required | The bank IBAN - (max:191|alpha_num|unique). |
swift |
string | required | The bank Swift code - (alpha_num|between:8,11). |
currency |
string | required | The bank ISO currency code - (alpha_num|isoCurrencyCode). |
Bank Index
Requires authentication Use this endpoint to get user banks.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank?status=confirmed¤cy=EUR" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank"
);
let params = {
"status": "confirmed",
"currency": "EUR",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'status'=> 'confirmed',
'currency'=> 'EUR',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank'
params = {
'status': 'confirmed',
'currency': 'EUR',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "aa7a66a2-fbb5-422e-bc52-7912fa2c96f9",
"status": "CONFIRMED",
"bankName": "bank name",
"iban": "RO020NGB00009999002858000",
"swift": "123456",
"currency": "RON",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411215
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/bank
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
status |
optional | Filter by Status. |
currency |
optional | Filter by Currency. |
Bank Show
Requires authentication Use this endpoint to get user specific bank.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "aa7a66a2-fbb5-422e-bc52-7912fa2c96f9",
"status": "CONFIRMED",
"bankName": "bank name",
"iban": "RO020NGB00009999002858000",
"swift": "123456",
"currency": "RON",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411215
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/bank/{bank}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
bank |
required | The bank ID. |
Bank Destroy
Requires authentication Use this endpoint to destroy user bank.
Example request:
curl -X DELETE \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
Example response (200):
{
"message": "This bank has been successfully deleted."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "This bank has been already used in previous actions."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
DELETE /api/v1/user/{user}/bank/{bank}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
bank |
required | The bank ID. |
Card
APIs for managing user cards
Card Create
Requires authentication Use this endpoint to create a user card.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"cardImage1":"File","cardImage2":"File","holderName":"Alin Ionut","expirationDate":"10\/19","lastFourDigits":"1234","alias":"MyFavoriteCard"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"cardImage1": "File",
"cardImage2": "File",
"holderName": "Alin Ionut",
"expirationDate": "10\/19",
"lastFourDigits": "1234",
"alias": "MyFavoriteCard"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'cardImage1' => 'File',
'cardImage2' => 'File',
'holderName' => 'Alin Ionut',
'expirationDate' => '10/19',
'lastFourDigits' => '1234',
'alias' => 'MyFavoriteCard',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card'
payload = {
"cardImage1": "File",
"cardImage2": "File",
"holderName": "Alin Ionut",
"expirationDate": "10\/19",
"lastFourDigits": "1234",
"alias": "MyFavoriteCard"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "5d482936-d7b4-4ef2-bef7-a230ca712a4b",
"status": "CONFIRMED",
"alias": "test",
"holderName": "Alin",
"expirationDate": "06\/19",
"lastFourDigits": "2453",
"cardImage1": "1945",
"cardImage2": "1946",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411204
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"lastFourDigits": [
"The last four digits field is required."
]
}
}
HTTP Request
POST /api/v1/user/{user}/card
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
cardImage1 |
file | required | The card image - (image|mimes:jpg,jpeg,bmp,png|max:10240kb). |
cardImage2 |
file | required | The card image with user holding it - (image|mimes:jpg,jpeg,bmp,png|max:10240kb). |
holderName |
string | required | The card user name - (max:191). |
expirationDate |
string | required | The card Expiration date - (date_format:m/y|after_or_equal:today). |
lastFourDigits |
string | required | The card last 4 digits - (numeric|digits:4). |
alias |
string | required | The card custom alias - (alpha_dash|max:191). |
Card Index
Requires authentication Use this endpoint to get user cards.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card?status=confirmed" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card"
);
let params = {
"status": "confirmed",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'status'=> 'confirmed',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card'
params = {
'status': 'confirmed',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "5d482936-d7b4-4ef2-bef7-a230ca712a4b",
"status": "CONFIRMED",
"alias": "test",
"holderName": "Alin",
"expirationDate": "06\/19",
"lastFourDigits": "2453",
"cardImage1": "1945",
"cardImage2": "1946",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411204
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/card
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
status |
optional | Filter by Status. |
Card Show
Requires authentication Use this endpoint to get a user card.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "5d482936-d7b4-4ef2-bef7-a230ca712a4b",
"status": "CONFIRMED",
"alias": "test",
"holderName": "Alin",
"expirationDate": "06\/19",
"lastFourDigits": "2453",
"cardImage1": "1945",
"cardImage2": "1946",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411204
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/card/{card}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
card |
required | The card ID. |
Card Update
Requires authentication Use this endpoint to update a user card.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"cardImage1":"File","cardImage2":"File","holderName":"Alin Ionut","expirationDate":"10\/19","lastFourDigits":"1234","alias":"MyFavoriteCard"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"cardImage1": "File",
"cardImage2": "File",
"holderName": "Alin Ionut",
"expirationDate": "10\/19",
"lastFourDigits": "1234",
"alias": "MyFavoriteCard"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'cardImage1' => 'File',
'cardImage2' => 'File',
'holderName' => 'Alin Ionut',
'expirationDate' => '10/19',
'lastFourDigits' => '1234',
'alias' => 'MyFavoriteCard',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b'
payload = {
"cardImage1": "File",
"cardImage2": "File",
"holderName": "Alin Ionut",
"expirationDate": "10\/19",
"lastFourDigits": "1234",
"alias": "MyFavoriteCard"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "5d482936-d7b4-4ef2-bef7-a230ca712a4b",
"status": "CONFIRMED",
"alias": "test",
"holderName": "Alin",
"expirationDate": "06\/19",
"lastFourDigits": "2453",
"cardImage1": "1945",
"cardImage2": "1946",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1557411204
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"alias": [
"The alias field is required."
]
}
}
HTTP Request
POST /api/v1/user/{user}/card/{card}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
card |
required | The card ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
cardImage1 |
file | required | The card image - (image|mimes:jpg,jpeg,bmp,png|max:10240kb). |
cardImage2 |
file | required | The card image with user holding it - (image|mimes:jpg,jpeg,bmp,png|max:10240kb). |
holderName |
string | required | The card user name - (max:191). |
expirationDate |
string | required | The card Expiration date - (date_format:m/y|after_or_equal:today). |
lastFourDigits |
string | required | The card last 4 digits - (numeric|digits:4). |
alias |
string | required | The card custom alias - (alpha_dash|max:191). |
Card Destroy
Requires authentication Use this endpoint to destroy user bank.
Example request:
curl -X DELETE \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/card/5d482936-d7b4-4ef2-bef7-a230ca712a4b'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
Example response (200):
{
"message": "This card has been successfully deleted."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "This card has been already used in previous actions."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
DELETE /api/v1/user/{user}/card/{card}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
card |
required | The card ID. |
Checkout
APIs for managing checkout
Checkout Index
Requires authentication Use this endpoint to get user checkouts.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout?id=iZE9qxz6&user=jon%40winterfell.got&step=payment&status=finished&type=buy_with_fiat&payment_method=card&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"step": "payment",
"status": "finished",
"type": "buy_with_fiat",
"payment_method": "card",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'step'=> 'payment',
'status'=> 'finished',
'type'=> 'buy_with_fiat',
'payment_method'=> 'card',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'step': 'payment',
'status': 'finished',
'type': 'buy_with_fiat',
'payment_method': 'card',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "a8b89dcf-fc7a-4593-8c8b-6a235f0e62b3",
"publicId": "Z8URCDUS",
"status": "processing",
"step": "kyc",
"attemptsQuote": {
"count": 1,
"limit": 3
},
"requestId": "626b4396-4090-4bcd-9388-59da1b9363d4",
"paymentType": "bank",
"ip": null,
"url": null,
"redirectUrl": "https:\/\/app.cryptocoin.pro\/",
"pingUrl": "https:\/\/dev-app.infra.cryptocoin.pro?ping=order-ccpro",
"user": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat+4@gmail.com",
"options": {
"language": "en",
"theme": "dark"
},
"meta": {
"source": "web",
"passwordSet": true
},
"selfDeletedAt": null,
"createdAt": 1554204615
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro\/"
},
"expiredAt": 1594114356,
"createdAt": 1593509574
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/checkout
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
step |
optional | Filter by Step. |
status |
optional | Filter by Status. |
type |
optional | Filter by Type. |
payment_method |
optional | Filter by Payment method. |
platform |
optional | Filter by Platform code. |
Checkout Show
Requires authentication Use this endpoint to get a user checkout.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "a8b89dcf-fc7a-4593-8c8b-6a235f0e62b3",
"publicId": "Z8URCDUS",
"status": "processing",
"step": "kyc",
"attemptsQuote": {
"count": 1,
"limit": 3
},
"requestId": "626b4396-4090-4bcd-9388-59da1b9363d4",
"paymentType": "bank",
"ip": null,
"url": null,
"user": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat+4@gmail.com",
"options": {
"language": "en",
"theme": "dark"
},
"meta": {
"source": "web",
"passwordSet": true
},
"selfDeletedAt": null,
"createdAt": 1554204615
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro\/"
},
"expiredAt": 1594114356,
"createdAt": 1593509574
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/checkout/{checkout}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
checkout |
required | The checkout ID. |
Country
APIs for managing countries
Country Index
Use this endpoint to get all available platform Countries.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/countries" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/countries"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/countries',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/countries'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"code": "AF",
"name": "Afghanistan",
"phoneCode": 93
},
{
"code": "AL",
"name": "Albania",
"phoneCode": 355
},
{
"code": "AS",
"name": "American Samoa",
"phoneCode": 1684
},
{
"code": "AD",
"name": "Andorra",
"phoneCode": 376
},
{
"code": "AO",
"name": "Angola",
"phoneCode": 244
},
{
"code": "AI",
"name": "Anguilla",
"phoneCode": 1264
},
{
"code": "AQ",
"name": "Antarctica",
"phoneCode": 672
},
{
"code": "AG",
"name": "Antigua And Barbuda",
"phoneCode": 1268
},
{
"code": "AR",
"name": "Argentina",
"phoneCode": 54
},
{
"code": "AM",
"name": "Armenia",
"phoneCode": 374
},
{
"code": "AW",
"name": "Aruba",
"phoneCode": 297
},
{
"code": "AU",
"name": "Australia",
"phoneCode": 61
},
{
"code": "AT",
"name": "Austria",
"phoneCode": 43
},
{
"code": "AZ",
"name": "Azerbaijan",
"phoneCode": 994
},
{
"code": "BS",
"name": "Bahamas The",
"phoneCode": 1242
},
{
"code": "BH",
"name": "Bahrain",
"phoneCode": 973
},
{
"code": "BB",
"name": "Barbados",
"phoneCode": 1246
},
{
"code": "BY",
"name": "Belarus",
"phoneCode": 375
},
{
"code": "BE",
"name": "Belgium",
"phoneCode": 32
},
{
"code": "BZ",
"name": "Belize",
"phoneCode": 501
},
{
"code": "BJ",
"name": "Benin",
"phoneCode": 229
},
{
"code": "BM",
"name": "Bermuda",
"phoneCode": 1441
},
{
"code": "BT",
"name": "Bhutan",
"phoneCode": 975
},
{
"code": "BA",
"name": "Bosnia and Herzegovina",
"phoneCode": 387
},
{
"code": "BW",
"name": "Botswana",
"phoneCode": 267
},
{
"code": "BV",
"name": "Bouvet Island",
"phoneCode": 47
},
{
"code": "BR",
"name": "Brazil",
"phoneCode": 55
},
{
"code": "IO",
"name": "British Indian Ocean Territory",
"phoneCode": 246
},
{
"code": "BN",
"name": "Brunei",
"phoneCode": 673
},
{
"code": "BG",
"name": "Bulgaria",
"phoneCode": 359
},
{
"code": "BF",
"name": "Burkina Faso",
"phoneCode": 226
},
{
"code": "BI",
"name": "Burundi",
"phoneCode": 257
},
{
"code": "CM",
"name": "Cameroon",
"phoneCode": 237
},
{
"code": "CA",
"name": "Canada",
"phoneCode": 1
},
{
"code": "CV",
"name": "Cape Verde",
"phoneCode": 238
},
{
"code": "KY",
"name": "Cayman Islands",
"phoneCode": 1345
},
{
"code": "CF",
"name": "Central African Republic",
"phoneCode": 236
},
{
"code": "TD",
"name": "Chad",
"phoneCode": 235
},
{
"code": "CL",
"name": "Chile",
"phoneCode": 56
},
{
"code": "CX",
"name": "Christmas Island",
"phoneCode": 61
},
{
"code": "CC",
"name": "Cocos (Keeling) Islands",
"phoneCode": 672
},
{
"code": "KM",
"name": "Comoros",
"phoneCode": 269
},
{
"code": "CG",
"name": "Congo",
"phoneCode": 242
},
{
"code": "CD",
"name": "Congo The Democratic Republic Of The",
"phoneCode": 243
},
{
"code": "CK",
"name": "Cook Islands",
"phoneCode": 682
},
{
"code": "CR",
"name": "Costa Rica",
"phoneCode": 506
},
{
"code": "CI",
"name": "Cote D Ivoire (Ivory Coast)",
"phoneCode": 225
},
{
"code": "HR",
"name": "Croatia (Hrvatska)",
"phoneCode": 385
},
{
"code": "CU",
"name": "Cuba",
"phoneCode": 53
},
{
"code": "CY",
"name": "Cyprus",
"phoneCode": 357
},
{
"code": "CZ",
"name": "Czech Republic",
"phoneCode": 420
},
{
"code": "DK",
"name": "Denmark",
"phoneCode": 45
},
{
"code": "DJ",
"name": "Djibouti",
"phoneCode": 253
},
{
"code": "DM",
"name": "Dominica",
"phoneCode": 1767
},
{
"code": "DO",
"name": "Dominican Republic",
"phoneCode": 1
},
{
"code": "TL",
"name": "East Timor",
"phoneCode": 670
},
{
"code": "EG",
"name": "Egypt",
"phoneCode": 20
},
{
"code": "SV",
"name": "El Salvador",
"phoneCode": 503
},
{
"code": "GQ",
"name": "Equatorial Guinea",
"phoneCode": 240
},
{
"code": "ER",
"name": "Eritrea",
"phoneCode": 291
},
{
"code": "EE",
"name": "Estonia",
"phoneCode": 372
},
{
"code": "ET",
"name": "Ethiopia",
"phoneCode": 251
},
{
"code": "XA",
"name": "External Territories of Australia",
"phoneCode": 61
},
{
"code": "FK",
"name": "Falkland Islands",
"phoneCode": 500
},
{
"code": "FO",
"name": "Faroe Islands",
"phoneCode": 298
},
{
"code": "FJ",
"name": "Fiji Islands",
"phoneCode": 679
},
{
"code": "FI",
"name": "Finland",
"phoneCode": 358
},
{
"code": "FR",
"name": "France",
"phoneCode": 33
},
{
"code": "GF",
"name": "French Guiana",
"phoneCode": 594
},
{
"code": "PF",
"name": "French Polynesia",
"phoneCode": 689
},
{
"code": "TF",
"name": "French Southern Territories",
"phoneCode": 262
},
{
"code": "GA",
"name": "Gabon",
"phoneCode": 241
},
{
"code": "GM",
"name": "Gambia The",
"phoneCode": 220
},
{
"code": "GE",
"name": "Georgia",
"phoneCode": 995
},
{
"code": "DE",
"name": "Germany",
"phoneCode": 49
},
{
"code": "GH",
"name": "Ghana",
"phoneCode": 233
},
{
"code": "GI",
"name": "Gibraltar",
"phoneCode": 350
},
{
"code": "GR",
"name": "Greece",
"phoneCode": 30
},
{
"code": "GL",
"name": "Greenland",
"phoneCode": 299
},
{
"code": "GD",
"name": "Grenada",
"phoneCode": 1473
},
{
"code": "GP",
"name": "Guadeloupe",
"phoneCode": 590
},
{
"code": "GU",
"name": "Guam",
"phoneCode": 1671
},
{
"code": "GT",
"name": "Guatemala",
"phoneCode": 502
},
{
"code": "XU",
"name": "Guernsey and Alderney",
"phoneCode": 44
},
{
"code": "GN",
"name": "Guinea",
"phoneCode": 224
},
{
"code": "GW",
"name": "Guinea-Bissau",
"phoneCode": 245
},
{
"code": "GY",
"name": "Guyana",
"phoneCode": 592
},
{
"code": "HT",
"name": "Haiti",
"phoneCode": 509
},
{
"code": "HM",
"name": "Heard and McDonald Islands",
"phoneCode": 61
},
{
"code": "HN",
"name": "Honduras",
"phoneCode": 504
},
{
"code": "HK",
"name": "Hong Kong S.A.R.",
"phoneCode": 852
},
{
"code": "HU",
"name": "Hungary",
"phoneCode": 36
},
{
"code": "IS",
"name": "Iceland",
"phoneCode": 354
},
{
"code": "IN",
"name": "India",
"phoneCode": 91
},
{
"code": "IQ",
"name": "Iraq",
"phoneCode": 964
},
{
"code": "IE",
"name": "Ireland",
"phoneCode": 353
},
{
"code": "IL",
"name": "Israel",
"phoneCode": 972
},
{
"code": "IT",
"name": "Italy",
"phoneCode": 39
},
{
"code": "JM",
"name": "Jamaica",
"phoneCode": 1876
},
{
"code": "JP",
"name": "Japan",
"phoneCode": 81
},
{
"code": "JE",
"name": "Jersey",
"phoneCode": 44
},
{
"code": "KZ",
"name": "Kazakhstan",
"phoneCode": 7
},
{
"code": "KE",
"name": "Kenya",
"phoneCode": 254
},
{
"code": "KI",
"name": "Kiribati",
"phoneCode": 686
},
{
"code": "KR",
"name": "Korea South",
"phoneCode": 82
},
{
"code": "KW",
"name": "Kuwait",
"phoneCode": 965
},
{
"code": "LA",
"name": "Laos",
"phoneCode": 856
},
{
"code": "LV",
"name": "Latvia",
"phoneCode": 371
},
{
"code": "LB",
"name": "Lebanon",
"phoneCode": 961
},
{
"code": "LS",
"name": "Lesotho",
"phoneCode": 266
},
{
"code": "LR",
"name": "Liberia",
"phoneCode": 231
},
{
"code": "LY",
"name": "Libya",
"phoneCode": 218
},
{
"code": "LI",
"name": "Liechtenstein",
"phoneCode": 423
},
{
"code": "LT",
"name": "Lithuania",
"phoneCode": 370
},
{
"code": "LU",
"name": "Luxembourg",
"phoneCode": 352
},
{
"code": "MO",
"name": "Macau S.A.R.",
"phoneCode": 853
},
{
"code": "MK",
"name": "Macedonia",
"phoneCode": 389
},
{
"code": "MG",
"name": "Madagascar",
"phoneCode": 261
},
{
"code": "MW",
"name": "Malawi",
"phoneCode": 265
},
{
"code": "MY",
"name": "Malaysia",
"phoneCode": 60
},
{
"code": "MV",
"name": "Maldives",
"phoneCode": 960
},
{
"code": "ML",
"name": "Mali",
"phoneCode": 223
},
{
"code": "MT",
"name": "Malta",
"phoneCode": 356
},
{
"code": "IM",
"name": "Man (Isle of)",
"phoneCode": 44
},
{
"code": "MH",
"name": "Marshall Islands",
"phoneCode": 692
},
{
"code": "MQ",
"name": "Martinique",
"phoneCode": 596
},
{
"code": "MR",
"name": "Mauritania",
"phoneCode": 222
},
{
"code": "MU",
"name": "Mauritius",
"phoneCode": 230
},
{
"code": "YT",
"name": "Mayotte",
"phoneCode": 262
},
{
"code": "MX",
"name": "Mexico",
"phoneCode": 52
},
{
"code": "FM",
"name": "Micronesia",
"phoneCode": 691
},
{
"code": "MD",
"name": "Moldova",
"phoneCode": 373
},
{
"code": "MC",
"name": "Monaco",
"phoneCode": 377
},
{
"code": "MN",
"name": "Mongolia",
"phoneCode": 976
},
{
"code": "MS",
"name": "Montserrat",
"phoneCode": 1664
},
{
"code": "MZ",
"name": "Mozambique",
"phoneCode": 258
},
{
"code": "MM",
"name": "Myanmar",
"phoneCode": 95
},
{
"code": "NA",
"name": "Namibia",
"phoneCode": 264
},
{
"code": "NR",
"name": "Nauru",
"phoneCode": 674
},
{
"code": "BQ",
"name": "Caribbean Netherlands",
"phoneCode": 599
},
{
"code": "NL",
"name": "Netherlands The",
"phoneCode": 31
},
{
"code": "NC",
"name": "New Caledonia",
"phoneCode": 687
},
{
"code": "NZ",
"name": "New Zealand",
"phoneCode": 64
},
{
"code": "NI",
"name": "Nicaragua",
"phoneCode": 505
},
{
"code": "NE",
"name": "Niger",
"phoneCode": 227
},
{
"code": "NG",
"name": "Nigeria",
"phoneCode": 234
},
{
"code": "NU",
"name": "Niue",
"phoneCode": 683
},
{
"code": "NF",
"name": "Norfolk Island",
"phoneCode": 672
},
{
"code": "MP",
"name": "Northern Mariana Islands",
"phoneCode": 1670
},
{
"code": "NO",
"name": "Norway",
"phoneCode": 47
},
{
"code": "OM",
"name": "Oman",
"phoneCode": 968
},
{
"code": "PW",
"name": "Palau",
"phoneCode": 680
},
{
"code": "PS",
"name": "Palestinian Territory Occupied",
"phoneCode": 970
},
{
"code": "PA",
"name": "Panama",
"phoneCode": 507
},
{
"code": "PG",
"name": "Papua new Guinea",
"phoneCode": 675
},
{
"code": "PY",
"name": "Paraguay",
"phoneCode": 595
},
{
"code": "PE",
"name": "Peru",
"phoneCode": 51
},
{
"code": "PH",
"name": "Philippines",
"phoneCode": 63
},
{
"code": "PN",
"name": "Pitcairn Island",
"phoneCode": 64
},
{
"code": "PL",
"name": "Poland",
"phoneCode": 48
},
{
"code": "PT",
"name": "Portugal",
"phoneCode": 351
},
{
"code": "PR",
"name": "Puerto Rico",
"phoneCode": 1787
},
{
"code": "QA",
"name": "Qatar",
"phoneCode": 974
},
{
"code": "RE",
"name": "Reunion",
"phoneCode": 262
},
{
"code": "RO",
"name": "Romania",
"phoneCode": 40
},
{
"code": "RU",
"name": "Russia",
"phoneCode": 7
},
{
"code": "RW",
"name": "Rwanda",
"phoneCode": 250
},
{
"code": "SH",
"name": "Saint Helena",
"phoneCode": 290
},
{
"code": "KN",
"name": "Saint Kitts And Nevis",
"phoneCode": 1869
},
{
"code": "LC",
"name": "Saint Lucia",
"phoneCode": 1758
},
{
"code": "PM",
"name": "Saint Pierre and Miquelon",
"phoneCode": 508
},
{
"code": "VC",
"name": "Saint Vincent And The Grenadines",
"phoneCode": 1784
},
{
"code": "WS",
"name": "Samoa",
"phoneCode": 685
},
{
"code": "SM",
"name": "San Marino",
"phoneCode": 378
},
{
"code": "ST",
"name": "Sao Tome and Principe",
"phoneCode": 239
},
{
"code": "SN",
"name": "Senegal",
"phoneCode": 221
},
{
"code": "RS",
"name": "Serbia",
"phoneCode": 381
},
{
"code": "SC",
"name": "Seychelles",
"phoneCode": 248
},
{
"code": "SL",
"name": "Sierra Leone",
"phoneCode": 232
},
{
"code": "SG",
"name": "Singapore",
"phoneCode": 65
},
{
"code": "SK",
"name": "Slovakia",
"phoneCode": 421
},
{
"code": "SI",
"name": "Slovenia",
"phoneCode": 386
},
{
"code": "XG",
"name": "Smaller Territories of the UK",
"phoneCode": 44
},
{
"code": "SB",
"name": "Solomon Islands",
"phoneCode": 677
},
{
"code": "SO",
"name": "Somalia",
"phoneCode": 252
},
{
"code": "ZA",
"name": "South Africa",
"phoneCode": 27
},
{
"code": "GS",
"name": "South Georgia",
"phoneCode": 500
},
{
"code": "SS",
"name": "South Sudan",
"phoneCode": 211
},
{
"code": "ES",
"name": "Spain",
"phoneCode": 34
},
{
"code": "LK",
"name": "Sri Lanka",
"phoneCode": 94
},
{
"code": "SD",
"name": "Sudan",
"phoneCode": 249
},
{
"code": "SR",
"name": "Suriname",
"phoneCode": 597
},
{
"code": "SJ",
"name": "Svalbard And Jan Mayen Islands",
"phoneCode": 47
},
{
"code": "SZ",
"name": "Swaziland",
"phoneCode": 268
},
{
"code": "SE",
"name": "Sweden",
"phoneCode": 46
},
{
"code": "CH",
"name": "Switzerland",
"phoneCode": 41
},
{
"code": "SY",
"name": "Syria",
"phoneCode": 963
},
{
"code": "TJ",
"name": "Tajikistan",
"phoneCode": 992
},
{
"code": "TZ",
"name": "Tanzania",
"phoneCode": 255
},
{
"code": "TH",
"name": "Thailand",
"phoneCode": 66
},
{
"code": "TG",
"name": "Togo",
"phoneCode": 228
},
{
"code": "TK",
"name": "Tokelau",
"phoneCode": 690
},
{
"code": "TO",
"name": "Tonga",
"phoneCode": 676
},
{
"code": "TT",
"name": "Trinidad And Tobago",
"phoneCode": 1868
},
{
"code": "TN",
"name": "Tunisia",
"phoneCode": 216
},
{
"code": "TR",
"name": "Turkey",
"phoneCode": 90
},
{
"code": "TM",
"name": "Turkmenistan",
"phoneCode": 993
},
{
"code": "TC",
"name": "Turks And Caicos Islands",
"phoneCode": 1649
},
{
"code": "TV",
"name": "Tuvalu",
"phoneCode": 688
},
{
"code": "UG",
"name": "Uganda",
"phoneCode": 256
},
{
"code": "UA",
"name": "Ukraine",
"phoneCode": 380
},
{
"code": "AE",
"name": "United Arab Emirates",
"phoneCode": 971
},
{
"code": "GB",
"name": "United Kingdom",
"phoneCode": 44
},
{
"code": "UM",
"name": "United States Minor Outlying Islands",
"phoneCode": 1
},
{
"code": "UY",
"name": "Uruguay",
"phoneCode": 598
},
{
"code": "UZ",
"name": "Uzbekistan",
"phoneCode": 998
},
{
"code": "VU",
"name": "Vanuatu",
"phoneCode": 678
},
{
"code": "VA",
"name": "Vatican City State (Holy See)",
"phoneCode": 39
},
{
"code": "VE",
"name": "Venezuela",
"phoneCode": 58
},
{
"code": "VG",
"name": "Virgin Islands (British)",
"phoneCode": 1284
},
{
"code": "VI",
"name": "Virgin Islands (US)",
"phoneCode": 1340
},
{
"code": "WF",
"name": "Wallis And Futuna Islands",
"phoneCode": 681
},
{
"code": "EH",
"name": "Western Sahara",
"phoneCode": 212
},
{
"code": "YE",
"name": "Yemen",
"phoneCode": 967
},
{
"code": "YU",
"name": "Yugoslavia",
"phoneCode": 38
},
{
"code": "ZM",
"name": "Zambia",
"phoneCode": 260
},
{
"code": "ZW",
"name": "Zimbabwe",
"phoneCode": 263
},
{
"code": "CW",
"name": "Curacao",
"phoneCode": 599
},
{
"code": "GG",
"name": "Guernsey",
"phoneCode": 44
},
{
"code": "XK",
"name": "Kosovo",
"phoneCode": 383
},
{
"code": "ME",
"name": "Montenegro",
"phoneCode": 382
},
{
"code": "BL",
"name": "Saint Barthelemy",
"phoneCode": 590
},
{
"code": "MF",
"name": "Saint Martin",
"phoneCode": 590
},
{
"code": "SX",
"name": "Sint Maarten",
"phoneCode": 1721
},
{
"code": "AX",
"name": "Aland Islands",
"phoneCode": 358
},
{
"code": "TP",
"name": "East Timor",
"phoneCode": 670
},
{
"code": "XJ",
"name": "Jersey",
"phoneCode": 44
},
{
"code": "XM",
"name": "Man (Isle of)",
"phoneCode": 44
},
{
"code": "AN",
"name": "Netherlands Antilles",
"phoneCode": 599
}
]
}
HTTP Request
GET /api/v1/countries
Currency
APIs for managing currencies
Currency Index
Requires authentication Use this endpoint to get all available platform Currencies.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"coins": [
{
"name": "Ether",
"symbol": "ETH",
"type": "coin",
"chain": {
"name": "Ether",
"symbol": "ETH"
},
"rates": {
"raw": {
"now": "128.55000",
"day": "125.00000",
"week": "105.46000",
"month": "240.78000",
"quarter": "113.60000",
"semester": "154.55000",
"year": "119.96000",
"history": {
"day": [
{
"rate": "125.93000",
"createdAt": 1585033255
}
]
}
}
},
"operations": {
"General": [
{
"deposit": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": []
}
},
{
"buy_with_fiat": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": [
{
"withdraw": {
"mandatory": false
}
}
]
}
},
{
"sell_to_fiat": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": []
}
},
{
"withdraw": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": []
}
},
{
"buy_with_crypto": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": []
}
},
{
"sell_to_crypto": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": []
}
}
],
"Particular": {
"EUR": [
{
"buy_with_fiat": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": [
{
"withdraw": {
"mandatory": false
}
}
]
}
},
{
"sell_to_fiat": {
"status": true,
"limits": {
"crypto": {
"min": null,
"max": null
},
"fiat": {
"min": null,
"max": null
}
},
"secondOperations": []
}
}
]
}
}
}
]
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/currencies/{asset?}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
asset |
optional | The asset Symbol. |
Currency History
Requires authentication Use this endpoint to get all available platform Currencies Histories.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH/history/day|week|month|quarter|semester|year" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH/history/day|week|month|quarter|semester|year"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH/history/day|week|month|quarter|semester|year',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/currencies/ETH/history/day|week|month|quarter|semester|year'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"rate": "127.98000",
"createdAt": 1550534431
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/currencies/{asset}/history/{period}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
asset |
optional | The asset Symbol. |
period |
optional | The history period value. |
Deposit
APIs for managing deposits
Deposit Store
Requires authentication Use this endpoint to store a user deposit order.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"type":"coin","symbol":"ETH","amount":"100","wallet":"0x500cab8a5706bf41352534a4754baab87b24a45e","txID":"0xccb5d3e14b73a10708839f9d4fb9a733696b0bd10a84782cd52fc70d13595a25"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"type": "coin",
"symbol": "ETH",
"amount": "100",
"wallet": "0x500cab8a5706bf41352534a4754baab87b24a45e",
"txID": "0xccb5d3e14b73a10708839f9d4fb9a733696b0bd10a84782cd52fc70d13595a25"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'type' => 'coin',
'symbol' => 'ETH',
'amount' => '100',
'wallet' => '0x500cab8a5706bf41352534a4754baab87b24a45e',
'txID' => '0xccb5d3e14b73a10708839f9d4fb9a733696b0bd10a84782cd52fc70d13595a25',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit'
payload = {
"type": "coin",
"symbol": "ETH",
"amount": "100",
"wallet": "0x500cab8a5706bf41352534a4754baab87b24a45e",
"txID": "0xccb5d3e14b73a10708839f9d4fb9a733696b0bd10a84782cd52fc70d13595a25"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "f7cd7280-b75c-45ac-ac26-193162e74fc1",
"status": "PROCESSING_PAYMENT",
"type": "token",
"typeOperation": "in",
"typeOperationName": "deposit",
"fromSymbol": null,
"fromAmount": "0",
"rate": "0",
"toSymbol": "IPSX",
"toAmount": "100.0000000000000000000000000",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txId": "0xccb5d3e14b73a10708839f9d4fb9a733696b0bd10a84782cd52fc70d13595a25",
"payment": {
"method": null,
"id": null,
"url": null,
"feePercent": 0,
"proofUploaded": null
},
"commissions": {
"percent": "0.0000000000000000000000000",
"amount": "0.0000000000000000000000000"
},
"quote": null,
"externalPlatform": null,
"kycLevelRequired": 3,
"createdAt": 1556095674
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (406):
{
"message": "This type of operation is not allowed."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/deposit
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
type |
string | required | The order type - (in:coin,token). |
symbol |
string | required | The order coin/token symbol - (in:{coin|tokn}->symbol). |
amount |
string | required | The order amount - (numeric). |
wallet |
string | optional | The order wallet - (max:191). |
txID |
string | required | The order transaction ID - (max:191). |
Deposit Address
Requires authentication Use this endpoint to get a user deposit address.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit/address" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"asset":"ETH","destination":"broker"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit/address"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"asset": "ETH",
"destination": "broker"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit/address',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'asset' => 'ETH',
'destination' => 'broker',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/deposit/address'
payload = {
"asset": "ETH",
"destination": "broker"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "2080fbfd-b6db-400a-afdd-73bf9c5dc8cc",
"address": "0x123456789012345678901234567890",
"type": "cold",
"destination": "broker",
"status": "enabled",
"chain": "ETH",
"createdAt": 1567002753
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/deposit/address
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
asset |
string | required | The asset symbol - (in:assets->symbol). |
destination |
string | optional | The address destination - (in:broker,checkout). |
Documentation
APIs for managing documentation
Categories Index
Use this endpoint to get all Categories.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/documentation/categories" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/documentation/categories"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/documentation/categories',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/documentation/categories'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"uuid": "b60ea1c9-263d-4533-b5e5-ed25a48e8aa4",
"name": "Lorem Ipsum",
"slug": "lorem-ipsum",
"order": "1",
"child": [
{
"uuid": "c509e3ad-9ecf-444d-b2bc-eeb656f78b96",
"name": "Lorem Ipsum 1",
"slug": "lorem-ipsum-1",
"order": 1,
"documentations": [
{
"uuid": "b60ea1c9-263d-4533-b5e5-ed25a48e8aa4",
"title": "Lorem Ipsum 2",
"slug": "lorem-ipsum-2",
"feature": "true",
"order": "1",
"createdAt": 1600773844,
"updatedAt": 1600777819
}
],
"createdAt": 1600773883
}
],
"createdAt": 1600773844
}
]
}
HTTP Request
GET /api/v1/documentation/categories
Categories show
Use this endpoint to get specific Category.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/documentation/categories/lorem-ipsum" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/documentation/categories/lorem-ipsum"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/documentation/categories/lorem-ipsum',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/documentation/categories/lorem-ipsum'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"uuid": "b60ea1c9-263d-4533-b5e5-ed25a48e8aa4",
"name": "Lorem Ipsum",
"slug": "lorem-ipsum",
"order": "1",
"createdAt": 1600773844,
"updatedAt": 1600777819,
"child": [
{
"uuid": "c509e3ad-9ecf-444d-b2bc-eeb656f78b96",
"name": "Lorem Ipsum 1",
"slug": "lorem-ipsum-1",
"order": 1,
"documentations": [
{
"uuid": "b60ea1c9-263d-4533-b5e5-ed25a48e8aa4",
"title": "Lorem Ipsum 2",
"slug": "lorem-ipsum-2",
"feature": "true",
"order": "1",
"createdAt": 1600773844,
"updatedAt": 1600777819
}
],
"createdAt": 1600773883
}
]
}
}
Example response (404):
{
"message": "No query results."
}
HTTP Request
GET /api/v1/documentation/categories/{slug}
URL Parameters
Parameter | Status | Description |
---|---|---|
slug |
required | The slug of category. |
Documentation Index
Use this endpoint to get all documentation.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/documentation" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/documentation"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/documentation',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/documentation'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"uuid": "b60ea1c9-263d-4533-b5e5-ed25a48e8aa4",
"title": "Lorem Ipsum",
"slug": "lorem-ipsum",
"feature": "false",
"order": "1",
"content": "<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.<\/p>\n",
"user": {
"name": "Andreea Nicoleta Creanga",
"avatar": "8dc68ae5a33ec9c5606216bfa88bf6b7"
},
"category": {
"uuid": "c509e3ad-9ecf-444d-b2bc-eeb656f78b96",
"name": "Lorem Ipsum 1",
"slug": "lorem-ipsum-1",
"order": 1,
"createdAt": 1600773883
},
"createdAt": 1600773844,
"updatedAt": 1600777819
}
]
}
HTTP Request
GET /api/v1/documentation
Documentation Show
Use this endpoint to get documentation with specific slug.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/documentation/lorem-ipsum?type=html" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/documentation/lorem-ipsum"
);
let params = {
"type": "html",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/documentation/lorem-ipsum',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'type'=> 'html',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/documentation/lorem-ipsum'
params = {
'type': 'html',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": {
"uuid": "b60ea1c9-263d-4533-b5e5-ed25a48e8aa4",
"title": "Lorem Ipsum",
"slug": "lorem-ipsum",
"feature": "true",
"order": "1",
"content": "<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.<\/p>\n",
"user": {
"name": "Andreea Nicoleta Creanga",
"avatar": "8dc68ae5a33ec9c5606216bfa88bf6b7"
},
"category": {
"uuid": "c509e3ad-9ecf-444d-b2bc-eeb656f78b96",
"name": "Lorem Ipsum 1",
"slug": "lorem-ipsum-1",
"order": 1,
"createdAt": 1600773883
},
"createdAt": 1600773844,
"updatedAt": 1600777819
}
}
Example response (404):
{
"message": "No query results."
}
HTTP Request
GET /api/v1/documentation/{slug}
URL Parameters
Parameter | Status | Description |
---|---|---|
slug |
required | The slug of document. |
Query Parameters
Parameter | Status | Description |
---|---|---|
type |
optional | string How to display the content (nullable|in:html,markdown). |
Email History
APIs for managing emails
Email History Index
Requires authentication Use this endpoint to get user emails.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history?status=delivery" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history"
);
let params = {
"status": "delivery",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'status'=> 'delivery',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history'
params = {
'status': 'delivery',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "7fc0b351-5789-4e7d-8ba4-23f527b1f096",
"subject": "Confirm Quote Request",
"status": "sending",
"context": {
"type": "Quote",
"id": "dcd44088-f44b-434f-ab0a-e018c3dfbc77",
"publicId": "KIGTRITO"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"color_code": "#13CD89",
"urls": {
"website": "https:\/\/app.cryptocoin.pro\/",
"widget": "http:\/\/dev-checkout.cryptocoin-app.test\/order\/ccpro"
}
},
"createdAt": 1605000603
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/email-history
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
status |
optional | Filter by Status. |
Email History Show
Requires authentication Use this endpoint to get a user email history.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history/5d482936-d7b4-4ef2-bef7-a230ca712a4b" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history/5d482936-d7b4-4ef2-bef7-a230ca712a4b"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history/5d482936-d7b4-4ef2-bef7-a230ca712a4b',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/email-history/5d482936-d7b4-4ef2-bef7-a230ca712a4b'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "8c6de398-8fdb-47fb-8fda-e2452d8d41b1",
"subject": "Confirm register",
"status": "delivery",
"context": {
"type": "User",
"id": "667a5eed-46a9-49d3-91ec-f6af57255fc6",
"publicId": null
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"color_code": "#13CD88",
"urls": {
"website": "https:\/\/app.cryptocoin.pro\/",
"widget": "http:\/\/dev-checkout.cryptocoin-app.test\/order\/ccpro"
}
},
"createdAt": 1605006068
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/email-history/{email}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
email |
required | The email ID. |
KYC
APIs for managing user KYC
KYC Show
Requires authentication Use this endpoint to get user KYC.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/kyc
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
KYC Create
Requires authentication Use this endpoint to create user full KYC.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"country":"RO","city":"Pitesti","zip":"123456","street":"Street name Nr. 1","documents":{"governmentIdFront":"image","governmentIdBack":"image","passport":"image","utilityBill":"image","selfieWithId":"image"},"edd":{"transactionsPurpose":"investments","transactionsPurposeOther":"any desired purpose here","transactionsNatureValue":1,"transactionsNatureFrequency":1,"fundsSource":"1","fundsSourceOther":"any source of funds here","fundsSourceFile":"image","fundsOrigin":"personal_savings","fundsOriginOther":"any origin of funds here","fundsOriginFile":"image"}}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"country": "RO",
"city": "Pitesti",
"zip": "123456",
"street": "Street name Nr. 1",
"documents": {
"governmentIdFront": "image",
"governmentIdBack": "image",
"passport": "image",
"utilityBill": "image",
"selfieWithId": "image"
},
"edd": {
"transactionsPurpose": "investments",
"transactionsPurposeOther": "any desired purpose here",
"transactionsNatureValue": 1,
"transactionsNatureFrequency": 1,
"fundsSource": "1",
"fundsSourceOther": "any source of funds here",
"fundsSourceFile": "image",
"fundsOrigin": "personal_savings",
"fundsOriginOther": "any origin of funds here",
"fundsOriginFile": "image"
}
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'country' => 'RO',
'city' => 'Pitesti',
'zip' => '123456',
'street' => 'Street name Nr. 1',
'documents' => [
'governmentIdFront' => 'image',
'governmentIdBack' => 'image',
'passport' => 'image',
'utilityBill' => 'image',
'selfieWithId' => 'image',
],
'edd' => [
'transactionsPurpose' => 'investments',
'transactionsPurposeOther' => 'any desired purpose here',
'transactionsNatureValue' => 1,
'transactionsNatureFrequency' => 1,
'fundsSource' => '1',
'fundsSourceOther' => 'any source of funds here',
'fundsSourceFile' => 'image',
'fundsOrigin' => 'personal_savings',
'fundsOriginOther' => 'any origin of funds here',
'fundsOriginFile' => 'image',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc'
payload = {
"country": "RO",
"city": "Pitesti",
"zip": "123456",
"street": "Street name Nr. 1",
"documents": {
"governmentIdFront": "image",
"governmentIdBack": "image",
"passport": "image",
"utilityBill": "image",
"selfieWithId": "image"
},
"edd": {
"transactionsPurpose": "investments",
"transactionsPurposeOther": "any desired purpose here",
"transactionsNatureValue": 1,
"transactionsNatureFrequency": 1,
"fundsSource": "1",
"fundsSourceOther": "any source of funds here",
"fundsSourceFile": "image",
"fundsOrigin": "personal_savings",
"fundsOriginOther": "any origin of funds here",
"fundsOriginFile": "image"
}
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"personal": "",
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"country": [
"The country field is required."
]
}
}
Example response (423):
{
"message": "The KYC is not required at this point for current user."
}
HTTP Request
POST /api/v1/user/{user}/kyc
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description | |
---|---|---|---|---|
country |
string | required | The user country ISO code - (countryISOCode). | |
city |
string | required | The user city - (max:191). | |
zip |
string | required | The user zip code - (alpha_num|between:4,10). | |
street |
string | required | The user street - (max:191). | |
documents.governmentIdFront |
file | required | The user government ID front - (required_without:documents.passport|image|mimes:jpg,jpeg,bmp,png|max:10240kb). | |
documents.governmentIdBack |
file | required | The user government ID back - (required_without:documents.passport|image|mimes:jpg,jpeg,bmp,png|max:10240). | |
documents.passport |
file | optional | The user passport - (required_without_all:documents.governmentIdFront,documents.governmentIdBack|image|mimes:jpg,jpeg,bmp,png|max:10240). | |
documents.utilityBill |
file | optional | The user utilityBill - (image|mimes:jpg,jpeg,bmp,png|max:10240). | |
documents.selfieWithId |
file | optional | The user selfieWithId - (image|mimes:jpg,jpeg,bmp,png|max:10240). | |
edd.transactionsPurpose |
string | optional | The user edd purpose - (in:remittances,payments,investments,savings,other). | |
edd.transactionsPurposeOther |
string | optional | The user edd other transaction pruspose - (required_if:transactionsPurpose,other|max:191). | |
edd.transactionsNatureValue |
integer | optional | The user edd transaction nature value - (in:1,2,3,4,5). | |
edd.transactionsNatureFrequency |
integer | optional | The user edd transaction nature frequency - (in:1,2,3,4,5). | |
edd.fundsSource |
string | optional | The user edd source of funds - (in:credit_debit_card,e_wallet,bank_account,mining_wallet,other). | |
edd.fundsSourceOther |
string | optional | The user edd other source of funds - (required_if:fundsSource,other | max:191). |
edd.fundsSourceFile |
file | optional | The user edd funds source file - (image|mimes:jpg,jpeg,bmp,png|max:10240). | |
edd.fundsOrigin |
string | optional | The user edd funds origin - (in:payroll_funds,dividends_of_business,personal_savings,proceeds_of_investments,proceeds_of_mining,other). | |
edd.fundsOriginOther |
string | optional | The user edd other funds origin - (required_if:fundsOrigin,other|max:191). | |
edd.fundsOriginFile |
file | optional | The user edd funds origin file - (image|mimes:jpg,jpeg,bmp,png|max:10240). |
KYC Create Personal Data
Requires authentication Use this endpoint to update an existing User model.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/personal-data" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"firstName":"Alin","lastName":"Ionut","dateOfBirth":"1900-12-31"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/personal-data"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": "1900-12-31"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/personal-data',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'firstName' => 'Alin',
'lastName' => 'Ionut',
'dateOfBirth' => '1900-12-31',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/personal-data'
payload = {
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": "1900-12-31"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"personal": "",
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
]
}
}
Example response (401):
{
"error": "Unauthenticated."
}
HTTP Request
POST /api/v1/user/{user}/kyc/personal-data
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
firstName |
string | required | The user first name - (alpha_space|max:191). |
lastName |
string | required | The user last name - (alpha_space|max:191). |
dateOfBirth |
dateTime | required | The user date of birth, must be minimum 18 years - (date_format:Y-m-d|before_or_equal:now()->subYears(18)->format('Y-m-d')). |
KYC Create Address
Requires authentication Use this endpoint to create user KYC Address.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/address" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"country":"RO","city":"Pitesti","zip":"123456","street":"Street name Nr. 1","utilityBill":"image"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/address"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"country": "RO",
"city": "Pitesti",
"zip": "123456",
"street": "Street name Nr. 1",
"utilityBill": "image"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/address',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'country' => 'RO',
'city' => 'Pitesti',
'zip' => '123456',
'street' => 'Street name Nr. 1',
'utilityBill' => 'image',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/address'
payload = {
"country": "RO",
"city": "Pitesti",
"zip": "123456",
"street": "Street name Nr. 1",
"utilityBill": "image"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"personal": "",
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"country": [
"The country field is required."
]
}
}
Example response (423):
{
"message": "The KYC Address is not required at this point for current user."
}
HTTP Request
POST /api/v1/user/{user}/kyc/address
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description | |
---|---|---|---|---|
country |
string | required | The user country ISO code - (countryISOCode). | |
city |
string | required | The user city - (alpha_dash|max:191). | |
zip |
string | required | The user zip code - (alpha_num | between:4,10). |
street |
string | required | The user street - (max:191). | |
utilityBill |
file | optional | The utilityBill file - (file|max:10240|mimes:jpg,jpeg,bmp,png,pdf). |
KYC Create Document
Requires authentication Use this endpoint to create user KYC document.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/document" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"type":"governmentIdFront","file":"File"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/document"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"type": "governmentIdFront",
"file": "File"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/document',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'type' => 'governmentIdFront',
'file' => 'File',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/document'
payload = {
"type": "governmentIdFront",
"file": "File"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"personal": "",
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "You have reach the maximum number of files uploaded\/day."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"type": [
"The selected type is invalid."
]
}
}
Example response (423):
{
"message": "The KYC Docs are not required at this point for current user."
}
HTTP Request
POST /api/v1/user/{user}/kyc/document
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
type |
string | optional | The file type - (in:governmentIdFront,governmentIdBack,passport,selfieWithId,utilityBill). |
file |
file | required | The file type - (file|mimes:jpg,jpeg,bmp,png,pdf|max:10240kb). |
KYC Create Video
Requires authentication Use this endpoint to create user KYC Video.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/video" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"date":"2020-12-30 12:00:00"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/video"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"date": "2020-12-30 12:00:00"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/video',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'date' => '2020-12-30 12:00:00',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/video'
payload = {
"date": "2020-12-30 12:00:00"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"personal": "",
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (421):
{
"message": "Selected date is invalid due admins unavailability."
}
Example response (423):
{
"message": "The KYC Video is not required at this point for current user."
}
HTTP Request
POST /api/v1/user/{user}/kyc/video
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
date |
dateTime | required | The scheduled KYC Video date - (date_format:Y-m-d H:i:s|after_or_equal:now). |
KYC Create EDD
Requires authentication Use this endpoint to create user KYC EDD.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/edd" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"transactionsPurpose":"investments","transactionsPurposeOther":"any desired purpose here","transactionsNatureValue":1,"transactionsNatureFrequency":1,"fundsSource":"1","fundsSourceOther":"any source of funds here","fundsSourceFile":"image","fundsOrigin":"personal_savings","fundsOriginOther":"any origin of funds here","fundsOriginFile":"image"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/edd"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"transactionsPurpose": "investments",
"transactionsPurposeOther": "any desired purpose here",
"transactionsNatureValue": 1,
"transactionsNatureFrequency": 1,
"fundsSource": "1",
"fundsSourceOther": "any source of funds here",
"fundsSourceFile": "image",
"fundsOrigin": "personal_savings",
"fundsOriginOther": "any origin of funds here",
"fundsOriginFile": "image"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/edd',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'transactionsPurpose' => 'investments',
'transactionsPurposeOther' => 'any desired purpose here',
'transactionsNatureValue' => 1,
'transactionsNatureFrequency' => 1,
'fundsSource' => '1',
'fundsSourceOther' => 'any source of funds here',
'fundsSourceFile' => 'image',
'fundsOrigin' => 'personal_savings',
'fundsOriginOther' => 'any origin of funds here',
'fundsOriginFile' => 'image',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/edd'
payload = {
"transactionsPurpose": "investments",
"transactionsPurposeOther": "any desired purpose here",
"transactionsNatureValue": 1,
"transactionsNatureFrequency": 1,
"fundsSource": "1",
"fundsSourceOther": "any source of funds here",
"fundsSourceFile": "image",
"fundsOrigin": "personal_savings",
"fundsOriginOther": "any origin of funds here",
"fundsOriginFile": "image"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"required": "phone",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"personal": "",
"address": "",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiMGU2Y2JjMmUtZWUzYi00MTQ0LTgxMTQtMGM2YjM1NDVjODg5IiwiY*WNjZXNzIjoiYjRBMXlUWUcxWHZMOTZ6OFV4ZWdoQTI1ME1DRVhURkRpMkNtaUhJSVdkTmVRd01veDJBQUpWMlp4QzVDN1d1MCIsImV*4cGlyZSI6MTU2NDY1MDU4N30.*MGROnVdsRxU5onYO-f92T3Et9TAGnzzLlkOdf3Vrt898XPu8CO6Cqk9diSKx2zdJc4Jvfja5BCYNsomBF3ZiIxgUu-34B9fqnKcOEb*78rEuzNCqo4ARwD-BwMH0zaJaEDEqXZn2JUATzbNouJbPS33jQ5XVyWZuxfiFH5f9LP3Tp36uMzQT5YgbF4I1wgpkGwvOAF_UZsSA9*fT2MtWS_cde_ZmgohTh-2LlZkeWtEGkTEcIOSCPf76JuCdp1kxDj_3A_zf07GyheJO_-QrthCvmtG-wVX7LKgaHE55eSrnRbGI72jd*ktHh-87ACrQRaXf5xQO7lgtiExv0i00pHWeg?expires=1564650587&lang=en&*signature=1acc6e0e47e4256a75f60605d173ab45d0adad62982e7cd509706ff2a37ede3f",
"video": "",
"enhancedDueDiligence": ""
},
"phone": {
"required": true,
"number": "+40700000000",
"isVerified": false
},
"personal": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"firstName": {
"code": "incorrect_data",
"message": "Incorrect data (it does not correspond to the document data)."
},
"lastName": {
"code": "incomplete_data",
"message": "Incomplete data."
}
},
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 951004800
},
"address": {
"required": true,
"status": "NOT COMPLETED",
"rejectReason": {
"street": {
"code": "incorrect_or_incomplete_data",
"message": "Incorrect or incomplete data."
}
},
"country": "RO",
"city": "Pitesti",
"zip": "111111",
"street": "Street details"
},
"documents": {
"required": true,
"governmentIdFront": {
"status": "NOT COMPLETED",
"rejectReason": {
"code": "color_photo",
"message": "We only accept color photos. The black and white types will not be accepted."
},
"url": "https:"
},
"governmentIdBack": {
"status": "ACCEPTED",
"url": "https:"
},
"passport": {
"status": "ACCEPTED",
"url": "https:"
},
"utilityBill": {
"status": "ACCEPTED",
"url": "https:"
},
"selfieWithId": {
"status": "ACCEPTED",
"url": "https:"
},
"extendedProofOfFunds": []
},
"video": {
"required": false,
"status": "APPROVED",
"emailSent": true,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"status": "PENDING",
"transactionsPurpose": "investments",
"transactionsPurposeOther": "",
"transactionsNatureValueField": "1 - 1000",
"transactionsNatureFrequencyField": "6 - 10",
"fundsSource": "credit_debit_card",
"fundsSourceOther": "",
"fundsSourceFile": "https:",
"fundsOrigin": "payroll_funds",
"fundsOriginOther": "",
"fundsOriginFile": "https:",
"createdAt": 1558632442
},
"createdAt": 1554204616
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"transactionsPurpose": [
"The transactionsPurpose field is required."
]
}
}
Example response (423):
{
"message": "The KYC EDD is not required at this point for current user."
}
HTTP Request
POST /api/v1/user/{user}/kyc/edd
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description | |
---|---|---|---|---|
transactionsPurpose |
string | required | The user edd purpose - (in:remittances,payments,investments,savings,other). | |
transactionsPurposeOther |
string | required | The user edd other transaction pruspose - (required_if:transactionsPurpose,other|max:191). | |
transactionsNatureValue |
integer | required | The user edd transaction nature value - (in:1,2,3,4,5). | |
transactionsNatureFrequency |
integer | required | The user edd transaction nature frequency - (in:1,2,3,4,5). | |
fundsSource |
string | required | The user edd source of funds - (in:credit_debit_card,e_wallet,bank_account,mining_wallet,other). | |
fundsSourceOther |
string | optional | The user edd other source of funds - (required_if:fundsSource,other | max:191). |
fundsSourceFile |
file | required | The user edd funds source file - (image|mimes:jpg,jpeg,bmp,png|max:10240). | |
fundsOrigin |
string | required | The user edd funds origin - (in:payroll_funds,dividends_of_business,personal_savings,proceeds_of_investments,proceeds_of_mining,other). | |
fundsOriginOther |
string | optional | The user edd other funds origin - (required_if:fundsOrigin,other|max:191). | |
fundsOriginFile |
file | required | The user edd funds origin file - (image|mimes:jpg,jpeg,bmp,png|max:10240). |
Notification
APIs for managing notifications
Notification Permanently
Requires authentication Use this endpoint to get all user permanently Notifications.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/permanently" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/permanently"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/permanently',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/permanently'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"type": "permanently",
"category": "notification",
"code": "notifications_unread",
"message": "You have 2 unread notifications."
},
{
"type": "permanently",
"category": "user",
"code": "self_deleted_at",
"message": "Your account is in pending self deleting."
},
{
"type": "permanently",
"category": "kyc",
"code": "phone_unverified",
"message": "Your phone number is not verified."
},
{
"type": "permanently",
"category": "quote",
"code": "quote_available",
"message": "You have available quotes."
},
{
"type": "permanently",
"category": "order",
"code": "order_payment_waiting",
"message": "You have orders with pending payment waiting."
},
{
"type": "permanently",
"category": "wallet",
"code": "wallet_unavailable",
"message": "No crypto wallet available for use."
},
{
"type": "permanently",
"category": "card",
"code": "card_unavailable",
"message": "No credit card available for use."
},
{
"type": "permanently",
"category": "bank",
"code": "bank_unavailable",
"message": "No bank account available for use."
}
],
"meta": {
"total": 2
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/notifications/permanently
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Notification Temporary
Requires authentication Use this endpoint to get all user temporary Notifications.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/temporary/7b10e453-4629-4ca6-b0a2-53a6adf36bef?type=unread" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/temporary/7b10e453-4629-4ca6-b0a2-53a6adf36bef"
);
let params = {
"type": "unread",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/temporary/7b10e453-4629-4ca6-b0a2-53a6adf36bef',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'type'=> 'unread',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/notifications/temporary/7b10e453-4629-4ca6-b0a2-53a6adf36bef'
params = {
'type': 'unread',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "7b10e453-4629-4ca6-b0a2-53a6adf36bef",
"title": "Order Approved",
"message": "Your order YN3DIS2F has been approved",
"category": "order",
"code": "order_approved",
"meta": {
"id": "e8dfeb1f-b69f-441c-bcee-027ed11f417a",
"publicId": "YN3DIS2F"
},
"createdAt": 1582878001,
"readAt": null
}
],
"meta": {
"total": 1,
"currentPage": 1,
"perPage": 25,
"lastPage": 1
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/notifications/temporary/{notification_id?}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
notification_id |
optional | The notification ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
type |
optional | Filter by unread on read notifications. |
Notification Temporary Mark As Read
Requires authentication Use this endpoint to mark as read all temporary notifications
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/1/notifications/temporary/mark-as-read" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/1/notifications/temporary/mark-as-read"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/1/notifications/temporary/mark-as-read',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/1/notifications/temporary/mark-as-read'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"id": "7b10e453-4629-4ca6-b0a2-53a6adf36bef",
"title": "Order Approved",
"message": "Your order YN3DIS2F has been approved",
"category": "order",
"code": "order_approved",
"meta": {
"id": "e8dfeb1f-b69f-441c-bcee-027ed11f417a",
"publicId": "YN3DIS2F"
},
"createdAt": 1582878001,
"readAt": 1582958238
}
],
"meta": {
"total": 1,
"currentPage": 1,
"perPage": 25,
"lastPage": 1
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/notifications/temporary/mark-as-read
Order
APIs for managing orders.
Order Index
Requires authentication Use this endpoint to get user order history.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order?id=ftCVHqME&user=jon%40winterfell.got&status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH&wallet=0x2f203264a671832b543acfd5558ae684cd1c5a5a&txid=0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f&payment_method=card&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order"
);
let params = {
"id": "ftCVHqME",
"user": "jon@winterfell.got",
"status": "APPROVED",
"typeOperationName": "buy_with_fiat",
"asset": "ETH",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txid": "0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f",
"payment_method": "card",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'ftCVHqME',
'user'=> 'jon@winterfell.got',
'status'=> 'APPROVED',
'typeOperationName'=> 'buy_with_fiat',
'asset'=> 'ETH',
'wallet'=> '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid'=> '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method'=> 'card',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order'
params = {
'id': 'ftCVHqME',
'user': 'jon@winterfell.got',
'status': 'APPROVED',
'typeOperationName': 'buy_with_fiat',
'asset': 'ETH',
'wallet': '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid': '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method': 'card',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "f7cd7280-b75c-45ac-ac26-193162e74fc1",
"publicId": "ftCVHqME",
"status": "PROCESSING_PAYMENT",
"type": "token",
"typeOperation": "out",
"typeOperationName": "sell_to_fiat",
"fromSymbol": "IPSX",
"fromAmount": "500.0000000000000000000000000",
"rate": "0",
"toSymbol": "ETH",
"toAmount": "1.0000000000000000000000000",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txId": null,
"parentOrder": {
"id": "b87fcf41-c6a7-4ebb-9547-3f826a8420cd",
"publicId": "g0h0HsmE"
},
"childOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": "e887c2e5-82cd-4d25-897f-198d93241425",
"url": "https:\/\/dev-checkout.infra.cryptocoin.pro\/payment\/bank-confirm? order=3fc9bc08-1e1a-4928-a8dc-29674042d639& signature=89bac803dc4d3a24a21ff1b72d871f34ea4ab3ccc61a6b26f5e1acf3b1148a0a",
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "0.0000000000000000000000000",
"amount": "0.0000000000000000000000000"
},
"mode": {
"type": "normal",
"status": null,
"amount": null,
"rate": null,
"total": null,
"commission": null,
"additional": null,
"observation": null,
"expireAt": null,
"url": null
},
"updates": {
"wallet": {
"status": null,
"address": null,
"url": null
}
},
"quote": {
"id": "7592334f-8009-441b-a125-592daf54049b",
"publicId": "RONTQOJJ"
},
"transfer": {
"id": null,
"publicId": null
},
"externalPlatform": {
"code": null,
"name": null,
"url": null
},
"createdAt": 1556095674
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/order
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
status |
optional | Filter by Status. |
typeOperationName |
optional | Filter by TypeOperationName. |
asset |
optional | Filter by Asset. |
wallet |
optional | Filter by Wallet address. |
txid |
optional | Filter by Blockchain Transaction ID. |
payment_method |
optional | Filter by Payment method. |
platform |
optional | Filter by Platform code. |
Order Coin Index
Requires authentication Use this endpoint to get user order coin history.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin?id=ftCVHqME&user=jon%40winterfell.got&status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH&wallet=0x2f203264a671832b543acfd5558ae684cd1c5a5a&txid=0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f&payment_method=card&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin"
);
let params = {
"id": "ftCVHqME",
"user": "jon@winterfell.got",
"status": "APPROVED",
"typeOperationName": "buy_with_fiat",
"asset": "ETH",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txid": "0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f",
"payment_method": "card",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'ftCVHqME',
'user'=> 'jon@winterfell.got',
'status'=> 'APPROVED',
'typeOperationName'=> 'buy_with_fiat',
'asset'=> 'ETH',
'wallet'=> '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid'=> '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method'=> 'card',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin'
params = {
'id': 'ftCVHqME',
'user': 'jon@winterfell.got',
'status': 'APPROVED',
'typeOperationName': 'buy_with_fiat',
'asset': 'ETH',
'wallet': '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid': '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method': 'card',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "f7cd7280-b75c-45ac-ac26-193162e74fc1",
"publicId": "ftCVHqME",
"status": "PROCESSING_PAYMENT",
"type": "coin",
"typeOperation": "out",
"typeOperationName": "sell_to_fiat",
"fromSymbol": "ETH",
"fromAmount": "500.0000000000000000000000000",
"rate": "0",
"toSymbol": "ETH",
"toAmount": "1.0000000000000000000000000",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txId": null,
"parentOrder": {
"id": "b87fcf41-c6a7-4ebb-9547-3f826a8420cd",
"publicId": "g0h0HsmE"
},
"childOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": "e887c2e5-82cd-4d25-897f-198d93241425",
"url": "https:\/\/dev-checkout.infra.cryptocoin.pro\/payment\/bank-confirm? order=3fc9bc08-1e1a-4928-a8dc-29674042d639& signature=89bac803dc4d3a24a21ff1b72d871f34ea4ab3ccc61a6b26f5e1acf3b1148a0a",
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "0.0000000000000000000000000",
"amount": "0.0000000000000000000000000"
},
"mode": {
"type": "normal",
"status": null,
"amount": null,
"rate": null,
"total": null,
"commission": null,
"additional": null,
"observation": null,
"expireAt": null,
"url": null
},
"updates": {
"wallet": {
"status": null,
"address": null,
"url": null
}
},
"quote": {
"id": "7592334f-8009-441b-a125-592daf54049b",
"publicId": "RONTQOJJ"
},
"transfer": {
"id": null,
"publicId": null
},
"externalPlatform": {
"code": null,
"name": null,
"url": null
},
"createdAt": 1556095674
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/order/coin
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
status |
optional | Filter by Status. |
typeOperationName |
optional | Filter by TypeOperationName. |
asset |
optional | Filter by Asset. |
wallet |
optional | Filter by Wallet address. |
txid |
optional | Filter by Blockchain Transaction ID. |
payment_method |
optional | Filter by Payment method. |
platform |
optional | Filter by Platform code. |
Order Token Index
Requires authentication Use this endpoint to get user order token history.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token?id=ftCVHqME&user=jon%40winterfell.got&status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH&wallet=0x2f203264a671832b543acfd5558ae684cd1c5a5a&txid=0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f&payment_method=card&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token"
);
let params = {
"id": "ftCVHqME",
"user": "jon@winterfell.got",
"status": "APPROVED",
"typeOperationName": "buy_with_fiat",
"asset": "ETH",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txid": "0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f",
"payment_method": "card",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'ftCVHqME',
'user'=> 'jon@winterfell.got',
'status'=> 'APPROVED',
'typeOperationName'=> 'buy_with_fiat',
'asset'=> 'ETH',
'wallet'=> '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid'=> '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method'=> 'card',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token'
params = {
'id': 'ftCVHqME',
'user': 'jon@winterfell.got',
'status': 'APPROVED',
'typeOperationName': 'buy_with_fiat',
'asset': 'ETH',
'wallet': '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid': '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method': 'card',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "f7cd7280-b75c-45ac-ac26-193162e74fc1",
"publicId": "ftCVHqME",
"status": "PROCESSING_PAYMENT",
"type": "token",
"typeOperation": "out",
"typeOperationName": "sell_to_fiat",
"fromSymbol": "IPSX",
"fromAmount": "500.0000000000000000000000000",
"rate": "0",
"toSymbol": "ETH",
"toAmount": "1.0000000000000000000000000",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txId": null,
"parentOrder": {
"id": "b87fcf41-c6a7-4ebb-9547-3f826a8420cd",
"publicId": "g0h0HsmE"
},
"childOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": "e887c2e5-82cd-4d25-897f-198d93241425",
"url": "https:\/\/dev-checkout.infra.cryptocoin.pro\/payment\/bank-confirm? order=3fc9bc08-1e1a-4928-a8dc-29674042d639& signature=89bac803dc4d3a24a21ff1b72d871f34ea4ab3ccc61a6b26f5e1acf3b1148a0a",
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "0.0000000000000000000000000",
"amount": "0.0000000000000000000000000"
},
"mode": {
"type": "normal",
"status": null,
"amount": null,
"rate": null,
"total": null,
"commission": null,
"additional": null,
"observation": null,
"expireAt": null,
"url": null
},
"updates": {
"wallet": {
"status": null,
"address": null,
"url": null
}
},
"quote": {
"id": "7592334f-8009-441b-a125-592daf54049b",
"publicId": "RONTQOJJ"
},
"transfer": {
"id": null,
"publicId": null
},
"externalPlatform": {
"code": null,
"name": null,
"url": null
},
"createdAt": 1556095674
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/order/token
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
status |
optional | Filter by Status. |
typeOperationName |
optional | Filter by TypeOperationName. |
asset |
optional | Filter by Asset. |
wallet |
optional | Filter by Wallet address. |
txid |
optional | Filter by Blockchain Transaction ID. |
payment_method |
optional | Filter by Payment method. |
platform |
optional | Filter by Platform code. |
Order Show
Requires authentication Use this endpoint to get a user order coin.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "f7cd7280-b75c-45ac-ac26-193162e74fc1",
"publicId": "ftCVHqME",
"status": "PROCESSING_PAYMENT",
"type": "token",
"typeOperation": "out",
"typeOperationName": "sell_to_fiat",
"fromSymbol": "IPSX",
"fromAmount": "500.0000000000000000000000000",
"rate": "0",
"toSymbol": "ETH",
"toAmount": "1.0000000000000000000000000",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txId": null,
"parentOrder": {
"id": "b87fcf41-c6a7-4ebb-9547-3f826a8420cd",
"publicId": "g0h0HsmE"
},
"childOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": "e887c2e5-82cd-4d25-897f-198d93241425",
"url": "https:\/\/dev-checkout.infra.cryptocoin.pro\/payment\/bank-confirm? order=3fc9bc08-1e1a-4928-a8dc-29674042d639& signature=89bac803dc4d3a24a21ff1b72d871f34ea4ab3ccc61a6b26f5e1acf3b1148a0a",
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "0.0000000000000000000000000",
"amount": "0.0000000000000000000000000"
},
"mode": {
"type": "normal",
"status": null,
"amount": null,
"rate": null,
"total": null,
"commission": null,
"additional": null,
"observation": null,
"expireAt": null,
"url": null
},
"updates": {
"wallet": {
"status": null,
"address": null,
"url": null
}
},
"quote": {
"id": "dc2c3808-ce8f-4afd-94d7-924863d05093",
"publicId": "WERmSUIl",
"type": "buy_with_fiat",
"payment": {
"type": "bank",
"id": "7c95d7c6-b447-4eed-8f0a-0afee47d8707"
},
"from": "EUR",
"to": "ETH",
"amount": "6.0e-6",
"rate": "258.865",
"commission": {
"fromAmount": "0.00020259",
"fromTotal": "9.000000000000001e-7",
"discountPercent": "0",
"percent": "15"
},
"total": 0.00155319,
"wallet": "0xfFf75cb3916570824CcEFFe589193c2452383C17",
"checkout": {
"id": "8601c574-1f15-4e75-b585-dae387540644",
"publicId": "WERmSUIl",
"status": "finished",
"step": "thank-you",
"attemptsQuote": {
"count": 1,
"limit": 3
},
"requestId": "97",
"paymentType": "bank",
"ip": "",
"url": "https:\/\/dev-checkout.infra.cryptocoin.pro?lang=ro&* platform_id=dc9dbd8c-b57a-4b55-bf0c-17c6095d1a6c&* token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjp7ImlkIjoiMjkiLCJ1c2VybmFtZSI6ImRhbmNpbGEiLCJlbW* FpbCI6ImFsaW5pb251dG11c2F0KzRAZ21haWwuY29tIiwid2FsbGV0IjoiMHhFZkMwYzg1YWJkNDY5NDE3NjZFMkFlOWEzMGM1N0R* GNzViMTY0YTA4MSIsInBob25lIjoiNDA3MzAwMDAwMDAiLCJmaXJzdF9uYW1lIjoiRGFuY2lsYSIsImxhc3RfbmFtZSI6IlZpbyIs* ImRvYiI6IjIwMDAtMDctMzEiLCJjb3VudHJ5IjoiUk8iLCJzdGF0ZSI6IkFyZ2VzIiwiY2l0eSI6IlBpdGVzdGkiLCJzdHJlZXQiO* iJTdHJlZXQgZGV0YWlscyIsInppcCI6IjExMTExMSJ9LCJwYXltZW50Ijp7InR5cGUiOiJjb2luIiwic3ltYm9sIjoiRVRIIiwiYW* 1vdW50IjoiMC4wMDA0NSIsInJhdGUiOiIwLjAwMDAzNDUwNiIsImZpYXQiOiJFVVIiLCJyZXF1ZXN0X2lkIjoiOTciLCJtZXRob2Q* iOiJiYW5rIiwiYXR0ZW1wdHMiOjN9LCJyZWRpcmVjdF91cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5jb20iLCJwaW5nX3VybCI6* Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbSIsImlwIjoiIiwiZXhwaXJlIjoxNTcxODQ4NjQwfQ.* OGujfcn7L9J3-MsbOB-p-KELcg1Uh9oBjr3yc53xZh4Z59WAGn4G1EOQXS17BHgSk_7usrXKxPB8wEy-6kcrJhTRA0ZVEB7HpeWgN* o9e1EkWY0rMy5SWKXyG0gJQLl-gYt2AUxCL2VWUrrLZzXQXnOYx5Ize4jZJCMUa3jCuRjsT7hooFK1BmxVcA6d6SCENF6dxsVM3BB* s5Bs0HhMsx3EKk92bB8ao1t5yp1FFYp7SvFo3wTocbxh4ju8iSwRvibP_080HwflJfJeAxorHhE0qiWoqAAQNoxy4OlfuJksKEb_9* eO1h3kueHIWj7JS8QRmcZyfGiWpekyuo7WLHpiA",
"redirectUrl": "https:\/\/www.google.com",
"pingUrl": "https:\/\/www.google.com",
"expiredAt": 1571848640,
"createdAt": 1564558733
},
"lifeSeconds": 300,
"lifeUntilAt": 1559646286,
"createdAt": 1559645986
},
"transfer": {
"id": null,
"publicId": null
},
"externalPlatform": {
"code": null,
"name": null,
"url": null
},
"kycLevelRequired": 3,
"createdAt": 1556095674
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/order/{order}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
order |
required | The order ID. |
Order Upload Proof Of Payment
Requires authentication Use this endpoint to upload proof of payment for a order.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/payment-confirmation" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"file":"image"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/payment-confirmation"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"file": "image"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/payment-confirmation',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'file' => 'image',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/payment-confirmation'
payload = {
"file": "image"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "Proof of payment successfully uploaded."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "This order payment is already confirmed."
}
Example response (403):
{
"message": "This order do not require payment proof confirmation."
}
Example response (404):
{
"message": "No query results."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"file": [
"The file field is required."
]
}
}
HTTP Request
POST /api/v1/user/{user}/order/{order}/payment-confirmation
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
order |
required | The order ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
file |
file | required | The order payment proof file - (file|mimes:jpg,jpeg,bmp,png,pdf|max:10240). |
Order OTC Confirmation
Requires authentication Use this endpoint to responde a OTC offer.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/otc-confirmation" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"action":"accept","observation":"I like this offer, thanks."}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/otc-confirmation"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"action": "accept",
"observation": "I like this offer, thanks."
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/otc-confirmation',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'action' => 'accept',
'observation' => 'I like this offer, thanks.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/otc-confirmation'
payload = {
"action": "accept",
"observation": "I like this offer, thanks."
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "This order OTC has been successfully confirmed."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (412):
{
"message": "This order do not require OTC confirmation."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"action": [
"The selected action is invalid."
]
}
}
HTTP Request
POST /api/v1/user/{user}/order/{order}/otc-confirmation
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
order |
required | The order ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
action |
string | required | The order OTC response - (string|in:accept,reject). |
observation |
string | optional | The order OTC observation if any - (string|max:191). |
Order Wallet Confirmation
Requires authentication Use this endpoint to responde a Wallet change.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/wallet-confirmation" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"action":"accept"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/wallet-confirmation"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"action": "accept"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/wallet-confirmation',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'action' => 'accept',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/f7cd7280-b75c-45ac-ac26-193162e74fc1/wallet-confirmation'
payload = {
"action": "accept"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "This order Wallet has been successfully confirmed."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (412):
{
"message": "This order do not require Wallet confirmation."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"action": [
"The selected action is invalid."
]
}
}
HTTP Request
POST /api/v1/user/{user}/order/{order}/wallet-confirmation
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
order |
required | The order ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
action |
string | required | The order Wallet response - (string|in:accept,reject). |
Phone
APIs for managing phones
Phone Create
Requires authentication Use this endpoint to add user Phones.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/add" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"phone":"40700000000"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/add"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"phone": "40700000000"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/add',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'phone' => '40700000000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/add'
payload = {
"phone": "40700000000"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"type": [
"The selected type is invalid."
]
}
}
Example response (423):
{
"message": "You already submit your phone number."
}
Example response (423):
{
"message": "The phone number is already verified."
}
HTTP Request
POST /api/v1/user/{user}/kyc/phone/add
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
phone |
string | required | The user phone number - (numeric|digits_between:7,15). |
Phone Verify
Requires authentication Use this endpoint to verify SMS code.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/verify" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"code":"111111","phone":"40700000000"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/verify"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"code": "111111",
"phone": "40700000000"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/verify',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'code' => '111111',
'phone' => '40700000000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/verify'
payload = {
"code": "111111",
"phone": "40700000000"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"code": [
"The selected Code is invalid."
]
}
}
Example response (423):
{
"message": "The phone number is already verified."
}
HTTP Request
POST /api/v1/user/{user}/kyc/phone/verify
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
code |
string | required | The user phone SMS code - (in:user->codeSms). |
phone |
string | optional | The user phone number - (numeric|digits_between:7,15). |
Phone Reverify
Requires authentication Use this endpoint to reverify SMS code.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/reverify" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"phone":"40700000000"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/reverify"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"phone": "40700000000"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/reverify',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'phone' => '40700000000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/reverify'
payload = {
"phone": "40700000000"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "You can resubmit phone verification once per day."
}
Example response (423):
{
"message": "The phone number is already verified."
}
HTTP Request
POST /api/v1/user/{user}/kyc/phone/reverify
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
phone |
string | optional | The user phone number - (numeric|digits_between:7,15). |
Phone Create
Requires authentication Use this endpoint to add user Phones.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"phone":"40700000000"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"phone": "40700000000"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'phone' => '40700000000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone'
payload = {
"phone": "40700000000"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"type": [
"The selected type is invalid."
]
}
}
Example response (423):
{
"message": "You already submit your phone number."
}
Example response (423):
{
"message": "The phone number is already verified."
}
HTTP Request
POST /api/v1/user/{user}/phone
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
phone |
string | required | The user phone number - (numeric|digits_between:7,15). |
Phone Verify
Requires authentication Use this endpoint to verify SMS code.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/verify" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"code":"111111","phone":"40700000000"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/verify"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"code": "111111",
"phone": "40700000000"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/verify',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'code' => '111111',
'phone' => '40700000000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/verify'
payload = {
"code": "111111",
"phone": "40700000000"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"code": [
"The selected Code is invalid."
]
}
}
Example response (423):
{
"message": "The phone number is already verified."
}
HTTP Request
POST /api/v1/user/{user}/phone/verify
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
code |
string | required | The user phone SMS code - (in:user->codeSms). |
phone |
string | optional | The user phone number - (numeric|digits_between:7,15). |
Phone Reverify
Requires authentication Use this endpoint to reverify SMS code.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/reverify" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"phone":"40700000000"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/reverify"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"phone": "40700000000"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/reverify',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'phone' => '40700000000',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/reverify'
payload = {
"phone": "40700000000"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "You can resubmit phone verification once per day."
}
Example response (423):
{
"message": "The phone number is already verified."
}
HTTP Request
POST /api/v1/user/{user}/phone/reverify
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
phone |
string | optional | The user phone number - (numeric|digits_between:7,15). |
Phone Index
Requires authentication Use this endpoint to get user phones.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1597756420
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/phone
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Phone Show
Requires authentication Use this endpoint to get user specific phone.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/aa7a66a2-fbb5-422e-bc52-7912fa2c96f9'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 0,
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/phone/{phone}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
phone |
required | The phone ID. |
Phone Set Default
Requires authentication Use this endpoint to set a phone as default.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/e1f151a5-a45f-4936-8feb-f5e8fad15056/set-default" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/e1f151a5-a45f-4936-8feb-f5e8fad15056/set-default"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/e1f151a5-a45f-4936-8feb-f5e8fad15056/set-default',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/e1f151a5-a45f-4936-8feb-f5e8fad15056/set-default'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "a1cc7497-e773-4ca0-900f-9e175faf7f6d",
"phone": "+380661122321",
"status": 1,
"default": 1,
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1597756420
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
null
Example response (412):
{
"message": "The phone number is not verified."
}
HTTP Request
POST /api/v1/user/{user}/phone/{phone}/set-default
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
phone |
required | The phone ID. |
Phone Destroy
Requires authentication Use this endpoint to destroy user phone.
Example request:
curl -X DELETE \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/5d482936-d7b4-4ef2-bef7-a230ca712a4b" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/5d482936-d7b4-4ef2-bef7-a230ca712a4b"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/5d482936-d7b4-4ef2-bef7-a230ca712a4b',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/phone/5d482936-d7b4-4ef2-bef7-a230ca712a4b'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()
Example response (200):
{
"message": "This phone has been successfully deleted."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
Example response (412):
{
"message": "This phone has been already used in previous actions."
}
HTTP Request
DELETE /api/v1/user/{user}/phone/{phone}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
phone |
required | The phone ID. |
Platform
APIs for managing platform
Platform Show
Requires authentication Use this endpoint to get platform details.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "5f374d03-be0d-4dd2-b6ef-112a2bec5963",
"name": "Google",
"code": "GOGL",
"website": "http:\/\/www.google.com",
"ien": {
"url": "http:\/\/www.google.com",
"type": "jwt",
"version": "1",
"algorithm": "RS512"
},
"colorCode": "#333246",
"emails": {
"template": "default"
},
"contact": {
"email": "contact@email.io",
"phone": "+40730303030"
},
"wallet": {
"policy": "relax"
},
"integrations": {
"api": {
"status": "active"
},
"partner": {
"status": "active",
"url": "http:\/\/dev-partner.cryptocoin-app.test\/login\/nash"
},
"checkout": {
"status": "active"
},
"widget": {
"status": "active",
"url": "http:\/\/dev-checkout.cryptocoin-app.test\/order\/nash"
}
},
"reference": {
"fiat": "EUR",
"periodType": "MONTHS",
"periodValue": "1"
},
"levels": [
{
"level": "1",
"name": "crevete",
"required": [
"email",
"phone"
],
"max": {
"buy": 2500,
"sell": 2500
}
},
{
"level": "2",
"name": "peste tigru",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill"
],
"max": {
"buy": 20000,
"sell": 20000
}
},
{
"level": "3",
"name": "delfin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video"
],
"max": {
"buy": 30000,
"sell": 30000
}
},
{
"level": "4",
"name": "rechin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video",
"enhancedDueDiligence"
],
"max": {
"buy": 25000,
"sell": 25000
}
},
{
"level": "5",
"name": "balena rechin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video",
"enhancedDueDiligence",
"extendedProofOfFunds"
],
"max": {
"buy": 100000,
"sell": 100000
}
}
],
"paymentMethods": {
"bank": [
{
"status": false,
"name": "EUR",
"limits": {
"firstMaxOrderValue": 1000,
"lower": {
"status": true,
"value": 50
},
"upper": {
"status": false,
"value": null
}
},
"fee": {
"percent": 0,
"minFiatFee": 0,
"onTop": true,
"show": false
},
"meta": [
[
{
"bankName": "Banca 1",
"bankAccount": "ROxxxxxxxxxxxxxx",
"bankSwift": "xxxxxxxxxxxx",
"bankAddress": "Earth",
"bankCountry": "Westworld"
}
]
]
}
],
"card": [
{
"status": true,
"name": "EUR",
"limits": {
"firstMaxOrderValue": 0,
"lower": {
"status": false,
"value": 0
},
"upper": {
"status": false,
"value": 0
}
},
"fee": {
"percent": 3.9,
"minFiatFee": 0,
"onTop": true,
"show": false
},
"meta": null
}
]
},
"currencies": {
"coins": [
{
"name": "Ether",
"symbol": "ETH",
"type": "coin",
"chain": {
"name": "Ether",
"symbol": "ETH"
},
"rates": {
"raw": {
"now": "130.52000",
"day": "116.31000",
"week": "107.14000",
"month": "247.29000",
"quarter": "115.25000",
"semester": "181.16000",
"year": "119.98000"
}
},
"operations": {
"General": [
{
"withdraw": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
},
{
"deposit": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
}
],
"Particular": {
"EUR": [
{
"buy_with_fiat": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": [
{
"withdraw": {
"mandatory": false
}
}
]
}
},
{
"sell_to_fiat": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
}
]
}
}
}
],
"tokens": [],
"fiats": [
{
"name": "Usd",
"symbol": "USD",
"operations": []
},
{
"name": "Euro",
"symbol": "EUR",
"operations": []
},
{
"name": "Ron",
"symbol": "RON",
"operations": []
},
{
"name": "Chf",
"symbol": "CHF",
"operations": []
}
]
},
"createdAt": null
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Platform Update
Requires authentication Use this endpoint to update platform details.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"Google","website":"https:\/\/google.com\/","email":"contact@email.io","phone":"+40730303030","ienUrl":"https:\/\/google.com\/","ienType":"jwt","ienVersion":"2","algorithm":"RS512","colorCode":"#ffffff","walletPolicy":"relax"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Google",
"website": "https:\/\/google.com\/",
"email": "contact@email.io",
"phone": "+40730303030",
"ienUrl": "https:\/\/google.com\/",
"ienType": "jwt",
"ienVersion": "2",
"algorithm": "RS512",
"colorCode": "#ffffff",
"walletPolicy": "relax"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Google',
'website' => 'https://google.com/',
'email' => 'contact@email.io',
'phone' => '+40730303030',
'ienUrl' => 'https://google.com/',
'ienType' => 'jwt',
'ienVersion' => '2',
'algorithm' => 'RS512',
'colorCode' => '#ffffff',
'walletPolicy' => 'relax',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963'
payload = {
"name": "Google",
"website": "https:\/\/google.com\/",
"email": "contact@email.io",
"phone": "+40730303030",
"ienUrl": "https:\/\/google.com\/",
"ienType": "jwt",
"ienVersion": "2",
"algorithm": "RS512",
"colorCode": "#ffffff",
"walletPolicy": "relax"
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "5f374d03-be0d-4dd2-b6ef-112a2bec5963",
"name": "Google",
"code": "GOGL",
"website": "http:\/\/www.google.com",
"ien": {
"url": "http:\/\/www.google.com",
"type": "jwt",
"version": "1",
"algorithm": "RS512"
},
"colorCode": "#333246",
"emails": {
"template": "default"
},
"contact": {
"email": "contact@email.io",
"phone": "+40730303030"
},
"wallet": {
"policy": "relax"
},
"integrations": {
"api": {
"status": "active"
},
"partner": {
"status": "active",
"url": "http:\/\/dev-partner.cryptocoin-app.test\/login\/nash"
},
"checkout": {
"status": "active"
},
"widget": {
"status": "active",
"url": "http:\/\/dev-checkout.cryptocoin-app.test\/order\/nash"
}
},
"reference": {
"fiat": "EUR",
"periodType": "MONTHS",
"periodValue": "1"
},
"levels": [
{
"level": "1",
"name": "crevete",
"required": [
"email",
"phone"
],
"max": {
"buy": 2500,
"sell": 2500
}
},
{
"level": "2",
"name": "peste tigru",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill"
],
"max": {
"buy": 20000,
"sell": 20000
}
},
{
"level": "3",
"name": "delfin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video"
],
"max": {
"buy": 30000,
"sell": 30000
}
},
{
"level": "4",
"name": "rechin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video",
"enhancedDueDiligence"
],
"max": {
"buy": 25000,
"sell": 25000
}
},
{
"level": "5",
"name": "balena rechin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video",
"enhancedDueDiligence",
"extendedProofOfFunds"
],
"max": {
"buy": 100000,
"sell": 100000
}
}
],
"paymentMethods": {
"bank": [
{
"status": false,
"name": "EUR",
"limits": {
"firstMaxOrderValue": 1000,
"lower": {
"status": true,
"value": 50
},
"upper": {
"status": false,
"value": null
}
},
"fee": {
"percent": 0,
"minFiatFee": 0,
"onTop": true,
"show": false
},
"meta": [
[
{
"bankName": "Banca 1",
"bankAccount": "ROxxxxxxxxxxxxxx",
"bankSwift": "xxxxxxxxxxxx",
"bankAddress": "Earth",
"bankCountry": "Westworld"
}
]
]
}
],
"card": [
{
"status": true,
"name": "EUR",
"limits": {
"firstMaxOrderValue": 0,
"lower": {
"status": false,
"value": 0
},
"upper": {
"status": false,
"value": 0
}
},
"fee": {
"percent": 3.9,
"minFiatFee": 0,
"onTop": true,
"show": false
},
"meta": null
}
]
},
"currencies": {
"coins": [
{
"name": "Ether",
"symbol": "ETH",
"type": "coin",
"chain": {
"name": "Ether",
"symbol": "ETH"
},
"rates": {
"raw": {
"now": "130.52000",
"day": "116.31000",
"week": "107.14000",
"month": "247.29000",
"quarter": "115.25000",
"semester": "181.16000",
"year": "119.98000"
}
},
"operations": {
"General": [
{
"withdraw": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
},
{
"deposit": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
}
],
"Particular": {
"EUR": [
{
"buy_with_fiat": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": [
{
"withdraw": {
"mandatory": false
}
}
]
}
},
{
"sell_to_fiat": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
}
]
}
}
}
],
"tokens": [],
"fiats": [
{
"name": "Usd",
"symbol": "USD",
"operations": []
},
{
"name": "Euro",
"symbol": "EUR",
"operations": []
},
{
"name": "Ron",
"symbol": "RON",
"operations": []
},
{
"name": "Chf",
"symbol": "CHF",
"operations": []
}
]
},
"createdAt": null
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
POST /api/v1/platform/{platform}
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
name |
string | required | The platform name - (max:191). |
website |
string | required | The platform website URL - (url|max:191). |
email |
string | optional | The platform contact email - (email|max:191). |
phone |
string | optional | The platform contact phone - (string|max:191). |
ienUrl |
string | optional | The platform IEN URL - (url|max:191). |
ienType |
string | required | The platform IEN type - (in:jwt,hmac). |
ienVersion |
string | required | The platform IEN version - (in:1,2). |
algorithm |
string | required | The platform encoding algorithm - (in:HS256,HS384,HS512,RS256,RS384,RS512). |
colorCode |
string | required | The platform color code - (regex:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/). |
walletPolicy |
string | required | The platform Wallet policy - (in:relax,strict). |
Platform Lock
Requires authentication Use this endpoint to lock platform.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/lock" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/lock"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/lock',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/lock'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "5f374d03-be0d-4dd2-b6ef-112a2bec5963",
"name": "Google",
"code": "GOGL",
"website": "http:\/\/www.google.com",
"ien": {
"url": "http:\/\/www.google.com",
"type": "jwt",
"version": "1",
"algorithm": "RS512"
},
"integrations": {
"api": {
"status": "locked"
},
"partner": {
"status": "active",
"url": "http:\/\/dev-partner.cryptocoin-app.test\/login\/nash"
},
"checkout": {
"status": "active"
},
"widget": {
"status": "active",
"url": "http:\/\/dev-checkout.cryptocoin-app.test\/order\/nash"
}
},
"colorCode": "#333246",
"reference": {
"fiat": "EUR",
"periodType": "MONTHS",
"periodValue": "1"
},
"levels": [
{
"level": "1",
"name": "crevete",
"required": [
"email",
"phone"
],
"max": {
"buy": 2500,
"sell": 2500
}
},
{
"level": "2",
"name": "peste tigru",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill"
],
"max": {
"buy": 20000,
"sell": 20000
}
},
{
"level": "3",
"name": "delfin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video"
],
"max": {
"buy": 30000,
"sell": 30000
}
},
{
"level": "4",
"name": "rechin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video",
"enhancedDueDiligence"
],
"max": {
"buy": 25000,
"sell": 25000
}
},
{
"level": "5",
"name": "balena rechin",
"required": [
"email",
"phone",
"governmentIdFront",
"governmentIdBack",
"passport",
"utilityBill",
"selfieWithId",
"video",
"enhancedDueDiligence",
"extendedProofOfFunds"
],
"max": {
"buy": 100000,
"sell": 100000
}
}
],
"paymentMethods": {
"bank": [
{
"status": false,
"name": "EUR",
"limits": {
"firstMaxOrderValue": 1000,
"lower": {
"status": true,
"value": 50
},
"upper": {
"status": false,
"value": null
}
},
"fee": {
"percent": 0,
"minFiatFee": 0,
"onTop": true,
"show": false
},
"meta": [
[
{
"bankName": "Banca 1",
"bankAccount": "ROxxxxxxxxxxxxxx",
"bankSwift": "xxxxxxxxxxxx",
"bankAddress": "Earth",
"bankCountry": "Westworld"
}
]
]
}
],
"card": [
{
"status": true,
"name": "EUR",
"limits": {
"firstMaxOrderValue": 0,
"lower": {
"status": false,
"value": 0
},
"upper": {
"status": false,
"value": 0
}
},
"fee": {
"percent": 3.9,
"minFiatFee": 0,
"onTop": true,
"show": false
},
"meta": null
}
]
},
"currencies": {
"coins": [
{
"name": "Ether",
"symbol": "ETH",
"type": "coin",
"chain": {
"name": "Ether",
"symbol": "ETH"
},
"rates": {
"raw": {
"now": "130.52000",
"day": "116.31000",
"week": "107.14000",
"month": "247.29000",
"quarter": "115.25000",
"semester": "181.16000",
"year": "119.98000"
}
},
"operations": {
"General": [
{
"withdraw": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
},
{
"deposit": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
}
],
"Particular": {
"EUR": [
{
"buy_with_fiat": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": [
{
"withdraw": {
"mandatory": false
}
}
]
}
},
{
"sell_to_fiat": {
"status": true,
"limits": {
"crypto": {
"min": "",
"max": ""
},
"fiat": {
"min": "",
"max": ""
}
},
"secondOperations": []
}
}
]
}
}
}
],
"tokens": [],
"fiats": [
{
"name": "Usd",
"symbol": "USD",
"operations": []
},
{
"name": "Euro",
"symbol": "EUR",
"operations": []
},
{
"name": "Ron",
"symbol": "RON",
"operations": []
},
{
"name": "Chf",
"symbol": "CHF",
"operations": []
}
]
},
"createdAt": null
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
POST /api/v1/platform/{platform}/lock
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Platform Staff
Requires authentication Use this endpoint to get all platform's staff members.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/staff" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/staff"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/staff',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/staff'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"id": "430e40b8-51d3-4f1e-8749-82deaabe3baa",
"isActive": true,
"role": "superadmin",
"lastLoginAt": 1606412506,
"createdAt": 1606412501,
"user": {
"id": "f13da4df-8873-4b59-a44f-b5319f95c34e",
"isActive": true,
"isLock": false,
"tradeStatus": true,
"email": "checkout_browser_test_account@ccpro.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "checkout",
"passwordSet": false
},
"selfDeleted": {
"status": null,
"dates": {
"initiated": null,
"confirmed": null,
"deleted": null
}
},
"createdAt": 1606412438,
"deletedAt": null
}
}
],
"meta": {
"total": 1,
"current_page": 1,
"per_page": 25,
"last_page": 1
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/staff
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Platform Users
Requires authentication Use this endpoint to get all users attached to platform.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user?id=03dacaf0-1117-44b1-ace4-6fe762bad3a4&email=jon%40winterfell.got&platform_status=1&kyc_status=accepted" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user"
);
let params = {
"id": "03dacaf0-1117-44b1-ace4-6fe762bad3a4",
"email": "jon@winterfell.got",
"platform_status": "1",
"kyc_status": "accepted",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'id'=> '03dacaf0-1117-44b1-ace4-6fe762bad3a4',
'email'=> 'jon@winterfell.got',
'platform_status'=> '1',
'kyc_status'=> 'accepted',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user'
params = {
'id': '03dacaf0-1117-44b1-ace4-6fe762bad3a4',
'email': 'jon@winterfell.got',
'platform_status': '1',
'kyc_status': 'accepted',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "f13da4df-8873-4b59-a44f-b5319f95c34e",
"isActive": true,
"isLock": false,
"tradeStatus": true,
"email": "checkout_browser_test_account@ccpro.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "checkout",
"passwordSet": false
},
"kyc": {
"status": "WAITING ADMIN APPROVAL"
},
"selfDeleted": {
"status": null,
"dates": {
"initiated": null,
"confirmed": null,
"deleted": null
}
},
"count": {
"orders": 1,
"transfers": 0,
"quotes": 1,
"checkouts": 1,
"securities": 9
},
"linkDetails": {
"active": true,
"status": "active",
"lastLoginAt": 1606412448,
"createdAt": 1606412438
},
"createdAt": 1606412438,
"deletedAt": null
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/user
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by ID. |
email |
optional | Filter by Email. |
platform_status |
optional | Filter by Platform Status. |
kyc_status |
optional | Filter by KYC Status. |
Platform Users Lock
Requires authentication Use this endpoint to lock an user on your Platform
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now}
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/lock" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/lock"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/lock',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/lock'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"message": "The user has been successfully locked."
}
Example response (403):
{
"message": "User already locked."
}
Example response (404):
{
"message": "No query results"
}
HTTP Request
POST /api/v1/platform/{platform}/{user}/lock
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
user |
required | The user ID. |
Platform Users Unlock
Requires authentication Use this endpoint to unlock an user on your Platform
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now}
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/unlock" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/unlock"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/unlock',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/67374h03-34ft-4dd2-b6ef-112a2bec5963/unlock'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"message": "The user has been successfully unlocked."
}
Example response (404):
{
"message": "No query results"
}
HTTP Request
POST /api/v1/platform/{platform}/{user}/unlock
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
user |
required | The user ID. |
Platform Orders
Requires authentication Use this endpoint to get all orders made by platform users.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order?id=ftCVHqME&user=jon%40winterfell.got&status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH&wallet=0x2f203264a671832b543acfd5558ae684cd1c5a5a&txid=0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f&payment_method=card" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order"
);
let params = {
"id": "ftCVHqME",
"user": "jon@winterfell.got",
"status": "APPROVED",
"typeOperationName": "buy_with_fiat",
"asset": "ETH",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txid": "0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f",
"payment_method": "card",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'id'=> 'ftCVHqME',
'user'=> 'jon@winterfell.got',
'status'=> 'APPROVED',
'typeOperationName'=> 'buy_with_fiat',
'asset'=> 'ETH',
'wallet'=> '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid'=> '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method'=> 'card',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order'
params = {
'id': 'ftCVHqME',
'user': 'jon@winterfell.got',
'status': 'APPROVED',
'typeOperationName': 'buy_with_fiat',
'asset': 'ETH',
'wallet': '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'txid': '0x6357114dd04c8ace9d2c53bace18d7c864d0f686626ff9b18489c64e39edfa7f',
'payment_method': 'card',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "f7cd7280-b75c-45ac-ac26-193162e74fc1",
"publicId": "ftCVHqME",
"status": "PROCESSING_PAYMENT",
"type": "token",
"typeOperation": "out",
"typeOperationName": "sell_to_fiat",
"fromSymbol": "IPSX",
"fromAmount": "500.0000000000000000000000000",
"rate": "0",
"toSymbol": "ETH",
"toAmount": "1.0000000000000000000000000",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"txId": null,
"parentOrder": {
"id": "b87fcf41-c6a7-4ebb-9547-3f826a8420cd",
"publicId": "g0h0HsmE"
},
"childOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": "e887c2e5-82cd-4d25-897f-198d93241425",
"url": "https:\/\/dev-checkout.infra.cryptocoin.pro\/payment\/bank-confirm? order=3fc9bc08-1e1a-4928-a8dc-29674042d639& signature=89bac803dc4d3a24a21ff1b72d871f34ea4ab3ccc61a6b26f5e1acf3b1148a0a",
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "0.0000000000000000000000000",
"amount": "0.0000000000000000000000000"
},
"user": {
"id": "c73d7aec-de24-4e19-8476-0326bfc0e42d",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat@gmail.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "api",
"passwordSet": false
},
"selfDeletedAt": null,
"createdAt": 1579702412
},
"quote": {
"id": "6265b373-8606-4a4c-982e-99fd2adfea62",
"publicId": "HMFJBTBO"
},
"externalPlatform": {
"code": "PlatformName",
"name": "PlatformCode",
"url": "https:\/\/platform.io\/"
},
"createdAt": 1556095674
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/order
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
status |
optional | Filter by Status. |
typeOperationName |
optional | Filter by TypeOperationName. |
asset |
optional | Filter by Asset. |
wallet |
optional | Filter by Wallet address. |
txid |
optional | Filter by Blockchain Transaction ID. |
payment_method |
optional | Filter by Payment method. |
Platform Quotes
Requires authentication Use this endpoint to get all quotes made by platform users.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote?id=iZE9qxz6&user=jon%40winterfell.got&status=available&type=buy_with_fiat&asset=ETH&wallet=0x2f203264a671832b543acfd5558ae684cd1c5a5a&payment_method=card" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"status": "available",
"type": "buy_with_fiat",
"asset": "ETH",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"payment_method": "card",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'status'=> 'available',
'type'=> 'buy_with_fiat',
'asset'=> 'ETH',
'wallet'=> '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'payment_method'=> 'card',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'status': 'available',
'type': 'buy_with_fiat',
'asset': 'ETH',
'wallet': '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'payment_method': 'card',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e",
"publicId": "iZE9qxz6",
"status": "completed",
"type": "coin",
"typeOperationName": "buy_with_fiat",
"payment": {
"type": "bank",
"id": null,
"mandatory": false
},
"from": "EUR",
"to": "ETH",
"amount": "0.2000000000000000000000000",
"rate": "172.2125000000000000000000000",
"commission": {
"fromAmount": "4.4925",
"fromTotal": "0.03",
"discountPercent": "0",
"percent": "15"
},
"total": "34.4425000000000000000000000",
"parentOrder": {
"id": null,
"publicId": null
},
"user": {
"id": "c73d7aec-de24-4e19-8476-0326bfc0e42d",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat@gmail.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "api",
"passwordSet": false
},
"selfDeletedAt": null,
"createdAt": 1579702412
},
"wallet": null,
"order": {
"id": "c6752d40-e902-43e8-b1af-437f775ce7c1",
"publicId": "JZ2OLJOL"
},
"externalPlatform": {
"code": "PlatformName",
"name": "PlatformCode",
"url": "https:\/\/platform.io\/"
},
"lifeSeconds": 3600,
"lifeUntilAt": 1572870237,
"confirmUrl": null,
"createdAt": 1572866637
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/quote
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
status |
optional | Filter by Status. |
type |
optional | Filter by Type. |
asset |
optional | Filter by Asset. |
wallet |
optional | Filter by Wallet address. |
payment_method |
optional | Filter by Payment method. |
Platform Checkouts
Requires authentication Use this endpoint to get all checkouts made by platform users.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout?id=iZE9qxz6&user=jon%40winterfell.got&step=payment&status=finished&type=buy_with_fiat&payment_method=card" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"step": "payment",
"status": "finished",
"type": "buy_with_fiat",
"payment_method": "card",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'step'=> 'payment',
'status'=> 'finished',
'type'=> 'buy_with_fiat',
'payment_method'=> 'card',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'step': 'payment',
'status': 'finished',
'type': 'buy_with_fiat',
'payment_method': 'card',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "16f91b73-908e-4a74-b2e0-d7586e767584",
"publicId": "UFMSS9AS",
"status": "expired",
"step": "account-details",
"attemptsQuote": {
"count": 0,
"limit": 3
},
"requestId": "957c0c28-99a1-49ce-85f7-9be9f4cc4f40",
"paymentType": "bank",
"ip": null,
"url": "http:\/\/dev-checkout.cryptocoin-app.test?lang=ro&display=light&platform_id=dc9dbd8c-b57a-4b55-bf0c-17c6095d1a6c&resume=false&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjp7ImlkIjoiYmIxNzc2MmEtOGQyYS00YTRhLTkxYzUtMmRmOWNkMDcyNDg1IiwiZW1haWwiOiJwYWl6YW4uYWxleGFuZHJ1OTNAZ21haWwuY29tIiwiZmlyc3RfbmFtZSI6IkFsZXgiLCJsYXN0X25hbWUiOiJQYWl6YW4iLCJkb2IiOiIxOTkzLTA2LTE4IiwicGhvbmUiOiIrNDA3NjAzODY1NzEiLCJ3YWxsZXQiOiIweDIxOTgzNzIxMjF4enNhZHNhMjE0MjFzYSJ9LCJwYXltZW50Ijp7Im9wZXJhdGlvbiI6ImJ1eSIsInR5cGUiOiJjb2luIiwic3ltYm9sIjoiRVRIIiwiYW1vdW50IjoiMSIsInJhdGUiOiIyMjcuNjIwMDAiLCJmaWF0IjoiRVVSIiwicmVxdWVzdF9pZCI6Ijk1N2MwYzI4LTk5YTEtNDljZS04NWY3LTliZTlmNGNjNGY0MCIsIm1ldGhvZCI6ImJhbmsiLCJhdHRlbXB0cyI6Mywic2Vjb25kX29yZGVyX3R5cGUiOiJ3aXRoZHJhdyJ9LCJwaW5nX3VybCI6Imh0dHBzOlwvXC9kZXYtYXBwLmluZnJhLmNyeXB0b2NvaW4ucHJvP3Bpbmc9b3JkZXItbmFzaCIsInJlZGlyZWN0X3VybCI6Imh0dHBzOlwvXC9uYXNoLmlvXC8iLCJleHBpcmUiOjE1ODI1NDE2NjB9.MNyQe5FdBiAxzm4y_I4JWxpwWLl3eMOvKeN_rKGK3AGFKuDqmKvh59zK463F_2sEc-G0iIATPu59VUz2TRfaXFAQ2MYdTWCeDbFtGUfd51F7-qytLErw1UV--DLeRlNd0KGTJG1EjTHBu_BaT4LjDgGUEAcrkQ2b_45BjDKXqSQUfDkH6PU4Los06cykUEPgzrU37xA_2KFrdcQTKzmIsqvCwsssK88F-8Jm3MIds-Uhqnzm7QqTvI91rC0Egz81mlLUJX9mwAal9u8YC718a7Y8IqlJLNHXjFogMHw_gtb2ats4yfAJi6sPPU0cy0H1m-QwKq2_8Sg1fhBeiFRsdg",
"redirectUrl": "https:\/\/nash.io\/",
"pingUrl": "https:\/\/dev-app.infra.cryptocoin.pro?ping=order-nash",
"user": {
"id": "c73d7aec-de24-4e19-8476-0326bfc0e42d",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat@gmail.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "api",
"passwordSet": false
},
"selfDeletedAt": null,
"createdAt": 1579702412
},
"expiredAt": 1582541660,
"createdAt": 1581936860
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/checkout
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
step |
optional | Filter by Step. |
status |
optional | Filter by Status. |
type |
optional | Filter by Type. |
payment_method |
optional | Filter by Payment method. |
Platform Transfers
Requires authentication Use this endpoint to get all transfers made by platform users.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer?id=iZE9qxz6&user=jon%40winterfell.got&from_user=jon%40winterfell.got&to_user=jon%40winterfell.got&status=completed&asset=ETH" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"from_user": "jon@winterfell.got",
"to_user": "jon@winterfell.got",
"status": "completed",
"asset": "ETH",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'from_user'=> 'jon@winterfell.got',
'to_user'=> 'jon@winterfell.got',
'status'=> 'completed',
'asset'=> 'ETH',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'from_user': 'jon@winterfell.got',
'to_user': 'jon@winterfell.got',
'status': 'completed',
'asset': 'ETH',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "eec0a695-4095-43a5-a372-5710d543b917",
"publicId": "984HwVsF",
"status": "pending",
"type": "coin",
"symbol": "ETH",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat+4@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat+4@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+161@gmail.com"
},
"fromOrder": {
"id": null,
"publicId": null
},
"toOrder": {
"id": null,
"publicId": null
},
"externalPlatform": {
"code": "PlatformName",
"name": "PlatformCode",
"url": "https:\/\/platform.io\/"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591363607,
"confirmUrl": null,
"createdAt": 1591363427
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/transfer
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
from_user |
optional | Filter by From User Email/ID. |
to_user |
optional | Filter by To User Email/ID. |
status |
optional | Filter by Status. |
asset |
optional | Filter by Asset. |
Platform Securities
Requires authentication Use this endpoint to get all API securities made by platform.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/securities?user=jon%40winterfell.got&name=logout&ip=127.0.0.1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/securities"
);
let params = {
"user": "jon@winterfell.got",
"name": "logout",
"ip": "127.0.0.1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/securities',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'user'=> 'jon@winterfell.got',
'name'=> 'logout',
'ip'=> '127.0.0.1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/securities'
params = {
'user': 'jon@winterfell.got',
'name': 'logout',
'ip': '127.0.0.1',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"code": "login_success",
"name": "Login Success",
"by": "CryptoCoin",
"ip": "127.0.0.1",
"user": {
"id": "a24aa5f4-928a-4c5d-bfb5-e6507f712d0b",
"isActive": true,
"tradeStatus": true,
"email": "andreea+20@gmail.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "checkout",
"passwordSet": false
},
"selfDeletedAt": null,
"createdAt": 1597148068
},
"createdAt": 1597149422
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/securities
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
user |
optional | Filter by User Email/ID. |
name |
optional | Filter by Name. |
ip |
optional | Filter by IP. |
Platform IEN Requests
Requires authentication Use this endpoint to get all IEN Requests made by platform.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/ien-requests?endpoint=winterfell.got&method=GET&status=200&algorithm=RS512&ien_version=2&attempts=1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/ien-requests"
);
let params = {
"endpoint": "winterfell.got",
"method": "GET",
"status": "200",
"algorithm": "RS512",
"ien_version": "2",
"attempts": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/ien-requests',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'endpoint'=> 'winterfell.got',
'method'=> 'GET',
'status'=> '200',
'algorithm'=> 'RS512',
'ien_version'=> '2',
'attempts'=> '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/ien-requests'
params = {
'endpoint': 'winterfell.got',
'method': 'GET',
'status': '200',
'algorithm': 'RS512',
'ien_version': '2',
'attempts': '1',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"endpoint": "https:\/\/extPlatform.io",
"verb": "POST",
"request": "{\"some\":\"data\"}",
"status": "200",
"response": "{\"some\":\"data\"}",
"attempts": 1,
"algorithm": "RS512",
"ien_version": 2,
"createdAt": 1588081150
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/ien-requests
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
endpoint |
optional | Filter by Endpoint. |
method |
optional | Filter by Method. |
status |
optional | Filter by Status. |
algorithm |
optional | Filter by Algorithm. |
ien_version |
optional | Filter by IEN version. |
attempts |
optional | Filter by Attempts. |
Platform API Requests
Requires authentication Use this endpoint to get all API Requests made by platform.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/api-requests?user=jon%40winterfell.got&url=winterfell.got&method=get&status=200&ip=127.0.0.1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/api-requests"
);
let params = {
"user": "jon@winterfell.got",
"url": "winterfell.got",
"method": "get",
"status": "200",
"ip": "127.0.0.1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/api-requests',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'user'=> 'jon@winterfell.got',
'url'=> 'winterfell.got',
'method'=> 'get',
'status'=> '200',
'ip'=> '127.0.0.1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/api-requests'
params = {
'user': 'jon@winterfell.got',
'url': 'winterfell.got',
'method': 'get',
'status': '200',
'ip': '127.0.0.1',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"status": "200",
"method": "GET",
"ip": "127.0.0.1",
"source": "raw",
"uri": "api\/v1\/platform\/{platform}\/api-hits",
"user": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat+4@gmail.com",
"options": {
"language": "en",
"theme": "dark"
},
"meta": {
"source": "web",
"passwordSet": true
},
"selfDeletedAt": null,
"createdAt": 1554204615
},
"createdAt": 1598861053
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/api-requests
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
user |
optional | Filter by User Email/ID. |
url |
optional | Filter by URL. |
method |
optional | Filter by Method. |
status |
optional | Filter by Status. |
ip |
optional | Filter by IP. |
Platform Emails History
Requires authentication Use this endpoint to get all emails made by platform.
Headers
Required header { "Token": "jwt-token" }
jwt-token = RS512 encoded jwt with payload { platform: required|string|in:{platformUUId}, expire: required|timestamp|after_or_equal:now }
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/email-history?to=jon%40winterfell.got&subject=Change+email&context_type=Order&context_id=24jkl5j4&status=delivery" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/email-history"
);
let params = {
"to": "jon@winterfell.got",
"subject": "Change email",
"context_type": "Order",
"context_id": "24jkl5j4",
"status": "delivery",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/email-history',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'to'=> 'jon@winterfell.got',
'subject'=> 'Change email',
'context_type'=> 'Order',
'context_id'=> '24jkl5j4',
'status'=> 'delivery',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/email-history'
params = {
'to': 'jon@winterfell.got',
'subject': 'Change email',
'context_type': 'Order',
'context_id': '24jkl5j4',
'status': 'delivery',
}
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "016da161-dd7a-4594-a45f-903118e13d0a",
"subject": "Checkout Order",
"status": "sending",
"context": {
"type": "Order",
"id": "03ea8b26-ce21-426e-9f29-275a9e3f7849",
"publicId": "7XZG3FWW"
},
"user": {
"id": "7e981c56-36fe-46fa-bfe5-7852e4c48e78",
"isActive": true,
"isLock": false,
"tradeStatus": true,
"email": "andreeacreanga95+104@gmail.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "checkout",
"passwordSet": false
},
"selfDeleted": {
"status": null,
"dates": {
"initiated": null,
"confirmed": null,
"deleted": null
}
},
"createdAt": 1605011180,
"deletedAt": null
},
"createdAt": 1605011406
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (412):
{
"message": "JWT payload invalid."
}
Example response (416):
{
"message": "JWT is expired."
}
HTTP Request
GET /api/v1/platform/{platform}/email-history
URL Parameters
Parameter | Status | Description |
---|---|---|
platform |
required | The platform ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
to |
optional | Filter by User Email/ID. |
subject |
optional | Filter by Subject. |
context_type |
optional | Filter by Context Type. |
context_id |
optional | Filter by Context ID. |
status |
optional | Filter by Status. |
Platform Rate Buy
Use this endpoint to get a buy price as Platform
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/buy/1/1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/buy/1/1"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/buy/1/1',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/buy/1/1'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "6383.37700000000000000000000000000000000000000000000000",
"rateRaw": "6377",
"commission": {
"from": "0.09990009990009990009990036200000000000000000000000",
"to": "0.00001566568917988080603730600000000000000000000000",
"percent": 0.1,
"discount": 0
},
"amounts": {
"from": "100",
"to": "0.01566568917988080603730595889918455388111966440334"
},
"assets": {
"from": "EUR",
"to": "XBT"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "buy_with_fiat"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/platform/{platform}/price/buy/{from}/{to}
Platform Rate Sell
Use this endpoint to get a sell price as Platform
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/sell/1/1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/sell/1/1"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/sell/1/1',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/sell/1/1'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "6383.37700000000000000000000000000000000000000000000000",
"rateRaw": "6377",
"commission": {
"from": "0.09990009990009990009990036200000000000000000000000",
"to": "0.00001566568917988080603730600000000000000000000000",
"percent": 0.1,
"discount": 0
},
"amounts": {
"from": "100",
"to": "0.01566568917988080603730595889918455388111966440334"
},
"assets": {
"from": "EUR",
"to": "XBT"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "sell_to_fiat"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/platform/{platform}/price/sell/{from}/{to}
Platform Rate Withdraw
Use this endpoint to get a withdraw price as Platform
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw/1/1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw/1/1"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw/1/1',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw/1/1'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "6383.37700000000000000000000000000000000000000000000000",
"rateRaw": "6377",
"commission": {
"from": "0.09990009990009990009990036200000000000000000000000",
"to": "0.00001566568917988080603730600000000000000000000000",
"percent": 0.1,
"discount": 0
},
"amounts": {
"from": "100",
"to": "0.01566568917988080603730595889918455388111966440334"
},
"assets": {
"from": "EUR",
"to": "XBT"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "withdraw"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/platform/{platform}/price/withdraw/{from}/{to}
Platform Rate WithdrawIco
Use this endpoint to get a withdrawIco price as Platform
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw-ico/1/1" \
-H "Token: {jwt-token}" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw-ico/1/1"
);
let headers = {
"Token": "{jwt-token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw-ico/1/1',
[
'headers' => [
'Token' => '{jwt-token}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/platform/1/price/withdraw-ico/1/1'
headers = {
'Token': '{jwt-token}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "6383.37700000000000000000000000000000000000000000000000",
"rateRaw": "6377",
"commission": {
"from": "0.09990009990009990009990036200000000000000000000000",
"to": "0.00001566568917988080603730600000000000000000000000",
"percent": 0.1,
"discount": 0
},
"amounts": {
"from": "100",
"to": "0.01566568917988080603730595889918455388111966440334"
},
"assets": {
"from": "EUR",
"to": "XBT"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "withdrawIco"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/platform/{platform}/price/withdraw-ico/{from}/{to}
Quote
APIs for managing quotes
Quote Create
Requires authentication Use this endpoint to create a user quote.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3s/quote" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"type":"coin","orderType":"buy_with_crypto","secondOrderType":"withdraw","orderAmount":"1.0010","orderSymbol":"ETH","orderPaymentSymbol":"EUR","orderPaymentMethod":"11b73ec1-5b19-4844-a5c9-42bd177b64c3","orderPaymentType":"bank","wallet":"1ca2361d-ba5c-4d11-8640-0eca9f25e85f"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3s/quote"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"type": "coin",
"orderType": "buy_with_crypto",
"secondOrderType": "withdraw",
"orderAmount": "1.0010",
"orderSymbol": "ETH",
"orderPaymentSymbol": "EUR",
"orderPaymentMethod": "11b73ec1-5b19-4844-a5c9-42bd177b64c3",
"orderPaymentType": "bank",
"wallet": "1ca2361d-ba5c-4d11-8640-0eca9f25e85f"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3s/quote',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'type' => 'coin',
'orderType' => 'buy_with_crypto',
'secondOrderType' => 'withdraw',
'orderAmount' => '1.0010',
'orderSymbol' => 'ETH',
'orderPaymentSymbol' => 'EUR',
'orderPaymentMethod' => '11b73ec1-5b19-4844-a5c9-42bd177b64c3',
'orderPaymentType' => 'bank',
'wallet' => '1ca2361d-ba5c-4d11-8640-0eca9f25e85f',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3s/quote'
payload = {
"type": "coin",
"orderType": "buy_with_crypto",
"secondOrderType": "withdraw",
"orderAmount": "1.0010",
"orderSymbol": "ETH",
"orderPaymentSymbol": "EUR",
"orderPaymentMethod": "11b73ec1-5b19-4844-a5c9-42bd177b64c3",
"orderPaymentType": "bank",
"wallet": "1ca2361d-ba5c-4d11-8640-0eca9f25e85f"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "90de96dd-3309-4795-bd41-ebe09091e1f8",
"publicId": "EuzwU5Zv",
"status": "available",
"type": "coin",
"typeOperationName": "sell_to_fiat",
"payment": {
"type": "bank",
"id": null,
"mandatory": false
},
"from": "ETH",
"to": "EUR",
"amount": "0.2",
"rate": "142.2625",
"commission": {
"fromAmount": "0.01",
"fromTotal": "1.4975",
"discountPercent": "0",
"percent": "5"
},
"total": "28.4525",
"parentOrder": {
"id": null,
"publicId": null
},
"wallet": null,
"walletPolicy": "relax",
"order": {
"id": null,
"publicId": null
},
"externalPlatform": null,
"lifeSeconds": 3600,
"lifeUntilAt": 1573029327,
"confirmUrl": "http:\/\/dev-checkout.localhost\/confirm-quote\/eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJxdW90ZSI6IjkwZGU5NmRkLTMzMDktNDc5NS1iZDQxLWViZTA5MDkxZTFmOCIsInVzZXI*iOiI2NmRlNDk0ZS02NzkxLTQyOTAtOTk2Yy0zMmY0MjA0MWZiZjQiLCJlbWFpbCI6ImFsaW5pb251dG11c2F0KzRAZ21haWwuY29tIiwiYWN*jZXNzIjoidHpyQjd6VFVUOHd6ekR3RndPZjk4dVhvVW9RQmdDQm9uQ21MeU1BTmVrYkFWckFBeHdRNWh3RVh3b0hLWFF6ciIsImV4cGlyZSI*6MTU3MzAyOTMyNywiZXh0cmEiOnsiZXh0ZXJuYWxQbGF0Zm9ybU5hbWUiOm51bGx9fQ.QGjLZeB7hlwoVhJsc8-Qumj23tqS3eIz1T1OZxxynAtEad5MpXfxCFW5gEq72NRXu3Ng_yp8x52WJ0iNFqf0y5V0byA5Via2oY9ujT34N1h4*R3QmTQO-kHHdurzhP67o_5YNh073-9I85UWfBUmPltfHSckO3gqBCMmOnsTpPYfBp09Vpj0U6XnniTpQpFvKeEfDITHsdkNUclz1DW97iWoS*kV-JgRGjx9nfo-Gm-c3RNB1q70xhz96UPIb3KA90ObIhEFVTow7wbeLCHQF5YV6BRihVKgGUOeBCHvT00fjxb1fcs68DIeFhPbGrXugVbOdK*TLU1yUW1OqO67lmWvQ?display=dark&expires=1573029327&lang=ro&signature=26b34f371c0d600959dbc2dba930bb576d70a5bea79272137c39082f2c2fb97f",
"createdAt": 1573025727
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"error": "Your account is inactive."
}
Example response (412):
{
"error": "This action is not available due Self Delete Account procedure."
}
HTTP Request
POST /api/v1/user/{user}/quote
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
type |
string | required | The order type - (in:coin,token). |
orderType |
string | required | The order operation type - (in:buy_with_crypto,buy_with_fiat,sell_to_crypto,sell_to_fiat,withdraw,withdrawIco). |
secondOrderType |
string | optional | The order second operation type (only if type is buy_with_crypto or buy_with_fiat) - (in:withdraw,withdrawIco). |
orderAmount |
string | required | The order amount - (numeric). |
orderSymbol |
string | required | The order symbol - (in:coin/token->symbol). |
orderPaymentSymbol |
string | required | The order payment symbol - (required_if:orderType,buy_with_crypto,buy_with_fiat,sell_to_crypto,sell_to_fiat|in:paymentType->symbol). |
orderPaymentMethod |
uuid | required | The order payment method UUID - (required_if:orderType,buy_with_fiat,sell_to_fiat|in:user->paymentMethods). |
orderPaymentType |
string | optional | The payment type is required only when you do not provide a orderPaymentMethod - (required_without_all:orderPaymentMethod|in:card,bank). |
wallet |
string|uuid | optional | (Accepts raw wallet addresses or uuid) The wallet/withdraw where to deposit funds, if not provided funds will be keept in CCPro account, also must match orderSymbol chain - (required_if:orderType,withdraw|in:user->wallets). |
Quote Index
Requires authentication Use this endpoint to get user quotes.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote?id=iZE9qxz6&user=jon%40winterfell.got&status=available&type=buy_with_fiat&asset=ETH&wallet=0x2f203264a671832b543acfd5558ae684cd1c5a5a&payment_method=card&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"status": "available",
"type": "buy_with_fiat",
"asset": "ETH",
"wallet": "0x2f203264a671832b543acfd5558ae684cd1c5a5a",
"payment_method": "card",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'status'=> 'available',
'type'=> 'buy_with_fiat',
'asset'=> 'ETH',
'wallet'=> '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'payment_method'=> 'card',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'status': 'available',
'type': 'buy_with_fiat',
'asset': 'ETH',
'wallet': '0x2f203264a671832b543acfd5558ae684cd1c5a5a',
'payment_method': 'card',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e",
"publicId": "iZE9qxz6",
"status": "completed",
"type": "coin",
"typeOperationName": "buy_with_fiat",
"payment": {
"type": "bank",
"id": null,
"mandatory": false
},
"from": "EUR",
"to": "ETH",
"amount": "0.2000000000000000000000000",
"rate": "172.2125000000000000000000000",
"commission": {
"fromAmount": "4.4925",
"fromTotal": "0.03",
"discountPercent": "0",
"percent": "15"
},
"total": "34.4425000000000000000000000",
"parentOrder": {
"id": null,
"publicId": null
},
"wallet": null,
"walletPolicy": "relax",
"order": {
"id": "c555a171-9c3e-4d9d-b121-3d74ba87e2ee",
"publicId": "llnnLjW8"
},
"externalPlatform": null,
"lifeSeconds": 3600,
"lifeUntilAt": 1572870237,
"confirmUrl": null,
"createdAt": 1572866637
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/quote
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
status |
optional | Filter by Status. |
type |
optional | Filter by Type. |
asset |
optional | Filter by Asset. |
wallet |
optional | Filter by Wallet address. |
payment_method |
optional | Filter by Payment method. |
platform |
optional | Filter by Platform code. |
Quote Show
Requires authentication Use this endpoint to get a user quote.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e",
"publicId": "iZE9qxz6",
"status": "completed",
"type": "coin",
"typeOperationName": "buy_with_fiat",
"payment": {
"type": "bank",
"id": null,
"mandatory": false
},
"from": "EUR",
"to": "ETH",
"amount": "0.2000000000000000000000000",
"rate": "172.2125000000000000000000000",
"commission": {
"fromAmount": "4.4925",
"fromTotal": "0.03",
"discountPercent": "0",
"percent": "15"
},
"total": "34.4425000000000000000000000",
"parentOrder": {
"id": null,
"publicId": null
},
"wallet": null,
"walletPolicy": "relax",
"checkout": null,
"order": {
"id": "c555a171-9c3e-4d9d-b121-3d74ba87e2ee",
"publicId": "llnnLjW8",
"status": "REJECTED",
"type": "coin",
"typeOperation": "in",
"typeOperationName": "buy_with_fiat",
"fromSymbol": "EUR",
"fromAmount": "34.4425000000000000000000000",
"rate": "172.2125000000000000000000000",
"toSymbol": "ETH",
"toAmount": "0.2000000000000000000000000",
"wallet": null,
"txId": null,
"parentOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": null,
"url": null,
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "15.0000000000000000000000000",
"amount": "4.4925000000000000000000000"
},
"quote": {
"id": "fc0388dc-63c5-4fbe-bc53-c11ba3bdb94e",
"publicId": "iZE9qxz6"
},
"externalPlatform": null,
"createdAt": 1572866814
},
"externalPlatform": null,
"lifeSeconds": 3600,
"lifeUntilAt": 1572870237,
"confirmUrl": null,
"createdAt": 1572866637
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/quote/{quote}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
quote |
required | The quote ID. |
Quote Confirmation
Requires authentication Use this endpoint to finalize a user quote as order.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/e4c9dc01-5b65-4186-a149-cd31aaae3603" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"orderPaymentMethod":"f2b87ccc-0fc4-4d18-9a5d-dcf73f899016","wallet":"0x9c4f891c18b2be79f971f57a8237865dab240dd2"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/e4c9dc01-5b65-4186-a149-cd31aaae3603"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"orderPaymentMethod": "f2b87ccc-0fc4-4d18-9a5d-dcf73f899016",
"wallet": "0x9c4f891c18b2be79f971f57a8237865dab240dd2"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/e4c9dc01-5b65-4186-a149-cd31aaae3603',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'orderPaymentMethod' => 'f2b87ccc-0fc4-4d18-9a5d-dcf73f899016',
'wallet' => '0x9c4f891c18b2be79f971f57a8237865dab240dd2',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/e4c9dc01-5b65-4186-a149-cd31aaae3603'
payload = {
"orderPaymentMethod": "f2b87ccc-0fc4-4d18-9a5d-dcf73f899016",
"wallet": "0x9c4f891c18b2be79f971f57a8237865dab240dd2"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "e4c9dc01-5b65-4186-a149-cd31aaae3603",
"publicId": "5WpkSfyn",
"status": "PAYMENT_WAITING",
"type": "coin",
"typeOperation": "out",
"typeOperationName": "sell_to_fiat",
"fromSymbol": "ETH",
"fromAmount": "0.2000000000000000000000000",
"rate": "142.2625000000000000000000000",
"toSymbol": "EUR",
"toAmount": "28.4525000000000000000000000",
"wallet": null,
"txId": null,
"parentOrder": {
"id": null,
"publicId": null
},
"payment": {
"method": "bank",
"id": "830b0a90-9f36-4f87-ba24-beb499b9c8b8",
"url": null,
"feePercent": "0",
"proofUploaded": null
},
"commissions": {
"percent": "5",
"amount": "1.4975"
},
"quote": {
"id": "90de96dd-3309-4795-bd41-ebe09091e1f8",
"publicId": "EuzwU5Zv",
"status": "completed",
"type": "coin",
"typeOperationName": "sell_to_fiat",
"payment": {
"type": "bank",
"id": "830b0a90-9f36-4f87-ba24-beb499b9c8b8",
"mandatory": false
},
"from": "ETH",
"to": "EUR",
"amount": "0.2000000000000000000000000",
"rate": "142.2625000000000000000000000",
"commission": {
"fromAmount": "0.01",
"fromTotal": "1.4975",
"discountPercent": "0",
"percent": "5"
},
"total": "28.4525000000000000000000000",
"parentOrder": {
"id": null,
"publicId": null
},
"wallet": null,
"walletPolicy": "relax",
"checkout": null,
"order": {
"id": "e4c9dc01-5b65-4186-a149-cd31aaae3603",
"publicId": "5WpkSfyn"
},
"externalPlatform": null,
"lifeSeconds": 3600,
"lifeUntilAt": 1573029327,
"confirmUrl": "http:\/\/dev-checkout.localhost\/confirm-quote\/eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJxdW90ZSI6IjkwZGU5NmRkLTMzMDktNDc5NS1iZDQxLWViZTA5MDkxZTFmOCIsInVzZXIiOiI2NmRlNDk0ZS02NzkxLTQyOTAtOTk2Yy0zMmY0MjA0MWZiZjQiLCJlbWFpbCI6ImFsaW5pb251dG11c2F0KzRAZ21haWwuY29tIiwiYWNjZXNzIjoidHpyQjd6VFVUOHd6ekR3RndPZjk4dVhvVW9RQmdDQm9uQ21MeU1BTmVrYkFWckFBeHdRNWh3RVh3b0hLWFF6ciIsImV4cGlyZSI6MTU3MzAyOTMyNywiZXh0cmEiOnsiZXh0ZXJuYWxQbGF0Zm9ybU5hbWUiOm51bGx9fQ.QGjLZeB7hlwoVhJsc8-Qumj23tqS3eIz1T1OZxxynAtEad5MpXfxCFW5gEq72NRXu3Ng_yp8x52WJ0iNFqf0y5V0byA5Via2oY9ujT34N1h4R3QmTQO-kHHdurzhP67o_5YNh073-9I85UWfBUmPltfHSckO3gqBCMmOnsTpPYfBp09Vpj0U6XnniTpQpFvKeEfDITHsdkNUclz1DW97iWoSkV-JgRGjx9nfo-Gm-c3RNB1q70xhz96UPIb3KA90ObIhEFVTow7wbeLCHQF5YV6BRihVKgGUOeBCHvT00fjxb1fcs68DIeFhPbGrXugVbOdKTLU1yUW1OqO67lmWvQ?display=dark&expires=1573029327&lang=ro&signature=26b34f371c0d600959dbc2dba930bb576d70a5bea79272137c39082f2c2fb97f",
"createdAt": 1573025727
},
"kycLevelRequired": 5,
"externalPlatform": null,
"createdAt": 1573025826
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "This quote is already processed."
}
Example response (403):
{
"message": "This quote has expired."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/quote/{quote}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
quote |
required | The quote ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
orderPaymentMethod |
uuid | optional | The payment id, required only if no payment method provided at quote create - (in:$user->paymentMethods). |
wallet |
string|uuid | optional | If quote is Withdraw or has secondOrderType Withdraw, you can change desire wallet using this param. |
Rates
APIs for retrieving rates
Rate Buy
Requires authentication Use this endpoint to get a buy price
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/EUR/ETH" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/EUR/ETH"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/EUR/ETH',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/EUR/ETH'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "6383.37700000000000000000000000000000000000000000000000",
"rateRaw": "6377",
"commission": {
"from": "0.09990009990009990009990036200000000000000000000000",
"to": "0.00001566568917988080603730600000000000000000000000",
"percent": 0.1,
"discount": 0
},
"amounts": {
"from": "100",
"to": "0.01566568917988080603730595889918455388111966440334"
},
"assets": {
"from": "EUR",
"to": "XBT"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "buy_with_fiat"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/user/{user}/price/buy/{from}/{to}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
from |
required | The asset symbol From. |
to |
required | The asset symbol To. |
Rate Sell
Requires authentication Use this endpoint to get a sell price
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/ETH/EUR" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/ETH/EUR"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/ETH/EUR',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/ETH/EUR'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "160.16",
"rateRaw": "160.16",
"commission": {
"from": "0",
"to": "0",
"percent": 0,
"discount": 0
},
"amounts": {
"from": "100",
"to": "16016.00000000000000000000000000000000000000000000000000"
},
"assets": {
"from": "ETH",
"to": "EUR"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "sell_to_fiat"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/user/{user}/price/sell/{from}/{to}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
from |
required | The asset symbol From. |
to |
required | The asset symbol To. |
Rate Withdraw
Requires authentication
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/ETH/ETH" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/ETH/ETH"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/ETH/ETH',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/ETH/ETH'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "160.16",
"rateRaw": "160.16",
"commission": {
"from": "2.0000000000000000000000000000",
"to": "2.0000000000000000000000000000",
"percent": 2,
"discount": 0
},
"amounts": {
"from": "100",
"to": "98.0000000000000000000000000000"
},
"assets": {
"from": "ETH",
"to": "ETH"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "withdraw"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/user/{user}/price/withdraw/{from}/{to}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
from |
required | The asset symbol From. |
to |
required | The asset symbol To. |
Rate WithdrawIco
Requires authentication Use this endpoint to get a withdrawIco price
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/IPSX/IPSX" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/IPSX/IPSX"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/IPSX/IPSX',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/IPSX/IPSX'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"rate": "6.304E-5",
"rateRaw": "6.304E-5",
"commission": {
"from": "10.000000000000000000000000000",
"to": "10.000000000000000000000000000",
"percent": 10,
"discount": 0
},
"amounts": {
"from": "100",
"to": "90.000000000000000000000000000"
},
"assets": {
"from": "IPSX",
"to": "IPSX"
},
"payment": {
"processor": null,
"fee": null,
"feeOnTop": null
},
"operation": "withdrawIco"
}
}
Example response (403):
{
"message": "ERROR: from_amount and to_amount cannot be both filled",
"errors": {}
}
Example response (405):
{
"message": "Operation not available!",
"errors": {}
}
HTTP Request
GET /api/v1/user/{user}/price/withdraw-ico/{from}/{to}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
from |
required | The asset symbol From. |
to |
required | The asset symbol To. |
Security
APIs for managing securities
Security Index
Requires authentication Use this endpoint to get all user Securities.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities?user=jon%40winterfell.got&name=logout&ip=127.0.0.1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities"
);
let params = {
"user": "jon@winterfell.got",
"name": "logout",
"ip": "127.0.0.1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'user'=> 'jon@winterfell.got',
'name'=> 'logout',
'ip'=> '127.0.0.1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities'
params = {
'user': 'jon@winterfell.got',
'name': 'logout',
'ip': '127.0.0.1',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"code": "login_success",
"name": "Login Success",
"by": "User",
"ip": "127.0.0.1",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1569825416
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/securities
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
user |
optional | Filter by User Email/ID. |
name |
optional | Filter by Name. |
ip |
optional | Filter by IP. |
Security Access Tokens
Requires authentication Use this endpoint to get all user Acess Tokens.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/access" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/access"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/access',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/access'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"type": "api",
"you": true,
"token": "236605634f6b59XXXXXXXXXXXXXXXXXXXXXXXX",
"lastUsedAt": 1591095132,
"createdAt": 1591088611
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/securities/access
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Security API Requests
Requires authentication Use this endpoint to get all user API Requests.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/api-requests" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/api-requests"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/api-requests',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/api-requests'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": [
{
"status": "200",
"method": "GET",
"ip": "127.0.0.1",
"source": "raw",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"color_code": "#13CD88",
"urls": {
"website": "https:\/\/app.cryptocoin.pro\/",
"widget": "http:\/\/dev-checkout.cryptocoin-app.test\/order\/ccpro"
}
},
"createdAt": 1598861053
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/securities/api-requests
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Security Change Password
Requires authentication Use this endpoint to change user password.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/change-password" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"current_password":"password","new_password":"password"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/change-password"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"current_password": "password",
"new_password": "password"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/change-password',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'current_password' => 'password',
'new_password' => 'password',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/change-password'
payload = {
"current_password": "password",
"new_password": "password"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "Password successfully changed."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (412):
{
"message": "Password cannot be changed."
}
Example response (417):
{
"message": "The current password is incorrect."
}
HTTP Request
POST /api/v1/user/{user}/securities/change-password
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
current_password |
string | required | The current user password - (string|min:8|max:191). |
new_password |
string | required | The user new password - (string|min:8|max:191). |
Security Set Password
Requires authentication Use this endpoint to set user password.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/set-password" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"password":"password"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/set-password"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"password": "password"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/set-password',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'password' => 'password',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/set-password'
payload = {
"password": "password"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "Password successfully changed."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (403):
{
"message": "Unable to process your request."
}
Example response (412):
{
"message": "Password cannot be changed."
}
HTTP Request
POST /api/v1/user/{user}/securities/set-password
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
password |
string | required | The user password - (string|min:8|max:191). |
Security Access Token Invalidate
Requires authentication Use this endpoint to delete user access token.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/invalidate/14bb7a50a5ede4XXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/invalidate/14bb7a50a5ede4XXXXXXXXXXXXXXXXXXXXXXXX"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/invalidate/14bb7a50a5ede4XXXXXXXXXXXXXXXXXXXXXXXX',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities/invalidate/14bb7a50a5ede4XXXXXXXXXXXXXXXXXXXXXXXX'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"message": "This token has been successfully invalidated."
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/securities/invalidate/{token}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
token |
required | The token. |
Transfer
APIs for managing asset transfers, from user A to user B.
Transfer Create
Requires authentication Use this endpoint to create a transfer.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"action":"send","amount":"1.2345","type":"coin","symbol":"ETH","user":"alinionutmusat+1@gmail.com"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"action": "send",
"amount": "1.2345",
"type": "coin",
"symbol": "ETH",
"user": "alinionutmusat+1@gmail.com"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'action' => 'send',
'amount' => '1.2345',
'type' => 'coin',
'symbol' => 'ETH',
'user' => 'alinionutmusat+1@gmail.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer'
payload = {
"action": "send",
"amount": "1.2345",
"type": "coin",
"symbol": "ETH",
"user": "alinionutmusat+1@gmail.com"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "pending",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"fromOrder": {
"id": null,
"publicId": null
},
"toOrder": {
"id": null,
"publicId": null
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/transfer
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
action |
string | required | The transfer type - (in:send,receive). |
amount |
string | required | The transfer amount - (numeric|min:0|not_in:0). |
type |
string | required | The transfer asset type - (in:coin,token). |
symbol |
string | required | The transfer asset symbol - (in:assets->symbol). |
user |
string | required | The transfer involved user - (in:users->{email|id}). |
Transfer Index
Requires authentication Use this endpoint to get all user transfer in with is involved.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer?id=iZE9qxz6&user=jon%40winterfell.got&from_user=jon%40winterfell.got&to_user=jon%40winterfell.got&status=completed&asset=ETH&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"from_user": "jon@winterfell.got",
"to_user": "jon@winterfell.got",
"status": "completed",
"asset": "ETH",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'from_user'=> 'jon@winterfell.got',
'to_user'=> 'jon@winterfell.got',
'status'=> 'completed',
'asset'=> 'ETH',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'from_user': 'jon@winterfell.got',
'to_user': 'jon@winterfell.got',
'status': 'completed',
'asset': 'ETH',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "completed",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"fromOrder": {
"id": "0015cfbd-3033-4818-96e5-6f15c09bb380",
"publicId": "7SKTMR2Y"
},
"toOrder": {
"id": "681bf5cb-5530-46d8-8f4d-0e279907f804",
"publicId": "9N29OHTW"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/transfer
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
from_user |
optional | Filter by From User Email/ID. |
to_user |
optional | Filter by To User Email/ID. |
status |
optional | Filter by Status. |
asset |
optional | Filter by Asset. |
platform |
optional | Filter by Platform code. |
Transfer By
Requires authentication Use this endpoint to get all user transfer created by him.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by?id=iZE9qxz6&user=jon%40winterfell.got&from_user=jon%40winterfell.got&to_user=jon%40winterfell.got&status=completed&asset=ETH&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"from_user": "jon@winterfell.got",
"to_user": "jon@winterfell.got",
"status": "completed",
"asset": "ETH",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'from_user'=> 'jon@winterfell.got',
'to_user'=> 'jon@winterfell.got',
'status'=> 'completed',
'asset'=> 'ETH',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'from_user': 'jon@winterfell.got',
'to_user': 'jon@winterfell.got',
'status': 'completed',
'asset': 'ETH',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "completed",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"fromOrder": {
"id": "0015cfbd-3033-4818-96e5-6f15c09bb380",
"publicId": "7SKTMR2Y"
},
"toOrder": {
"id": "681bf5cb-5530-46d8-8f4d-0e279907f804",
"publicId": "9N29OHTW"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/transfer/by
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
from_user |
optional | Filter by From User Email/ID. |
to_user |
optional | Filter by To User Email/ID. |
status |
optional | Filter by Status. |
asset |
optional | Filter by Asset. |
platform |
optional | Filter by Platform code. |
Transfer From
Requires authentication Use this endpoint to get all user transfer from him.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from?id=iZE9qxz6&user=jon%40winterfell.got&from_user=jon%40winterfell.got&to_user=jon%40winterfell.got&status=completed&asset=ETH&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"from_user": "jon@winterfell.got",
"to_user": "jon@winterfell.got",
"status": "completed",
"asset": "ETH",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'from_user'=> 'jon@winterfell.got',
'to_user'=> 'jon@winterfell.got',
'status'=> 'completed',
'asset'=> 'ETH',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'from_user': 'jon@winterfell.got',
'to_user': 'jon@winterfell.got',
'status': 'completed',
'asset': 'ETH',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "completed",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"fromOrder": {
"id": "0015cfbd-3033-4818-96e5-6f15c09bb380",
"publicId": "7SKTMR2Y"
},
"toOrder": {
"id": "681bf5cb-5530-46d8-8f4d-0e279907f804",
"publicId": "9N29OHTW"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/transfer/from
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
from_user |
optional | Filter by From User Email/ID. |
to_user |
optional | Filter by To User Email/ID. |
status |
optional | Filter by Status. |
asset |
optional | Filter by Asset. |
platform |
optional | Filter by Platform code. |
Transfer To
Requires authentication Use this endpoint to get all user transfer to him.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to?id=iZE9qxz6&user=jon%40winterfell.got&from_user=jon%40winterfell.got&to_user=jon%40winterfell.got&status=completed&asset=ETH&platform=app" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to"
);
let params = {
"id": "iZE9qxz6",
"user": "jon@winterfell.got",
"from_user": "jon@winterfell.got",
"to_user": "jon@winterfell.got",
"status": "completed",
"asset": "ETH",
"platform": "app",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'id'=> 'iZE9qxz6',
'user'=> 'jon@winterfell.got',
'from_user'=> 'jon@winterfell.got',
'to_user'=> 'jon@winterfell.got',
'status'=> 'completed',
'asset'=> 'ETH',
'platform'=> 'app',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to'
params = {
'id': 'iZE9qxz6',
'user': 'jon@winterfell.got',
'from_user': 'jon@winterfell.got',
'to_user': 'jon@winterfell.got',
'status': 'completed',
'asset': 'ETH',
'platform': 'app',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "completed",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"fromOrder": {
"id": "0015cfbd-3033-4818-96e5-6f15c09bb380",
"publicId": "7SKTMR2Y"
},
"toOrder": {
"id": "681bf5cb-5530-46d8-8f4d-0e279907f804",
"publicId": "9N29OHTW"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/transfer/to
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
id |
optional | Filter by Public ID. |
user |
optional | Filter by User Email/ID. |
from_user |
optional | Filter by From User Email/ID. |
to_user |
optional | Filter by To User Email/ID. |
status |
optional | Filter by Status. |
asset |
optional | Filter by Asset. |
platform |
optional | Filter by Platform code. |
Transfer Show
Requires authentication Use this endpoint to get a user transfer in with is involved.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "completed",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"fromOrder": {
"id": "0015cfbd-3033-4818-96e5-6f15c09bb380",
"publicId": "7SKTMR2Y"
},
"toOrder": {
"id": "681bf5cb-5530-46d8-8f4d-0e279907f804",
"publicId": "9N29OHTW"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/transfer/{transfer}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
transfer |
required | The transfer ID. |
Transfer Confirm
Requires authentication Use this endpoint to confirm a transfer.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"wallet":"0x01234567890123456789"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"wallet": "0x01234567890123456789"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'wallet' => '0x01234567890123456789',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/3290f292-d36d-45f8-a320-81c74e5d7ba8'
payload = {
"wallet": "0x01234567890123456789"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "3290f292-d36d-45f8-a320-81c74e5d7ba8",
"publicId": "FxpNoavw",
"status": "completed",
"amount": "1.0000000000000000000000000",
"total": "0.9500000000000000000000000",
"commission": {
"value": "0.0500000000000000000000000",
"percent": "5"
},
"byUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"fromUser": {
"id": "66de494e-6791-4290-996c-32f42041fbf4",
"email": "alinionutmusat@gmail.com"
},
"toUser": {
"id": "4a9d3d36-1d39-4fc8-b846-edd06a62b607",
"email": "alinionutmusat+1@gmail.com"
},
"fromOrder": {
"id": "0015cfbd-3033-4818-96e5-6f15c09bb380",
"publicId": "7SKTMR2Y"
},
"toOrder": {
"id": "681bf5cb-5530-46d8-8f4d-0e279907f804",
"publicId": "9N29OHTW"
},
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"lifeSeconds": 180,
"lifeUntilAt": 1591179248,
"createdAt": 1591179068
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
POST /api/v1/user/{user}/transfer/{transfer}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
transfer |
required | The transfer ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
wallet |
string | optional | The wallet address/uuid, can be specify only if transfer in receive - (in:$user->wallets). |
User
APIs for managing users
User Create
Use this endpoint to create a new User model.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"email@gmail.com","password":"12345678","firstName":"Alin","lastName":"Ionut","dateOfBirth":"1900-12-31","phone":"40730000000","address":{"country":"RO","city":"Pitesti","zip":"112233","street":"Some Street name Nr. 1"},"platform":{"id":"64b4f8d1-c2bd-4bba-8b1b-332a58176734","userId":"123456","email":"email@gmail.com","username":"username","referralId":"123456"},"redirectTo":"http:\/\/www.platform.com\/user-activate\/123456789"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "email@gmail.com",
"password": "12345678",
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": "1900-12-31",
"phone": "40730000000",
"address": {
"country": "RO",
"city": "Pitesti",
"zip": "112233",
"street": "Some Street name Nr. 1"
},
"platform": {
"id": "64b4f8d1-c2bd-4bba-8b1b-332a58176734",
"userId": "123456",
"email": "email@gmail.com",
"username": "username",
"referralId": "123456"
},
"redirectTo": "http:\/\/www.platform.com\/user-activate\/123456789"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'email@gmail.com',
'password' => '12345678',
'firstName' => 'Alin',
'lastName' => 'Ionut',
'dateOfBirth' => '1900-12-31',
'phone' => '40730000000',
'address' => [
'country' => 'RO',
'city' => 'Pitesti',
'zip' => '112233',
'street' => 'Some Street name Nr. 1',
],
'platform' => [
'id' => '64b4f8d1-c2bd-4bba-8b1b-332a58176734',
'userId' => '123456',
'email' => 'email@gmail.com',
'username' => 'username',
'referralId' => '123456',
],
'redirectTo' => 'http://www.platform.com/user-activate/123456789',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user'
payload = {
"email": "email@gmail.com",
"password": "12345678",
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": "1900-12-31",
"phone": "40730000000",
"address": {
"country": "RO",
"city": "Pitesti",
"zip": "112233",
"street": "Some Street name Nr. 1"
},
"platform": {
"id": "64b4f8d1-c2bd-4bba-8b1b-332a58176734",
"userId": "123456",
"email": "email@gmail.com",
"username": "username",
"referralId": "123456"
},
"redirectTo": "http:\/\/www.platform.com\/user-activate\/123456789"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"uuid": "ebf8e81e-fdfd-4da9-84e4-b5172b6f1412",
"isActive": false,
"tradeStatus": true,
"email": "alinionutmusat@gmail.com",
"options": {
"language": "en",
"theme": "light"
},
"meta": {
"source": "api",
"passwordSet": true
},
"selfDeletedAt": null,
"createdAt": 1577002591
},
"meta": {
"redirectTo": "http:\/\/dev-api-checkout.localhost:8000\/api\/v1\/",
"registerType": "linked"
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
]
}
}
HTTP Request
POST /api/v1/user
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
email |
string | required | The user email - (email|unique:users). |
password |
string | optional | The user password - (required_without:platform.id|min:8|max:191). |
firstName |
string | required | The user first name - (alpha_space|max:191). |
lastName |
string | required | The user last name - (alpha_space|max:191). |
dateOfBirth |
dateTime | required | The user date of birth, must be minimum 18 years - (date_format:Y-m-d|before_or_equal:now()->subYears(18)->format('Y-m-d')). |
phone |
string | optional | The user phone number - (numeric|digits_between:7,15). |
address.country |
string | optional | The user country ISO code - (countryISOcode). |
address.city |
string | optional | The user city - (max:191). |
address.zip |
numeric | optional | The user zip - (alpha_num|between:4,10). |
address.street |
string | optional | The user street - (max:191). |
platform.id |
string | optional | The platform uuid - (in:platform->uuid). |
platform.userId |
string | optional | The platform user ID - (required_with:platform.id|string|max:191). |
platform.email |
string | optional | The platform user email - (email). |
platform.username |
string | optional | The platform user username - (alpha_dash|max:191). |
platform.referralId |
string | optional | The platform user referral ID - (alpha_dash|max:191). |
redirectTo |
string | optional | The redirect URL after activation email link clicked - (url|max:1024). |
User Forgot Password
Use this endpoint to trigger password reset for a user when he forgets his password.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/forgot-password" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"email":"john@doe.com","type":"link"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/forgot-password"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"email": "john@doe.com",
"type": "link"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/forgot-password',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'email' => 'john@doe.com',
'type' => 'link',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/forgot-password'
payload = {
"email": "john@doe.com",
"type": "link"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"message": "The password reset process has started."
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email was not found."
]
}
}
HTTP Request
POST /api/v1/user/forgot-password
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
email |
string | required | The user's email (email|max:255). |
type |
string | optional | How to display the token in the email (nullable|in:text,link). |
User Reset Password
Use this endpoint to change the user's password by passing the reset token, email and password.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/reset-password" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"email":"john@doe.com","token":"123456789","password":"newPassword"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/reset-password"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"email": "john@doe.com",
"token": "123456789",
"password": "newPassword"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/reset-password',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'email' => 'john@doe.com',
'token' => '123456789',
'password' => 'newPassword',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/reset-password'
payload = {
"email": "john@doe.com",
"token": "123456789",
"password": "newPassword"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"message": "The password has been successfully changed."
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"token": [
"The token is invalid."
]
}
}
HTTP Request
POST /api/v1/user/reset-password
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
email |
string | required | The user's email (email|max:255). |
token |
string | required | The token received by the user in his email (max:255). |
password |
string | required | The new password (min:8|max:191). |
User Email Verify
Use this endpoint to verify email of a new User model.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/verify" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"id":"1e6d61cc-be30-4de8-9bbf-cbb097b4767b","email":"email@cryptocoin.pro","code":"aplphanumrandom"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/verify"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"id": "1e6d61cc-be30-4de8-9bbf-cbb097b4767b",
"email": "email@cryptocoin.pro",
"code": "aplphanumrandom"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/verify',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'id' => '1e6d61cc-be30-4de8-9bbf-cbb097b4767b',
'email' => 'email@cryptocoin.pro',
'code' => 'aplphanumrandom',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/verify'
payload = {
"id": "1e6d61cc-be30-4de8-9bbf-cbb097b4767b",
"email": "email@cryptocoin.pro",
"code": "aplphanumrandom"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "User account successfully verified."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"code": [
"The selected Code is invalid."
]
}
}
Example response (423):
{
"error": "The user account is already active."
}
HTTP Request
POST /api/v1/user/verify
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
id |
string | optional | (Required if no email provided) The user id - (uuid). |
email |
string | optional | (Required if no id provided) The user email - (email). |
code |
string | required | The user email validation code - (alpha_num|in:user->codeEmail). |
User Email Reverify
Use this endpoint to resubmit verification email of a new User model.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/reverify" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"id":"1e6d61cc-be30-4de8-9bbf-cbb097b4767b","email":"email@cryptocoin.pro"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/reverify"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"id": "1e6d61cc-be30-4de8-9bbf-cbb097b4767b",
"email": "email@cryptocoin.pro"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/reverify',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'id' => '1e6d61cc-be30-4de8-9bbf-cbb097b4767b',
'email' => 'email@cryptocoin.pro',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/reverify'
payload = {
"id": "1e6d61cc-be30-4de8-9bbf-cbb097b4767b",
"email": "email@cryptocoin.pro"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "Email resended."
}
Example response (403):
{
"message": "You can resubmit email verification once per day."
}
Example response (423):
{
"error": "The user account is already active."
}
HTTP Request
POST /api/v1/user/reverify
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
id |
string | optional | (Required if no email provided) The user id - (uuid). |
email |
string | optional | (Required if no id provided) The user email - (email). |
User Profile
Requires authentication Use this endpoint to get an existing User model Profile data.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"uuid": "ebf8e81e-fdfd-4da9-84e4-b5172b6f1412",
"isActive": true,
"tradeStatus": true,
"email": "alinionutmusat@gmail.com",
"selfDeletedAt": null,
"createdAt": 1554211815,
"options": {
"language": "ro",
"theme": "dark"
},
"meta": {
"source": "api",
"passwordSet": true
},
"kyc": {
"required": "address",
"status": "ACCEPTED",
"level": 2,
"amounts": {
"buy": "149.75",
"sell": "0"
},
"amountsNextLevel": {
"buy": "5000",
"sell": "5000"
},
"links": {
"address": "http:\/\/dev-checkout.localhost\/kyc\/address\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiODAyODc1YTEtMDUwNy00MDljLWE0OTEtYTQyZmEwNTZlMTg4IiwiYW*NjZXNzIjoiMTAwMDAxOTU2MDhnVjFiQzFUYzI2WFEySDBvVXJLRzg4OWhvb0pRS0ozbjBhZHBhbmdFak9uTHhOT0N0Z1FmcSIsImV4c*GlyZSI6MTU3MjA3ODAyN30.*hDyuqPakpUVo1ltwP7fAT79SEYrsKoG0fV-kUZWHiafQef_-s7zfI8dAM1vlf7b2uw36MKZ5AededfMdI9KSCn6DfbtjT_abALvxL0j*qbjE88lIlD-hFoplcJRPvAgIwrxHq7wFBZgdB5fWpSPrUgckUpmTyiLsdwD-srx0wuujtjcxa5vD_eoUw2HUMnOWyly9jgAxpQELzV7*hJMjjQYXZoN5-YlJQRXaFJi653EUKxeIfjYSoI8meLx6AEnRgcrAehX_1K7UMa7sT5KO4FzdwK6G-RMbZJScP4QSC83BLOSwHRo0cd1*4btZTCAozzQbKh6zLHMoFca8WiSxiHkPA?display=light&expires=1572078027&lang=en&*signature=0308bd44a3640c13f47070d08290119f31dfa92603c4f9973a3ee73abfbffe24",
"documents": "http:\/\/dev-checkout.localhost\/kyc\/documents\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiODAyODc1YTEtMDUwNy00MDljLWE0OTEtYTQyZmEwNTZlMTg4IiwiYW*NjZXNzIjoiMTAwMDAxOTU2VGJKMVR1MVZodU1BUEl6OVJFZElueG1lWjFRNkVwb1VzRjJCRkpJRmpVN0VFWXFzQjhZOWMzVyIsImV4c*GlyZSI6MTU3MjA3ODAyN30.*iqn32ILE_KjnE9TCXIv2KpQEMInl9LcTfgaHIsk_ogA3YQ-c7DjhsACPlyaLNTZpR0uchU5horYoouaRyBth0odca3IMVQ30Yqgxsdg*-KIha6SigUpxU7DQjKEd3PG_a_MNK6iERhNkPuZrmkivvS15dlmskCGh6LcGwEQ3o9mBuuCr2UKRE8j-2C2SUyjL6RInf0jczFx05Q8*g4obFbMokFPKOx9SXqdeyVKCRTwYyjdMe0TqZ_Ogb3IFZl93Yovy-pKlT2LzQ0hi7Qi2cEj7tcu_bbi1R3GzyiF8r_0LjJbTHvm7Rfz*BL87apa62Slxt1ljISJBRf5wI6iBkfRQQ?display=light&expires=1572078027&lang=en&*signature=83b460f391f4d9c1cfd5a646dbb34e4978f23a647e6a86f80e1deb195a162515",
"video": "http:\/\/dev-checkout.localhost\/kyc\/video\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJ1c2VyIjoiODAyODc1YTEtMDUwNy00MDljLWE0OTEtYTQyZmEwNTZlMTg4IiwiYW*NjZXNzIjoiMTAwMDAxOTU2bGtWVlE4SFB3RW9IUHJ2Y1hsRU9NeFE0M2hhMlFSdnlubWhJSFBsTElNNE9XUktRTUZvaGdEdiIsImV4c*GlyZSI6MTU3MjA3ODAyN30.*J9wHORHgpUwyycjs4lzTtON8wzdHLFGHI7ktwBUFyQt2J5gum3ZSRZLY40dy_DrK7VdbnFODU6F2RjpFKAwFnAgAMMq8rnWKWDrLjyJ*w71NpqWLsd48YSEkCOzROx2qEDtBMBgj4QplBjmH44lZKc87nMaUmvtpIKECXWJYtA1CvyVlw2lX5I4OdbgZS4uOyKV3mV2rE4LfrAN*F7vYPAu8dVTtPETG2niIRdFSigHBW-fV1fp97KS2D-Sow7kUeyTXJseMsbKU6imPbdbz6pqJlr58Jngxcuh47nj1Fl5_uQ5EMgqAGkr*UoMn-7aolhTo334XAlsPFi66Gw5KDLYNg?display=light&expires=1572078027&lang=en&*signature=b22aa83642baf13d4662883130ad76937d14835b4aae291811d172eea8e6e0b8",
"enhancedDueDiligence": "http:\/\/dev-checkout.localhost\/kyc\/edd\/*eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.*eyJ1c2VyIjoiODAyODc1YTEtMDUwNy00MDljLWE0OTEtYTQyZmEwNTZlMTg4IiwiYWNjZXNzIjoiMTAwMDAxOTU2eDZFcjhuQUlkSnp*GQmJKUFVEYXl4MHpWcVdtMnRINktWNHlzRHYzb3JOS0pHV2QwaHd5Z2RoRiIsImV4cGlyZSI6MTU3MjA3ODAyN30.*Q2BKMGyqN2SYmv96m2p_ooMULNbEtLyUFcBtBfW1vqXDGOq-V099gv7MS5ls_9OpiT-wfy9Pza_Du3BC3MZSwpNJkz9di0DYCD3FdrE*Py6FR_qvcExvEJzCqx6cYSBUofnea2956TJLLCr4n3O7bVuuQGtJUYKnfzxmxbTaBTZTngMs1SYoL2qsNMyWqs5-wRqAvNQ0MXXoVui*ICreK-mJpXXl4hL92go3vzAZDvKGnQ7yfk6YB4yd-XECcQPJ7pSVgjfXGSjkqN1zcfsbAnud-Xf1_qPPGgiB8AhYfjy89_oRoKELK6f*SFWBdQ69NwySK31zKoxyW6OshalFwU4eA?display=light&expires=1572078027&lang=en&*signature=ce89dd9b55ecbba9f4dfae67efbd277527d47aeb94273c17925aa856423d902e"
},
"phone": {
"required": false,
"number": "+0730036823",
"isVerified": true
},
"personal": {
"required": false,
"status": "PENDING",
"firstName": "Alin",
"lastName": "Ionut",
"dateOfBirth": 975974400
},
"address": {
"required": true,
"emailSent": false,
"status": "NOT COMPLETED",
"country": null,
"city": "",
"zip": null,
"street": ""
},
"documents": {
"required": true,
"emailSent": false,
"governmentIdFront": {
"status": "NOT COMPLETED",
"url": null
},
"governmentIdBack": {
"status": "NOT COMPLETED",
"url": null
},
"passport": {
"status": "NOT COMPLETED",
"url": null
},
"utilityBill": {
"status": "NOT COMPLETED",
"url": null
},
"selfieWithId": {
"status": "NOT COMPLETED",
"url": null
},
"extendedProofOfFunds": [],
"tempFiles": []
},
"video": {
"required": false,
"emailSent": false,
"status": null,
"videoFile": null,
"scheduleDate": null,
"scheduleDateTimezone": null,
"cancelScheduleUrl": null,
"rescheduleUrl": null
},
"enhancedDueDiligence": {
"required": false,
"emailSent": false,
"status": null,
"eddData": {
"transactionsPurpose": [
"remittances",
"payments",
"investments",
"savings",
"other"
],
"transactionsNatureValue": [
"1 - 1000",
"1000 - 5000",
"5000 - 10000",
"10000 - 50000",
"+50000"
],
"transactionsNatureFrequency": [
"1 - 5",
"6 - 10",
"11 - 20",
"21 - 50",
"+50"
],
"fundsSource": [
"credit_debit_card",
"e_wallet",
"bank_account",
"mining_wallet",
"other"
],
"fundsOrigin": [
"payroll_funds",
"dividends_of_business",
"personal_savings",
"proceeds_of_investments",
"proceeds_of_mining",
"other"
]
},
"transactionsPurpose": null,
"transactionsPurposeOther": null,
"transactionsNatureValue": null,
"transactionsNatureFrequency": null,
"fundsSource": null,
"fundsSourceOther": null,
"fundsSourceFile": null,
"fundsOrigin": null,
"fundsOriginOther": null,
"fundsOriginFile": null,
"createdAt": null
},
"createdAt": 1554204616
},
"phones": [
{
"id": "ffcff555-f86a-425b-aa22-400292416f53",
"phone": "+0730036823",
"status": 1,
"default": 1,
"createdAt": 1597821686
}
],
"wallets": [
{
"id": "95c77df0-c3ae-4742-93d2-8d75bedb279a",
"status": "CONFIRMED",
"alias": "some3",
"address": "0xEfC0c85abd46941766E2Ae9a30c57DF75b164a08",
"coin": "ETH",
"createdAt": 1555335338
}
],
"cards": [
{
"id": "7285d42d-78c0-4d77-9641-1d5f8572afa6",
"status": "CONFIRMED",
"alias": "test",
"holderName": "alin2",
"expirationDate": "06\/19",
"lastFourDigits": "2453",
"cardImage1": "1945",
"cardImage2": "1946",
"createdAt": 1557411204
}
],
"banks": [
{
"id": "7ab8d78d-d6a5-452c-a8b7-8999459e7d27",
"status": "CONFIRMED",
"bankName": "bank name last",
"iban": "RO02INGB00009999002858614",
"swift": "3253453465",
"currency": "RON",
"createdAt": 1557411215
}
],
"externalPlatforms": [
{
"code": "CCPRO",
"name": "CryptoCoin",
"active": true,
"url": "https:\/\/app.cryptocoin.pro\/",
"createdAt": 1576742797
}
]
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
User Balances
Requires authentication Use this endpoint to get User model balances.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/balances/ETH" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/balances/ETH"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/balances/ETH',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/balances/ETH'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"coins": [
{
"name": "Bitcoin",
"symbol": "XBT",
"alias": "XBT",
"rates": {
"raw": {
"now": "6213.60000",
"day": "6037.60000",
"week": "4809.70000",
"month": "8822.40000",
"quarter": "6529.00000",
"semester": "7775.90000",
"year": "3515.20000",
"history": {
"day": [
{
"rate": "6090.80000",
"createdAt": 1585033255
}
]
}
}
},
"amounts": {
"crypto": {
"available": "0.011646368236156",
"pending": "10.04129486967"
},
"fiat": {
"available": "83.545222542067",
"pending": "72031.22874758"
}
},
"favorite": true
}
],
"tokens": [
{
"name": "IPSX",
"symbol": "IPSX",
"rates": {
"raw": {
"now": "6.252E-5",
"day": "5.791E-5",
"week": "9.301E-5",
"month": "6.252E-5",
"quarter": "6.252E-5",
"semester": "6.252E-5",
"year": "6.252E-5",
"history": {
"day": [
{
"rate": "5.791E-5",
"createdAt": 1585033249
}
]
}
}
},
"amounts": {
"crypto": {
"available": "350",
"pending": "60"
},
"fiat": {
"available": "0.039326",
"pending": "0.0067416"
}
},
"favorite": true
}
]
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "This action is unauthorized."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/balances/{asset?}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
asset |
optional | The asset Symbol. |
User Self Delete Initiate
Use this endpoint to place in initiate Self Delete Queue for User.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/initiate" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"password":"mystrongpass","type":"link"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/initiate"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"password": "mystrongpass",
"type": "link"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/initiate',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'password' => 'mystrongpass',
'type' => 'link',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/initiate'
payload = {
"password": "mystrongpass",
"type": "link"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"message": "Self Delete Account procedure initiated. Please check your Email for confirmation."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"password": [
"The password field is required."
]
}
}
Example response (409):
{
"message": "Platform not user owner."
}
Example response (410):
{
"message": "Your account is already scheduled for Self Delete."
}
Example response (412):
{
"message": "Self Delete Account procedure unavailable due available balance"
}
Example response (425):
{
"message": "You can request Self Delete Account once per day."
}
HTTP Request
POST /api/v1/user/{user}/account/close/initiate
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
password |
string | required | The user password - (string). |
type |
string | optional | How to display the token in the email (nullable|in:text,link). |
User Self Delete Confirm
Use this endpoint to confirm soft delete by passing the email code.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/confirm" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"code":"8f8e8VZlfRJq4iEE4xDn"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/confirm"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"code": "8f8e8VZlfRJq4iEE4xDn"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/confirm',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'code' => '8f8e8VZlfRJq4iEE4xDn',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/confirm'
payload = {
"code": "8f8e8VZlfRJq4iEE4xDn"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"message": "Account will be closed on 05 Sep 2020 00:00:00, 1 week from now.If you want, you could abort this action until above * date from your account profile anytime, or just contact us"
}
}
Example response (403):
{
"data": {
"message": "This type of operation is not allowed."
}
}
Example response (404):
{
"data": {
"message": "No query results."
}
}
Example response (409):
{
"message": "Platform not user owner."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"code": [
"The code must be 20 characters."
]
}
}
HTTP Request
POST /api/v1/user/{user}/account/close/confirm
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
code |
string | required | (size:20). |
User Self Delete Abort
Use this endpoint to abort Self Delete Queue for User if initiated.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/abort" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/abort"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/abort',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/abort'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers)
response.json()
Example response (200):
{
"message": "Self Delete Account procedure aborted."
}
Example response (409):
{
"message": "Platform not user owner."
}
Example response (410):
{
"message": "Your account is not scheduled for Self Delete."
}
Example response (412):
{
"message": "Self Delete Account procedure unavailable due available balance"
}
HTTP Request
POST /api/v1/user/{user}/account/close/abort
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
User Change Email
Use this endpoint to trigger email change.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/initiate" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"new_email":"john@doe.com","type":"link"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/initiate"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"new_email": "john@doe.com",
"type": "link"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/initiate',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'new_email' => 'john@doe.com',
'type' => 'link',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/initiate'
payload = {
"new_email": "john@doe.com",
"type": "link"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"message": "The email change process has started."
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"new_email": [
"The new email has already been taken."
]
}
}
HTTP Request
POST /api/v1/user/{user}/change-email/initiate
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
new_email |
string | required | The user's email (email|max:255). |
type |
string | optional | How to display the token in the email (nullable|in:text,link). |
User Confirm Email Change
Use this endpoint to confirm email change by passing the old email code and new email code.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/confirm" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"current_email_code":"d286KVZlfRJq4iEE4xDn","new_email_code":"8f8e8VZlfRJq4iEE4xDn"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/confirm"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"current_email_code": "d286KVZlfRJq4iEE4xDn",
"new_email_code": "8f8e8VZlfRJq4iEE4xDn"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/confirm',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'current_email_code' => 'd286KVZlfRJq4iEE4xDn',
'new_email_code' => '8f8e8VZlfRJq4iEE4xDn',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/1/change-email/confirm'
payload = {
"current_email_code": "d286KVZlfRJq4iEE4xDn",
"new_email_code": "8f8e8VZlfRJq4iEE4xDn"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"message": "The email has been successfully changed."
}
}
Example response (403):
{
"data": {
"message": "This type of operation is not allowed."
}
}
Example response (404):
{
"data": {
"message": "No query results."
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"current_email_code": [
"The current email code must be 20 characters."
]
}
}
HTTP Request
POST /api/v1/user/{user}/change-email/confirm
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
current_email_code |
string | required | (size:20). |
new_email_code |
string | required | (size:20). |
Wallet
APIs for managing user wallets
Wallet Create
Requires authentication Use this endpoint to create a wallet.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"address":"0xEfC0c81abd46941766E2Ae9a30c57DF75b161111","alias":"Thanos","coin":"ETH"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"address": "0xEfC0c81abd46941766E2Ae9a30c57DF75b161111",
"alias": "Thanos",
"coin": "ETH"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'address' => '0xEfC0c81abd46941766E2Ae9a30c57DF75b161111',
'alias' => 'Thanos',
'coin' => 'ETH',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet'
payload = {
"address": "0xEfC0c81abd46941766E2Ae9a30c57DF75b161111",
"alias": "Thanos",
"coin": "ETH"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (201):
{
"data": {
"id": "0b5d1b5c-a84e-459d-86d1-df2c0619f4e6",
"status": "CONFIRMED",
"alias": "Thanos",
"address": "0xEfC0c81abd46941766E2Ae9a30c57DF75b161111",
"coin": "ETH",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1555335338
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"address": [
"The address has already been taken."
]
}
}
HTTP Request
POST /api/v1/user/{user}/wallet
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
address |
string | required | The wallet address - (alpha_num|unique:wallets). |
alias |
string | required | The wallet alias - (alpha_dash|max:191|unique:user->wallets). |
coin |
string | required | The wallet coin symbol - (in:coins->symbol). |
Wallet Index
Requires authentication Use this endpoint to get wallet index.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet?status=confirmed&coin=ETH" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet"
);
let params = {
"status": "confirmed",
"coin": "ETH",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'query' => [
'status'=> 'confirmed',
'coin'=> 'ETH',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet'
params = {
'status': 'confirmed',
'coin': 'ETH',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example response (200):
{
"data": [
{
"id": "0b5d1b5c-a84e-459d-86d1-df2c0619f4e6",
"status": "CONFIRMED",
"alias": "Thanos",
"address": "0xEfC0c81abd46941766E2Ae9a30c57DF75b161111",
"coin": "ETH",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1555335338
}
]
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/wallet
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
Query Parameters
Parameter | Status | Description |
---|---|---|
status |
optional | Filter by Status. |
coin |
optional | Filter by Coin. |
Wallet Shows
Requires authentication Use this endpoint to get a wallet.
Example request:
curl -X GET \
-G "https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
Example response (200):
{
"data": {
"id": "0b5d1b5c-a84e-459d-86d1-df2c0619f4e6",
"status": "CONFIRMED",
"alias": "Thanos",
"address": "0xEfC0c81abd46941766E2Ae9a30c57DF75b161111",
"coin": "ETH",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1555335338
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (409):
{
"message": "This action is unauthorized."
}
HTTP Request
GET /api/v1/user/{user}/wallet/{wallet}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
wallet |
required | The wallet ID. |
Wallet Update
Requires authentication Use this endpoint to update a wallet.
Example request:
curl -X POST \
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"alias":"Thanos"}'
const url = new URL(
"https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"alias": "Thanos"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'alias' => 'Thanos',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://appapi-public.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/wallet/0b5d1b5c-a84e-459d-86d1-df2c0619f4e6'
payload = {
"alias": "Thanos"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"data": {
"id": "0b5d1b5c-a84e-459d-86d1-df2c0619f4e6",
"status": "CONFIRMED",
"alias": "Thanos",
"address": "0xEfC0c81abd46941766E2Ae9a30c57DF75b161111",
"coin": "ETH",
"externalPlatform": {
"code": "CCPRO",
"name": "CryptoCoin",
"url": "https:\/\/app.cryptocoin.pro"
},
"createdAt": 1555335338
}
}
Example response (401):
{
"error": "Unauthenticated."
}
Example response (403):
{
"message": "Your account is inactive."
}
Example response (404):
{
"message": "No query results."
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"address": [
"The address has already been taken."
]
}
}
HTTP Request
POST /api/v1/user/{user}/wallet/{wallet}
URL Parameters
Parameter | Status | Description |
---|---|---|
user |
required | The user ID. |
wallet |
required | The wallet ID. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
alias |
string | required | The wallet alias - (alpha_dash|max:191|unique:user->wallets). |