NAV
bash javascript php python

Info

Welcome to the generated API reference. Get Postman Collection

Authentication

User Authenticate via Platform

Use this endpoint to authenticate an user with a Platform

Headers:

{ Content-Type: application-json, token: jwt-token }

JWT Payload { email|id: string, expire: required|timestamp|after_or_equal:now }

Encription RS512

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": "rFJxY3pS5xCliGvqnkHgPm4lq2aZEZmoSDXiLwG7NLwPfJUf18pEEBp6ZIpQmzPZ",
        "ttl": 1209600,
        "created": "2019-05-23T11:46:45.576Z",
        "userId": "31279d17-83b2-4649-8214-99f9537779f4"
    }
}

Example response (400):

{
    "message": "jwt must be provided",
    "errors": {}
}

Example response (403):

{
    "message": "No valid data sent",
    "errors": {
        "expire": "Invalid time in expire. Must be in future!"
    }
}

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://dev-api-public.infra.cryptocoin.pro/api/v1/authenticate" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"email":"email@gmail.com","password":"12345678"}'
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/authenticate"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

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://dev-api-public.infra.cryptocoin.pro/api/v1/authenticate',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'email' => 'email@gmail.com',
            'password' => '12345678',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/authenticate'
payload = {
    "email": "email@gmail.com",
    "password": "12345678"
}
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": "rFJxY3pS5xCliGvqnkHgPm4lq2aZEZmoSDXiLwG7NLwPfJUf18pEEBp6ZIpQmzPZ",
        "ttl": 1209600,
        "created": "2019-05-23T11:46:45.576Z",
        "userId": "31279d17-83b2-4649-8214-99f9537779f4"
    }
}

Example response (400):

{
    "message": "Validation errors",
    "errors": {
        "password": [
            "The password field is required."
        ]
    }
}

Example response (403):

{
    "message": "Wrong password",
    "errors": {}
}

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/logout" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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):

{
    "data": {
        "logout": true
    }
}

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/bank?status=confirmed&currency=EUR" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
            "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 Field to sort by Status. Available values: confirmed,rejected,pending.
currency optional Field to sort by Currency. Available values: EUR, USD, etc.

Bank Show


Requires authentication Use this endpoint to get user specific bank.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
            "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 Field to sort by Status. Available values: confirmed,rejected,pending.

Card Show


Requires authentication Use this endpoint to get a user card.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout?status=created" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout"
);

let params = {
    "status": "created",
};
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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'status'=> 'created',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/checkout'
params = {
  'status': 'created',
}
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
status optional Field to sort by Status. Available values: created,processing,finished.

Checkout Show


Requires authentication Use this endpoint to get a user checkout.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.cryptocoin.pro/api/v1/countries" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/countries"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/countries',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/countries'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {token}'
}
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": 0
        },
        {
            "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": 0
        },
        {
            "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": 242
        },
        {
            "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": 1809
        },
        {
            "code": "TP",
            "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": 0
        },
        {
            "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": 0
        },
        {
            "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": "XJ",
            "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": "XM",
            "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": 269
        },
        {
            "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": "AN",
            "name": "Netherlands Antilles",
            "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": 0
        },
        {
            "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": 70
        },
        {
            "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": 684
        },
        {
            "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": 0
        },
        {
            "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": 7370
        },
        {
            "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
        }
    ]
}

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 (200):

{
    "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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).

KYC

APIs for managing user KYC

KYC Show


Requires authentication Use this endpoint to get user KYC.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": {
            "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 (201):

null

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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):

null

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": {
            "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": {
            "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": {
            "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).

KYC Create Phone


Requires authentication Use this endpoint to add user Phone.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 (200):

{
    "data": {
        "phone": "+40700000000",
        "status": 0,
        "createdAt": 1557477208
    }
}

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

KYC Phone Verify


Requires authentication Use this endpoint to verify SMS code.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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"}'
const url = new URL(
    "https://dev-api-public.infra.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"
}

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://dev-api-public.infra.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',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/verify'
payload = {
    "code": "111111"
}
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": {
        "phone": "+40700000000",
        "status": 1,
        "createdAt": 1557477208
    }
}

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

