IntegrationNode.jsOAuth 2.0APIMiddlewareRestaurant Tech

Cómo Construí OrderBridge: Resolviendo la Conexión Delivery-a-POS

Hace unos meses, un cliente llegó a mí con un problema simple de describir y que parecía bastante directo. Necesitaban conectar las principales plataformas de delivery con su propio sistema POS mediante un handshake automatizado con OAuth 2.0.

Este proyecto comenzó como un brief real de cliente. La solicitud llegó en español: “Queremos conectar los servicios de domicilios de nuestros clientes (DoorDash, etc.) a StreamOrder utilizando OAuth. Una vez que StreamOrder esté conectado y autenticado, las cuentas de los servicios de entrega de los clientes se conectarán a nuestro sistema POS.” En resumen: necesitaban conectar las cuentas de delivery de sus clientes a su sistema POS a través de la API de socios de StreamOrder — de forma automática, vía OAuth, sin intervención manual. Analicé los requisitos, leí la documentación del partner de StreamOrder y me puse a trabajar.

OrderBridge OAuth 2.0 middleware dashboard showing real-time order synchronization between delivery platforms and POS systems
[ EL BRIEF ]

La Propuesta al Cliente

Antes de escribir una sola línea de código, preparé una propuesta formal. Eso forzó claridad en ambos lados — el cliente entendía exactamente lo que iba a recibir, y yo entendía exactamente lo que iba a construir.

PROPUESTA DE PROYECTO

Integración de Apps de Delivery al POS

Middleware API · StreamOrder · OAuth 2.0

Maximiliano B. Torres

February 27, 2026

DESCRIPCIÓN

Este proyecto establece un "Puente Digital" seguro y automatizado — una Middleware API entre el agregador StreamOrder y el sistema de Punto de Venta (POS) del cliente, permitiendo que los pedidos de delivery fluyan automáticamente al POS sin intervención manual.

OBJETIVO

Implementar OAuth 2.0 como capa de autenticación, garantizando que los datos permanezcan seguros mientras los pedidos se sincronizan automáticamente desde las plataformas de delivery al POS.

Conexión Segura: Handshake OAuth — sin contraseñas compartidas, datos protegidos por llaves digitales cifradas.
Sincronización Automática: Cada pedido de DoorDash y plataformas de delivery aparece en el POS al instante.

FLUJO DE ARQUITECTURA

Plataformas de Delivery
StreamOrder
Middleware API
Sistema POS
Dashboard

Cronograma de 4 Semanas

Semana 1

Seguridad y el Handshake Digital

Objetivo: Conectar las cuentas del cliente de forma segura.

Resultado: StreamOrder oficialmente vinculado; datos protegidos por llaves OAuth cifradas.

Semana 2

El Puente de Automatización

Objetivo: Hacer que los sistemas se comuniquen.

Resultado: Traductor y listener de webhooks funcionando en entorno de prueba — pedidos capturados y traducidos al instante.

Semana 3

Dashboard y Lanzamiento en Vivo

Objetivo: Visibilidad y preparación para producción.

Resultado: Puente activo, pedidos imprimiéndose en el POS, dashboard de monitoreo en vivo entregado.

Semana 4

Refinamiento y Monitoreo

Objetivo: Estabilidad bajo condiciones reales.

Resultado: Ventana de monitoreo en vivo de 7 días; cambios de API de StreamOrder o plataformas de delivery parcheados de inmediato.

Entregables Principales

Integración OAuth 2.0Capa de autenticación que conecta todas las cuentas sin compartir contraseñas privadas.
Inyección de Pedidos en Tiempo RealPedidos detectados vía webhook e inyectados directamente al POS en segundos.
Traductor AutomatizadoMapeo inteligente de menú que asegura que cada artículo, modificador y nota del cliente coincida con el formato del POS.
Renovación Automática de TokensSeguridad autogestionada — los tokens OAuth se renuevan automáticamente para que la conexión nunca expire.
Monitoreo de ConfiabilidadRastreo de errores que alerta de inmediato si un pedido falla al sincronizarse.
Dashboard de Conexión en VivoVista web para monitorear el estado del puente y verificar las sincronizaciones más recientes.

