POST con el detalle en formato JSON a la URL que configures.
El webhook es de tu cuenta, no de cada empresa: hay uno solo, y recibe los eventos de todas tus empresas, incluidas las que des de alta después. Cada notificación trae el campo companyId, que indica de qué empresa viene el evento.
Funcionamiento
1
Registrás una URL
Indicás el endpoint HTTPS de tu sistema y los eventos que querés recibir. Vale para todas tus empresas.
2
Ocurre un evento
Cuando se dispara un evento suscrito, Emify envía un
POST con el payload a tu URL.3
Confirmás la recepción
Tu servidor responde con un código
2xx. Si no, Emify reintenta la entrega.Eventos disponibles
Consulta el catálogo vigente en cualquier momento:
Configurar un webhook
Registra la URL de destino y los eventos a recibir:GET, PUT y DELETE sobre /api/webhooks permiten consultar, actualizar y eliminar la configuración. Si tu cuenta ya tiene un webhook, un nuevo POST responde 409: usá PUT para cambiarlo.
Configurar el webhook exige una API key sin restricción de empresas. Como el webhook recibe los datos de todas tus empresas, una key limitada a algunas responde
403. El catálogo de eventos (/api/webhooks/events) lo puede consultar cualquier key.Payload de la notificación
Cada evento envía unPOST con un cuerpo JSON que incluye companyId, la empresa donde ocurrió el evento. Como el webhook es uno solo para toda tu cuenta, ese campo es el que te permite distinguir de qué empresa viene cada notificación. Por ejemplo, el evento ISE (cambio de estado de un comprobante):
status se explican en Ciclo de vida de un documento.
Reintentos
Si tu endpoint no responde2xx, Emify reintenta la entrega. La entrega se intenta hasta 4 veces en total, con esperas crecientes entre reintentos:
Tras el cuarto intento fallido, la entrega se marca como fallida y no se vuelve a intentar.
Buenas prácticas
- Responde rápido con un código
2xxy procesa la carga de forma asíncrona (por ejemplo, con una cola). - Valida el origen del evento antes de procesarlo.
- Trata las entregas como idempotentes usando el identificador del recurso incluido en el payload.