Changelog

Cada cambio,
en su momento.

No marketing posando de novedad — el log real del producto. Suscríbete por RSS o llamada API si lo necesitas para tu pipeline interno.

Payphone 3DS 2.2 + redirección segura

Pagos con tarjeta ahora pasan por autenticación 3DS 2.2. URL de confirmación se proxea con firma para evitar leak de tokens en el referer.

PayPhone es ahora obligatorio 3DS 2.2 en Ecuador para tarjetas con BIN nacional. Implementamos:

  • Flow de redirección con ?clientTxId= firmado.
  • Página de confirmación intermedia que valida el callback antes de mostrar al cliente.
  • Webhook con HMAC verificable.

Si ya tienes un flujo PayPhone integrado vía @ecuapi/billing, no necesitas cambiar nada — el adapter actualizó internamente.

WhatsApp interactive CTA URL

Soporte para mensajes interactivos tipo CTA URL — botón de acción que abre web en lugar de quick reply.

Ahora puedes enviar mensajes WhatsApp con un botón “Pagar” o “Ver factura” que abre directamente una URL en lugar de mandar un mensaje de respuesta.

await ecuapi.wa.send({
  to: '+593991234567',
  type: 'cta_url',
  body: 'Tu factura está lista',
  cta: { label: 'Ver PDF', url: pdfUrl },
});

Útil para checkout, descarga de facturas y links de pago directos. Disponible en todos los planes.

WhatsApp Graph API v24.0 + base URL custom

Actualizamos a Graph API v24.0. Nuevos endpoints, mejor manejo de retries, soporte para base URL customizado (ej. proxies tenant-specific).

WhatsApp Cloud API v24.0 trae:

  • Mejor handling de errores 131056/131047 (rate limit por usuario).
  • Soporte oficial para envío de PDFs hasta 100MB.
  • Reanudación de uploads cortados.

Además agregamos wa_base_url por tenant en KV — útil si necesitas proxear todos los requests a través de tu propia infra (compliance, audit log).

Admin auth en middleware

Migramos la verificación de sesión admin de AdminShell layout a middleware. Carga 40% más rápida y deja de duplicar lógica en cada vista.

Antes cada vista admin verificaba la sesión en su layout. Ahora va en middleware.ts antes que Astro ruteé — protege incluso APIs y assets, simplifica el código de cada página.

Sin breaking changes. Si tenías un Layout admin custom, dejá de chequear sesión ahí — el middleware ya bloqueó si no había permiso.

Configuración multi-pasarela por tenant

Cada tenant puede activar PayPhone, DeUna, transferencia y Stripe de forma independiente. Adapter pattern: el motor decide qué usar según la moneda y el monto.

El sistema de pagos ahora es 100% adapter-based. Un tenant puede tener:

  • PayPhone para tarjetas USD nacionales
  • DeUna para QR
  • Stripe para clientes internacionales
  • Transferencia manual para B2B

El motor enruta automáticamente según la moneda solicitada y el método disponible. Sin código de glue, todo en tenant.payments config.

Redefinición estratégica · Stripe-for-LATAM

Pivote oficial: de "SaaS restaurantes" a "infraestructura operativa para negocios modernos en Ecuador y LATAM". 12 primitivas + 40+ packs como hoja de ruta.

Después de 6 meses operando con clientes reales, vimos el patrón claro: el valor no está en “ser otro SaaS de restaurantes”, sino en ser la capa de infraestructura que combina fiscal + pagos + canal para negocios LATAM.

Cambios:

  • Repositorio cerrado (core), MIT solo para SDK + docs + ejemplos.
  • 12 primitivas como paquetes individuales (@ecuapi/ops, @ecuapi/ops, etc.).
  • 40+ verticales como configuración (YAML + flows JSON), no como código.
  • Harness .claude/ con hooks + 5 subagents + 4 commands para acelerar iteración.

Hoy somos 6 tenants live. La hoja de ruta apunta a 50 tenants, 10 verticales en producción y SDK público para fin de 2026.

— el siguiente paso —

Tu primer pedido por WhatsApp,
esta semana.

Plan gratuito, sin tarjeta, sin llamada de ventas. Activamos tu negocio en una tarde.

EC Hecho en Quito · cumple con el SRI · soporte en español