PRERREQUISITOS DEL PROYECTO

Acceso de desarrollador a StreamOrder con la API de Partner habilitada.
Credenciales del portal de desarrollador del POS con permisos de escritura.
Lista de menú / SKU exportada del POS (CSV o Excel).
Un contacto técnico designado con autorización para aprobar el handshake OAuth.
↓ Descargar Propuesta Original (PDF)
[ EL PROBLEMA ]

El Caos de los Pedidos Manuales

Antes de automatizar esto, el flujo de trabajo era tedioso y doloroso. La mayoría de las cocinas ocupadas tienen un mostrador lleno de tablets de diferentes apps de delivery.

Un empleado tenía que:

  1. Leer el pedido en la tablet.
  2. Escribirlo manualmente en el POS.
  3. Esperar no haberse saltado un modificador como "sin cebolla".

En una tienda tranquila es aburrido. En una cocina con 80+ pedidos al día, es un problema operativo muy doloroso.

LAS MATEMÁTICAS

50 pedidos al día × 2.5 minutos de captura manual × $18/hr = más de $1,100 perdidos cada mes en una tarea que no debería involucrar a ningún humano.

OrderBridge orders page with live order feed showing real-time filtering and status updates
Página de pedidos — filtrable, ordenable, actualizaciones en tiempo real
[ INGENIERÍA ]

Construyendo el Pipeline

Una vez que el ROI quedó claro, diseñé el pipeline. La lógica tenía que ser a prueba de fallos:

OrderBridge architecture diagram showing delivery platforms flowing through OrderBridge middleware into restaurant POS system
Flujo general: plataformas de delivery → OrderBridge → POS del restaurante
01

Ingerir webhooks de delivery

Recibir POST HTTPS de cada plataforma de delivery.

02

Verificar firmas

Verificación HMAC-SHA256 — seguridad antes que todo.

03

Traducir schemas

Mapear payloads JSON dispares a un formato POS unificado.

04

Inyectar el pedido

POST a la API del POS con reintentos de backoff exponencial.

05

Transmitir actualizaciones

Push WebSocket al dashboard en vivo — sin polling.

[ EL PROCESO ]

Primero Escribir el Spec

Empecé con una Especificación de Requisitos de Software (SRS) antes de escribir una sola línea de código. Es mucho más fácil corregir un error en un documento que reescribir código de producción después. El SRS forzó tanto a mí como al cliente a acordar exactamente qué significaba "listo" — sin ambigüedad, sin cambios de alcance.

FR-01Servidor OAuth 2.0

El sistema debe actuar como proveedor OAuth 2.0 — emitiendo, validando y renovando tokens conforme al RFC 6749.

FR-02Ingesta de Webhooks

El sistema debe aceptar webhooks HTTPS POST de plataformas de delivery y verificar cada solicitud con validación de firma HMAC-SHA256.

FR-03Traducción de Schema

El sistema debe mapear todos los payloads de delivery entrantes a un formato POS unificado, con fallo elegante y logging en SKUs no mapeados.

FR-04Inyección al POS

El sistema debe hacer POST de pedidos traducidos a la API del POS con reintentos de backoff exponencial — ningún pedido se pierde en silencio.

NFR-01Actualizaciones en Tiempo Real

El dashboard debe reflejar cambios de estado de pedidos vía push WebSocket. Sin polling.

NFR-02Persistencia de Tokens

Los tokens OAuth deben sobrevivir reinicios del servidor, almacenados cifrados en reposo.

OrderBridge live dashboard showing real-time order feed with WebSocket updates and status tracking
Dashboard en vivo — feed de pedidos en tiempo real con seguimiento de estado
[ TECH STACK ]

