Skip to main content

Qué es

Los webhooks de integración envían cada evento del POS a una URL de tu ERP en cuanto ocurre. Es la vía principal para mantener el ERP sincronizado: ventas, cierres de caja, facturación, stock, fiados y productos nuevos. Cada entrega es un POST con el envelope del evento en el cuerpo JSON, firmado con HMAC-SHA256 usando el secreto del webhook. Si preferís leer por tu cuenta, el mismo feed está disponible con pull de eventos.

Dónde está

En el back office: Configuración → Integraciones. Ahí registrás la URL, elegís sucursales opcionales y ves el estado de la última entrega. También por API, con una clave de alcance escritura:
Respuesta:
location_ids vacío recibe todas las sucursales. event_types vacío recibe todos los eventos.
La URL debe ser https://. Solo se acepta http:// en 127.0.0.1 o localhost para pruebas locales.
El campo secret se devuelve una sola vez. Guardalo en tu ERP; después solo vas a ver el prefijo (secret_prefix).

Encabezados de la entrega

El body es el JSON exacto del envelope. Firmá y verificá los bytes tal cual llegan, sin reformatear.

Verificar la firma

Compará la firma con la que calculás vos y rechazá si difiere o si el timestamp se aleja más de 5 minutos.

Node.js

Python

Reintentos

Respondé 2xx para confirmar la entrega. Cualquier otro resultado (o un timeout) cuenta como fallo y Tero reintenta con backoff exponencial: 1m, 2m, 4m, 8m… hasta un máximo de 24 horas, con un tope de ~15 intentos. Después la entrega queda en estado dead y se ve en Configuración → Integraciones.
  • Tolerá duplicados: reintentá siempre con el mismo event_id. Usalo para deduplicar.
  • Tolerá huecos: el orden es por seq por empresa, pero puede haber entregas fuera de orden.
  • Respondé rápido. Si tu ERP tarda, contestá 2xx y procesá en segundo plano.

Errores de creación

Last modified on October 22, 2026