1. Crea el webhook
Un webhook es por empresa (master_entity_id). Elige solo los eventos que vas a usar y define un secret para firmar.
api_version: 2 hace que todos los ids del payload sean públicos (docu_…, ment_…), los mismos que devuelve la API v2. Referencia: Crear webhook.
2. Elige los eventos
3. Verifica la firma
Si el webhook tienesecret, cada envío trae X-Pana-Signature: el HMAC-SHA256 en hexadecimal del cuerpo crudo de la petición con tu secret. Calcula la firma sobre los bytes tal como llegaron, antes de parsear el JSON.
X-Pana-Event-Type (el evento), X-Pana-Event-Id (id del evento), X-Pana-Delivery (id del intento de entrega) y X-Pana-Timestamp.
4. Responde rápido y sin duplicar
- Responde
2xxen menos de 2 segundos y procesa el evento en segundo plano. - Si tu endpoint falla, Tupana reintenta con espera creciente (1 minuto, 5 minutos, 15 minutos, 1 hora, 6 horas).
- Un reintento repite el mismo evento: guarda
X-Pana-Event-Idy descarta los que ya procesaste.
5. Pruébalo
Desde la plataforma (Configuración → Webhooks → Probar) se envía unwebhook.test. El campo environment del webhook define de qué ambiente recibe eventos de documentos: both (default), production o sandbox. Con both o sandbox, los documentos simulados con tu key de sandbox también llegan, así que puedes probar el flujo completo sin emitir nada real. Usa un webhook con production cuando pases a producción para no mezclar eventos.
