API

Aprenda sobre nuestra API

WebSockets API

Documentación de WebSockets

REST API

Uso General

NOTA: Todas las URLs de la API deben usar el dominio api.kraken.com.

Debe proporcionar un string de agent de usuario al crear una cabecera de solicitud o de lo contrario no podrá conectarse a la API.

Kraken tiene habilitada la 'Revisión de integridad del navegador'.

Es posible que reciba un error si sus encabezados de solicitud les falta el agente de usuario o utilizan uno no estándar.

Si no puede crear ninguna solicitud estándar que permita nuestro sistema, envíenos una copia completa de la(s) solicitude(es) que intenta obtener, incluyendo las IP completas y todas las cabeceras. Esta información nos permitirá investigar más a fondo..

Los métodos públicos pueden utilizar GET o POST.

Los métodos privados deben utilizar POST y ser configurados de la siguiente manera:

Cabecera HTTP:

API-Key = Clave API
API-Sign = Firma del mensaje utilizando el hash HMAC-SHA512 de (dirección URI + SHA256(nonce + POST data)) y el valor base64 de la clave API

Datos POST:

nonce = número entero de 64 bits sin signo, siempre en aumento.
otp = clave verificación en dos pasos (en caso de tener la verificación en dos pasos activado, de lo contraria no es requerido)

Nota: No es posible reiniciar el valor del nonce a un valor menor, asegúrese de utilizar un método de generación que no genere nunca números menores a los ya existentes. Se recomienda usar un contador persistente o la hora actual con una precisión de centésimas de segundo o mayor. Demasiadas peticiones con valores de nonces menores que el último nonce válido (EAPI:nonce inválido) pueden resultar en bloqueos temporales.

Nota: Algunas peticiones pueden llegar fuera de orden o el protocolo NTP puede ocasionar que su reloj se retrase, resultando en problemas con el nonce. Si se encuentra con este problema, puede cambiar el intervalo del nonce desde los ajustes de API de su cuenta. El valor del intervalo dependerá de su método para incrementar el nonce. Según el tipo de conectividad disponible, se recomienda establecer un valor que tolere entre 3-15 segundos de problemas de red.

