Fintech / trading P2P / mercado venezolano (USDT/VES)

HYPX · Plataforma P2P para Trading Binance

Sistema en produccion para gestion de transacciones P2P USDT/VES en Binance — automatiza ciclo de vida de ordenes, asigna a operadores, sincroniza precios y orquesta chat en tiempo real con clientes.

Node.js 20React 18PostgreSQLSocket.IOBinance APIJWTVultr VPS
Antes de nosotros

El Reto

Operadores P2P en Binance manejan decenas de ordenes al dia (compra/venta de USDT con bolivares venezolanos). Cada orden requiere coordinar el pago bancario en VES, confirmar recepcion, liberar USDT, atender chat con el cliente y firmar cada peticion HTTP a Binance con HMAC-SHA256. Hacerlo manualmente — abrir Binance app, contestar chat, anotar referencia bancaria, esperar — limita el throughput a ~30 ordenes diarias por operador.

El reto era construir una plataforma que automatizara el ciclo de vida completo: PENDING → UNASSIGNED → ASSIGNED → PAID → COMPLETED. Que sincronizara automaticamente las ordenes de multiples cuentas Binance, las asignara al operador correcto segun reglas, actualizara precios de anuncios, y mantuviera chat en tiempo real entre operador y cliente — todo con auditoria completa para reconciliar despues.

Adicionalmente, integracion con Binance trae sus propios dolores: error -1021 por offset de tiempo, rate limits agresivos, IPs venezolanas bloqueadas (requiriendo proxy), y firmas HMAC que fallan silenciosamente si el timestamp diverge >1 seg del servidor de Binance.

Lo que construimos

La Solucion

Plataforma fullstack en produccion en hswappers.com con backend Node.js 20 + Express en VPS Vultr (Ubuntu 22.04, Nginx + PM2) y frontend React 18 desplegado en Netlify con auto-deploy en push a main. PostgreSQL en AWS RDS region mexico (mx-central-1) con timezone America/Caracas para alinear con operadores venezolanos.

Backend con TransactionService como motor central que orquesta el ciclo de vida + TransactionTimerService que corre 3 timers periodicos en background: listOrders (sync con Binance cada N seg), assignTransactions (asigna automaticamente al operador correcto), advsautoprice (actualiza precios de anuncios con comision). Activacion/desactivacion de cada timer via tabla system_config — sin redeploys.

Capa Binance: binanceRequest.js firma cada peticion con HMAC-SHA256 y compensa offset de tiempo automaticamente (resuelve error -1021). retryHandler con 3 reintentos + backoff exponencial. Rate limiters separados por tipo: binance API 60/min, db 100/min, write 10/min. Chat real-time entre operador y cliente via Socket.IO con sesiones identificadas por ticket.

Funcionalidades

Features Clave

Ciclo de Vida Automatizado de Transacciones

Estados PENDING → UNASSIGNED → ASSIGNED → PAID → COMPLETED con transiciones controladas. TransactionService orquesta cada cambio. Imposible saltar pasos. Auditoria completa por transaccion.

Sync Automatico con Binance via Timers

TransactionTimerService corre 3 daemons en background: listOrders sincroniza ordenes nuevas, assignTransactions las asigna a operadores segun reglas, advsautoprice actualiza precios con comision. Activables/desactivables via system_config sin redeploy.

Firmado HMAC-SHA256 con Compensacion de Tiempo

Cada peticion a Binance se firma con HMAC-SHA256. binanceRequest.js mantiene un offset de tiempo dinamico contra el server time de Binance — elimina el error -1021 silencioso que arruina muchas integraciones.

Chat en Tiempo Real Operador ↔ Cliente

Socket.IO conectado a sesiones por transaccion. Mensajes de Binance Chat sincronizan al backend, el operador responde desde el dashboard, y el cliente ve las respuestas en su app Binance — todo sin refresh.

Roles con Permisos Estrictos

3 niveles: Operador (1), Admin (2), Super Admin (3). Middleware authMiddleware.js verifica nivel por endpoint. Header X-Service-Key=ADMIN_TOKEN para requests de servicios internos sin login.

Rate Limiters por Tipo de Operacion

binanceApiRateLimit 60/min, dbRateLimit 100/min, writeRateLimit 10/min (login/register). Evita reventar APIs externas y proteger DB de cascadas. retryHandler con 3 reintentos + backoff exponencial.

Multi-cuenta Binance (binance_account)

Tabla binance_account guarda multiples API keys + secrets + balances. El sistema rota peticiones entre cuentas para distribuir carga y evitar rate limits. Balance por cuenta visible al admin.

Screenshots

Como se Ve

Screenshot

Dashboard de Transacciones Activas

Tabla en tiempo real con todas las transacciones por estado, filtros por operador/fecha/monto, paginacion, contador de ordenes pendientes. Click abre detalle con chat lateral.

Screenshot

Detalle de Transaccion + Chat

Detalle de la orden Binance (USDT/VES, monto, precio, contraparte) + chat real-time embedded + boton 'Marcar PAID' visible solo cuando se confirmo el pago bancario.

Screenshot

Panel de Configuracion de Anuncios (Admin)

Lista de anuncios P2P por cuenta Binance, montos, rangos, comision aplicada. Click en activar/desactivar advs_configs.

Screenshot

Vista de Operador con Ordenes Asignadas

Solo muestra las ordenes que le toca atender. Sin distracciones. Boton grande 'Tomar siguiente orden' para que el sistema asigne automaticamente.

Stack

Detalles Tecnicos

ComponenteTecnologia
BackendNode.js 20 + Express 4.18 + Winston logging
FrontendReact 18 (Create React App) + axios + socket.io-client
Base de datosPostgreSQL en AWS RDS (mx-central-1, timezone America/Caracas)
Real-timeSocket.IO (chat operador↔cliente)
AuthJWT + bcryptjs (3 niveles de rol)
Integracion BinanceP2P API v1 con HMAC-SHA256 + retry handler
Hosting backendVultr VPS Ubuntu 22.04 + Nginx + PM2
Hosting frontendNetlify (auto-deploy en push main)
SSLLet's Encrypt (renovacion automatica)
Rate limitingPor tipo: binance 60/min, db 100/min, write 10/min
DNSNamecheap (hswappers.com)
Metricas reales

Resultados

40+

Endpoints Binance manejados

Uptime continuo en hswappers.com

Disponibilidad en produccion

5 controlados

Estados del ciclo de transaccion

3 (Operador / Admin / Super Admin)

Roles con RBAC

mx-central-1 (AWS RDS)

Region de la BD

Multi-cuenta con rotacion

Cuentas Binance soportadas

¿Tu negocio depende de una API externa que falla cada vez que quiere?

Construimos integraciones con manejo robusto de errores, retries, rate limits y monitoreo. Sin firmas que fallen silenciosamente.