Webhook: documents.cancellationFinished

Este evento se dispara cuando finaliza el procesamiento de anulación de un documento electrónico ante SUNAT.

Para recibirlo, configura el webhook cancellationDocumentFinished en la compañía:

{
  "webhooks": {
    "cancellationDocumentFinished": {
      "status": "active",
      "url": "https://api.tu-compania.com/webhooks/cancellation-finished",
      "headers": {
        "Authorization": "Bearer token-de-tu-sistema"
      }
    }
  }
}

Body enviado al webhook

Alanube envía una solicitud POST a la URL configurada con un cuerpo similar al siguiente:

{
  "id": "01HY9Y5P2QXG9Q0F0BRK7A6GQJ",
  "companyId": "01HY9WZ7ZJ2Z3B4C5D6E7F8G9H",
  "number": 15,
  "referenceDocumentId": "01HY9X7P4AG7K7N9Q4X9A7Y9M2",
  "referenceDocumentNumber": "F001-123",
  "referenceDocumentType": "01",
  "govermentResponse": {
    "code": "0",
    "message": "La comunicación de baja ha sido aceptada",
    "notes": "Sin observaciones"
  },
  "ticketNumber": "202600000000001",
  "legalStatus": "SUNAT_AUTHORIZED",
  "cdrFileUrl": "https://..."
}

Nota: el campo govermentResponse se envía con esa escritura por compatibilidad con la respuesta actual de la API.

Campos del payload

CampoTipoDescripción
idstringIdentificador interno de la anulación en Alanube.
companyIdstringIdentificador interno de la compañía.
numbernumberCorrelativo interno de la comunicación de baja.
referenceDocumentIdstringIdentificador interno del documento anulado.
referenceDocumentNumberstringSerie y correlativo del documento anulado.
referenceDocumentTypestringTipo SUNAT del documento anulado. Por ejemplo: 01 factura, 03 boleta, 07 nota de crédito, 08 nota de débito.
govermentResponseobjectRespuesta de SUNAT asociada a la anulación.
ticketNumberstringTicket de seguimiento devuelto por SUNAT.
legalStatusstringEstado legal final de la anulación.
cdrFileUrlstringURL temporal para descargar el CDR de la anulación.

Estados

CampoValorDescripción
legalStatusSUNAT_AUTHORIZEDSUNAT aceptó la anulación.
legalStatusSUNAT_REJECTEDSUNAT rechazó la anulación.

Consideraciones

  • El webhook solo se envía si cancellationDocumentFinished.status está en active.
  • Alanube marca la anulación como notificada cuando el POST al webhook se ejecuta correctamente.
  • El evento se produce después de consultar el ticket de SUNAT y obtener el CDR de la comunicación de baja.