Skip to main content

Respuesta esperada

Un 4xx también se reintenta: si tu endpoint rechaza una entrega por un error que no se corrige solo, recibirás los cuatro intentos.
No respondas con una redirección. Pruff sigue las redirecciones, y si tu endpoint responde 301, 302 o 303, la request redirigida llega a la nueva URL como GET y sin body.

Reintentos

Cada entrega tiene hasta 4 intentos. Después de cada intento fallido, Pruff espera antes del siguiente: Los reintentos reenvían la entrega original: mismo body, mismo timestamp, misma firma y mismo valor del header de idempotencia. Solo cambia X-Webhook-Attempt. Si el cuarto intento también falla, la entrega se descarta y no se vuelve a enviar.

Garantías

  • Puedes recibir duplicados. Una misma entrega puede llegar más de una vez aunque hayas respondido 2xx.
  • No hay orden garantizado. Los eventos pueden llegar en un orden distinto al que ocurrieron, sobre todo cuando hay reintentos de por medio.
  • Los eventos con listas no tienen un tamaño máximo fijo. invoice.newInvoices, cession.newCessions y creditNote.newCreditNotes envían en una sola entrega todos los documentos detectados en un mismo procesamiento.

Idempotencia

Procesa cada entrega una sola vez aunque la recibas varias veces:
  1. Usa el header de idempotencia de tu suscripción como clave. Su valor es único por entrega y se repite en todos sus reintentos. Si tu suscripción no lo tiene, pídele a Pruff que lo configure.
  2. Si no tienes header de idempotencia, usa el valor v1 de X-Webhook-Signature: es el mismo en todos los reintentos de una entrega.
  3. No uses X-Webhook-Id. Identifica el tipo de evento y se repite en todas las entregas de ese evento.
Para los eventos de documentos, deduplica además cada documento por RUT del emisor, tipo de documento y folio: un mismo documento puede llegar en más de una entrega.

Buenas prácticas

  • Responde en menos de 5 segundos.
  • Responde 2xx apenas guardes la entrega, y procésala después, fuera del handler.
  • Valida la firma antes de procesar (ver Headers y firma).
  • Trata cada entrega como posible duplicado.