KYC Phone Reverify


Requires authentication Use this endpoint to reverify SMS code.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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}"
const url = new URL(
    "https://dev-api-public.infra.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}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/reverify',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/kyc/phone/reverify'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

Example response (200):

{
    "data": {
        "phone": "+40700000000",
        "status": 1,
        "createdAt": 1557477208
    }
}

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.

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 Field to sort by unread on read notifications. Available values: read,unread.

Notification Temporary Mark As Read


Requires authentication Use this endpoint to mark as read all temporary notifications

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order?status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order"
);

let params = {
    "status": "APPROVED",
    "typeOperationName": "buy_with_fiat",
    "asset": "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'status'=> 'APPROVED',
            'typeOperationName'=> 'buy_with_fiat',
            'asset'=> 'ETH',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order'
params = {
  'status': 'APPROVED',
  'typeOperationName': 'buy_with_fiat',
  'asset': '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": "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"
            },
            "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
status optional Field to sort by Status. Available values: APPROVED,REJECTED,PROCESSING_PAYMENT,PAYMENT_WAITING.
typeOperationName optional Field to sort by TypeOperationName. Available values: deposit,buy_with_fiat,buy_with_crypto,sell_to_fiat,sell_to_crypto,withdraw,withdrawIco.
asset optional Field to sort by Asset. Available values: ETH,XBT,IPSX,etc.

Order Coin Index


Requires authentication Use this endpoint to get user order coin history.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin?status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin"
);

let params = {
    "status": "APPROVED",
    "typeOperationName": "buy_with_fiat",
    "asset": "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'status'=> 'APPROVED',
            'typeOperationName'=> 'buy_with_fiat',
            'asset'=> 'ETH',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/coin'
params = {
  'status': 'APPROVED',
  'typeOperationName': 'buy_with_fiat',
  'asset': '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": "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"
            },
            "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
status optional Field to sort by Status. Available values: APPROVED,REJECTED,PROCESSING_PAYMENT,PAYMENT_WAITING.
typeOperationName optional Field to sort by TypeOperationName. Available values: deposit,buy_with_fiat,buy_with_crypto,sell_to_fiat,sell_to_crypto,withdraw,withdrawIco.
asset optional Field to sort by Asset. Available values: ETH,XBT,IPSX,etc.

Order Token Index


Requires authentication Use this endpoint to get user order token history.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token?status=APPROVED&typeOperationName=buy_with_fiat&asset=ETH" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token"
);

