Mensajes de error de la API

Última actualización: 8 de agosto de 2025

Introducción

La mayoría de las solicitudes API se completan correctamente, pero, en ocasiones, no se obtiene la respuesta esperada y se devuelve un mensaje de error.

Nuestra API facilita una variedad de mensajes de error descriptivos destinados a proporcionar el motivo del error, así como sugerencias para dar con la solución adecuada.

Los mensajes de error de la API se pueden dividir en varios grupos diferentes (en función del tipo de error, la causa subyacente y la solución óptima). Sin embargo, el formato de los mensajes de error de la API es siempre el mismo:

"Nivel de gravedad""Categoría del error":"Mensaje de error"

El "Nivel de gravedad" puede ser "E", si se trata de un error, o "W", en caso de una advertencia. La "Categoría de error" puede ser "General", "API", "Query" (consulta), "Order" (orden), "Trade" (operación), "Funding" (financiación) o "Service" (servicio). El "Mensaje de error" puede ser cualquier cadena de texto que describa el motivo del error (como "Invalid arguments" [argumentos no válidos]).

Por ejemplo, un error que indica que se ha utilizado un par de divisas no válido en una consulta de ticker sería el siguiente:

EQuery:Unknown asset pair

Tenga en cuenta que algunos software de terceros (aplicaciones móviles, bots de trading, etc.) optan por ocultar el error de API original y, en su lugar, muestran un error personalizado, por lo que es posible que se le muestre un formato de error o contenido alternativo en función del software que se utilice.

  • Errores generales de uso

  • Errores de límite de tasa

  • Errores de trading (colocación/cancelación de órdenes)

  • Errores de financiación (depósito/retiro)

  • Errores del estado de servicio

  • Errores internos

  • Errores de CloudFlare (red)

Errores generales de uso

Los errores de permiso denegado se devuelven cuando el cliente de API está intentando realizar una tarea para la cual la clave de API no tiene permiso. Por ejemplo, si un cliente de API intenta recuperar el saldo de una cuenta con una clave de API configurada para permitir el acceso de trading, pero no el acceso de gestión de cuentas, se devolverá el error de permiso denegado. Puede revisar sus claves de API y su configuración (como, por ejemplo, sus permisos) desde el apartado de configuración, en la pestaña de API de gestión de cuentas. Debe asegurarse de que las claves API que utilizan las aplicaciones de terceros tienen todos los ajustes y permisos necesarios.

Este error se devuelve cuando la clave API utilizada para la llamada ha caducado o está desactivada. Revise la clave API en la pestaña API de la configuración de la gestión de cuentas o genere una nueva y actualice la aplicación.

Puede obtener la lista completa de nuestros pares de activos de la llamada pública AssetPairs y buscar el nombre del par como entrada de encabezados Json o por el parámetro "altname": https://api.kraken.com/0/public/AssetPairs

Este error se devuelve cuando se llama a un método sin los parámetros necesarios. Por ejemplo, si se llama el método QueryOrders sin especificar un parámetro de Id. de transacción válido (txid), se devolverá el error de argumentos no válidos. Si se llama un método con parámetros innecesarios, no se devolvería el error de argumentos no válidos porque los parámetros innecesarios simplemente se ignorarían.

Los errores de firma no válida se producen si la clave API o el secreto de API se escriben incorrectamente en el programa o si los datos POST utilizados en la autenticación y los datos POST enviados a la API no coinciden. Como referencia adicional, a continuación se muestra un ejemplo en código Python para implementar el algoritmo de firma API. La clave pública de API adecuada se debe copiar y pegar desde la gestión de cuentas, y el método API y los datos POST se deben actualizar de forma apropiada. El valor de salida se puede utilizar directamente como valor para el encabezado HTTP de firma API. #!/usr/bin/env python

# Import required Python libraries
import time
import base64
import hashlib
import hmac

# Decode API private key from base64 format displayed in account management
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variables (API method, nonce, and POST data)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Cryptographic hash algorithms
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Encode signature into base64 format used in API-Sign value
api_signature = base64.b64encode(api_hmac.digest())

