Preguntas frecuentes sobre la API avanzada

Última actualización: 25 nov 2025

Utilizando los endpoints de financiación de la API REST, los clientes pueden depositar/retirar fondos de su cuenta 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 financiación devolverán un valor de estado diferente según el momento en que se consulten.

Ten en cuenta que los valores de estado procedían originalmente de las páginas 16/17 del documento Internet Financial Exchange Protocol (IFEX), pero los valores se han modificado ligeramente para que sean más adecuados para las transacciones de criptomonedas (no se utilizan todos los valores de estado posibles, por ejemplo).

Depósitos

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

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

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

  • Failure = El depósito ha fallado (por una o varias razones).

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

Estado Settled: {"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 Success: {"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:

  • Initial = La solicitud de retiro ha sido recibida y se está verificando su validez (restricciones de financiación en la cuenta, etc.).

  • Pending = El retiro está esperando a ser procesado por nuestra pasarela de financiación.

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

  • Success = La transacción de retiro tiene al menos 1 confirmación en la blockchain.

  • On hold = El retiro ha sido retenido y debe ser verificado manualmente por nuestro equipo de financiación.

  • Failure = El retiro ha fallado (por una o varias razones).

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

Estado Initial: {"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 Pending: {"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 Settled: {"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 Success: {"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 Failure: {"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"}]}

Hay información adicional sobre depósitos/retiros disponible en nuestras páginas de soporte de financiación en efectivo y financiación con criptomonedas.

El endpoint OHLC de la API REST 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 las aplicaciones que requieren datos OHLC o de tick adicionales, es posible recuperar todo el historial de trading de nuestros mercados (el tiempo histórico y las ventas) a través del endpoint Trades de la API REST. El OHLC para cualquier marco de tiempo y cualquier intervalo se puede crear a partir de los datos históricos de tiempo y ventas.

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

Por ejemplo, una llamada al endpoint Trades como https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 devolvería el tiempo histórico y las ventas para XBT/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 Trades deben reemplazar el valor del parámetro since con el valor del parámetro last de los resultados de la llamada anterior, como https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

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

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

Las referencias de usuario se implementan para ser lo más flexibles posible y, por lo tanto, se pueden utilizar de diversas maneras, incluyendo:

  • 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 el ID de orden real no se conozca.

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 simple contador, 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).

Realizar órdenes con una referencia de usuario

Las órdenes se pueden colocar con una referencia de usuario adjunta llamando al endpoint AddOrder 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"]}}

Ver ó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 las órdenes asociadas):

$ ./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}}

Cancelar órdenes que tienen una referencia de usuario

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

$ ./krakenapi CancelOrder txid=16764529

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

Ten en cuenta que todas las órdenes abiertas con la misma referencia de usuario se cancelarían, por lo que es posible realizar una única llamada a CancelOrder para cancelar varias órdenes simultáneamente (como indica el valor 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 "Browser Integrity Check".

Esto puede ocurrir si tu solicitud contiene encabezados sospechosos. Por ejemplo, tu solicitud puede carecer de un agente de usuario o utilizar un agente de usuario no estándar; por lo tanto, verifica los encabezados de tu solicitud.

Si no puedes crear ninguna solicitud estándar que nuestro sistema permita, envíanos una copia completa de la(s) solicitud(es) que estás intentando, incluyendo tu dirección IP y todos los encabezados. Esta información nos permitiría investigar más a fondo.

API de Futuros

Para nuestras API REST y WebSocket de Futuros (futures.kraken.com), ofrecemos un entorno de prueba completo utilizando 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 pruebas para clientes cualificados. El acceso a este entorno requiere un proceso de incorporación que se puede iniciar contactando directamente con el equipo de API.

Prueba de nuestra API utilizando el parámetro de prueba Validate

Al realizar un pedido a través de los puntos finales AddOrder de la API REST o addOrder de la API WebSocket, el parámetro de entrada validate se puede utilizar para simular el pedido.

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

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

bash

Bash

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

Pedidos reales pequeños y/o pedidos con precios extremos

Para una prueba exhaustiva de la API utilizando el parámetro Validate, te recomendamos realizar pedidos de mercado muy pequeños (pedidos para el tamaño mínimo de pedido), o pedidos límite con precios muy alejados del precio actual del mercado (por ejemplo, realizar un pedido límite para vender ETH/USD a 800 $ cuando el precio de mercado es de 200 $).

Las pruebas con pedidos en vivo permiten que tu código API interactúe con nuestra API en condiciones reales, por lo que cada aspecto de la prueba será preciso (cómo tus pedidos afectan al libro de órdenes, etc.).

Por razones de seguridad, hemos dejado de dar soporte a TLS 1.0 y 1.1 recientemente. Si encuentras mensajes de error de conexión SSL/TLS al intentar conectarte a nuestra API, es probable que se deba al uso de uno de estos estándares obsoletos. Tendrás que modificar tu cliente API para forzar el uso de TLS 1.2/1.3 o actualizar tu versión de .NET a 4.6 o superior, que utiliza TLS 1.2/1.3 como estándar.

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

  • Clave privada (secreta) de la API

  • Punto final de la API (Balance, TradeBalance, QueryOrders, etc.)

  • Valor nonce (consulta nuestra página de soporte qué es un nonce para más detalles)

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

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

Instrucciones de uso

  1. 1

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

  2. 2

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

  3. 3

    Edita los campos clave API, punto final API, valor nonce y datos de entrada con tu propia clave API y detalles de la solicitud

  4. 4

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

Por razones de seguridad, te recomendamos utilizar la calculadora de autenticación con una clave API temporal y, a continuación, eliminar la clave API de tu cuenta una vez que se demuestre que la implementación de tu firma de autenticación es correcta.

Ejemplo

Screenshot_2021-06-21_at_14.42.35.png

El principal beneficio de utilizar nuestros envoltorios de biblioteca de cliente es que no necesitas dedicar tiempo/esfuerzo a reinventar la rueda para crear firmas API, ya está hecho por ti.

Si solo tienes la intención de realizar llamadas a métodos públicos, puedes optar por no utilizar bibliotecas de cliente, ya que no se necesita autenticación.

La lista de envoltorios disponibles la puedes encontrar aquí.

¿Necesita más ayuda?