let params = {
    "status": "APPROVED",
    "typeOperationName": "buy_with_fiat",
    "asset": "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'status'=> 'APPROVED',
            'typeOperationName'=> 'buy_with_fiat',
            'asset'=> 'ETH',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/order/token'
params = {
  'status': 'APPROVED',
  'typeOperationName': 'buy_with_fiat',
  'asset': '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": "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"
            },
            "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
status optional Field to sort by Status. Available values: APPROVED,REJECTED,PROCESSING_PAYMENT,PAYMENT_WAITING.
typeOperationName optional Field to sort by TypeOperationName. Available values: deposit,buy_with_fiat,buy_with_crypto,sell_to_fiat,sell_to_crypto,withdraw,withdrawIco.
asset optional Field to sort by Asset. Available values: ETH,XBT,IPSX,etc.

Order Show


Requires authentication Use this endpoint to get a user order coin.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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"
        },
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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).

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "baseUrl": "http:\/\/www.google.com",
        "ien": {
            "url": "http:\/\/www.google.com",
            "type": "jwt"
        },
        "integrations": {
            "api": {
                "status": true
            },
            "partner": {
                "status": true,
                "url": "http:\/\/dev-partner.cryptocoin-app.test\/login\/nash"
            },
            "checkout": {
                "status": true
            },
            "widget": {
                "status": true,
                "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
                        }
                    }
                }
            ],
            "card": [
                {
                    "status": true,
                    "name": "MobilPay",
                    "limits": {
                        "firstMaxOrderValue": 1000,
                        "lower": {
                            "status": true,
                            "value": 50
                        },
                        "upper": {
                            "status": false,
                            "value": 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 (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

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://dev-api-public.infra.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","baseUrl":"https:\/\/google.com\/","ienUrl":"https:\/\/google.com\/","ienType":"jwt","colorCode":"#ffffff"}'
const url = new URL(
    "https://dev-api-public.infra.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",
    "baseUrl": "https:\/\/google.com\/",
    "ienUrl": "https:\/\/google.com\/",
    "ienType": "jwt",
    "colorCode": "#ffffff"
}

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963',
    [
        'headers' => [
            'token' => '{jwt-token}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Google',
            'baseUrl' => 'https://google.com/',
            'ienUrl' => 'https://google.com/',
            'ienType' => 'jwt',
            'colorCode' => '#ffffff',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963'
payload = {
    "name": "Google",
    "baseUrl": "https:\/\/google.com\/",
    "ienUrl": "https:\/\/google.com\/",
    "ienType": "jwt",
    "colorCode": "#ffffff"
}
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",
        "baseUrl": "http:\/\/www.google.com",
        "ien": {
            "url": "http:\/\/www.google.com",
            "type": "jwt"
        },
        "integrations": {
            "api": {
                "status": true
            },
            "partner": {
                "status": true,
                "url": "http:\/\/dev-partner.cryptocoin-app.test\/login\/nash"
            },
            "checkout": {
                "status": true
            },
            "widget": {
                "status": true,
                "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
                        }
                    }
                }
            ],
            "card": [
                {
                    "status": true,
                    "name": "MobilPay",
                    "limits": {
                        "firstMaxOrderValue": 1000,
                        "lower": {
                            "status": true,
                            "value": 50
                        },
                        "upper": {
                            "status": false,
                            "value": 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 (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

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).
baseUrl string required The platform base URL - (url|max:191).
ienUrl string required The platform IEN URL - (url|max:191).
ienType string required The platform IEN type - (in:jwt,hmac).
colorCode string required The platform color code - (regex:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/).

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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": "20fc3576-802d-4a0c-87a8-c2d1e0b76a77",
            "userId": "79f762d2-a234-40eb-a557-6215f59a0c77",
            "email": "alex@boostit.com",
            "firstName": "alex",
            "lastName": "lastname",
            "isActive": true,
            "role": "superadmin"
        }
    ],
    "meta": {
        "total": 1,
        "current_page": 1,
        "per_page": 25,
        "last_page": 1
    }
}

Example response (401):

{
    "error": "Unauthenticated."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user" \
    -H "token: {jwt-token}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/user'
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": "123456789",
            "email": "user@email.com",
            "username": "test",
            "createdAt": 1588081150
        }
    ]
}

Example response (401):

{
    "error": "Unauthenticated."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

HTTP Request

GET api/v1/platform/{platform}/user

URL Parameters

Parameter Status Description
platform required The platform 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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order" \
    -H "token: {jwt-token}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/order'
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": "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 (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

HTTP Request

GET api/v1/platform/{platform}/order

URL Parameters

Parameter Status Description
platform required The platform ID.

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote" \
    -H "token: {jwt-token}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/quote'
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": "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 (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

HTTP Request

GET api/v1/platform/{platform}/quote

URL Parameters

Parameter Status Description
platform required The platform ID.

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout" \
    -H "token: {jwt-token}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/checkout'
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": "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 (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

HTTP Request

GET api/v1/platform/{platform}/checkout

URL Parameters

Parameter Status Description
platform required The platform ID.

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer" \
    -H "token: {jwt-token}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/transfer'
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": "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 (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

HTTP Request

GET api/v1/platform/{platform}/transfer

URL Parameters

Parameter Status Description
platform required The platform ID.

Platform Calls


Requires authentication Use this endpoint to get all API calls 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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/call" \
    -H "token: {jwt-token}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/call"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/call',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/platform/5f374d03-be0d-4dd2-b6ef-112a2bec5963/call'
headers = {
  'token': '{jwt-token}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "data": [
        {
            "endpoint": "https:\/\/extPlatform.io",
            "verb": "POST",
            "request": "{\"some\":\"data\"}",
            "status": "200",
            "response": "{\"some\":\"data\"}",
            "createdAt": 1588081150
        }
    ]
}

Example response (401):

{
    "error": "Unauthenticated."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

Example response (401):

{
    "message": "JWT is expired."
}

Example response (401):

{
    "message": "JWT payload invalid."
}

HTTP Request

GET api/v1/platform/{platform}/call

URL Parameters

Parameter Status Description
platform required The platform ID.

Quote

APIs for managing quotes

Quote Create


Requires authentication Use this endpoint to create a user quote.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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,
        "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote?status=available&type=buy_with_fiat&asset=ETH" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote"
);

let params = {
    "status": "available",
    "type": "buy_with_fiat",
    "asset": "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'status'=> 'available',
            'type'=> 'buy_with_fiat',
            'asset'=> 'ETH',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote'
params = {
  'status': 'available',
  'type': 'buy_with_fiat',
  'asset': '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": "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,
            "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
status optional Field to sort by Status. Available values: available,completed,expired.
type optional Field to sort by Type. Available values: buy_with_fiat,buy_with_crypto,sell_to_fiat,sell_to_crypto,withdraw,withdrawIco.
asset optional Field to sort by Asset. Available values: ETH,XBT,IPSX,etc.

Quote Show


Requires authentication Use this endpoint to get a user quote.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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,
        "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://dev-api-public.infra.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"}'
const url = new URL(
    "https://dev-api-public.infra.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"
}

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://dev-api-public.infra.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',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/quote/e4c9dc01-5b65-4186-a149-cd31aaae3603'
payload = {
    "orderPaymentMethod": "f2b87ccc-0fc4-4d18-9a5d-dcf73f899016"
}
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,
            "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).

Rates

Rate Buy


Requires authentication Use this endpoint to get a buy price

Path Params

Query params

If from_amount is present on query, the endpoint will return the to_amount

If to_amount is present on query, the endpoint will return the from_amount

If to_amount and from_amount are both present the endpoint will return an error

If no query parameters present then the endpoint will return the rate

Commissions and discounts may be applied

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/1/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/1/1"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/1/1',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/buy/1/1'
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.

Rate Sell


Requires authentication Use this endpoint to get a sell price

Path Params

Query params

If from_amount is present on query, the endpoint will return the to_amount

If to_amount is present on query, the endpoint will return the from_amount

If to_amount and from_amount are both present the endpoint will return an error

If no query parameters present then the endpoint will return the rate

Commissions and discounts may be applied

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/1/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/1/1"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/1/1',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/sell/1/1'
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.

Rate Withdraw


Requires authentication Use this endpoint to get a withdraw price

Path Params

Query params

If from_amount is present on query, the endpoint will return the to_amount

If to_amount is present on query, the endpoint will return the from_amount

If to_amount and from_amount are both present the endpoint will return an error

If no query parameters present then the endpoint will return the rate

Commissions and discounts may be applied

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/1/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/1/1"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/1/1',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw/1/1'
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.

Rate WithdrawIco


Requires authentication Use this endpoint to get a withdrawIco price

Path Params

Query params

If from_amount is present on query, the endpoint will return the to_amount

If to_amount is present on query, the endpoint will return the from_amount

If to_amount and from_amount are both present the endpoint will return an error

If no query parameters present then the endpoint will return the rate

Commissions and discounts may be applied

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/1/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/1/1"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/1/1',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/price/withdraw-ico/1/1'
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.

Security

APIs for managing securities

Security Index


Requires authentication Use this endpoint to get all user Securities.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/securities'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "data": [
        {
            "code": "login_success",
            "name": "Login Success",
            "by": "User",
            "ip": "127.0.0.1",
            "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.

Security Access Tokens


Requires authentication Use this endpoint to get all user Acess Tokens.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 Change Password


Requires authentication Use this endpoint to change user password.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 (409):

{
    "message": "Password cannot be changed."
}

Example response (412):

{
    "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).

Invalidate Access Token


Requires authentication Use this endpoint to delete user access token.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 user asset transfers

Transfer Index


Requires authentication Use this endpoint to get all user transfer in with is involved.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer'
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"
            },
            "externalPlatform": {
                "code": null,
                "name": null,
                "url": null
            },
            "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.
transfer required The transfer ID.

Transfer Store


Requires authentication Use this endpoint to create a transfer.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 (200):

{
    "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": null,
            "name": null,
            "url": null
        },
        "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 By


Requires authentication Use this endpoint to get all user transfer created by him.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/by'
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": null,
                "name": null,
                "url": null
            },
            "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.
transfer required The transfer ID.

Transfer From


Requires authentication Use this endpoint to get all user transfer from him.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/from'
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": null,
                "name": null,
                "url": null
            },
            "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.
transfer required The transfer ID.

Transfer To


Requires authentication Use this endpoint to get all user transfer to him.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to"
);

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to',
    [
        '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://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/transfer/to'
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": null,
                "name": null,
                "url": null
            },
            "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.
transfer required The transfer ID.

Transfer Show


Requires authentication Use this endpoint to get a user transfer in with is involved.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": null,
            "name": null,
            "url": null
        },
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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": null,
            "name": null,
            "url": null
        },
        "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 Forgot Password

Use this endpoint to trigger password reset for a user when he forgets his password.

Example request:

curl -X POST \
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/forgot-password" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"email":"iusto","type":"consequatur"}'
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/forgot-password"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "email": "iusto",
    "type": "consequatur"
}

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/forgot-password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'email' => 'iusto',
            'type' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/forgot-password'
payload = {
    "email": "iusto",
    "type": "consequatur"
}
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 (max. 255, example: joe@doe.com)
type string optional How to display the token in the email. Possible values are: "text" (default) or "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://dev-api-public.infra.cryptocoin.pro/api/v1/user/reset-password" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"email":"quia","token":"distinctio","password":"eaque"}'
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user/reset-password"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "email": "quia",
    "token": "distinctio",
    "password": "eaque"
}

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://dev-api-public.infra.cryptocoin.pro/api/v1/user/reset-password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'email' => 'quia',
            'token' => 'distinctio',
            'password' => 'eaque',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/reset-password'
payload = {
    "email": "quia",
    "token": "distinctio",
    "password": "eaque"
}
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 (max. 255, example: joe@doe.com)
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 Create

Use this endpoint to create a new User model.

Example request:

curl -X POST \
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -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.google.com"}'
const url = new URL(
    "https://dev-api-public.infra.cryptocoin.pro/api/v1/user"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

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.google.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://dev-api-public.infra.cryptocoin.pro/api/v1/user',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        '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.google.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.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.google.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": {
        "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.code|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).

User Email Verify

Use this endpoint to verify email of a new User model.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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
        },
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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"}'
const url = new URL(
    "https://dev-api-public.infra.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"
}

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://dev-api-public.infra.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',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://dev-api-public.infra.cryptocoin.pro/api/v1/user/ebf8e81e-fdfd-4da9-84e4-b5172b6f14f3/account/close/initiate'
payload = {
    "password": "mystrongpass"
}
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 (425):

{
    "message": "You can request Self Delete Account once per day."
}

Example response (410):

{
    "message": "Your account is already 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/initiate

URL Parameters

Parameter Status Description
user required The user ID.

Body Parameters

Parameter Type Status Description
password string required The user password - (string).

User Self Delete Abort

Use this endpoint to abort Self Delete Queue for User if initiated.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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 (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.

Wallet

APIs for managing user wallets

Wallet Index


Requires authentication Use this endpoint to get wallet index.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
            "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 Field to sort by Status. Available values: confirmed,rejected,pending.
coin optional Field to sort by Coin. Available values: XBT, ETH, etc.

Wallet Create


Requires authentication Use this endpoint to create a wallet.

Example request:

curl -X POST \
    "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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 Shows


Requires authentication Use this endpoint to get a wallet.

Example request:

curl -X GET \
    -G "https://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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://dev-api-public.infra.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",
        "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).