# API authentication signature for use in API-Sign HTTP header
print(api_signature)El SHA256 se calcula utilizando el propio valor nonce y los datos POST para el método API; los datos POST se componen de los pares nombre/valor para el nonce y los parámetros del método API. Un ejemplo de los datos que deben transferirse al SHA256 para el método TradeBalance sería el siguiente:SHA256 = SHA256 de "1541933977000nonce=1541933977000&asset=xxbt"El valor de cadena que se transfiere al SHA256 no debe contener ningún valor nulo adicional (\0) y el valor de cadena no debe codificarse como base64 o en hexadecimal (es decir, el valor de cadena debe ser una cadena de texto sin formato).La ruta URI es la URL completa del método API, excepto el prefijo "https://api.kraken.com", por lo que la ruta URI del método TradeBalance, por ejemplo, sería el valor de cadena "/0/private/TradeBalance" sin ningún valor nulo adicional.El HMAC SHA512 se calcula utilizando la ruta URI y el hash SHA256 previamente calculado, con la clave privada API decodificada en base64 como clave HMAC. Un ejemplo de los datos que deben transferirse al HMAC sería el siguiente:HMAC SHA512 con una clave privada decodificada en base64 = HMAC de "/0/private/TradeBalanceSHA256"Los encabezados HTTP de firma API y clave API son los únicos dos encabezados HTTP personalizados requeridos. El encabezado de clave API es un duplicado exacto de la clave pública API de la gestión de cuentas. El encabezado de firma API es el hash HMAC SHA512 codificado con base64.

Los errores de sesión no válidos se devuelven a través de la API de WebSocket cuando se produce un intento de suscripción a un feed (privado) autenticado mediante un token de autenticación que ya no es válido (que ya ha caducado, por ejemplo).

La solución consiste simplemente en solicitar un nuevo token de autenticación a través del REST API GetWebSocketsToken endpoint y utilizar el nuevo token para todas las solicitudes de suscripción autenticadas (privadas) posteriores.

Un error de solicitud incorrecta (bad request) indica que hay algo incorrecto en la solicitud HTTP subyacente (y no en la solicitud posterior a la API), como por ejemplo URL que no coinciden entre REST/WebSocket, o la omisión de los datos POST HTTP de forma adecuada:

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

Este error se devuelve cuando el endpoint que se está llamando no es un endpoint válido.

Errores de límite de tasa

Aunque la adición y la cancelación de órdenes no computan en nuestros límites de contador API estándar, estas operaciones tienen su propio contador de adición y cancelación de órdenes. Este contador funciona de forma que, cuanto más tiempo permanezcan las órdenes en el libro de órdenes, más pedidos pueden añadir o cancelar los clientes.

Los mensajes de error de bloqueo temporal pueden devolverse si se han producido demasiadas llamadas API fallidas o demasiados errores nonce no válidos en un breve período de tiempo o firmas no válidas. Aunque estas llamadas devuelven un error, ese error se contempla en los límites de la API y puede resultar en un bloqueo temporal.

La duración aproximada de los bloqueos temporales es de 15 minutos. Después de recibir el error de bloqueo temporal, espere 15 minutos antes de enviar nuevas solicitudes API. Si activa varios errores nonce no válidos, aumente la nonce window, ya que esto puede ayudar a reducir la frecuencia con la que se producen estos errores. Asimismo, intente reducir también la frecuencia de sus llamadas API privadas.

Errores de trading

La apertura de nuevas posiciones spot sobre margen se ha suspendido temporalmente por el mantenimiento de los motores de trading. La función se reactivará próximamente. Puede obtener información actualizada al respecto en status.kraken.com.

Otra razón puede ser que las posiciones spot sobre margen no están disponibles actualmente para los clientes que residen en determinados países.

En Kraken no se puede abrir una posición larga y corta para el mismo par.

Si desea abrir una posición larga y corta para la misma divisa, elija pares de divisas diferentes con la misma divisa que la moneda cotizada o la moneda base. Ej.: XBT/USD corto, XBT/EUR largo.

Este error se produce cuando se han superado los límites de margen permitidos para su nivel de verificación actual. Los límites de margen permitidos para cada divisa varían en función del nivel de verificación actual.

