Contenido
Introducción
Requisitos previos
Probar claves de red
Descargar e instalar cartero
Creando un ambiente
Importar una colección
Ejecución de solicitudes
Pensamientos finales
Introducción
Comprender y utilizar la API de comercio de criptomonedas puede abrir un mundo de posibilidades a la hora de entrar y salir de posiciones. Con algunos conocimientos básicos de programación, puede conectarse al backend del intercambio para automatizar sus estrategias comerciales. Al omitir el sitio web, puede acceder al motor correspondiente para aplicaciones de alto rendimiento mucho más rápido.
El propósito de esta serie es presentarle la API REST de Binance y enseñarle cómo interactuar con ella. Al final, debe confiar en su capacidad para consultar los mercados y sus posiciones, y realizar varios tipos diferentes de órdenes.
En este artículo, utilizaremos Postman para comunicarnos con el intercambio. No se preocupe: no pondremos en riesgo dinero real.
Requisitos previos
Probar claves de red
Usaremos una red de prueba para nuestros propósitos. Esto nos dará unos fondos que no tienen ningún valor real y con los que podremos experimentar. Funcionan exactamente como monedas y tokens reales, por lo que una vez que te acostumbres a la API, podrás comenzar a usarla para intercambiar dinero real.
Comience yendo a Spot Test Network.
Debes iniciar sesión con una cuenta de GitHub para obtener acceso. Créalo si aún no lo has hecho.
Haga clic en "Autenticar" e inicie sesión con GitHub.
En la sección "Claves API", verás que no tienes claves registradas. Haga clic en Generar clave HMAC_SHA256 para generar un par.
En la siguiente pantalla, asigne una etiqueta a las claves. Nómbralos como quieras y haz clic en "Generar".
Se le presentarán dos claves: clave API y clave secreta. Es importante anotarlos ahora. Si no lo hace, tendrá que iniciar el proceso de generación de claves nuevamente. Recomendamos guardarlos en una aplicación de toma de notas en su computadora para copiarlos fácilmente más adelante.
Nota: Etiquetar sus claves es algo que debe hacer cuando utilice un intercambio en vivo para administrar diferentes claves. Su cuenta puede tener varias claves con diferentes permisos. Si utiliza varios robots comerciales, el uso de claves individuales con etiquetas descriptivas facilita la administración de permisos o la eliminación de claves individuales sin cambiar todos sus bots.
Descargar e instalar cartero
Postman es una plataforma para la colaboración API. Este es un punto de partida perfecto para nosotros: tendremos acceso a las colecciones de consultas de Binance para realizar pruebas sin escribir una sola línea de código.
El programa está disponible para Mac, Windows y Linux. Vaya a la página de Descargas y descargue el archivo .zip.
Después de eso, búsquelo en el explorador e instálelo. Abra la aplicación para comenzar. Tenga en cuenta que puede crear una cuenta para iniciar sesión, pero esto no es obligatorio. Si desea omitir este paso, simplemente seleccione la opción apropiada en la parte inferior de la ventana.
Creando un ambiente
En este punto deberías tener una interfaz similar a la siguiente.

Primero, necesitas crear un entorno. Es solo una forma de agregar variables al conjunto de consultas con las que vamos a trabajar. Para hacer esto, primero necesitamos obtener información del repositorio de Binance GitHub. Vaya aquí y descargue el archivo .zip.

La descarga no tardará mucho. Encuéntralo en tu explorador de archivos y descomprímelo. Luego, podemos volver a Postman.

Haga clic en el ícono de ajustes en la esquina superior derecha (como se muestra arriba). Verá una ventana emergente "Administrar entornos".
Seleccione "Importar" y navegue hasta la carpeta recién descomprimida (binance-postman-api).
Luego ingrese a la carpeta del entorno.
Ahora verá dos archivos (uno para la red principal y otro para la red de prueba). Estamos buscando binance_com_spot_testnet_api.postman_environment.json. Asegúrese de elegir la correcta porque nuestras claves no funcionan con otras.

Casi termino. Haga clic en "Binance Spot Testnet API" y verá las variables a continuación. Edite los dos parámetros resaltados en rojo insertando las claves que guardó anteriormente. Haga clic en "Actualizar" y salga de la ventana emergente.