Las llamadas API que requieren indicar un valor de activo/divisa pueden hacer uso del nombre ISO4217-A3 en el caso de los nombres con registro ISO, de su código de 3 letras habitual para los nombre sin registrar, o de su código X-ISO4217-A3 (vea http://www.ifex-project.org/).

Las respuestas serán en formato JSON presentando la siguiente estructura:

error = array de mensajes de error con el siguiente formato:
    <char-severity code><string-error category>:<string-error type>[:<string-extra info>]
    código severo puede ser E en caso de error o W si se trata de un aviso
result = resultado de la llamada API (puede no existir en caso de haber errores)

Nota: Se debe tener cuidado al tratar cualquier número representado como string, ya que podría desbordar los tipos de datos estándar.

Límites de llamadas API

También disponemos de medidas de seguridad para proteger contra los abusos o ataques de tipo DoS así como la manipulación del libro de órdenes causada por la rápida colocación y cancelación de órdenes.

Cada usuario de nuestra API tiene un "contador de llamadas" que comienza en 0.

Las llamadas del historial del libro mayor/trading aumentan el contador en 2.

Las llamadas de Crear/Cancelar órdenes no afectan al contador.

Todas las demás llamadas de la API aumentan el contador en 1.

El contador del usuario se reduce cada pocos segundos, y si el contador supera los accesos máximos, las llamadas a la API del usuario se suspenderán durante 15 minutos. Los usuarios de nivel Básico tienen un máximo de 15 y su conteo se reduce en 1 cada 3 segundos. Los usuarios de los niveles Intermedio y Pro tienen un máximo de 20; La cuenta se reduce en 1 cada 2 segundos para usuarios de nivel Intermedio, y se reduce en 1 cada segundo para usuarios de nivel Pro.

Aunque crear y cancelar órdenes no aumenta el contador, existen límites para evitar la manipulación del libro de órdenes. Realizando órdenes con el fin de ser completadas y mantenerse en el ratio de 1 llamada/segundo es generalmente suficiente para no alcanzar este límite.

Datos públicos de mercado

Obtener la hora del servidor

URL: https://api.kraken.com/0/public/Time

Resultado: Hora del servidor

unixtime = marca de tiempo unix
rfc1123 = formato de tiempo RFC 1123

Nota: Esto permite ayudar a aproximar el desfase entre el servidor y el cliente

Obtener información de un activo

URL: https://api.kraken.com/0/public/Assets

Entrada:

info = información deseada (opcional):
    info = toda la información (por defecto)
aclass = clase del activo (opcional): 
    divisa (por defecto)
asset = lista separada por comas de activos sobre los que se desean datos (opcional.  por defecto = all (todos) para la clase de activo seleccionado)

Resultado: array con los nombres de los activos y su información asociada

<asset_name> = nombre del activo
    altname = nombre alternativo
    aclass = clase del activo
    decimals = número de decimales deseado en los registros
    display_decimals = número de decimales a mostrar en la salida

Obtener pares de activos negociables

URL: https://api.kraken.com/0/public/AssetPairs

Entrada:

info = información deseada (opcional):
    info = toda la información (por defecto)
    leverage = datos del apalancamiento
    fees = tabla de tarifas
    margin = datos del margen
pair = lista separada por comas de pares de activos sobre los que se desean datos (opcional.  por defecto = all (todos))

Resultado: array con los nombres de los pares y su información asociada

<pair_name> = nombre del par
    altname = nombre alternativo del par
    wsname = nombre del par WebSocket (si está disponible)
    aclass_base = clase del activo base
    base = id del activo base
    aclass_quote = clase del activo cotizado
    quote = id del activo cotizado
    lot = tamaño del lote (volumen)
    pair_decimals = número de decimales para el par
    lot_decimals = número de decimales para el volumen
    lot_multiplier = factor de multiplicación del tamaño del lote para obtener el volumen de la divisa
    leverage_buy = array del  apalancamiento disponible al comprar
    leverage_sell = array del apalancamiento disponible al vender
    fees = array con la tabla de tarifas en tuples [volumen, porcentaje tarifa]
    fees_maker = array con la tabla de tarifas tipo maker en tuples tipo [volumen, porcentaje de la comisión] (si se aplica maker/taker)
    fee_volume_currency = divisa del descuento por volumen
    margin_call = nivel de llamada de margen 
    margin_stop = nivel de liquidación del margen 

Nota: Si un par de activos está en la tabla de tarifas tipo maker/taker, el lado taker se dará en "fees" y el maker en "fees_maker". El resto de pares se darán en "fees".

Información de Ticker

URL: https://api.kraken.com/0/public/Ticker

Entrada:

pair = lista separada por comas de pares de activos sobre los que se desean datos

Resultado: array con nombres de los pares y la información asociada de su ticker

<pair_name> = nombre del par
    a = array de ofertas(<precio>, <lote completo de volumen>, <lote del volumen>),
    b = array de demandas(<precio>, <lote completo de volumen>, <lote del volumen>),
    c = array de últimas operaciones(trades) cerradas(<precio>, <lote del volumen>),
    v = array de volumen(<hoy>, <últimas 24 horas>),
    p = array del precio promedio ponderado por volumen(<hoy>, <últimas 24 horas>),
    t = array de número de operaciones(<hoy>, <últimas 24 horas>),
    l = array de mínimos(<hoy>, <últimas 24 horas>),
    h = array de máximos(<hoy>, <últimas 24 horas>),
    o = precio de apertura para hoy

Nota: El precio de hoy comienza a las 00:00:00 UTC

Obtener datos OHLC (Apertura Máximo Mínimo Cierre)

URL: https://api.kraken.com/0/public/OHLC

Entrada:

pair = par de activos sobre los que se desea obtener datos OHLC del 
intervalo = intervalo temporal en minutos (opcional):
	1 (por defecto), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = devuelve datos OHLC a partir del valor since (opcional. exclusivo)

Resultado: array de nombre de los pares y datos OHLC asociados

<pair_name> = nombre del par
    array de arrays(<hora>, <apertura>, <máximo>, <mínimo>, <cierre>, <vwap>, <volumen>, <count>)
last = valor a usar como since al pedir nuevos datos OHLC

Nota: la última entrada en el array OHLC es para el intervalo actual, aún sin confirmar y siempre estará presente, independientemente del valor del campo "since".

Obtener libro de órdenes

URL: https://api.kraken.com/0/public/Depth

Entrada:

pair = par de activos sobre los que se desea obtener datos del libro de órdenes
count = número máximo de ofertas/demandas (opcional)

Resultado: array con nombres de pares y profundidad del mercado

<pair_name> = nombre del par
    asks = lado de ofertas de las entradas del array del array(<precio>, <volumen>, <timestamp>)
    bids = lado de demandas de las entradas del array del array(<precio>, <volumen>, <timestamp>)

Obtener operaciones recientes

URL: https://api.kraken.com/0/public/Trades

Input:

pair = par de activos para obtener datos de operación 
since = devuelve datos de operación de la identificación dada (opcional. exclusivo)

Result: array de nombre de par y datos de operación recientes

<pair_name> = nombre del par
entradas del array del array (<precio>, <volumen>, <hora>, <compra/venta>, <mercado/limite>, <varios>)
last = ID para ser utilizado como desde cuando sondear nuevos datos de operación

Obtener datos de spread recientes

URL: https://api.kraken.com/0/public/Spread

Entrada:

pair = par de activos sobre el que desea obtener datos del spread
since = devuelve datos del spread desde el momento indicado (opcional.  inclusivo)

Resultado: array de nombres de pares y datos de spread recientes

<pair_name> = nombre del par
    entradas del array de array(<hora>, <demanda>, <oferta>)
last = id a utilizar en el campo since para pedir nuevos datos de spread

Nota: "since" es inclusivo, si se obtiene datos con el mismo valor de hora que datos anteriores estos deben reemplazar todo el set de entradas de esa hora

Datos privados del usuario

Obtener balance de la cuenta

URL: https://api.kraken.com/0/private/Balance

Resultado: array de nombre de activos y balances

Obtener el balance disponible para operar

URL: https://api.kraken.com/0/private/TradeBalance

Entrada:

aclass = clase del activo (opcional): 
    divisa (por defecto)
asset = activo base para determinar el balance (por defecto = ZUSD)

Resultado: array de balances para trading

eb = balance equivalente (balance combinado de todas las divisas)
tb = balance para trading (balance del capital combinado de todas las divisas)
m = cantidad del margen disponible de todas las posiciones abiertas
n = ganancia/pérdida neta no realizada de posiciones abiertas
c = coste base de las posiciones abiertas
v = valoración temporal actual de las posiciones abiertas
e = patrimonio neto = balance para trading + ganancia/pérdida neta no realizada
mf = margen libre = capital - margen inicial (margen máximo disponible para abrir nuevas posiciones)
ml = nivel de margen = (capital/margen inicial) * 100

Nota: Las tasas utilizadas para la valoración temporal son la media entre los mejores precios de oferta y venta

Obtener órdenes abiertas

URL: https://api.kraken.com/0/private/OpenOrders

Entrada:

trades = incluir los trades o no en la respuesta (opcional.  por defecto = false)
userref = restringir los resultados a la ID de referencia del usuario (opcional)

Resultado: array con información sobre las órdenes con arrays abiertos indexados por txid

refid = id de referencia de la transacción que creó esta orden
userref = id de referencia del usuario
status = estado de la orden:
    pending = orden en espera de entrar al libro
    open = orden abierta
    closed = orden cerrada
    canceled = orden cancelada
    expired = orden caducada
opentm = marca de tiempo Unix de cuando se realizó la orden
starttm = marca de tiempo de Unix de la hora de inicio de la orden (o 0 si no está configurado)
expiretm = marca de tiempo de Unix de la hora de finalización de la orden (o 0 si no está configurado)
descr = información de descripción de la orden
    pair = par de activos
    type = tipo de orden (compra/venta)
    ordertype = tipo de orden (Ver Añadir orden estándar)
    price = precio primario
    price2 = precio secundario
    leverage = cantidad de apalancamiento
    order = descripción de la orden
    close = descripción de orden de cierre condicional (si es un conjunto de cierre condicional)
vol = volumen de la orden (divisa base a menos que viqc se establezca en oflags)
vol_exec = volumen ejecutado (divisa base a menos que viqc se establezca en oflags)
cost = costo total (divisa de cotización a menos que viqc se establezca en oflags)
fee = tarifa total (divisa de cotización)
price = precio promedio (divisa de cotización a menos que viqc se establezca en oflags)
stopprice = stop precio (divisa de cotización, para paradas finales)
limitprice = precio límite activado (divisa de cotización, cuando se activa el tipo de orden basado en el límite)
misc = lista delimitada por comas de información variada
    stopped = activado por precio de stop
    touched = activado por precio de toque
    liquidated = liquidada
    partial = llenado parcial
oflags = lista delimitada por comas de banderas de orden
    viqc = volumen en divisa de cotización
    fcib = tarifa preferida en la divisa base (por defecto si se vende)
    fciq = tarifa preferida en divisa de cotización (por defecto si compra)
    nompp = sin precio de protección mercado
trades = array de ids de operaciones relacionadas con la orden (si se solicita información de operaciones y datos disponibles)

Nota: A menos que se indique lo contrario, los costes, tarifas, precios y volúmenes están en la escala del par de activos, no en la escala de la divisa. Por ejemplo, si el par de activos usa un tamaño de lote que tiene una escala de 8, el volumen usará una escala de 8, incluso si la divisa que representa sólo tiene una escala de 2. De manera similar, si la escala de precios del par de activos es 5, la escala se mantendrá como 5, incluso si la divisa subyacente tiene una escala de 8.

Obtener órdenes cerradas

URL: https://api.kraken.com/0/private/ClosedOrders

Entrada:

trades = incluir o no intercambios en la salida (opcional. por defecto = false)
userref = restringir los resultados a un ID de referencia del usuario dado (opcional)
start = marca de tiempo de Unix del inicio de la orden u orden tx id de resultados (opcional. exclusivo)
end = marca de tiempo de Unix del fin de la orden o el orden tx id de los resultados (opcional. inclusivo)
ofs = resultado offset
closetime = que tiempo usar (opcional)
    open (apertura)
    close (cierre)
    both (ambos - por defecto)

Resultado: array con información de la orden

closed = array de información de orden. Consulte  Obtener órdenes abiertas . Campos Adicionales:
    closetm = marca de tiempo unix de cuando la orden fue cerrada
    reason = información adicional sobre el estado (si existe)
count = cantidad de información de orden disponible que coincide con los criterios

Nota: Los tiempos dados por los IDs de tx de orden son más precisos que las marcas de tiempo de Unix. Si se proporciona un ID de tx de la orden para el tiempo, se utiliza el tiempo de apertura de la orden

Consultar información de órdenes

URL: https://api.kraken.com/0/private/QueryOrders

Entrada:

trades = si se incluyen o no las operaciones en la salida (opcional. predeterminado = false)
userref = restringir los resultados a un ID de referencia de usuario dado (opcional)
txid = lista delimitada por comas con los IDs de transacción sobre la que que se desea consultar información  (50 como máximo)

Resultado: array asociativo con información de órdenes

<order_txid> = información de la orden. Consulte Obtener órdenes abiertas/Obtener órdenes cerradas

Obtener historial de operaciones

URL: https://api.kraken.com/0/private/TradesHistory

Entrada:

type = tipo de operación (opcional)
    all = todos los tipos (por defecto)
    any position = cualquier posición (abierta o cerrada)
    closed position = posiciones que han sido cerradas
    closing position = cualquier operación que cierre todo o parte de una posición
    no position = operaciones sin posición
trades = si se incluyen o no operaciones relacionadas con la posición en la salida (opcional. predeterminado = false)
start = inicio desde la marca de tiempo Unix dada o el tx id de una operación (opcional. exclusivo)
end = fin desde de la marca de tiempo Unix dada o el tx id de una operación (opcional. inclusivo)
ofs = resultado offset

Resultado: array con información sobre las operaciones

    trades = array con información sobre la operación con txid como clave
    ordertxid = orden responsable de la ejecución de la operación
    pair = par de activos
    time = marca de tiempo Unix de la operación
    type = tipo de orden (compra/venta)
    ordertype = tipo de orden
    price = precio promedio sobre el que fue ejecutada la orden (divisa de cotización)
    cost = costo total de la orden (divisa de cotización)
    fee = tarifa total (divisa de cotización)
    vol = volumen (divisa base)
    margin = margen inicial (divisa de cotización)
    misc = lista delimitada por comas de información variada
        closing = la operación cierra todo o parte de una posición
count = cantidad de información de operaciones disponibles que coinciden con los criterios

Si la operación abrió una posición, los siguientes campos también están presentes en la información de respuesta:

    posstatus = estado de posición (abierto/cerrado)
    cprice = precio promedio de la porción cerrada de la posición (divisa de cotización)
    ccost = costo total de la porción cerrada de la posición (divisa de cotización)
    cfee = tarifa total de la porción cerrada de la posición (divisa de cotización)
    cvol = volumen total de la porción cerrada de la posición (divisa de cotización)
    cmargin = margen total liberado en la parte cerrada de la posición (divisa de cotización)
    net = ganancia/pérdida neta de la porción cerrada de la posición (divisa de cotización, escala de divisa de cotización)
    trades = lista de operaciones de cierre para la posición (si está disponible)

Nota:

  • A menos que se indique lo contrario, los costes, tarifas, precios y volúmenes están en la escala del par de activos, no en la escala de la divisa.
  • Los tiempos dados por los ID de tx de las órdenes son más precisos que las marcas de tiempo de Unix.

Información de consultas de operaciones

URL: https://api.kraken.com/0/private/QueryTrades

Entrada:

txid = lista delimitada por comas de IDs de transacción para consultar información sobre (20 como máximo)
trades = si se incluyen o no operaciones relacionadas con la posición en la salida (opcional. predeterminado = false)

Resultado: array asociativa de información de operaciones

<trade_txid> = información comercial. Consulte  Obtener historial de transacciones

Obtener posiciones abiertas

URL: https://api.kraken.com/0/private/OpenPositions

Entrada:

txid = lista delimitada por comas de IDs de transacción para restringir la salida
docalcs = si incluir o no los cálculos de ganancias/pérdidas (opcional. predeterminado = false)
consolidation = en qué consolidar los datos de las posiciones (opcional).
    market = consolidará posiciones basadas en el par del mercado

Resultado: array asociativa con información de posición abierta

Nota:

El uso del campo opcional de consolidación dará como resultado una vista consolidada de los datos que se devuelven.

<position_txid> = información de posición abierta
    ordertxid = ID de la orden responsable de la ejecución de la operación
    pair = par de activos
    time = marca de tiempo unix para la operación
    type = tipo de orden utilizada para abrir la posición (compra/venta)
    ordertype = tipo de orden usado para abrir la posición
    cost = costo de apertura de la posición (divisa de cotización a menos que viqc se establezca en oflags)
    fee = tarifa de apertura de la posición (divisa de cotización)
    vol = volumen de la posición (divisa base a menos que viqc se establezca en oflags)
    vol_closed = volumen de posición cerrado (divisa base a menos que viqc establecido en oflags)
    margin = margen inicial (divisa de cotización)
    value = valor actual de la posición restante (si se solicita docalcs. divisa de cotización)
    net = ganancia/pérdida no realizada de la posición restante (si se solicita docalcs. divisa de cotización, escala de divisa de cotización)
    misc = lista delimitada por comas de información variada
    oflags = lista delimitada por comas de banderas de orden
        viqc = volumen en divisa cotizada

Nota: a menos que se indique lo contrario, los costos, tarifas, precios y volúmenes se encuentran en la escala del par de activos, no en la escala de la divisa.

Obtener información de los libros mayores

URL: https://api.kraken.com/0/private/Ledgers

Entrada:

aclass = clase de activo (opcional):
divisa (por defecto)
asset = lista delimitada por comas de activos para restringir la salida (opcional. predeterminado = all)
type = tipo de libro a obtener (opcional):
    all (por defecto)
    deposit
    withdrawal
    trade
    margin
start = inicio de marca de tiempo de Unix o libro mayor con id de resultados (opcional. exclusivo)
end = fin de marca de tiempo de Unix o libro mayor con id de resultados (opcional. inclusive)
ofs = resultado offset

Resultado: array con información de libros mayores

<ledger_id> = información del libro mayor
    refid = ID de referencia
    time = marca de tiempo unix del libro
    type = tipo de entrada de libro mayor
    aclass = clase de activo
    asset = activo
    amount = cantidad de la transacción
    fee = tarifa de transacción
    balance = balance resultante

Nota: los tiempos dados por los identificadores del libro mayor son más precisos que las marcas de tiempo Unix.

Consulta de libros mayores

URL: https://api.kraken.com/0/private/QueryLedgers

Entrada:

id = lista delimitada por comas de ID del libro mayor para obtener información (20 como máximo)

Resultado: array con información de libros mayores

<ledger_id> = información del libro mayor. Consulte Obtenga información de los libros mayores

Obtener volumen de operaciones

URL: https://api.kraken.com/0/private/TradeVolume

Entrada:

pair = lista delimitada por comas de pares de activos para obtener información sobre tarifas (opcional)
fee-info = si incluir o no la información de la tarifa en los resultados (opcional)

Resultado: array asociativa

currency = divisa de volumen
volume = volumen de descuento actual
fees = conjunto de pares de activos e información de nivel de tarifa (si se solicita)
    fee = tarifa actual en porcentaje
    minfee = tarifa mínima por par (si no es tarifa fija)
    maxfee = tarifa máxima por par (si no es tarifa fija)
    nextfee = tarifa del siguiente nivel de verificación del par (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    nextvolume = nivel de volumen del siguiente nivel de verificación de la cuenta (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    tiervolume = nivel de volumen del nivel de verificación de la cuenta actual (si no es una tarifa fija. nil si está en el nivel de tarifa más bajo)
fees_maker = conjunto de pares de activos e información del nivel de tarifa maker (si se solicita) para cualquier par en el listado maker/taker
    fee = tarifa actual en porcentaje
    minfee = tarifa mínima por par (si no es tarifa fija)
    maxfee = tarifa máxima por par (si no es tarifa fija)
    nextfee = tarifa del siguiente nivel de verificación por par (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    nextvolume = nivel de volumen del siguiente nivel de verificación (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    tiervolume = nivel de volumen del nivel de verificación de la cuenta actual (si no es una tarifa fija. nil si está en el nivel de tarifa más bajo)

Nota: si un par de activos está en un programa de tarifas de maker/taker, el lado del taker se da en "fees" y el lado del maker en "fees_maker". Para parejas que no están en maker/taker, sólo se darán en "fees".

Solicitar informe de exportación

URL: https://api.kraken.com/0/private/AddExport

Entrada:

description = información de descripción del reporte
report = tipo de reporte (operaciones/libro mayor)
format = (CSV/TSV) (opcional.  por defecto = CSV)
fields = lista separada por comas de los campos a incluir en el reporte (opcional.  por defecto = todos)
    Nota: las opciones de campo se basan en el tipo de reporte
    <operaciones>
        ordertxid
        time
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <libro mayor>
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance
    asset = lista separada por comas de los activos a los cuales se restringe la salida (opcional.  por defecto = todos)
    starttm = fecha de inicio del reporte (opcional.  por defecto = Un (1) año antes de hoy):
        <n> = marca de tiempo unix para el inicio
    endtm = fecha final del reporte (opcional.  por defecto = ahora mismo):
        <n> = marca de tiempo unix para el final

Resultado:

id = id del reporte

Errores: Los errores incluyen (pero no están limitados a ):

EGeneral: Argumentos inválidos
EQuery: Par de activos desconocido

Obtener estados de exportación

URL: https://api.kraken.com/0/private/ExportStatus

Entrada:

report = tipo de reporte (operaciones/libro mayor)

Resultado: array de reportes y su información asociada

id = identificación de reporte
descr = información de descripción del reporte
formato = (CSV/TSV)
report = tipo de reporte (operaciones/libros mayores)
status = estado de la solicitud:
    Queued = El reporte se encuentra en cola para su creación
    Processing = el reporte está siendo procesado
    Processed = el reporte ha sido procesado
createdtm = fecha de creación del reporte
expiretm = fecha de vencimiento del reporte
starttm = fecha de inicio del reporte
endtm = fecha final del reporte
completedtm = tiempo en que se completó el reporte
aclass = clase de activo
asset = lista separada por comas de los activos
fields = lista separada por comas de los campos
    <Operaciones>
        txid
        ordertxid
        pair
        time
        type
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <Libro mayor>
        txid
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance

Errores: Los errores incluyen (pero no se limitan a):

EGeneral: Argumentos inválidos

Obtener informe de exportación

URL: https://api.kraken.com/0/private/RetrieveExport

Entrada:

id = identificación de reporte

Resultado: archivo binario comprimido como zip que contiene el reporte

Nota: Si el tipo de contenido no es application/json, text, o html, el reporte binario será transmitido de nuevo. Si es uno de esos tipos puede encontrar un error en la respuesta.

Nota: Dependiendo del tipo de reporte y los campos elegidos, el reporte podría tener los siguientes campos. Los campos con * siempre están presentes.

<operaciones>
    *txid
    ordertxid
    *pair
    time
    *type
    ordertype
    price
    cost
    fee
    vol
    margin
    misc
    ledgers
<libro mayor>
    *txid
    refid
    time
    type
    aclass
    asset
    amount
    fee
    balance

Eliminar informe de exportación

URL: https://api.kraken.com/0/private/RemoveExport

Entrada:

type = Tipo de eliminación (cancelar/borrar)
id = identificación del reporte

Resultado: booleano con el resultado del llamado

cancel/delete = tipo de eliminación

Nota: El tipo eliminación sólo puede usarse para un reporte que ya ha sido procesado mientras que cancelar se utiliza para estados en cola y procesando.

Errores: los errores incluyen (pero no se limitan a ):

EGeneral:Argumentos inválidos
WExport:Procesado previamente

Nota: En el caso de que ya se haya realizado una operación de cancelación o eliminación en un ID de un informe en particular, obtendrá el error WExport: Procesado previamente.




Trading de usuario privado

Agregar orden estándar

URL: https://api.kraken.com/0/private/AddOrder

Entrada:

pair = par de activos
type = tipo de orden (compra/venta)
ordertype = orden de tipo:
    market
    limit (price = precio límite)
    stop-loss (price = precio de stop loss)
    take-profit (price = precio de take profit)
    stop-loss-profit (price = precio de stop loss, price2 = precio de take profit)
    stop-loss-profit-limit (price = precio de stop loss, price2 = precio de take profit)
    stop-loss-limit (price = activa precio de take profit, price2 = precio límite activado)
    take-profit-limit (price = activa precio de take profit, price2 = precio límite activado)
    trailing-stop (price = trailing stop offset)
    trailing-stop-limit (price = trailing stop offset, price2 = límite de compensación activado)
    stop-loss-and-limit (price = precio de stop loss, price2 = precio límite)
    settle-position
price = precio (opcional. depende del tipo de orden)
price2 = precio secundario (opcional. depende del tipo de orden)
volume = volumen de orden en lotes
leverage = cantidad de apalancamiento deseado (opcional. predeterminado = ninguno)
oflags = lista delimitada por comas de banderas de orden (opcional):
    viqc = volumen en divisa de cotización (no disponible para órdenes apalancadas)
    fcib = tarifa preferente en la divisa base
    fciq = tarifa preferente en la divisa cotizada
    nompp = sin protección de precios de mercado
    post = publicar solo orden (disponible cuando ordertype = limit)
starttm = hora de inicio programada (opcional):
    0 = ahora (por defecto)
    + <n> = hora de inicio programada <n> segundos a partir de ahora
    <n> = marca de tiempo Unix de inicio
expiretm = tiempo de expiración (opcional):
    0 = sin caducidad (por defecto)
    + <n> = expirar <n> segundos a partir de ahora
    <n> = marca de tiempo Unix de expiración
userref = ID de referencia del usuario. Número firmado de 32 bits. (Opcional)
validate = solamente valida entradas, no envía la orden (opcional)

orden de cierre opcional para agregar al sistema cuando la orden se llena:
    close[ordertype] = tipo de orden
    close[price] = precio
    close[price2] = precio secundario

Resultado:

descr = información de descripción de la orden
    order = descripción de la orden
    close = descripción de orden de cierre condicional (si es un conjunto de cierre condicional)
txid = array con IDs de transacción de las órdenes (si la orden se agregó correctamente)

Errores: los errores incluyen (pero no se limitan a):

EGeneral: Argumentos inválidos
EService: No disponible
ETrade: Solicitud inválida
EOrder: No se puede abrir la posición
EOrder: No se puede abrir la posición opuesta
EOrder: Margen de margen excedido
EOrder: Nivel de margen demasiado bajo
EOrder: Margen insuficiente (el intercambio no tiene fondos suficientes para permitir operaciones con margen)
EOrder: Fondos insuficientes (fondos de usuario insuficientes)
EOrder: Orden mínima no cumplida (volumen demasiado bajo)
EOrder: Límite de órdenes superado
EOrder: Se ha excedido el límite de posiciones.
EOrder: Límite de tasa excedido
EOrder: Límite de órdenes programadas superado
EOrder: Posición desconocida

Nota:

  • Consulte Obtenga pares de activos de operación para obtener especificaciones sobre precios, lotes y apalancamiento de pares de activos.
  • Los precios pueden ir precedidos por +, - o # para indicar el precio como una cantidad relativa (con la excepción de trailing stops, que son siempre relativas). + agrega la cantidad al precio actual ofrecido. - Resta la cantidad del precio actual ofrecido. # agregará o restará la cantidad al precio actual ofrecido, dependiendo del tipo de orden utilizado. Los precios relativos pueden tener un sufijo con un % para indicar la cantidad relativa como un porcentaje del precio ofrecido.
  • Para las órdenes que usan apalancamiento, se puede indicar 0 para que el volumen se complete automáticamente hasta el volumen necesario para cerrar su posición.
  • Si recibe el error "EOrder: Se requiere un acuerdo de trading", consulte la página de administración de claves de la API para obtener más detalles.

Cancelar orden abierta

URL: https://api.kraken.com/0/private/CancelOrder

Entrada:

txid = ID de transacción

Resultado:

count = número de órdenes canceladas
pending = si está configurado, las órdenes que tienen cancelación pendiente

Nota: txid puede ser un ID de referencia de usuario.

Depósitos y retiros de usuarios privados

NOTA:Esta es una API de depósitos y retiros provisional y puede actualizarse en el futuro. Por favor refiérase a la página principal de APIpara obtener más información sobre el uso de la API.

Obtener métodos de depósito

URL: https://api.kraken.com/0/private/DepositMethods

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo siendo depositado

Resultado: array asociativa de métodos de depósito:

method = nombre del método de depósito
limit = cantidad neta máxima que se puede depositar en este momento, o falso si no hay límite
fee = cantidad de tarifas que se pagarán
address-setup-fee = si el método tiene o no una tarifa de configuración de dirección (opcional)

Obtener direcciones de depósito

URL: https://api.kraken.com/0/private/DepositAddresses

Entrada:

aclass = clave de activo (opcional):
    divisa por defecto
asset = activo siendo depositado
method = nombre del método de depósito
new = si generar o no una nueva dirección (opcional. Por defecto = falso)

Resultado: array asociativa de direcciones de depósito:

address = dirección de depósito
expiretm = tiempo de caducidad en la marca de tiempo de Unix, o 0 si no caduca
new = si se ha utilizado o no alguna vez la dirección

Obtener estado de depósitos recientes

URL: https://api.kraken.com/0/private/DepositStatus

Entrada:

aclass = clave de activo (opcional):
    divisa (por defecto)
asset = activo siendo depositado
method = nombre del método de depósito

Resultado: array del array de información de estado de depósito:

method = nombre del método de depósito utilizado
aclass = clase de activo
asset = código X-ISO4217-A3 del activo
refid =  id de referencia
txid = id del método de transacción
info = información de transacción del método
amount = cantidad depositada
fee = tarifas pagadas
time = umarca de tiempo de Unix cuando se realizó la solicitud
status = estado del depósito
status-prop = propiedades de estado adicionales (si están disponibles)
    return = una transacción de devolución iniciada por Kraken
    onhold = el depósito está en espera pendiente de revisión
Para obtener información sobre el estado, consulte los estados de transacciones financieras de IFEX.

Obtener información de retiros

URL: https://api.kraken.com/0/private/WithdrawInfo

Entrada:

aclass = clave de activo (opcional):
    divisa (por defecto)
asset = activo siendo retirado
key = nombre de la clave de retiro, como está configurado en su cuenta
amount = cantidad a retirar

Resultado: array asociativa de información de retiro:

method = nombre del método de retiro que se usará
limit = cantidad neta máxima que se puede retirar en este momento
fee = cantidad de tarifas que se pagarán

Retirar fondos

URL: https://api.kraken.com/0/private/Withdraw

Entrada:

aclass = clave de activo (opcional):
    divisa (por defecto)
asset = activo siendo retirado
key = nombre de la clave de retiro, como está configurado en su cuenta
amount = cantidad a retirar, incluyendo tarifas

Resultado: array asociativa de transacciones de retiro:

refid = id de referencia

Obtener el estado de los retiros recientes

URL: https://api.kraken.com/0/private/WithdrawStatus

Entrada:

aclass = clave de activo (opcional):
divisa por defecto
asset = activo siendo retirado
method = nombre del método de retiro (opcional)

Resultado: array de array con información del estado de retiro:

method = nombre del método de retiro utilizado
aclass = clase de activo
asset = código X-ISO4217-A3 del activo
refid = id de referencia
txid = id del método de transacción
info = información del método de transacción
amount = cantidad retirada
fee = tarifas pagadas
time = marca de tiempo de Unix cuando se realizó la solicitud
status = estado del retiro
status-prop = propiedades de estado adicionales (si están disponibles)
    cancel-pending = cancelación solicitada
    canceled = cancelada
    cancel-denied = cancelación solicitada pero fue denegada
    return = una transacción de devolución iniciada por Kraken; no se puede cancelar
    onhold = el retiro está en espera pendiente de revisión
Para obtener información sobre el estado, consulte los estados de transacciones financieras de IFEX.

Solicitar cancelación de retiro

URL: https://api.kraken.com/0/private/WithdrawCancel

Entrada:

aclass = clave de activo (opcional):
    divisa (por defecto)
asset = activo siendo retirado
refid = id de referencia del retiro 

Resultado: Cierto al tener éxito

Nota: No se puede garantizar la cancelación. Esto pondrá en una solicitud de cancelación. Dependiendo de qué tan avanzado esté el retiro proceso es posible que no sea posible cancelar el retiro.

Transferencia de monedero

URL: https://api.kraken.com/0/private/WalletTransfer

Entrada:

asset = activo siendo retirado
to = a qué monedero se transfieren los fondos
    Monedero de Futures (por defecto)
from = desde qué monedero se transfieren los fondos
    Monedero Spot (por defecto)
amount = cantidad a retirar, incluyendo tarifas

Resultado: array asociativa de transacción de transferencia:

refid = id de referencia

Autenticación de WebSockets

El cliente API debe solicitar un "token" de autenticación a través del siguiente punto final de la API REST "GetWebSocketsToken" para conectarse a los puntos finales privados de WebSockets. El token debe ser utilizado dentro de los 15 minutos posteriores a la creación. El token no expira una vez que se mantenga una conexión a un mensaje privado de WebSockets API (openOrders o ownTrades).

URL: https://api.kraken.com/0/private/GetWebSocketsToken

El token resultante se debe proporcionar en el campo "token" de cualquier nueva suscripción privada de alimentación de WebSocket:

{
    "event": "subscribe",
    "subscription": {
        "name": "ownTrades",
        "token": "secretwstoken123"
    }
}

Por favor seleccione los permisos de acceso para 'WebSockets API' mientras crea la clave API para generar el token de autenticación.

Clientes API de ejemplo

A continuación encontrará ejemplos de bibliotecas de código de cliente de API que se pueden usar al escribir su propio cliente de API. Tenga en cuenta que Payward y los autores terceros no son responsables de las pérdidas debidas a errores o el uso incorrecto de las API. Payward realizó una revisión inicial de la seguridad del código de terceros antes de enumerarlos, pero no puede responder por ningún cambio agregado desde entonces. Si tiene alguna inquietud, comuníquese con nuestro equipo de soporte.

C

Ver proyecto externo https://github.com/hANSIc99/Kraken_C_API.

C#

Ver proyecto externo https://bitbucket.org/arrivets/krakenapi.

C++

Ver proyecto externo https://github.com/voidloop/krakenapi.

GO

Ver proyecto externo https://github.com/Beldur/kraken-go-api-client.

Node.JS

Ver proyecto externo https://github.com/nothingisdead/npm-kraken-api.

PERL

Ver proyecto externo http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/.

Python 3

Ver proyecto externo https://github.com/veox/python3-krakenex.

Python 2

Ver proyecto externo https://github.com/veox/python2-krakenex.

Ruby

Ver proyecto externo https://github.com/jonatack/kraken_ruby_client.

PHP

El equipo de Kraken proporciona una biblioteca de PHP básica para interactuar con la API REST de Kraken. Los ejemplos de fuentes y uso también están disponibles en el repositorio github kraken-api-client de Payward y tiene licencia MIT.

Libreria

Utilice la clase de biblioteca para realizar llamadas a la API REST de Kraken con un cliente PHP. Determina automáticamente la ruta URL correcta del método API, genera un nonce para cada solicitud y agrega un encabezado firmado utilizando el secreto de su API y el nonce generado.

<?php
/**
 * Reference implementation for Kraken's REST API.
 *
 * See https://www.kraken.com/help/api for more info.
 *
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2013 Payward, Inc
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

class KrakenAPIException extends ErrorException {};

class KrakenAPI
{
    protected $key;     // API key
    protected $secret;  // API secret
    protected $url;     // API base URL
    protected $version; // API version
    protected $curl;    // curl handle

    /**
     * Constructor for KrakenAPI
     *
     * @param string $key API key
     * @param string $secret API secret
     * @param string $url base URL for Kraken API
     * @param string $version API version
     * @param bool $sslverify enable/disable SSL peer verification.  disable if using beta.api.kraken.com
     */
    function __construct($key, $secret, $url='https://api.kraken.com', $version='0', $sslverify=true)
    {
        $this->key = $key;
        $this->secret = $secret;
        $this->url = $url;
        $this->version = $version;
        $this->curl = curl_init();

        curl_setopt_array($this->curl, array(
            CURLOPT_SSL_VERIFYPEER => $sslverify,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_USERAGENT => 'Kraken PHP API Agent',
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true)
        );
    }

    function __destruct()
    {
        curl_close($this->curl);
    }

    /**
     * Query public methods
     *
     * @param string $method method name
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPublic($method, array $request = array())
    {
        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . '/' . $this->version . '/public/' . $method);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }

    /**
     * Query private methods
     *
     * @param string $path method path
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPrivate($method, array $request = array())
    {
        if(!isset($request['nonce'])) {
            // generate a 64 bit nonce using a timestamp at microsecond resolution
            // string functions are used to avoid problems on 32 bit systems
            $nonce = explode(' ', microtime());
            $request['nonce'] = $nonce[1] . str_pad(substr($nonce[0], 2, 6), 6, '0');
        }

        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // set API key and sign the message
        $path = '/' . $this->version . '/private/' . $method;
        $sign = hash_hmac('sha512', $path . hash('sha256', $request['nonce'] . $postdata, true), base64_decode($this->secret), true);
        $headers = array(
            'API-Key: ' . $this->key,
            'API-Sign: ' . base64_encode($sign)
        );

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . $path);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }
}

 
Ejemplo de uso

A continuación se muestran los pasos necesarios para iniciar la clase de biblioteca KrakenAPI, así como una serie de llamadas a métodos de API de ejemplo. Los conjuntos de resultados con formato se muestran debajo de cada fragmento de llamada a la API correspondiente.

Inicialización

Incluya el archivo de la biblioteca y proporcione su clave API y su secreto al crear una instancia de un objeto KrakenAPI.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('SU API KEY', 'SU SECRETO DE API');
Métodos para llamadas

Consulta una lista pública de activos y sus propiedades:

$res = $kraken->QueryPublic('Assets');
print_r($res);

Los activos devueltos están codificados por sus nombres ISO-4217-A3-X, ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBT] => Array
                (
                    [aclass] => divisa
                    [altname] => XBT
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XLTC] => Array
                (
                    [aclass] => currency
                    [altname] => LTC
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XXRP] => Array
                (
                    [aclass] => currency
                    [altname] => XRP
                    [decimals] => 8
                    [display_decimals] => 5
                )

            [ZEUR] => Array
                (
                    [aclass] => currency
                    [altname] => EUR
                    [decimals] => 4
                    [display_decimals] => 2
                )
            ...
)

Consulte la información del ticker público para el par XBT/USD:

$res = $kraken->QueryPublic('Ticker', array('pair' => 'XXBTZUSD'));
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZUSD] => Array
                (
                    [a] => Array
                        (
                            [0] => 106.09583
                            [1] => 111
                        )

                    [b] => Array
                        (
                            [0] => 105.53966
                            [1] => 4
                        )

                    [c] => Array
                        (
                            [0] => 105.98984
                            [1] => 0.13910102
                        )

                    ...
        )
)

Consultar operaciones recientes públicas para el par XBT/EUR desde 2013-08-07T18:20:42+00:00:

NOTA: el parámetro 'since' está sujeto a cambios en el futuro: su precisión puede modificarse y ya no puede ser representativa de una marca de tiempo. La mejor práctica es basarlo en el valor 'last' devuelto en el conjunto de resultados.

$res = $kraken->QueryPublic('Trades', array('pair' => 'XXBTZEUR', 'since' => '137589964200000000'));
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZEUR] => Array
                (
                    [0] => Array
                        (
                            [0] => 78.60500
                            [1] => 2.03990000
                            [2] => 1375897934.1176
                            [3] => s
                            [4] => m
                            [5] =>
                        )

                    [1] => Array
                        (
                            [0] => 79.41809
                            [1] => 2.02203000
                            [2] => 1375898123.0771
                            [3] => b
                            [4] => m
                            [5] =>
                        )

                    [2] => Array
                        (
                            [0] => 79.86999
                            [1] => 7.00000000
                            [2] => 1375898123.2587
                            [3] => b
                            [4] => m
                            [5] =>
                        )
                    ...
            )
            [last] => 137589925237491170
        )
)

Consultar saldos de activos privados:

$res = $kraken->QueryPrivate('Balance');
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [ZUSD] => 3415.8014
            [ZEUR] => 155.5649
            [XXBT] => 149.9688412800
            [XXRP] => 499889.51600000
        )

)

Consulta de órdenes privadas abiertas y operaciones relacionadas incluidas:

$res = $kraken->QueryPrivate('OpenOrders', array('trades' => true));
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [open] => Array
                (
                    [O7ICPO-F4CLJ-MVBLHC] => Array
                        (
                            [refid] =>
                            [userref] =>
                            [status] => open
                            [opentm] => 1373750306.9819
                            [starttm] => 0
                            [expiretm] => 0
                            [descr] => Array
                                (
                                    [order] => sell 3.00000000 XBTUSD @ limit 500.00000
                                )

                            [vol] => 3.00000000
                            [vol_exec] => 0.00000000
                            [cost] => 0.00000
                            [fee] => 0.00000
                            [price] => 0.00000
                            [misc] =>
                            [oflags] =>
                        )
                    ...
                )
        )
)

Añadir una orden estándar: sell 1.123 XBT/USD @ limit $120

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'sell',
    'ordertype' => 'limit',
    'price' => '120',
    'volume' => '1.123'
));
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => sell 1.12300000 XBTUSD @ limit 120.00000
                )

            [txid] => Array
                (
                    [0] => OAVY7T-MV5VK-KHDF5X
                )

        )

)

Agregue una orden estándar: compre XBT por un valor de 300€ en el mercado a las 2013-08-12T09:27:22+0000

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZEUR',
    'type' => 'buy',
    'ordertype' => 'market',
    'oflags' => 'viqc',
    'volume' => '300',
    'starttm' => '1376299642'
));
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 300.00000000 XBTEUR @ market
                )

            [txid] => Array
                (
                    [0] => ONQN65-L2GNR-HWJLF5
                )

        )

)

Agregue una orden estándar: compre 2.12345678 XBTUSD @ límite $101.9901 con un apalancamiento de 2:1, con un seguimiento de stop loss, orden de venta take profit: se detiene en una pérdida del -5%, take profit tras un aumento de precio de $10 (los precios de stop/loss firmados se determinan automáticamente usando la notación #):

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'buy',
    'ordertype' => 'limit',
    'price' => '101.9901',
    'volume' => '2.12345678',
    'leverage' => '2:1',
    'close' => array(
        'ordertype' => 'stop-loss-profit',
        'price' => '#5%',  // precio stop loss (porcentaje relativo delta)
        'price2' => '#10'  // precio take profit ( relativo delta)
    )
));
print_r($res);

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 2.12345678 XBTUSD @ límite 101.99010 con 2:1 de apalancamiento
                    [close] => close position @ stop loss -5.0000%, take profit +10.00000
                )

            [txid] => Array
                (
                    [0] => OFMYYE-POAPQ-63IMWL
                )

        )

)