Preguntas frecuentes de API avanzada

Last updated: 25 nov 2025

Usando los endpoints de depósito y retiro de REST API, los clientes pueden depositar/retiros fondos en/de su cuenta de Kraken y solicitar el estado en tiempo real de una transacción de depósito/retiro.

Los depósitos/retiros pasan por varias etapas entre la solicitud inicial y la finalización de la transacción, por lo que los endpoints de depósito y retiro devolverán un valor de estado diferente en función de cuándo se soliciten.

Tenga en cuenta que los valores de estado provienen originalmente de las páginas 16/17 del documento Protocolo de Intercambio Financiero por Internet (IFEX), pero los valores se han modificado ligeramente para ser más adecuados para transacciones de criptomonedas (por ejemplo, no se usan todos los posibles valores de estado).

Depósitos

Los posibles valores de estado para las transacciones de depósito son los siguientes:

  • Asentado = El depósito ha sido recibido pero aún necesita confirmaciones adicionales en la blockchain.

  • Éxito = El depósito ha alcanzado el número requerido de confirmaciones en la blockchain.

  • Fallo = El depósito falló (por una o más razones distintas).

Los siguientes son algunos ejemplos de cómo aparecerían los valores de estado anteriores en las respuestas del endpoint DepositStatus:

Estado asentado:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906dde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Settled"}]}

Estado de éxito:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906tdde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Success"}]}

Retiros

Los posibles valores de estado para las transacciones de retiro son los siguientes:

  • Inicial = La solicitud de retiro se ha recibido y se está comprobando su validez (cualquier restricción de depósito y retiro en la cuenta, etc.).

  • Pendiente = El retiro está a la espera de que nuestra puerta de enlace de depósito y retiro lo procese.

  • Asentado = El retiro se ha enviado a la blockchain (en este punto, el ID de transacción de la blockchain estaría disponible).

  • Éxito = La transacción de retiro tiene, al menos, una confirmación en la blockchain.

  • En espera = El retiro se encuentra retenido y nuestro equipo de depósito y retiro tiene que comprobarlo manualmente.

  • Fallo = El retiro falló (por una o más razones distintas).

Los siguientes son algunos ejemplos de cómo aparecerían los valores de estado anteriores en las respuestas del endpoint WithdrawStatus:

Estado inicial:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Initial"}]}

Estado pendiente:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Pending"}]}

Estado asentado:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Settled"}]}

Estado de éxito:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Success"}]}

Estado de fallo:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Failure","status-prop":"canceled"}]}

La información adicional sobre depósitos/retiros está disponible a través de nuestras páginas de soporte de depósito y retiro de efectivo y depósito y retiro de criptomonedas.

El endpoint OHLC de REST API solo proporciona una cantidad limitada de datos históricos, específicamente 720 puntos de datos del intervalo solicitado. Por ejemplo, solicitar datos OHLC en intervalos de 1 minuto devolverá los 720 minutos más recientes (12 horas) de datos.

Para aplicaciones que requieren datos OHLC o de ticks adicionales, es posible recuperar todo el historial de trading de nuestros mercados (el tiempo histórico y las ventas) a través del endpoint de operaciones REST API. El OHLC de cualquier marco temporal y cualquier intervalo se puede crear a partir de los datos históricos de tiempo y ventas.

El endpoint de operaciones toma un parámetro opcional llamado desde, que especifica la fecha/hora de inicio de los datos. El valor desde es una marca de tiempo UNIX con resolución en nanosegundos (una marca de tiempo UNIX estándar en segundos con 9 dígitos adicionales).

Por ejemplo, una llamada al endpoint de operaciones como https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 devolvería el tiempo histórico y las ventas para BTC/USD desde el 1 de junio de 2019 a las 00:00:00 UTC:

{"error":[],"result":{"XXBTZUSD":[["8552.90000","0.03190270",1559347203.7998,"s","m",""],["8552.90000","0.03155529",1559347203.8086,"s","m",""],["8552.90000","0.00510797",1559347203.9664,"s","m",""],["8552.90000","0.09047336",1559347203.9789,"s","m",""],["8552.90000","0.00328738",1559347203.9847,"s","m",""],["8552.90000","0.00492152",1559347203.9897,"s","m",""],["8552.90000","0.00201848",1559347203.9937,"s","m",""],["8552.90000","0.11422068",1559347203.9993,"s","m",""],["8552.90000","0.00425858",1559347204.071,"s","m",""],["8552.90000","0.00427679",1559347204.0762,"s","m",""],["8552.90000","0.06381401",1559347204.1662,"s","m",""]
...
["8579.50000","0.05379597",1559350785.248,"s","l",""],["8579.50000","0.94620403",1559350785.2936,"s","l",""],["8578.10000","0.45529068",1559350785.297,"s","l",""]],"last":"1559350785297011117"}}