En esta pantalla, deje en blanco los campos "marca de tiempo" y "firma". Estos dos valores se generarán automáticamente en cada solicitud.
Todavía queda algo por hacer. A la derecha del ícono de ajustes en el que hicimos clic para configurar el entorno anteriormente, verá un menú desplegable que actualmente dice "Sin entorno". Haga clic en él y seleccione "API Binance Spot Testnet".
Importar una colección
Ahora vamos a importar una colección que es un gran conjunto de consultas que hacen el trabajo pesado por nosotros. Para subirlo a nuestro entorno siga estos pasos:
Haga clic en "Importar" en la esquina superior izquierda.
En la ventana emergente, en la pestaña "Archivo", seleccione "Cargar archivos".
Nuevamente buscamos la carpeta binance-postman-api. Encuéntralo y ábrelo.
Esta vez ingrese "colecciones" en el subdirectorio.
Aquí hay dos archivos nuevamente. Uno para trabajar con la API de futuros. Pero estamos trabajando con Spot, por lo que debes seleccionar el archivo binance_spot_api_v1.postman_collection.json.
Ahora debería ver una pantalla de confirmación que identifica la importación como formato de colección Postman. Seleccione "Importar".
En la pestaña "Colecciones" en el lado izquierdo de la ventana, ahora notarás que tenemos una carpeta con más de 100 solicitudes. ¡Felicidades! Está bien. En la siguiente sección, veremos qué solicitudes podemos enviar.
Ejecución de solicitudes
Si expande las carpetas en la pestaña Colecciones, verá que tenemos toneladas de consultas diferentes que podemos realizar. Por el código de colores, puedes ver que podemos usar tres tipos de métodos:
GET: El método "GET" se utiliza para recuperar datos del servidor. Lo usaremos para obtener información sobre el saldo de su cuenta, precios de activos, etc.
POST: Generalmente utilizamos el método "POST" para crear información en el servidor. Esto es necesario para cosas como realizar pedidos, solicitar retiros, etc.
ELIMINAR: El método "ELIMINAR" es una solicitud al servidor para eliminar información. Será útil para cancelar pedidos.
Busque una lista de símbolos y reglas comerciales
¡Es hora de nuestra primera consulta! Obtendremos los símbolos que se pueden negociar en el intercambio y las reglas comerciales:
OBTENER /exchangeInfo
Esta solicitud no requiere ningún parámetro adicional; puede copiarla y pegarla en la barra de direcciones y obtendrá una respuesta. Postman facilita la visualización y modificación de consultas donde incluimos múltiples parámetros.
Para descargar esta solicitud, seleccione Mercado > Información de intercambio. Aparecerá la siguiente pestaña:

No necesitamos hacer nada más aquí, así que haga clic en "Enviar". Obtendrás la respuesta:

En la sección resaltada superior, verá información importante:
estado de respuesta (200 significa que la solicitud se realizó correctamente, 400-499 significa que tenemos un problema)
tiempo necesario para recibir una respuesta (menos de un segundo)
tamaño de respuesta (~22 KB).
El segundo campo contiene la parte principal de la respuesta. Está bellamente impreso para que sea un poco más agradable a la vista. Contiene información sobre el intercambio en sí, así como los pares con los que puede operar y sus montos mínimos/máximos.
Parece que hay mucha información, pero el formato facilita trabajar con ella mediante programación. Al escribir guiones de interacción, puede seleccionar fácilmente ciertas propiedades de ciertos elementos de la respuesta.
Comprobando el saldo de la cuenta
Comprobemos qué activos tenemos y cuántos:
OBTENER /cuentaEsta solicitud se puede encontrar en "Comercio" > "Información de cuenta". Haz clic en él y verás un diseño similar al anterior. Sin embargo, también notarás que tenemos dos nuevas variables: "marca de tiempo" y "firma". La firma es una medida de seguridad. Dado que ahora solicitamos información confidencial, esto demostrará que somos el propietario de la cuenta.
La marca de tiempo le indica al servidor cuándo se envió la solicitud. Debido a que las redes pueden no ser confiables o estar inactivas, el servidor puede recibir nuestra solicitud mucho más tarde de lo esperado. Si ha pasado demasiado tiempo, rechazará la solicitud. Puede especificar cuánto tiempo desea esperar utilizando el parámetro "recvWindow", que por defecto es 5000 milisegundos.
Postman se encarga de la creación de ambos campos por nosotros. Haga clic en "Enviar" y recibirá una respuesta. En Saldos, debería ver seis activos: BNB, BTC, BUSD, ETH, LTC y TRX. El saldo se dividirá en libre y bloqueado. No hemos bloqueado nada todavía, por lo que todos sus activos deberían estar libres.
¡Felicitaciones por su nueva (inexistente) riqueza!
Cómo saber el precio actual de un símbolo
Podemos obtener el precio actual de un activo de diferentes formas. Quizás lo más sencillo sea con esta solicitud:
OBTENER /api/v3/ticker/24hrComo habrás adivinado, esto nos dará información sobre los precios de los activos durante las últimas 24 horas. Encuéntrelo en "Mercado" > "Estadísticas de cambio de precio de cotización de 24 horas". El par predeterminado que vemos como variable de símbolo es BTCUSDT.
Puede enviarlo ahora mismo para ver un desglose de la información de precios. También puede cambiar el símbolo (a BNBBUSD, LTCUSDT, etc.) o puede desmarcar la variable para devolver datos de 40 pares.
También tenemos una llamada más simple ("Mercado" > "Symbol Price Ticker") que devuelve el precio actual al que se cotiza el activo:
OBTENER /api/v3/precioComo antes, puede cambiar la variable del símbolo o eliminarla por completo y obtener el precio más reciente para todos los símbolos.
Comprobación de la profundidad del libro de pedidos actual
La profundidad del libro de órdenes (también llamada profundidad del mercado o DOM) puede decirnos mucho sobre el mercado. Realizaremos una llamada para devolver información útil:
OBTENER api/v3/profundidadCuando lo enviamos con los valores por defecto ("Mercado" > "Libro de Órdenes"), obtenemos una respuesta que nos dice la oferta y pide BTCUSDT. El servidor testnet no generará tantos datos como el real, por lo que a continuación se muestra una captura de pantalla de lo que esperaría ver en un entorno real:

