Procesar actualizaciones de estado de los destinatarios a través de hooks: acknowledged, accepted, rejected, paid.
Cuando un destinatario comunica el estado de su factura a través de un Invoice Response (mensajes de estado), el PSB envía una notificación a su webhook. Como remitente, así sabe si una factura fue aprobada, rechazada, o si el destinatario necesita información adicional. Este artículo describe cómo recibir y procesar esas notificaciones.
Después de enviar una factura, el destinatario puede devolver mensajes de estado a través de la red Peppol. El PSB asocia automáticamente cada Invoice Response recibido a su factura original y publica un evento webhook.
El flujo:
InvoiceResponseReceivedRegistre un hook en el topic InvoiceResponseReceived:
POST /api/v1/hook
{
"action": "https://mijn-systeem.nl/webhook/responses#mijnSecretKey",
"topics": ["InvoiceResponseReceived"]
}
El payload del webhook contiene el documentId de la factura original y el responseDocumentId del mensaje Invoice Response.
Recupere el mensaje Invoice Response completo a través de la API:
GET /api/v1/{partyId}/salesInvoice/{documentId}/response/{responseDocumentId}/download HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
El mensaje contiene el código de estado, los posibles códigos de aclaración y una explicación opcional del destinatario.
El código de estado recibido indica en qué fase se encuentra la factura en el destinatario:
Para los estados UQ y RE, es importante leer el Reason code y el Action code enviados. Estos indican qué está mal y qué acción espera el destinatario de usted. Consulte el artículo Enviar Invoice Response para una visión general de todos los Reason y Action codes.
Para poder recibir Invoice Responses como remitente, su organización debe estar registrada en el Peppol SMP con la capability invoiceResponse. Sin este registro, el Access Point del destinatario no puede entregar el mensaje de response.
Verifique y active la capability:
PUT /api/v1/peppol/config HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Content-Type: application/json
{
"invoiceResponse": {
"state": "on"
}
}
Algunas recomendaciones para el procesamiento de Invoice Responses:
documentId del payload para asociar el response a la factura correcta en su propia administración.X-EConnect-DocumentId ya que se trata de un nuevo documento.Registre un hook en el topic InvoiceResponseReceived. La payload contiene el documentId de su factura originalmente enviada y el responseDocumentId del mensaje de estado. Esto le permite vincular la respuesta en su sistema con la factura de venta correcta.
Utilice GET /api/v1/{partyId}/salesInvoice/{documentId}/response/{responseDocumentId}/download con el documentId de la factura y el responseDocumentId del webhook. El mensaje contiene el código de estado y la información de clarificación del destinatario.
Con RE (Rejected), debe corregir la factura y reenviarla; los códigos Reason y Action indican qué está mal. Para la nueva versión, utilice un nuevo X-EConnect-DocumentId, ya que se trata de un nuevo documento y la idempotency funciona por documentId.
Los Invoice Responses son opcionales en la red Peppol. No todos los destinatarios los envían. Pero cuando se utilizan, ofrecen información valiosa sobre el proceso de facturación.
Probar en la API