Las llamadas posteriores al endpoint de operaciones deberían reemplazar el valor del parámetro desde con el valor del parámetro último de los resultados de la solicitud anterior, como https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Usar el valor especial desde de 0 (cero) devolvería el tiempo histórico y las ventas desde el comienzo del mercado (comenzando con la primera operación).

Una referencia de usuario es un ID de orden proporcionado por el cliente que se puede usar en lugar del ID de orden real (proporcionado por la API) para algunas tareas de gestión de órdenes (especialmente cancelar órdenes).

Las referencias de usuario se implementan para que sean lo más flexibles posible, y, por lo tanto, se pueden usar de diversas maneras, entre las que se incluyen:

  • como un ID único (donde cada orden tiene una referencia de usuario diferente);

  • para agrupar órdenes relacionadas (como agrupar órdenes con diferentes niveles de apalancamiento)

  • o como un ID de respaldo en caso de que no se conozca el ID de orden real.

Una referencia de usuario debe ser un valor numérico entre 1 y 2.147.483.647 (esencialmente cualquier número positivo de 32 bits), y por lo tanto podría implementarse como un contador simple, como un valor aleatorio de 32 bits con signo, o incluso como una marca de tiempo en segundos (aunque esto fallaría después del 19 de enero de 2038 a las 3:14:07 UTC).

Ejecución de órdenes con una referencia de usuario

Las órdenes se pueden realizar con una referencia de usuario adjunta llamando al AddOrder endpoint e incluyendo el parámetro userref con la referencia de usuario como valor:

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=limit price=0.1 volume=50 userref=27649653

{"error":[],"result":{"descr":{"order":"buy 50.00000000 XDGUSD @ limit 0.1000000"},"txid":["OQJSXE-F5FOM-IXHVL4"]}}

Visualización de órdenes que tienen una referencia de usuario

Las órdenes que ya tienen una referencia de usuario adjunta se pueden ver llamando a los endpoints Open/Closed/QueryOrders e incluyendo el parámetro userref con la referencia de usuario existente como valor (en este caso, la referencia de usuario actúa como un filtro, mostrando solo los pedidos asociados):

$ ./krakenapi OpenOrders userref=27649653