En la sección resaltada arriba, vemos el primer problema. Dado que estamos mirando el libro mayor de BTCUSDT, el número superior es el precio que alguien está dispuesto a pagar por su BTC. A continuación se muestra la cantidad que están dispuestos a comprar. Entonces, esto sugiere que esta orden solicita 0,999 BTC a una tasa de 9.704,65 USDT por BTC. Si siguiéramos desplazándonos hacia abajo, veríamos que el precio de oferta disminuye, lo que significa que al comprador se le pagará menos.
Naturalmente, la mejor oferta será la más atractiva si desea obtener beneficios. Sin embargo, si intentas vender en el mercado, digamos 3 BTC, sólo podrás vender 0,999 BTC al mejor precio. Deberá aceptar más ofertas (más baratas) hasta que su pedido se complete por completo.

Sigue desplazándote y verás la pregunta. Funcionalmente, son similares a las ofertas, excepto que son órdenes para vender BTC por USDT.
Realizar un pedido de prueba
Ahora haremos un pedido de prueba.
POST api/v3/pedido/pruebaAunque solo estamos usando fondos de testnet, esta solicitud en realidad no dará lugar a que se realice un pedido. Esto puede resultar útil para probar pedidos antes de enviarlos. Encuéntrelo en "Comercio" > "Probar nuevo pedido (COMERCIO)".