El Tech Stack

Qué herramientas usaría para este tipo de proyecto:

Node.js & TypeScript

Estoy seguro de que Python también hubiera funcionado muy bien aquí. Personalmente prefiero trabajar con módulos de node y npm antes que con pip y entornos virtuales.

Fastify (No Express)

Express es el default de siempre, pero Fastify está construido para el rendimiento moderno. Validación JSON schema integrada, menor sobrecarga. Para una Middleware API donde cada milisegundo cuenta, Fastify gana.

[ DESPLIEGUE ]

Infraestructura

Los tres servicios están desplegados de forma independiente — cada uno con su propio host, su propio dominio y su propia responsabilidad. Esto refleja cómo se estructuraría una integración de producción real.

VISIÓN GENERAL DE INFRAESTRUCTURA

Vercel
Dashboard de OrderBridgeFrontend

UI de monitoreo en tiempo real — desplegada en edge, disponible globalmente.

Railway
API de OrderBridge + PostgreSQLBackend

Motor middleware principal con el servidor OAuth, ingesta de webhooks, traductor de schemas e inyector al POS. PostgreSQL almacena tokens OAuth, mapeos de menú y logs de pedidos.

Railway
Servidor MockPOSSimulador

Simulador de POS aislado ejecutándose como un servicio completamente separado — su propio flujo de consentimiento OAuth, su propio terminal de pedidos.

POR QUÉ SERVICIOS SEPARADOS

Mantener MockPOS en su propio servicio de Railway no era solo conveniente — era el punto. Demuestra que la integración funciona a través de un límite de red real, no solo entre dos funciones en el mismo proceso.

[ LO DIFÍCIL ]

Traducción y Confianza

El Traductor fue la parte más difícil de este proyecto. DoorDash, Uber Eats y GrabFood tienen ideas muy distintas de cómo describir una "hamburguesa sin pepinillos". Mapear estos payloads inconsistentes a un SKU de POS estandarizado mientras se mantiene una tabla de MenuMapping requirió un manejo profundo de casos extremos. Si el mapeo falla, el sistema tiene que fallar elegantemente — no dejar caer el pedido en el vacío.

Luego estaba el Servidor OAuth 2.0. Una cosa es usar OAuth; otra muy distinta es ser el proveedor. Construir los endpoints de autorización, la lógica de tokens y el almacenamiento cifrado conforme a las especificaciones RFC costó más canas que el resto de la app combinado.

MockPOS terminal showing automated order injection from OrderBridge middleware
Phing Kai Kitchen [Simulador POS] — pedidos llegando automáticamente desde OrderBridge
[ EL BUILD DE PORTAFOLIO ]

Presentando OrderBridge

Disfruté tanto la arquitectura del proyecto del cliente que construí OrderBridge — una versión refinada e independiente para mi portafolio. No es solo una copia; es una evolución. Un demo end-to-end completo que simula todo el flujo sin necesitar infraestructura real.

Backend

Fastify, TypeScript y WebSockets.

Dashboard

UI de monitoreo y control en tiempo real para el sistema OrderBridge.

Simulador POS (MockPOS)

Una aplicación secundaria que representa un restaurante ficticio llamado Phing Kai Kitchen. Actúa como el POS 'objetivo', completo con su propia pantalla de consentimiento OAuth y terminal de pedidos en vivo.

OrderBridge order simulator page for testing delivery platform webhook integration
Simulador — lanza pedidos de prueba desde cualquier plataforma de delivery con un clic
[ CÓDIGO FUENTE ]

El Codebase Completo

Los tres componentes principales son open-source y están disponibles en GitHub:

[ DEMOS EN VIVO ]

Pruébalo

Ambos servicios están activos y listos para usar:

[ VÉLO EN ACCIÓN ]

¿Listo para Explorar?

Explora el código fuente, observa los sistemas en vivo, o revisa el caso de estudio completo.