Generalidades
Convenciones usadas es esta documentación.
Para facilidad de uso y lectura de la documentación se han establecido algunas convenciones descritas a continuación:
Host de la URL de consulta.
# Obtiene la lista de paises en los cuáles Panda Exchange opera
curl "https://$HOST/countries/"
El host de la URL de consulta está establecido como una variable de entorno de la siguiente manera $HOST
, en todas las referencias que se hagan a una URL de consulta se podrá ver algo como el ejemplo a la derecha. Esta variable de entorno debe ser reemplazada o tener como valor una de las direcciones de acceso a la API de Panda Exchange que se indican mas adelante.
Token de autenticación.
# Retorna el nivel de validación máximo que tiene el usuario.
curl "https://$HOST/users/profile/max-level/"
-H "Authorization: Token $TOKEN"
El token de autenticación necesario para algunas consultas está establecido como una variable de entorno de la siguiente manera $TOKEN
. el ejemplo a la derecha ilustra como se verá en está documentación. Esta variable de entorno debe ser reemplazada o tener como valor un Token válido de acceso a la API de Panda Exchange. Ver Autenticación.
Acceso a la API
Ejemplo de petición con cabecera de autenticación:
# Retorna el nivel de validación máximo que tiene el usuario.
curl "https://$HOST/users/profile/max-level/"
-H "Authorization: Token $TOKEN"
La API de Panda Exchange brinda acceso a dos ambientes de trabajo, un ambiente de pruebas que permite realizar operaciones sin temor a romper nada y un ambiente de producción sobre el cuál se ejecutan operaciones que tienen efectos reales en la plataforma. El ambiente de producción debe ser manejado con sumo cuidado. Ambos ambientes tienen su URl de acceso particular, a saber:
- Ambiente de pruebas:
https://elias.panda.exchange/
- Ambiente de producción:
https://api.panda.exchange/
Algunos recursos en la plataforma de Panda Exchange requieren autenticación para poder trabajar sobre ellos, para esto es necesario tener un token de autenticación. Ver Autenticación.
Al tener un token de autenticación se debe agregar a la cabecera de cada petición de la siguiente manera:
Authorization: Token $TOKEN
Formato de respuesta
# Obtiene la lista de paises en los cuáles Panda Exchange opera
curl "https://$HOST/countries/"
Esta consulta obtendrá una respuesta similar a esta:
[
{
"flag": "https://elias.panda.exchange/media/flags/ca-icon-000.png",
"code": "CA",
"name": "Canada"
},
{
"flag": "https://elias.panda.exchange/media/flags/co-icon-000.png",
"code": "CO",
"name": "Colombia"
},
{
"flag": "https://elias.panda.exchange/media/flags/ic-icon-000.png",
"code": "IC",
"name": "International"
},
]
Si por el contrario se especifica una cabecera
Accept
que no seaapplication/json
:
# Obtiene la lista de paises en los cuáles Panda Exchange opera
curl "https://$HOST/countries/" -H "Accept: text/html"
La consulta obtendrá una respuesta de error similar a esta:
{
"status_code": 406,
"errors": [
{
"field": "None",
"message": "Could not satisfy the request Accept header.",
"code": "3017"
}
]
}
Las respuestas de la API, por ahora, siempre vendrán en formato JSON. Por lo tanto no será necesario especificar el formato de respuesta en la cabecera Accept
de la consulta, si aún así especifica un formato que no sea aplication/json
entonces el API responderá con un mensaje indicando que el formato no es aceptado.
Respuesta exitosa
Cuando una respuesta sea exitosa se obtendrá un JSON válido con la información solicitada. No hay un formato específico para una respuesta exitosa, todo dependerá de la consulta realizada y los filtros que puedan aplicarse.
El código de estado http dependerá del método usado para la consulta. Ver códigos de respuesta http.
Respuesta de error
Tomemos de ejemplo el siguiente caso
# Crea un nuevo depósito en la plataforma
curl -X POST "https://$HOST/transactions/deposit/"
-H "Authorization: Token $TOKEN"
-F "currency=CURRENCY"
La respuesta de error será la siguiente:
{
"status_code": 400,
"errors": [
{
"field": "currency",
"message": "Not valid currency.",
"code": 2002
}
]
}
Cuando la API no pueda procesar la consulta correctamente entonces responderá con un mensaje de error. Los mensajes de error tienen un formato bien definido que permiten manejarlos y entenderlos facilmente.
Todos los mensajes de error tienen la misma estructura JSON descrita a continuación:
status_code
: El código de estado http de la respuesta, generalmente es 400 (Bad request) sin embargo puede variar.errors
: Especifica una lista de errores que depende de los campos involucrados en el error.
Cada item dentro de errors
consta de:
code
: El código de error de Panda Exchange. Este código de error permite saber la naturaleza del error. Ver Códigos de error Panda Exchangemessage
: Describe de forma un poco más amplia el error ocurrido.field
: Especifica el campo involucrado.
Cuando una respuesta de error no involucra un campo específico entonces el campo
field
tendrá el valorNone
, así:
# Obtiene la lista de paises en los cuáles Panda Exchange opera
curl "https://$HOST/countries/" -H "Accept: text/html"
La consulta obtendrá una respuesta de error similar a esta:
{
"status_code": 406,
"errors": [
{
"field": "None",
"message": "Could not satisfy the request Accept header.",
"code": "3017"
}
]
}
Códigos de estado HTTP
La API de Panda Exchange trata en todo lo posible de ser coherente con los códigos de estado HTTP, por lo que mantiene su significado original para el que fueron creados.
A continuación puedes ver un listado de los códigos de estado HTTP más comunes que encontrarás en nuestra API.
Código | Significado |
---|---|
200 | OK -- Es la respuesta estándar para peticiones de tipo GET y OPTIONS. |
201 | Created -- Es la respuesta estándar para peticiones de tipo POST que crean un nuevo recurso en la API de Panda Exchange |
204 | No Content -- Es la respuesta estándar para peticiones de tipo DELETE. |
400 | Bad Request -- Es la respuesta estándar para una petición inválida. |
401 | Unauthorized -- Es la respuesta estándar cuando un recurso no es público y solo permite ser accedido por usuarios con privilegios suficientes. Generalmente se trata de que el usuario no tiene un token válido. |
403 | Forbidden -- Es la respuesta estándar cuando un recurso es denegado para un usuario, así el usuario se encuentre autenticado. |
404 | Not Found -- Es la respuesta estándar cuando un recurso no se puede encontrar en el servidor. |
405 | Method Not Allowed -- Es la respuesta estándar cuando se intenta acceder a un recurso con un método HTTP no permitido. |
406 | Not Acceptable -- Es la respuesta estándar cuando se hace una petición con la cabecera Accept distinta de application/json . |
413 | Request Entity Too Large -- La petición del navegador es demasiado grande y por ese motivo el servidor no la procesa. |
500 | Internal Server Error -- Es la respuesta estándar cuando ocurre un problema en el servidor y no puede ser solventado por el usuario. |
Métodos HTTP permitidos.
Método | Uso |
---|---|
OPTIONS | Permite obtener un listado de los métodos HTTP aceptados por un recurso. |
GET | Usado para consultar un recurso, es de solo lectura. |
POST | Usado para crear un nuevo recurso en el servidor. |
PUT | Usado para modificar un recurso en el servidor. |
DELETE | Usado para borrar un recurso del servidor. |
Códigos de error Panda Exchange
Ejemplo de error 2001 required
# Obtiene el token de autenticación
curl -X POST "https://$HOST/auth-token/"
La respuesta de error será la siguiente:
{
"status_code" : 400,
"errors" : [
{
"code" : 2001,
"message" : "This field is required.",
"field" : "password"
},
{
"field" : "email",
"message" : "This field is required.",
"code" : 2001
}
]
}
Ejemplo de error 2002 invalid
# Obtiene el token de autenticación
curl -X POST "https://$HOST/auth-token/"
-H "Content-Type: application/json"
-d '{
"email": "12334",
"password": "12345"
}'
La respuesta de error será la siguiente:
{
"status_code": 400,
"errors": [
{
"field": "email",
"message": "Enter a valid email address.",
"code": 2002
}
]
}
Ejemplo de error 2004 blank
# Obtiene el token de autenticación
curl -X POST "https://$HOST/auth-token/"
-H "Content-Type: application/json"
-d '{
"email": "user@email.com",
"password": ""
}'
La respuesta de error será la siguiente:
{
"status_code": 400,
"errors": [
{
"field": "password",
"message": "This field may not be blank.",
"code": 2004
}
]
}
Ejemplo de error 2010 disabled
# Obtiene el token de autenticación
curl -X POST "https://$HOST/auth-token/"
-H "Content-Type: application/json"
-d '{
"email": "user.disabled@email.com",
"password": "12345"
}'
La respuesta de error será la siguiente:
{
"status_code": 400,
"errors": [
{
"field": "email",
"message": "User account is disabled.",
"code": 2010
}
]
}
Ejemplo de error 3001 authentication_failed
# Obtiene el token de autenticación
curl -X POST "https://$HOST/auth-token/"
-H "Content-Type: application/json"
-d '{
"email": "user.valid@email.com",
"password": "12345"
}'
La respuesta de error será la siguiente:
{
"status_code": 400,
"errors": [
{
"field": "None",
"message": "Unable to log in with provided credentials.",
"code": 3001
}
]
}
Ejemplo de error 3003 not_authenticated
# Retorna el nivel de validación máximo que tiene el usuario.
curl "https://$HOST/users/profile/max-level/"
La respuesta de error será la siguiente:
{
"status_code": 401,
"errors": [
{
"field": "None",
"message": "Authentication credentials were not provided.",
"code": 3003
}
]
}
Código | Significado |
---|---|
2001 | required -- Generalmente indica que un campo (field) es requerido. |
2002 | invalid - Indica que una petición es inválida, sucede generalmente cuando un campo tiene un valor inválido. |
2003 | null -- La petición contiene valores nulos, sucede generalmente cuando un campo tiene el valor nulo. |
2004 | blank -- La petición contiene valores en blanco, sucede generalmente cuando un campo tiene uno o varios espacios en blanco únicamente. |
2005 | min_length -- Generalmente indica que el valor deun campo no contiene el mínimo de caracteres. |
2006 | max_length -- Generalmente indica que el valor de un campo sobrepasa el máximo de caracteres. |
2007 | min_value -- Generalmente indica que el valor (numerico) de un campo es menor al mínimo permitido. |
2008 | max_value -- Generalmente indica que el valor (numerico) de un campo es mayor al máximo permitido. |
2009 | does_not_exist -- Indica que un recurso no existe en el servidor. |
2010 | disabled -- Indica que un recurso está deshabilitado o no activo. |
2011 | already_exists -- Indica que un recurso ya existe. |
2012 | already_validate -- Indica que un recurso ya fue validado. |
2013 | unique -- Generalmente indica que el valor de un campo debe ser único. |
2014 | maintenance -- Indica que el recurso se encuentra en mantenimiento. |
3001 | authentication_failed -- Indica que la petición de autenticación falló. |
3002 | not_found -- Indica que un recurso no pudo ser encontrado |
3003 | not_authenticated -- Indica que el usuario que realiza la petición no se encuentra autenticado. |
3004 | unknown_error -- Indica que ocurrió un error desconocido en el servidor. |
3014 | method_not_allowed -- El método HTTP usado para la petición no está permitido. |
3015 | user_already_token -- El usuario ya tiene un token activo y no podrá solicitar otro token hasta que el actual termine. |
3016 | invalid_phone_number -- El número telefónico no es un número válido. |
3017 | not_aceptable -- Indica que se hizo una petición con la cabecera Accept distinta de application/json . |
3018 | incorrect_type -- Indica que un tipo de dato es incorrecto. |
3021 | ip_not_in_white_list -- Indica que una dirección IP no está en la lista de IP's validadas del usuario. |
3022 | user_has_not_enough_validation_lvl -- Indica que el usuario no tiene suficente nivel de validación. |
Autenticación
En general los recursos en Panda Exchange están disponibles a usuarios con credenciales dentro de la plataforma, por lo que en la mayoría de los casos es necesaria la autenticación. Panda Exchange usa un tipo de autenticación por token, para obtener ese token el usuario debe solicitarlo a la plataforma usando su usuario y contraseña.
Solicitud de token privado
En caso de necesitar un Token para desarrollo puedes obtenerlo de manera sencilla solicitándolo en tu cuenta en Panda Exchange, allí podrás configurar el Token para que tenga ciertos permisos como sólo lectura, solo escritura y un tiempo de duración, entre otros.
Users
Logout
Permite desconectar del API al usuario que está realizando la petición.
Logout
# Obtener detalles del usuario.
curl -X GET "https://$HOST/users/logout"
-H "Authorization: Token $TOKEN"
Respuesta
{
"success": "User was logged out."
}
Petición HTTP
GET /users/logout/
Parámetros
No tiene parámetros.
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
success | String | Mensaje que indica que el usuario salió de la plataforma. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Token activo
Permite saber si un usuario (token) está activo en la plataforma.
Token activo
# Permite saber si un token está activo o no
curl -X POST "https://$HOST/users/is-login/"
-H "Authorization: Token $TOKEN"
-H "Content-Type: application/json"
-d '{
"token": "0bc404e9134a0f05ea03d83d62f3f9282565c392"
}'
Respuesta
{
"is_login": true
}
Petición HTTP
POST /users/is-login/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
token | String | El token que se desea consultar. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
is_login | Boolean | True el token está activo, False el token no está activo. |
Respuesta con error
Código | Tipo |
---|---|
2001 | required |
Level del usuario
Retorna el nivel de validación que tiene actualmente el usuario en el país que está consultando.
Level del usuario
# Retorna el nivel de validación que tiene actualmente
# el usuario en el país que está consultando.
curl "https://$HOST/users/profile/current-level/CO/"
Respuesta
{
"current_level": "level-2-CO"
}
Petición HTTP
GET /users/profile/current-level/{country}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | El código de dos caracteres que representa al país. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
current_level | String | Indica el nivel de validación que tiene el usuario en el país consultado. |
Respuesta con error
Código | Tipo |
---|---|
3011 | user_has_not_validation_lvl |
3003 | not_authenticated |
Balances
Permite hacer operaciones relativas a balances.
Listar balances
Retorna una lista de los balances del usuario.
Lista de balances
# Obtiene el listado de balances del usuario.
curl -X GET "https://$HOST/balances/"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"url": "https://$HOST/balances/43/",
"available": "0.000000000000000000",
"available_string": "0.00000000 BCH",
"available_currency": "BCH",
"locked": "0.000000000000000000",
"locked_string": "0.00000000 BCH",
"locked_currency": "BCH",
"currency_symbol": "BCH",
"user": "https://$HOST/users/6/"
},
{
"url": "https://$HOST/balances/52/",
"available": "0.000000000000000000",
"available_string": "0 VEF",
"available_currency": "VEF",
"locked": "0.000000000000000000",
"locked_string": "0 VEF",
"locked_currency": "VEF",
"currency_symbol": "BsF",
"user": "https://$HOST/users/6/"
},
{
"url": "https://$HOST/balances/51/",
"available": "0.000000000000000000",
"available_string": "0.00000000 ZNT",
"available_currency": "ZNT",
"locked": "0.000000000000000000",
"locked_string": "0.00000000 ZNT",
"locked_currency": "ZNT",
"currency_symbol": "ZNT",
"user": "https://$HOST/users/6/"
},
]
Petición HTTP
GET /balances/?{country=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | Código de dos caracteres que representa el país. |
Respuesta exitosa
La respuesta contiene una lista de balances con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
url | String | Url para acceder directamente al recurso. |
available | Number | Monto disponible. |
available_string | String | Monto disponible en formato string. |
available_currency | String | Código que representa la moneda. |
locked | Number | Monto bloqueado. |
locked_string | String | Monto bloqueado en formato string. |
locked_currency | String | Código que representa la moneda. |
currency_symbol | String | Código que representa la moneda. |
user | String | Url para acceder al usuario. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Detalle de balance
Retorna el detalle de un balance del usuario.
Detalle de balance
# Obtiene el el detalle de un balance.
curl -X GET "https://$HOST/balances/43"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"url": "https://$HOST/balances/43/",
"available": "0.000000000000000000",
"available_string": "0.00000000 BCH",
"available_currency": "BCH",
"locked": "0.000000000000000000",
"locked_string": "0.00000000 BCH",
"locked_currency": "BCH",
"currency_symbol": "BCH",
"user": "https://$HOST/users/6/"
}
Petición HTTP
GET /balances/{id}/?{country=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
id | Number | Id del balance a consultar. |
country | String | Código de dos caracteres que representa el país. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
url | String | Url para acceder directamente al recurso. |
available | Number | Monto disponible. |
available_string | String | Monto disponible en formato string. |
available_currency | String | Código que representa la moneda. |
locked | Number | Monto bloqueado. |
locked_string | String | Monto bloqueado en formato string. |
locked_currency | String | Código que representa la moneda. |
currency_symbol | String | Código que representa la moneda. |
user | String | Url para acceder al usuario. |
Respuesta con error
Código | Tipo |
---|---|
3002 | not_found |
3003 | not_authenticated |
Currencies
Permite hacer operaciones relativas a monedas.
Listar monedas
Retorna una lista de las moneadas registradas en la plataforma.
Listar monedas
# Obtiene el listado de monedas.
curl -X GET "https://$HOST/currencies/?country=CO"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"name": "Pesos Colombianos",
"code": "COP",
"symbol": "$",
"type": "fiat",
"number_confirmations": 0,
"countries": [
"CO"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false
},
{
"name": "Bitcoin",
"code": "BTC",
"symbol": "฿",
"type": "crypto",
"number_confirmations": 3,
"countries": [
"CO",
"VE",
"IC",
"PT",
"MX",
"CA",
"PA",
"QC"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false
},
{
"name": "Bitcoin Cash",
"code": "BCH",
"symbol": "BCH",
"type": "crypto",
"number_confirmations": 0,
"countries": [
"CO",
"VE",
"IC",
"PT",
"MX",
"CA",
"PA",
"QC"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false
},
]
Petición HTTP
GET /currencies/?{country=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | Código de dos caracteres que representa el país en el que puede operar la moneda. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
name | String | Nombre de la moneda. |
code | String | Código que identifica la moneda. |
symbol | String | Símbolo que identifica la moneda. |
type | String | El tipo de moneda (fiat, crypto). |
number_confirmations | Number | Número de confirmaciones que necesita una transacción en caso de ser cripto o token. |
countries | Array | Lista de países en los que puede operar la moneda. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Obtener moneda
Retorna información sobre una moneda o token en específico.
Obtener moneda
# Retorna información sobre una moneda o token en específico.
# Ejemplo para Bitcoin
curl -X GET "https://$HOST/currencies/BTC/"
-H "Authorization: Token $TOKEN"
Respuesta
{
"name": "Bitcoin",
"code": "BTC",
"symbol": "฿",
"type": "crypto",
"number_confirmations": 0,
"countries": [
"CO",
"VE",
"IC"
]
}
Petición HTTP
GET /currencies/{code}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
code | String | Código que representa la moneda o token. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
name | String | Nombre de la moneda. |
code | String | Código que identifica la moneda. |
symbol | String | Símbolo que identifica la moneda. |
type | String | El tipo de moneda (fiat, crypto). |
number_confirmations | Number | Número de confirmaciones que necesita una transacción en caso de ser cripto o token. |
countries | Array | Lista de países en los que puede operar la moneda. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Balance Tracking
Listar histórico de balances
Retorna una lista de los cambios en los balances del usuario.
Listar histórico de balances
# Obtiene el listado del histórico de balances.
curl -X GET "https://$HOST/balance-tracking/COP,BTC,BCH,ETH,ZNT,LTC,XRP,XLM,ZEC,TUSD/?page_size=2"
-H "Authorization: Token $TOKEN"
Respuesta
{
"next": "http://$HOST/balance-tracking/COP,BTC,BCH,ETH,ZNT,LTC,XRP,XLM,ZEC,TUSD/?page=2&page_size=2",
"previous": null,
"count": 68613,
"total_pages": 34307,
"results": [
{
"before_available": "0.01662418",
"before_available_string": "0.01662418 BCH",
"before_locked": "0.27543939",
"before_locked_string": "0.27543939 BCH",
"after_available": "0.00000000",
"after_available_string": "0.00000000 BCH",
"after_locked": "0.29206357",
"after_locked_string": "0.29206357 BCH",
"amount": "0.01662418 BCH",
"amount_formated": "0.01662418 BCH",
"after_available_formated": "0.00000000",
"after_locked_formated": "0.29206357",
"before_available_formated": "0.01662418",
"before_locked_formated": "0.27543939",
"currency": "BCH",
"currency_name": "Bitcoin Cash (ABC)",
"created": "2019-09-25T23:07:01.785961Z",
"transaction": "Limit",
"transaction_status": "created",
"transaction_id": 613683
},
{
"before_available": "0.00000000",
"before_available_string": "0.00000000 BCH",
"before_locked": "0.29206357",
"before_locked_string": "0.29206357 BCH",
"after_available": "0.01662418",
"after_available_string": "0.01662418 BCH",
"after_locked": "0.27543939",
"after_locked_string": "0.27543939 BCH",
"amount": "0.01662418 BCH",
"amount_formated": "0.01662418 BCH",
"after_available_formated": "0.01662418",
"after_locked_formated": "0.27543939",
"before_available_formated": "0.00000000",
"before_locked_formated": "0.29206357",
"currency": "BCH",
"currency_name": "Bitcoin Cash (ABC)",
"created": "2019-09-25T23:07:01.181722Z",
"transaction": "Limit",
"transaction_status": "cancelled",
"transaction_id": 613676
}
]
}
Petición HTTP
GET /balance-tracking/{currency}/?{country=}&{created=}&{start_date=}&{end_date=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código de moneda, acepta una lista separada por comas. |
country | String | Código de dos caracteres que representa el país. |
created | String | Se filtra por fecha de creación. |
start_date | Date | Se filtra por fecha de creación posterior a la fecha dada. |
end_date | Date | Se filtra por fecha de creación anterior a la fecha dada. |
transaction | String | Se filtra por el tipo de transacción, deposit , withdrawal , Limit , etc. |
transaction_status | String | Se filtra por el status de la transacción. |
page | Number | Número de página a consultar. |
page_size | Number | Número de resultados mostrados en cada página, 20 por defecto y máximo 100. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
count | Number | Cantidad total de resultados en la consulta. |
previous | String | URL de la página previa. |
next | String | URL de la próxima página. |
total_pages | Number | Cantidad total de páginas en la consulta. |
results | Array | Arreglo con el resultado de la consulta según el page_size. |
El arreglo results
contiene un listado con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
before_available | String | Monto disponible antes de la transacción. |
before_available_string | String | Monto disponible antes de la transacción en formato String. |
before_locked | String | Monto bloqueado antes de la transacción. |
before_locked_string | String | Monto bloqueado antes de la transacción en formato String. |
after_available | String | Monto disponible después de la transacción. |
after_available_string | String | Monto disponible después de la transacción en formato String. |
after_locked | String | Monto bloqueado después de la transacción. |
after_locked_string | String | Monto bloqueado después de la transacción en formato String. |
amount | String | Monto de la transacción en formato String. |
currency | String | Código de moneda. |
currency_name | String | Nombre de la moneda. |
created | String | Fecha de creación. |
transaction | String | El tipo de transacción. |
transaction_status | String | Estado de la transacción. |
transaction_id | Number | Id de la transacción. |
amount_formated | String | Monto de la transacción en formato String con , como separador de miles y . separador de decimales. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Listar histórico de balances con paginación
Retorna una lista de los cambios en los balances del usuario con paginación.
Listar histórico de balances con paginación
# Obtiene el listado del histórico de balances con paginación.
curl -X GET "https://$HOST/balance-tracking-pages?pages=2&page_size=2"
-H "Authorization: Token $TOKEN"
Respuesta
{
"count": 5645,
"previous": "https://$HOST/balance-tracking-pages/?page_size=2",
"total_pages": 2823,
"results": [
{
"before_available": "0.00000000",
"before_available_string": "0.00000000 PIVX",
"before_locked": "0.00000000",
"before_locked_string": "0.00000000 PIVX",
"after_available": "0.00070000",
"after_available_string": "0.00070000 PIVX",
"after_locked": "0.00000000",
"after_locked_string": "0.00000000 PIVX",
"amount": "0.00070000 PIVX",
"amount_formated": "0.00070000 PIVX",
"after_available_formated": "0.00070000",
"after_locked_formated": "0.00000000",
"before_available_formated": "0.00000000",
"before_locked_formated": "0.00000000",
"currency": "PIVX",
"currency_name": "PIVX",
"created": "2018-06-20T07:57:21.928305Z",
"transaction": "deposit",
"transaction_status": "approved",
"transaction_id": 303
},
{
"before_available": "0.00082530",
"before_available_string": "0.00082530 ZEN",
"before_locked": "0.00000000",
"before_locked_string": "0.00000000 ZEN",
"after_available": "0.00149082",
"after_available_string": "0.00149082 ZEN",
"after_locked": "0.00000000",
"after_locked_string": "0.00000000 ZEN",
"amount": "0.00066552 ZEN",
"amount_formated": "0.00066552 ZEN",
"after_available_formated": "0.00149082",
"after_locked_formated": "0.00000000",
"before_available_formated": "0.00082530",
"before_locked_formated": "0.00000000",
"currency": "ZEN",
"currency_name": "Horizen",
"created": "2018-06-20T15:27:22.874661Z",
"transaction": "deposit",
"transaction_status": "approved",
"transaction_id": 301
}
],
"next": "https://$HOST/balance-tracking-pages/?page=3&page_size=2"
}
Petición HTTP
GET /balance-tracking-pages/{currency}/?{country=}&{created=}&{start_date=}&{end_date=}&{page=}&{page_size=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código de moneda, acepta una lista separada por comas. |
country | String | Código de dos caracteres que representa el país. |
created | String | Se filtra por fecha de creación. |
start_date | Date | Se filtra por fecha de creación posterior a la fecha dada. |
end_date | Date | Se filtra por fecha de creación anterior a la fecha dada. |
page | Number | Número de página a consultar. |
page_size | Number | Número de resultados mostrados en cada página, 20 por defecto y máximo 100. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
count | Number | Cantidad total de resultados en la consulta. |
previous | String | URL de la página previa. |
next | String | URL de la próxima página. |
total_pages | Number | Cantidad total de páginas en la consulta. |
results | Array | Arreglo con el resultado de la consulta según el page_size. |
El arreglo results
contiene un listado con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
before_available | String | Monto disponible antes de la transacción. |
before_available_string | String | Monto disponible antes de la transacción en formato String. |
before_locked | String | Monto bloqueado antes de la transacción. |
before_locked_string | String | Monto bloqueado antes de la transacción en formato String. |
after_available | String | Monto disponible después de la transacción. |
after_available_string | String | Monto disponible después de la transacción en formato String. |
after_locked | String | Monto bloqueado después de la transacción. |
after_locked_string | String | Monto bloqueado después de la transacción en formato String. |
amount | String | Monto de la transacción en formato String. |
currency | String | Código de moneda. |
currency_name | String | Nombre de la moneda. |
created | String | Fecha de creación. |
transaction | String | El tipo de transacción. |
transaction_status | String | Estado de la transacción. |
transaction_id | Number | Id de la transacción. |
amount_formated | String | Monto de la transacción en formato String con , como separador de miles y . separador de decimales. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Depth
Permite visualizar la profundidad de un mercado.
Profundidad de mercado
Retorna el detalle de profundidad de un mercado.
Detalle de profundidad de un mercado
# Obtiene el detalle de profundidad de un mercado.
curl -X GET "https://$HOST/depth/btc-eur/"
-H "Authorization: Token $TOKEN"
Respuesta
{
"ask": [
{
"amount": "0.00100000",
"rate": "5248.72",
"total": "5.22",
"sum": "5.22"
},
{
"amount": "0.00250000",
"rate": "5612.00",
"total": "13.96",
"sum": "19.18"
},
{
"amount": "0.00100000",
"rate": "5616.13",
"total": "5.59",
"sum": "24.77"
},
{
"amount": "0.00100000",
"rate": "5616.13",
"total": "5.59",
"sum": "30.36"
}
],
"amount": {
"ask": "BTC",
"bid": "EUR"
},
"total": 6011.14,
"bid": [
{
"amount": "8.49",
"rate": "5470.15",
"total": "0.00154427",
"sum": "0.00154427"
},
{
"amount": "10.00",
"rate": "5417.77",
"total": "0.00183655",
"sum": "0.00338082"
},
{
"amount": "10.00",
"rate": "5248.72",
"total": "0.00189570",
"sum": "0.00527652"
}
],
"rate": "EUR"
}
Petición HTTP
GET /depth/{market}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
market | String | Mercado a consultar. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
ask | Array | Lista con los precios de compra. |
amount | Array | Indica las monedas usadas en el precio de compra y precio de venta. |
bid | Array | Lista con los precios de venta |
rate | String | Código de moneda de la tarifa. |
Los arreglos ask y bid tienen la siguiente estructura:
Parámetro | Tipo | Descripción |
---|---|---|
amount | Number | Monto. |
rate | Number | Tarifa. |
total | Number | Total. |
suma | Number | Suma. |
Respuesta con error
Código | Tipo |
---|---|
2002 | invalid |
Markets
Permite hacer operaciones relativas a mercados.
Listar mercados
Retorna una lista de los mercados.
Listar mercados
# Obtiene la lista de mercados.
curl -X GET "https://$HOST/markets/?country=CO"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"name": "BCH / COP",
"slug": "bch-cop",
"maintenance": false
},
{
"name": "BTC / COP",
"slug": "btc-cop",
"maintenance": false
},
{
"name": "ETH / COP",
"slug": "eth-cop",
"maintenance": false
},
{
"name": "LTC / COP",
"slug": "ltc-cop",
"maintenance": false
},
{
"name": "TUSD / COP",
"slug": "tusd-cop",
"maintenance": false
},
]
Petición HTTP
GET /markets/?{country=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | Código de dos caracteres que representa el país donde opera el mercado. |
Respuesta exitosa
La respuesta contiene una lista de mercados con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
name | String | Nombre del mercado. |
slug | String | Slug del mercado. |
maintenance | Boolean | Indica si el mercado se encuentra en mantenimiento. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Listar mercado
Retorna una lista con información de mercados.
Listar mercados
# Obtiene la lista de mercados.
curl -X GET "https://$HOST/market/PA"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"items": [
{
"Ask": "769.23",
"Bid": "885.03",
"Spread": -15.053763440860216,
"Ticker": "BCHUSD",
"name": "BCH/USD"
},
{
"Ask": "4115.05",
"Bid": "4734.51",
"Spread": -15.053763440860216,
"Ticker": "BTCUSD",
"name": "BTC/USD"
},
{
"Ask": "100.30",
"Bid": "115.40",
"Spread": -15.053763440860216,
"Ticker": "DASHUSD",
"name": "DASH/USD"
},
{
"Ask": "119.72",
"Bid": "137.74",
"Spread": -15.053763440860216,
"Ticker": "ETHUSD",
"name": "ETH/USD"
},
{
"Ask": "30.46",
"Bid": "35.04",
"Spread": -15.053763440860216,
"Ticker": "LTCUSD",
"name": "LTC/USD"
},
{
"Ask": "1.11",
"Bid": "1.27",
"Spread": -15.053763440860216,
"Ticker": "PIVXUSD",
"name": "PIVX/USD"
},
{
"Ask": "0.20",
"Bid": "0.22",
"Spread": -15.053763440860216,
"Ticker": "XLMUSD",
"name": "XLM/USD"
},
{
"Ask": "0.41",
"Bid": "0.47",
"Spread": -15.053763440860216,
"Ticker": "XRPUSD",
"name": "XRP/USD"
},
{
"Ask": "208.47",
"Bid": "239.85",
"Spread": -15.053763440860216,
"Ticker": "ZECUSD",
"name": "ZEC/USD"
}
],
"coin": "USD"
},
{
"items": [
{
"Ask": "0.17384616",
"Bid": "0.17048535",
"Spread": 1.9332066851486969,
"Ticker": "BCHBTC",
"name": "BCH/BTC"
},
{
"Ask": "0.02392848",
"Bid": "0.02608067",
"Spread": -8.994270425869091,
"Ticker": "DASHBTC",
"name": "DASH/BTC"
},
{
"Ask": "0.02705716",
"Bid": "0.07193902",
"Spread": -165.8779452962239,
"Ticker": "ETHBTC",
"name": "ETH/BTC"
},
{
"Ask": "0.00688437",
"Bid": "0.01287298",
"Spread": -86.98845638995513,
"Ticker": "LTCBTC",
"name": "LTC/BTC"
},
{
"Ask": "0.00025011",
"Bid": "0.00028777",
"Spread": -15.053763440860216,
"Ticker": "PIVXBTC",
"name": "PIVX/BTC"
},
{
"Ask": "0.00004351",
"Bid": "0.00005005",
"Spread": -15.053763440860216,
"Ticker": "XLMBTC",
"name": "XLM/BTC"
},
{
"Ask": "0.00009162",
"Bid": "0.00010542",
"Spread": -15.053763440860216,
"Ticker": "XRPBTC",
"name": "XRP/BTC"
},
{
"Ask": "0.04711500",
"Bid": "0.05420758",
"Spread": -15.053763440860216,
"Ticker": "ZECBTC",
"name": "ZEC/BTC"
},
{
"Ask": "0.00666688",
"Bid": "0.00767050",
"Spread": -15.053763440860216,
"Ticker": "ZNTBTC",
"name": "ZNT/BTC"
}
],
"coin": "BTC"
}
]
Petición HTTP
GET /market/{country}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | Código de dos caracteres que representa el país donde opera el mercado. |
Respuesta exitosa
La respuesta contiene una lista de mercados con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
coin | String | Código de moneda. |
items | Array | Arreglo con información de los pares. |
A su vez items
retorna la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
Ask | String | Precio de compra. |
Bid | String | Precio de compra. |
Spread | Number | Diferencial de compra y venta. |
Ticker | String | Código |
name | String | Nombre del |
Respuesta con error
Ninguna.
Monedas disponibles
Retorna una lista de las monedas para intercambio por país y moneda.
Listar monedas
# Obtiene la lista de monedas.
curl -X GET "https://$HOST/markets/available-currencies/IC/currency/BCH"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"name": "Bitcoin",
"code": "BTC",
"symbol": "฿",
"type": "crypto",
"number_confirmations": 3,
"countries": [
"CO",
"VE",
"IC",
"PT",
"MX",
"CA",
"PA",
"QC",
"EU",
"PE",
"BR"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false,
"market_maintenance": false
},
{
"name": "DASH",
"code": "DASH",
"symbol": "DASH",
"type": "crypto",
"number_confirmations": 4,
"countries": [
"CO",
"VE",
"IC",
"PT",
"MX",
"CA",
"PA",
"QC"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false,
"market_maintenance": false
},
{
"name": "Ether",
"code": "ETH",
"symbol": "Ξ",
"type": "crypto",
"number_confirmations": 100,
"countries": [
"CO",
"VE",
"IC",
"PT",
"MX",
"CA",
"PA",
"QC",
"EU",
"PE",
"BR"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false,
"market_maintenance": false
},
{
"name": "Horizen Testnet",
"code": "ZNT",
"symbol": "ZNT",
"type": "crypto",
"number_confirmations": 6,
"countries": [
"CO",
"VE",
"IC",
"PT",
"MX",
"CA",
"PA",
"QC",
"EU",
"PE",
"BR"
],
"maintenance_deposit": false,
"maintenance_withdrawal": false,
"market_maintenance": false
}
]
Petición HTTP
GET markets/available-currencies/{country}/currency/{currency}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | Código de dos caracteres que representa el país donde opera el mercado. |
currency | String | Código de moneda. |
Respuesta exitosa
La respuesta contiene una lista de monedas con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
name | String | Nombre de la moneda. |
code | String | Código de la moneda. |
symbol | String | Símbolo de la moneda. |
type | String | Tipo de moneda. |
number_confirmations | String | Número de confirmaciones. |
countries | Array | Arreglo con código de paises donde está disponible. |
maintenance_deposit | Boolean | indica si la moneda está en mantenimiento para depósito. |
maintenance_withdrawal | Boolean | indica si la moneda está en mantenimiento para retiro. |
market_maintenance | Boolean | indica si el mercado está en mantenimiento. |
Respuesta con error
Código | Tipo |
---|---|
2002 | invalid |
3003 | not_authenticated |
Orders
Permite hacer operaciones relativas a órdenes.
Crear orden
Permite la creación de una orden.
Crear orden
# Crear una orden de tipo límite
curl -X POST "https://$HOST/orders/limit/"
-H "Authorization: Token $TOKEN"
-H "Content-Type: application/json"
-d '{
"from": "VEF",
"to": "BTC",
"amount": "1500000",
"rate": "6661721363.64",
}'
Respuesta
{
"id":1,
"amount":"1000000.000000000000000000",
"commission":0.008,
"amount_string":"1000000.00 VEF",
"rate":"6661721363.640000000000000000",
"rate_string":"6661721363.64 VEF",
"type":1,
"type_slug":"limit",
"side":"bid",
"market":1,
"market_name":"btc-vef",
"from_currency":"VEF",
"to_currency":"BTC",
"total":0.00014891,
"status":"created",
"created":"2018-05-24T21:43:08.767005Z"
}
Petición HTTP
POST /orders/{type}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
type | String | Tipo de orden que se desea crear. |
from | String | Código de moneda de origen. |
to | String | Código de moneda de destino. |
rate | String | Monto por unidad al que se desea intercambiar. |
amount | Number | Monto de la orden |
El parámetro type
acepta tres valores definidos: limit
, market
, instant
.
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
id | Number | Id de la orden. |
amount | Number | Monto de la orden. |
amount_string | String | Monto de la orden en formato String. |
commission | Number | Comision que se cargó a la orden. |
rate | Number | Monto de la tarifa aplicada. |
rate_string | String | Monto de la tarifa en formato String. |
type | Number | Id del tipo de orden. |
type_slug | String | Slug del tipo de orden. |
side | String | Indica si es una compra o venta (ask, bid) |
market | Number | Id del mercado. |
market_name | String | Nombre del mercado. |
from_currency | String | Código de moneda de origen. |
to_currency | String | Código de moneda de destino. |
total | Number | Total de la orden. |
status | String | Estado de la orden. |
created | String | Fecha de creación. |
Respuesta con error
Código | Tipo |
---|---|
2001 | required |
2002 | invalid |
2003 | null |
2004 | blank |
2007 | min_value |
2008 | max_value |
2014 | maintenance |
3003 | not_authenticated |
3022 | user_has_not_enough_validation_lvl |
Listar órdenes
Retorna una lista de las órdenes pertenecientes al usuario. Por defecto se retornan las órdenes con status
´created´, ´pending´, ´matching´. Para retornar todas la órdenes sin importar el status
se puede usar el parámetro all
Listar órdenes
# Permite obtener un listado de órdenes.
curl -X GET "https://$HOST/orders/pages/?page=2&page_size=2"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"count": 8,
"previous": "https://$HOST/orders/pages/?page_size=2",
"total_pages": 4,
"results": [
{
"id": 7,
"amount": "20000.000000000000000000",
"commission": 0,
"amount_string": "20000.00 COP",
"rate": "19306564.820000000000000000",
"rate_string": "19306564.82 COP",
"type": 3,
"type_slug": "instant",
"side": "bid",
"market": 2,
"market_name": "btc-cop",
"from_currency": "COP",
"to_currency": "BTC",
"total": 0.00103592,
"country": "CO",
"status": "executed",
"created": "2018-11-12T16:09:23.069469Z",
"modified": "2018-11-12T20:09:23.069469Z"
},
{
"id": 6,
"amount": "0.001000000000000000",
"commission": 0.005,
"amount_string": "0.00100000 BTC",
"rate": "0.072192510000000000",
"rate_string": "0.07219251 BTC",
"type": 1,
"type_slug": "limit",
"side": "bid",
"market": 13,
"market_name": "eth-btc",
"from_currency": "BTC",
"to_currency": "ETH",
"total": 0.013782593235780276,
"country": "IC",
"status": "executed",
"created": "2018-10-30T14:34:34.897769Z",
"modified": "2018-10-30T19:09:23.069469Z"
}
],
"next": "https://$HOST/orders/pages/?page=3&page_size=2"
}
]
Petición HTTP
GET /orders/?{status=}&{start_date=}&{end_date=}&{page=}&{page_size=}&{market__slug}&{country}&{all}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
status | String | Estatus de la orden, puede ser ´created´, ´pending´, ´matching´, ´executed´, ´cancelled´ |
start_date | Date | Se muestran las órdenes con fecha de creación posterior a la fecha dada. |
end_date | Date | Se muestran las órdenes con fecha de creación anterior a la fecha dada. |
market__slug | String | Muestra las órdenes según el slug de mercado. |
all | String | Cuando está presente se muestran todas las órdenes registradas con cualquier status . Si no está presente la respuesta retorna las órdenes con status ´created´, ´pending´, ´matching´. |
page | Number | Número de página a consultar. |
page_size | Number | Número de resultados mostrados en cada página, 20 por defecto y máximo 100. |
country | String | Código de dos caracteres que representa el país. |
Respuesta exitosa
La respuesta contiene la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
count | Number | Cantidad total de resultados en la consulta. |
previous | String | URL de la página previa. |
next | String | URL de la próxima página. |
total_pages | Number | Cantidad total de páginas en la consulta. |
results | Array | Arreglo con el resultado de la consulta según el page_size. |
El arreglo results
contiene una lista de órdenes con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
id | Number | Id de la orden. |
amount | Number | Monto de la orden. |
amount_string | String | Monto de la orden en formato String. |
commission | Number | Comision que se cargó a la orden. |
rate | Number | Monto de la tarifa aplicada. |
rate_string | String | Monto de la tarifa en formato String. |
type | Number | Id del tipo de orden. |
type_slug | String | Slug del tipo de orden. |
side | String | Indica si es una compra o venta (ask, bid) |
market | Number | Id del mercado. |
market_name | String | Nombre del mercado. |
from_currency | String | Código de moneda de origen. |
to_currency | String | Código de moneda de destino. |
total | Number | Total de la orden. |
country | String | Código de dos caracteres que representa el país. |
status | String | Estado de la orden. |
created | String | Fecha de creación. |
modified | String | Fecha de modificación. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
3002 | not_found |
Listar órdenes por página
Retorna una lista de las órdenes pertenecientes al usuario con paginación.
Listar órdenes con paginación
# Permite obtener un listado de órdenes.
curl -X GET "https://$HOST/orders/pages/?page=2&page_size=2"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"count": 8,
"previous": "https://$HOST/orders/pages/?page_size=2",
"total_pages": 4,
"results": [
{
"id": 7,
"amount": "20000.000000000000000000",
"commission": 0,
"amount_string": "20000.00 COP",
"rate": "19306564.820000000000000000",
"rate_string": "19306564.82 COP",
"type": 3,
"type_slug": "instant",
"side": "bid",
"market": 2,
"market_name": "btc-cop",
"from_currency": "COP",
"to_currency": "BTC",
"total": 0.00103592,
"country": "CO",
"status": "executed",
"created": "2018-11-12T16:09:23.069469Z",
"modified": "2018-11-12T20:09:23.069469Z"
},
{
"id": 6,
"amount": "0.001000000000000000",
"commission": 0.005,
"amount_string": "0.00100000 BTC",
"rate": "0.072192510000000000",
"rate_string": "0.07219251 BTC",
"type": 1,
"type_slug": "limit",
"side": "bid",
"market": 13,
"market_name": "eth-btc",
"from_currency": "BTC",
"to_currency": "ETH",
"total": 0.013782593235780276,
"country": "IC",
"status": "executed",
"created": "2018-10-30T14:34:34.897769Z",
"modified": "2018-10-30T19:09:23.069469Z"
}
],
"next": "https://$HOST/orders/pages/?page=3&page_size=2"
}
]
Petición HTTP
GET /orders/pages/?{status=}&{start_date=}&{end_date=}&{page=}&{page_size=}&{market__slug}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
status | String | Estatus de la orden, puede ser ´created´, ´pending´, ´matching´, ´executed´, ´cancelled´ |
start_date | Date | Se muestran las órdenes con fecha de creación posterior a la fecha dada. |
end_date | Date | Se muestran las órdenes con fecha de creación anterior a la fecha dada. |
page | Number | Número de página a consultar. |
page_size | Number | Número de resultados mostrados en cada página, 20 por defecto y máximo 100. |
market__slug | String | Muestra las órdenes según el slug de mercado. |
Respuesta exitosa
La respuesta contiene la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
count | Number | Cantidad total de resultados en la consulta. |
previous | String | URL de la página previa. |
next | String | URL de la próxima página. |
total_pages | Number | Cantidad total de páginas en la consulta. |
results | Array | Arreglo con el resultado de la consulta según el page_size. |
El arreglo results
contiene una lista de órdenes con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
id | Number | Id de la orden. |
amount | Number | Monto de la orden. |
amount_string | String | Monto de la orden en formato String. |
commission | Number | Comision que se cargó a la orden. |
rate | Number | Monto de la tarifa aplicada. |
rate_string | String | Monto de la tarifa en formato String. |
type | Number | Id del tipo de orden. |
type_slug | String | Slug del tipo de orden. |
side | String | Indica si es una compra o venta (ask, bid) |
market | Number | Id del mercado. |
market_name | String | Nombre del mercado. |
from_currency | String | Código de moneda de origen. |
to_currency | String | Código de moneda de destino. |
total | Number | Total de la orden. |
country | String | Código de dos caracteres que representa el país. |
status | String | Estado de la orden. |
created | String | Fecha de creación. |
modified | String | Fecha de modificación. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
3002 | not_found |
Listar órdenes por tipo
Retorna una lista de las órdenes pertenecientes al usuario filtradas por tipo.
Listar órdenes por tipo
# Permite obtener un listado de órdenes por tipo.
curl -X GET "https://$HOST/orders/instant/type/"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"id": 7,
"amount": "20000.000000000000000000",
"commission": 0.0,
"amount_string": "20000.00 COP",
"rate": "19306564.820000000000000000",
"rate_string": "19306564.82 COP",
"type": 3,
"type_slug": "instant",
"side": "bid",
"market": 2,
"market_name": "btc-cop",
"from_currency": "COP",
"to_currency": "BTC",
"total": 0.00103592,
"country": "CO",
"status": "executed",
"created": "2018-11-12T16:09:23.069469Z",
"modified": "2018-11-12T20:09:23.069469Z"
}
]
Petición HTTP
GET /orders/{type}/type/?{country=}&{status=}&{start_date=}&{end_date=}&{market__slug}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
type | String | Tipo de orden que se desea consultar. |
country | String | Código de dos caracteres que representa el país. |
status | String | Estatus de la orden, puede ser ´created´, ´pending´, ´matching´, ´executed´, ´cancelled´ |
start_date | Date | Se muestran las órdenes con fecha de creación posterior a la fecha dada. |
end_date | Date | Se muestran las órdenes con fecha de creación anterior a la fecha dada. |
market__slug | String | Muestra las órdenes según el slug de mercado. |
El parámetro type
acepta tres valores definidos: limit
, market
, instant
. En este caso particular se acepta un cuarto valor history
el cuál retorna un histórico de órdenes ejecutadas y canceladas.
Respuesta exitosa
La respuesta contiene una lista de órdenes con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
id | Number | Id de la orden. |
amount | Number | Monto de la orden. |
amount_string | String | Monto de la orden en formato String. |
commission | Number | Comision que se cargó a la orden. |
rate | Number | Monto de la tarifa aplicada. |
rate_string | String | Monto de la tarifa en formato String. |
type | Number | Id del tipo de orden. |
type_slug | String | Slug del tipo de orden. |
side | String | Indica si es una compra o venta (ask, bid) |
market | Number | Id del mercado. |
market_name | String | Nombre del mercado. |
from_currency | String | Código de moneda de origen. |
to_currency | String | Código de moneda de destino. |
total | Number | Total de la orden. |
country | String | Código de dos caracteres que representa el país. |
status | String | Estado de la orden. |
created | String | Fecha de creación. |
modified | String | Fecha de modificación. |
Respuesta con error
Código | Tipo |
---|---|
3002 | not_found |
3003 | not_authenticated |
Tasa de cambio
Retorna la tasa de cambio entre monedas.
Tasa de cambio
# Obtiene la tasa de cambio entre monedas.
curl -X GET "https://$HOST/orders/COP/until/BTC/type/limit/price/"
-H "Authorization: Token $TOKEN"
Respuesta
{
"rate": {
"currency": "COP",
"amount": 18043518.52,
"string": "18043518.52 COP"
},
"fee": {
"percentage": 0.5,
"amount": 90217.59
},
"market_maintenance": false
}
Petición HTTP
GET /orders/{since}/until/{until}/type/{type}/price/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
since | String | Código de moneda de origen. |
until | String | Código moneda de destino. |
type | String | Tipo de orden. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
rate | Array | Tarifa de cambio. |
fee | Array | Comisión aplicada. |
market_maintenance | Boolean | Indica si el mercado se encuentra en mantenimiento. |
El arreglo rate
contiene:
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código de moneda. |
amount | Number | Monto del cambio. |
string | String | Monto en formato String. |
El arreglo fee
contiene:
Parámetro | Tipo | Descripción |
---|---|---|
percentaje | String | Porcentaje de fee. |
amount | Number | Monto de fee. |
Respuesta con error
Código | Tipo |
---|---|
2002 | invalid |
3002 | not_found |
Precio de conversión
Retorna el precio de conversión entre monedas.
Precio de conversión
# Obtiene la tasa de cambio entre monedas.
curl -X GET "https://$HOST/orders/COP/until/BTC/type/limit/price/50000.00/?rate=18043518.52"
-H "Authorization: Token $TOKEN"
Respuesta
{
"rate": {
"currency": "COP",
"amount": 18043518.52,
"string": "18043518.52 COP"
},
"fee": {
"percentage": 0.5,
"amount": 90217.59
},
"market_maintenance": false,
"result": {
"currency": "BTC",
"amount": "0.00275722",
"string": "0.00275722 BTC"
}
}
Petición HTTP
GET /orders/{since}/until/{until}/type/{type}/price/{amount}/?{rate=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
since | String | Código de moneda de origen. |
until | String | Código moneda de destino. |
type | String | Tipo de orden. |
amount | Number | Monto que se desea convertir. |
rate | Number | Tasa de conversión. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
rate | Array | Tarifa de cambio. |
fee | Array | Comisión aplicada. |
result | Array | Resultado de la conversión. |
market_maintenance | Boolean | Indica si el mercado se encuentra en mantenimiento. |
El arreglo rate
contiene:
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código de moneda. |
amount | Number | Monto del cambio.a |
string | String | Monto en formato String. |
El arreglo fee
contiene:
Parámetro | Tipo | Descripción |
---|---|---|
percentaje | String | Porcentaje de fee. |
amount | Number | Monto de fee. |
El arreglo result
contiene:
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código de moneda. |
amount | Number | Monto de conversión. |
string | String | Monto de conversión en formato String. |
Respuesta con error
Código | Tipo |
---|---|
2002 | invalid |
3002 | not_found |
Cancelar orden
Cancela una orden. No se pueden cancelar órdenes en status
matching
cancelled
o executed
.
Cancelar orden
# Cancela una orden.
curl -X DELETE "https://$HOST/orders/8/"
-H "Authorization: Token $TOKEN"
Responde 204 No Content
Petición HTTP
DELETE /orders/{id}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
id | Number | Id de la orden. |
Respuesta exitosa
Se responde con código HTTP 204 No Content.
Respuesta con error
Código | Tipo |
---|---|
2002 | invalid |
3002 | not_found |
3003 | not_authenticated |
Cancelar todas las órdenes
Cancela todas las órdenes asociadas a un usuario. No se pueden cancelar órdenes en status
matching
cancelled
o executed
.
Cancelar todas las órdenes
# Cancela todas las órdenes.
curl -X DELETE "https://$HOST/orders/cancel-all/"
-H "Authorization: Token $TOKEN"
Respuesta
{
"success": true
}
Petición HTTP
DELETE /orders/cancel-all/
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
success | String | Mensaje de cancelación exitosa. |
Respuesta con error
Código | Tipo |
---|---|
2002 | invalid |
3003 | not_authenticated |
Transactions
Permite hacer operaciones relativas a transacciones como depósitos o retiros.
Crear un depósito
Permite al usuario registrar un depósito en la plataforma.
Crear un depósito
# Permite al usuario registrar un depósito en la plataforma.
# Ejemplo para depósito de moneda FIAT
curl -X POST "https://$HOST/transactions/deposit/"
-H "Authorization: Token $TOKEN"
-H "Content-Type: application/json"
-d '{
"account": "159753456987321",
"currency": "VEF",
"amount": "3000000",
"reference": "CMRNUYRSVQ"
}'
Respuesta
{
"external_commission":"0.010000000000000000",
"amount":"3000000.000000000000000000",
"amount_string":"3000000 VEF",
"currency":"VEF",
"currency_name":"Bolivares Fuertes",
"currency_type":"fiat",
"reference":"CMRNUYRSVQ",
"reference_url":null,
"wallet":null,
"file":null,
"status":"initial",
"created":"2018-05-24T21:11:44.129182Z",
"account":"159753456987321",
"call_back":"",
"user":4,
"type":"deposit"
}
Petición HTTP
POST /transactions/deposit/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código de moneda. |
reference | String | Referencia para el voucher de depósito. |
account | String | Cuenta bancaria desde donde se realizará el depósito. |
amount | String | Monto del depósito. |
new_wallet | Boolean | Solo valido para ETH y Tokens ERC20, solicita una nueva wallet para depositar este tipo de activos. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
external_commission | Number | Comisión externa que se cobra por la transacción. |
amount | Number | Monto a ser depositado. |
amount_string | String | Monto en formato String. |
currency | String | Código de moneda. |
currency_name | String | Nombre de la moneda. |
currency_type | String | Tipo de moneda (fiat, crypto). |
reference | String | Referencia para el voucher de depósito. |
reference_url | String | Referencia del voucher de depósito en el caso de cripto moneda. |
wallet | String | Dirección de la wallet a la cuál se debe depositar en el caso de cripto. |
file | Binary | Archivo del voucher de depósito que sirve para validar su autenticidad. |
status | String | Estado del depósito. |
create | String | Fecha de creación. |
account | String | Cuenta bancaria desde donde se realizará el depósito. |
call_back | String | Url para retornar información cuando el depósito cambie de estado. |
user | Number | Id del usuario. |
type | String | Tipo de transacción (withdrawal). |
Respuesta con error
Código | Tipo |
---|---|
2001 | required |
2002 | invalid |
2003 | null |
2004 | blank |
2007 | min_value |
2008 | max_value |
2009 | does_not_exist |
2013 | unique |
2014 | maintenance |
3002 | not_found |
3003 | not_authenticated |
3022 | user_has_not_enough_validation_lvl |
Cuota disponible para depósito
Retorna la cuota disponible para el usuario realizar un depósito.
Cuota disponible para depósito
# Retorna la cuota disponible para el usuario realizar un depósito
curl -X GET "https://$HOST/transactions/limits/deposit/CO/"
-H "Authorization: Token $TOKEN"
Respuesta
{
"available_quota": 10000
}
Petición HTTP
GET /transactions/limits/deposit/{country}/
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
country | String | Código de dos caracteres que representa el país. |
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
available_quota | Number | Cuota disponible. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Listar depósitos
Retorna una lista de depósitos registrados por el usuario en la plataforma.
Lista de depósitos
# Retorna una lista de depósitos registrados por el usuario en la plataforma
curl -X GET "https://$HOST/transactions/deposits/EUR/"
-H "Authorization: Token $TOKEN"
Respuesta
{
{
"external_commission": "0.010000000000000000",
"amount": "5.000000000000000000",
"amount_string": "5.00 EUR",
"currency": "EUR",
"currency_name": "Euro",
"currency_type": "fiat",
"method": null,
"reference": "LXWLKLSUYE",
"reference_url": null,
"wallet": null,
"file": "http://localhost:8000/files/16/",
"status": "approved",
"created": "2018-06-29T18:55:08.189462Z",
"account": 12,
"call_back": "",
"user": 6,
"type": "deposit",
"country": "IC"
},
{
"external_commission": "0.010000000000000000",
"amount": "10.000000000000000000",
"amount_string": "10.00 EUR",
"currency": "EUR",
"currency_name": "Euro",
"currency_type": "fiat",
"method": null,
"reference": "ITPSYXOKIA",
"reference_url": null,
"wallet": null,
"file": "http://localhost:8000/files/13/",
"status": "approved",
"created": "2018-06-29T16:19:51.573401Z",
"account": 10,
"call_back": "",
"user": 6,
"type": "deposit",
"country": "IC"
},
}
Petición HTTP
GET /transactions/deposits/{currency}/?{country=}&{created=}&{status=}&{start_date=}&{end_date=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
currency | String | Código que representa la moneda. |
country | String | Código de dos caracteres que representa al país. |
created | String | Se filtra por fecha de creación. |
status | String | Se filtra por status (initial, approved, rejected, cancelled, sending, verifying). |
start_date | Date | Se filtra por fecha de creación posterior a la fecha dada. |
end_date | Date | Se filtra por fecha de creación anterior a la fecha dada. |
Respuesta exitosa
La respuesta contiene una lista de depósitos con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
external_commission | Number | Comisión externa que se cobra por la transacción. |
amount | Number | Monto a ser depositado. |
amount_string | String | Monto en formato String. |
currency | String | Código de moneda. |
currency_name | String | Nombre de la moneda. |
currency_type | String | Tipo de moneda (fiat, crypto). |
method | String | Método usado para realizar el depósito. |
reference | String | Referencia para el voucher de depósito. |
reference_url | String | Referencia del voucher de depósito en el caso de cripto moneda. |
wallet | String | Dirección de la wallet a la cuál se hará el retiro en el caso de cripto. |
file | Binary | Voucher de depósito. |
status | String | Estado del depósito. |
created | String | Fecha de creación. |
account | String | Cuenta bancaria donde se realizará el retiro. |
call_back | String | Url para retornar información cuando el depósito cambie de estado. |
user | Number | Id del usuario. |
type | String | Tipo de transacción (deposit). |
country | String | Código de dos caracteres que representa al país. |
instant_send | Boolean | Indica si la transacción se ejecuta de inmediato. |
number_confirmations | Integer | Es el número de confirmaciones que debe tener el depósito para hacerse efectivo. |
number_confirmations_made | Integer | Es el número de confirmaciones que lleva el depósito. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Settings
Permite consultar los settings de la plataforma.
Obtener el mínimo del mercado
Retorna el monto mínimo requerido para realizar intercambios en el mercado.
# Retorna el monto mínimo requerido para realizar intercambios en el mercado
curl -X GET "https://$HOST/settings/minimum-market/COP/until/BTC/type/instant/"
-H "Authorization: Token $TOKEN"
Esta consulta obtendrá una respuesta similar a esta:
{
"url": "https://$HOST/settings/minimum_cop/",
"value": 20000,
"type": "decimal"
}
Petición HTTP
GET /settings/minimum-market/{since}/until/{until}/type/{type}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
since | String | Código de moneda de origen. |
until | String | Código moneda de destino. |
type | String | Tipo de orden. |
El parámetro type
acepta tres valores definidos: limit
, market
, instant
.
Respuesta exitosa
Parámetro | Tipo | Descripción |
---|---|---|
url | String | Url para acceder directamente al recurso. |
value | String | Valor del setting. |
type | String | Tipo del valor. |
Respuesta con error
Código | Tipo |
---|---|
3003 | not_authenticated |
Ticker
Obtener información del mercado
Muestra variada información del mercado como volumen, precio mas bajo, precio mas alto.
Ticker
# Muestra variada información del mercado.
curl -X GET "https://$HOST/ticker?market=btc-vef&interval=1d"
-H "Authorization: Token $TOKEN"
Respuesta
[
{
"date":"2018-03-24T00:00:00",
"open":"7517002981.98",
"close":"7450568299.50",
"low":"7382867357.04",
"high":"7641843906.80",
"volume":"0.000000000000000000"
},
{
"date":"2018-03-25T00:00:00",
"open":"7450322082.28",
"close":"7168614406.88",
"low":"6919820697.93",
"high":"7492952835.51",
"volume":"0.000000000000000000"
},
{
"date":"2018-03-26T00:00:00",
"open":"7168596819.94",
"close":"6866365180.43",
"low":"6816963453.61",
"high":"7233721275.05",
"volume":"0.000000000000000000"
},
{
"date":"2018-03-27T00:00:00",
"open":"6866312419.59",
"close":"6999410414.81",
"low":"6817227257.77",
"high":"7138356069.04",
"volume":"0.000000000000000000"
},
]
Petición HTTP
GET /ticker?{market=}&{interval=}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
market | String | Nombre del mercado en par, ejemplo btc-vef. |
interval | String | Intervalo de la consulta, 5m, 15m, 30m, 1h, 2h, 3h, 4h, 6h, 12h, 1d, 3d, 1w. |
Respuesta exitosa
La respuesta contiene una lista con la siguiente estructura.
Parámetro | Tipo | Descripción |
---|---|---|
date | String | Fecha de consulta. |
open | Number | Precio de apertura en el intervalo. |
close | Number | Precio de cierre en el intervalo. |
high | Number | Precio más alto en el intervalo. |
low | Number | Precio más bajo en el intervalo. |
Respuesta con error
Ninguna.