Como puede ver, tenemos aún más parámetros involucrados. Repasemos lo marcado:
símbolo: hemos visto esto antes. Este es el par que desea intercambiar.
lado – aquí indicas si quieres COMPRAR o VENDER. Para el par BTCUSDT, COMPRAR indica que desea comprar BTC por USDT, mientras que VENDER venderá BTC por USDT.
tipo: el tipo de pedido que desea enviar. Valores posibles (detalles aquí):
LÍMITE
MERCADO
DETENER LA PÉRDIDA DE
STOP_LOSS_LIMIT
SACA PROVECHO
TAKE_PROFIT_LIMIT
LIMIT_MAKER
timeInForce: este parámetro expresa cómo desea que se ejecute la orden:
GTC (Válido hasta Cancelar) es quizás la configuración más popular. GTC garantiza que su orden es válida hasta que se ejecute o hasta que la cancele.
FOK (Ejecutar o Cancelar): FOK indica al intercambio que ejecute la orden inmediatamente. Si el intercambio no puede hacer esto, el pedido será cancelado inmediatamente.
IOC (Ejecutar inmediatamente o cancelar): la orden debe ejecutarse total o parcialmente inmediatamente o será cancelada. A diferencia de FOK, las órdenes no se cancelan si pueden ejecutarse parcialmente.
La cantidad es simplemente la cantidad del activo que desea comprar o vender.
precio: el precio al que desea vender. Para el par BTCUSDT, esto se expresa en USDT.
newClientOrderId – identificador de pedido. Este no es un campo obligatorio, pero puede configurarlo con un identificador que simplificará la consulta más adelante. De lo contrario, se genera aleatoriamente en el intercambio.
¡Bien! Ahora creemos una orden de prueba. Vamos a utilizar los valores generados automáticamente: una orden de límite de venta de 0,1 BTC por USDT a un precio de 9.000 dólares. Haga clic en "Enviar". Si todo fue exitoso, recibiremos {{}} como respuesta.
Realizar un pedido real
Es hora de realizar un pedido falso real.
ENVIAR /api/v3/orderVaya a Comercio > Nueva orden. Ya está familiarizado con los pedidos de prueba, por lo que los parámetros aquí no le sorprenderán. Dejemos todos los valores como están, pero cambiemos el precio al que estamos vendiendo a 40.000 dólares. Cambie el valor del precio para reflejar esto. Luego haga clic en "Enviar".
Si tiene éxito, su respuesta contendrá información detallada sobre el pedido.
Comprobar el estado de una orden abierta
Recibimos confirmación de que el pedido se realizó en el apartado anterior, pero ¿y si queremos comprobarlo más tarde? Tenemos varias solicitudes a nuestra disposición.
OBTENER /api/v3/openOrdersLo encontrará en "Comercio" > "Órdenes abiertas actuales (USER_DATA)". BTCUSDT está seleccionado de forma predeterminada. Si presiona "Enviar", recibirá todas sus órdenes BTCUSDT abiertas (hasta ahora solo debería ver la que configuramos anteriormente). Puede omitir el símbolo, que en su lugar devolverá todas sus órdenes abiertas.
OBTENER /api/v3/allOrders"Negociar" > "Todas las órdenes (USER_DATA)" le brinda una descripción general de todas las órdenes, no solo de las abiertas. Aquí debes especificar el símbolo. "orderId", "startTime", "endTime" son parámetros opcionales que pueden ayudarle a refinar su búsqueda. Los dejaremos aquí, así que desmarca las casillas. Haga clic en "Enviar" y verá la misma respuesta que antes. Si has tenido pedidos cerrados o cancelados, también los verás aquí.
Finalmente, podemos solicitar pedidos específicos utilizando:
OBTENER /api/v3/orderConsíguelo en "Comercio" > "Consulta de pedido (USER_DATA)". Deberá especificar "orderId" u "origClientOrderId" (una etiqueta opcional "newClientOrderId" que se puede agregar a los pedidos). Desmarque "Id. de pedido". Para "origClientOrderId" proporcionaremos la etiqueta predeterminada que se usó antes: "my_order_id_1". Complete el campo y haga clic en "Enviar" para recibir una respuesta.
Cancelación de orden
Después de un tiempo, podemos decidir que el objetivo de $40 000 es demasiado optimista, por lo que queremos cancelar la orden. En este caso usaríamos:
ELIMINAR /api/v3/orderEn "Negociar" > "Cancelar orden", una consulta que nos permitirá resaltar las órdenes para cancelación. Desmarque "orderId" y "newClientOrderId" y pase "my_order_id_1" como valor de "origClientOrderId".
Cuando envíe esta solicitud, el pedido será devuelto. Si te desplazas hacia abajo hasta "estado", verás que efectivamente está cancelado. Para confirmar esto, use nuevamente el punto final GET /api/v3/openOrders (con una lista vacía) o GET /api/v3/order con origClientOrderId .
Desenfoque del pedido, que se completa al instante.
Nuestra orden anterior no se ejecutó porque era una orden limitada que solo funcionará cuando el precio de BTC alcance los $40,000. En el caso de una orden de mercado, básicamente estamos diciendo "comprar/vender al precio al que se cotiza actualmente el activo". Este pedido se completará instantáneamente.
Para ello, volvamos a "Comercio" > "Nueva Orden". Vamos a demostrar el tipo de respuesta (newOrderRespType), que es un parámetro que podemos configurar dependiendo de la respuesta que queramos recibir del servidor. Aquí hay tres opciones: ACK, RESULTADO o COMPLETO; puede ver ejemplos de cada respuesta aquí. Vamos a utilizar un “ACK” que nos dará una confirmación sencilla de que se ha recibido el pedido.
A continuación puede ver que vamos a enviar una orden de mercado para vender BNB por BUSD al precio de mercado actual.

Tenga en cuenta que la respuesta nos proporciona información mínima:

Puede verificar que el pedido se haya completado a través del punto final /api/v3/allOrders.
Comprobando tus ofertas
Finalmente, veamos un punto final para verificar sus transacciones:
OBTENER /api/v3/myTradesLa solicitud se encuentra en la sección "Comercio" > "Lista de comercio de cuentas (USER_DATA)". Le permite verificar cada transacción mediante un símbolo específico. Si desea ver todas sus operaciones para el símbolo predeterminado (BTCUSDT), simplemente desmarque "startTime", "endTime" y "fromId". La respuesta arrojará hasta 500 operaciones; simplemente cambie el límite si desea ver más.
Depuración con cartero
En Postman, también puede exponer la solicitud y respuesta HTTP sin formato.

Este menú abrirá la consola Postman, que muestra los detalles de cada solicitud.

Pensamientos finales
El propósito de esta guía es presentarle la API de Binance sin escribir una sola línea de código. Si ha completado todos los pasos necesarios, ahora debería comprender cómo podemos solicitar y enviar información.
En las próximas partes de esta serie, presentaremos algunos conceptos básicos de codificación que nos permitirán automatizar la compra y venta de criptomonedas y otros activos digitales.
¿Tienes alguna otra pregunta? Visite nuestro creciente foro de la comunidad de desarrolladores de Binance o consulte la documentación.