{"error":[],"result":{"open":{"OQJSXE-F5FOM-IXHVL4":{"refid":null,"userref":27649653,"status":"open","opentm":1629618802.9812,"starttm":0,"expiretm":0,"descr":{"pair":"XDGUSD","type":"buy","ordertype":"limit","price":"0.1000000","price2":"0","leverage":"none","order":"buy 50.00000000 XDGUSD @ limit 0.1000000","close":""},"vol":"50.00000000","vol_exec":"0.00000000","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"0.000000000","misc":"","oflags":"fciq"}}}}

$ ./krakenapi ClosedOrders userref=38695724

{"error":[],"result":{"closed":{"O7YEFN-3V4RK-FBNSNM":{"refid":null,"userref":38695724,"status":"canceled","reason":"User requested","opentm":1629619539.3593,"closetm":1629619542.2246,"starttm":0,"expiretm":0,"descr":{"pair":"XBTUSD","type":"buy","ordertype":"limit","price":"25000.0","price2":"0","leverage":"none","order":"buy 0.00010000 XBTUSD @ limit 25000.0","close":""},"vol":"0.00010000","vol_exec":"0.00000000","cost":"0.00000","fee":"0.00000","price":"0.00000","stopprice":"0.00000","limitprice":"0.00000","misc":"","oflags":"fciq"}},"count":1}}

Cancelación de órdenes que tienen una referencia de usuario

Las órdenes que ya tienen una referencia de usuario adjunta se pueden cancelar usando la referencia de usuario llamando al endpoint CancelOrder y usando la referencia de usuario como el valor de txid (en lugar del valor del ID de orden):

$ ./krakenapi CancelOrder txid=16764529

{"error":[],"result":{"count":1}}

Tenga en cuenta que todas las órdenes abiertas con la misma referencia de usuario se cancelarían, por lo que es posible hacer una única llamada a CancelOrder para cancelar varias órdenes de manera simultánea (como se indica por el valor de count de 3 en la siguiente respuesta):

$ ./krakenapi CancelOrder txid=48695624

{"error":[],"result":{"count":3}}

Este problema puede estar relacionado con Cloudflare:

https://support.cloudflare.com/hc/en-us/articles/200169226-Why-am-I-getting-a-403-error-

NOTA: Kraken tiene habilitada la "Verificación de integridad del navegador".

Esto puede ocurrir si su solicitud contiene encabezados sospechosos. Por ejemplo, puede ser que a su solicitud le falte un agente de usuario o use un agente de usuario no estándar; por lo que debe revisar los encabezados de la solicitud.

Si no puede crear ninguna solicitud estándar que nuestro sistema permita, envíenos una copia completa de la(s) solicitud(es) que está intentando, incluidas su dirección IP y todos los encabezados. Esta información nos permitiría realizar una investigación más profunda.

API de futuros

Para nuestras API Futures REST y WebSocket (futures.kraken.com) ofrecemos un entorno de prueba completo usando la URL de la API demo-futures.kraken.com.

Entornos de Prueba REST, WebSocket y FIX

Para nuestra API spot REST/WebSocket y API FIX, actualmente ofrecemos un entorno de prueba para clientes calificados. Acceder a este entorno requiere un proceso de integración que se puede iniciar contactando directamente al equipo de API.

Prueba de nuestra API usando el parámetro de prueba de validación

Al realizar una orden a través de REST API AddOrder o los endpoints de API WebSocket addOrder, se puede usar el parámetro de entrada de validación para simular la orden.

Llamar a AddOrder/addOrder con el parámetro de validación establecido como verdadero (validate=1, validate=true, validate=anything, etc.) hará que los detalles de la orden se verifiquen en busca de errores, pero la respuesta de la API nunca incluirá un ID de orden (que siempre se devolvería para una orden exitosa sin el parámetro de validación).

Ejemplo de llamada a AddOrder con el parámetro validate (tenga en cuenta que falta el ID de orden):

bash

Bash

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=market volume=5000 validate=true{"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ market"}}}

Pequeñas órdenes reales y/u órdenes con precios extremos

Para una prueba completa de la API usando el parámetro de validación, recomendamos realizar órdenes de mercado muy pequeñas (órdenes del tamaño mínimo de orden) u órdenes límite cuyo precio se aleje demasiado del precio de mercado actual (realizar una orden límite para vender ETH/USD a 800 $ cuando el precio de mercado es de 200 $, por ejemplo).

Probar usando órdenes en vivo permite que su código de API interactúe con nuestra API en condiciones del mundo real, por lo tanto, cada aspecto de la prueba será preciso (cómo sus órdenes afectan al libro de órdenes, etc.).

Por razones de seguridad, recientemente hemos dejado de ofrecer compatibilidad para TLS 1.0 y 1.1. Si recibe mensajes de error de conexión SSL/TLS mientras intenta conectarse a nuestra API, es probable que se deba al uso de uno de estos estándares obsoletos. Necesitará modificar su cliente de API para forzar el uso de TLS 1.2/1.3 o actualizar su versión de .NET a 4.6 o superior, que usa TLS 1.2/1.3 como estándar.

La siguiente hoja de cálculo de Google se puede usar para calcular la firma de autenticación de la REST API para cualquier combinación de datos de entrada:

  • Clave privada (secreta) de la API

  • Endpoint de API (Balance, TradeBalance, QueryOrders, etc.)

  • Valor nonce (consulte nuestra página de asistencia sobre qué es un nonce para obtener más información)

  • Parámetros de entrada del endpoint (asset=doge, por ejemplo)

La calculadora puede usarse para verificar que el algoritmo de autenticación se ha implementado correctamente, evitando así posibles problemas (sobre todo errores inesperados de clave no válida) más adelante en el ciclo de desarrollo.

Instrucciones de uso

  1. 1

    Abra la calculadora de autenticación de la REST API en Chrome (o en cualquier otro navegador web reciente)

  2. 2

    Haga una copia de la calculadora en su propio Google Drive a través del menú Archivo -> Hacer una copia (para este paso tendrá que iniciar sesión en su cuenta de Google).

  3. 3

    Edite los campos clave API, endpoint de API, valor nonce y datos de entrada con su propia clave API y los detalles de la solicitud.

  4. 4

    Compare la firma de autenticación de la API calculada con el valor calculado por su propio código API (los dos valores deben coincidir exactamente)

Por motivos de seguridad, le recomendamos que utilice la calculadora de autenticación con una clave API temporal y que elimine la clave API de su cuenta una vez que se demuestre que la implementación de la firma de autenticación es correcta.

Ejemplo

Screenshot_2021-06-21_at_14.42.35.png

La principal ventaja de usar nuestras bibliotecas de cliente es que no necesita gastar tiempo/esfuerzo en reinventar la rueda para crear firmas de API, ya está hecho por usted.

Si solo pretende hacer llamadas a métodos públicos, puede optar por no usar bibliotecas de cliente, ya que no se necesita autenticación.

La lista de wrappers disponibles la puedes encontrar aquí.

¿Necesita más ayuda?