Disponemos de fondos limitados para la ampliación de márgenes. El mensaje de margen insuficiente ("insufficient margin") indica que por el momento no tenemos fondos en el margin pool aplicable. Esta situación puede cambiar en cualquier momento. Es posible que pueda realizar su orden unos segundos o minutos más tarde, pero las órdenes de gran volumen y aquellas realizadas en épocas de gran volumen pueden tardar más. Le rogamos que acepte nuestras disculpas por cualquier inconveniente que pueda surgir.

Este error se produce cuando no hay suficiente margen libre para abrir una nueva posición en la cuenta o si el intento actual de abrir una posición haría que el margen libre de la cuenta cayera por debajo del 100%.

Usted no dispone de fondos disponibles para realizar esta orden. Revise sus posiciones abiertas y sus órdenes de elementos que puedan estar reteniendo sus fondos.

No ha alcanzado el volumen de orden mínimo para este activo.

Ha superado el número máximo de órdenes abiertas disponibles en su cuenta.

Estos límites se basan en su nivel de verificación. Cierre algunas de sus órdenes abiertas o amplíe el nivel de verificación de su cuenta.

Ha superado la cantidad máxima de posiciones abiertas disponibles en su cuenta.

Estos límites se basan en su nivel de verificación. Cierre o liquide una parte o la totalidad de sus posiciones abiertas o amplíe el nivel de verificación de su cuenta, si fuera posible.

Se intentó editar una orden existente (abierta), pero las modificaciones no se pudieron completar correctamente. Las razones posibles incluyen fondos insuficientes para la nueva orden, algunos escenarios de ejecución parcial y algunas órdenes apalancadas.

El volumen nuevo es menor que el volumen ya ejecutado/completado.

El tamaño de la orden excedió el límite de tamaño de posición de margen del par de divisas.

El volumen de visualización no ha alcanzado el volumen de orden mínimo.

El volumen de visualización debe ser menor que el volumen de la orden.

Las órdenes iceberg no son compatibles con ningún otro tipo de orden, excepto con la orden límite.

Errores de financiación

Cada criptomoneda tiene un máximo de 5 nuevas direcciones de depósito (sin usar); cualquier intento de crear una sexta nueva dirección devolverá un error.

Este error se devuelve siempre que se llama a los endpoints de financiación con un parámetro "method" no válido o ausente. 

El parámetro de entrada "key" no corresponde con la descripción de la dirección establecida en la gestión de cuentas (a través de Depósito y retiro -> Retirar).

Los montos mínimos de retiro varían según la divisa y cualquier intento de retiro por debajo del mínimo generará este error.

Este es un error genérico que indica que no se pudo completar una solicitud de financiación (por ejemplo, clientes de ciertas ubicaciones que intentan realizar solicitudes de staking en cadena podrían provocar este error).

La solicitud de retiro no pudo completarse porque a la dirección de destino le falta la información necesaria del beneficiario o destinatario (tenga en cuenta que esto actualmente solo aplica a ciertos retiros desde cuentas canadienses).

Errores del estado de servicio

Los errores de servicio que experimenta deberían ser temporales. Puede que desee volver a enviar sus solicitudes, si no se han enviado. Supervisaremos los problemas y actualizaremos nuestra página:

https://status.kraken.com/

Errores internos

Cuando enfrentamos problemas de degradación en la API, estos pueden traducirse en inconvenientes para Kraken en forma de mensajes de servicio no disponible e interrupciones del sitio.

Este problema está relacionado con la seguridad de su cuenta, la cual puede haberse visto comprometida. Cambie su contraseña y la autenticación de dos factores y póngase en contacto con nuestro Centro de Atención al cliente.

Este error se produce cuando un indicador o parámetro de entrada se desactiva temporal o permanentemente. El error debe proceder de una de las entradas aprobadas. Póngase en contacto con nuestro Servicio de Atención al Cliente mediante el envío de un registro con la información completa utilizada para la llamada que generó el error.

Estos errores 5xx y 10xx no son en realidad errores de API, sino más bien errores del servidor web de CloudFlare.

Los errores de API siempre se devuelven en formato JSON, por ejemplo, "error":[“ErrorType:ErrorMessage”], por lo que cada vez que se recibe un error en un formato diferente (como un código de estado HTTP de 520, 504, 502, 1020, etc.), la solución provisional es intentar realizar de nuevo la llamada API transcurrido un breve periodo de tiempo para comprobar si se ejecuta.

¿Necesita más ayuda?