Skip to content
BlogEngineering2026-06-12 · 8 min read

One panel for every delivery order: integrating Uber Eats, Rappi and PedidosYa

Valrok
Software Architect

A mid-sized restaurant runs on three tablets today: one per aggregator. Three different sounds, three acceptance flows, three menus to update by hand. When we designed Comandia the core promise was a single one: an order is an order, wherever it comes from.

El problema no es hablar con tres APIs. Es que cada plataforma tiene un modelo mental distinto de qué es un pedido, cuándo se confirma, cómo se cancela y quién tiene la última palabra. Integrar no es traducir campos: es diseñar el modelo que absorbe esas diferencias sin que la cocina las note.

Un modelo de pedido canónico

Todo lo que entra — del salón, del QR o de un agregador — se normaliza a un mismo contrato antes de tocar la lógica de negocio. La cocina nunca ve "un pedido de Rappi": ve un pedido.

interface Order {
  id: string;
  channel: 'ubereats' | 'rappi' | 'pedidosya' | 'local';
  externalId?: string;
  items: OrderItem[];
  status: 'received' | 'accepted' | 'preparing'
        | 'ready' | 'dispatched';
  notes?: string;
  totals: { subtotal: Money; fees: Money; payout: Money };
}

La clave está en totals.payout: cada canal descuenta comisiones distintas, y el reporte que le importa al dueño es cuánto le queda, no cuánto vendió.

Webhooks, colas y reintentos

Los agregadores fallan, y fallan distinto. Nuestra regla: ningún pedido depende de que una petición HTTP salga bien a la primera.

  • Cada webhook se persiste crudo antes de procesarse — si el parser falla, el pedido no se pierde.
  • La aceptación corre en una cola con reintentos exponenciales y alerta a partir del tercer fallo.
  • Un platillo agotado se propaga a todos los canales desde un solo lugar, con confirmación por canal.
El mejor sistema de integraciones es el que el equipo de cocina nunca nota que existe.

Lo que cambió en la cocina del cliente

El primer sistema que corrió con este diseño no fue Comandia: fue un encargo a la medida para una cocina urbana con tres agregadores. Ahí se apagó el muro de tablets — los pedidos de los tres canales entran a la misma pantalla de cocina que las comandas del salón, con el mismo flujo de estados, y el corte de caja incluye las comisiones por canal, que antes eran una hoja de cálculo del lunes.

Queda camino: la conciliación automática de pagos y los menús con fotos por canal son la fase dos de ese encargo, y arrancan cuando el cliente los pida. Comandia recoge lo que aprendimos ahí, y todavía la estamos construyendo: no se vende ni tiene fecha. Si tienes un restaurante y este problema te suena, conoce Comandia.

Valrok
Architecture, backend and infrastructure. Obsessed with systems that explain themselves and cloud bills that do not scare anyone.