Lifecycle events
Integrations can observe the generation and validation lifecycle without changing the formatter. Invoice and credit memo generators use the same event names, with the entity key identifying the document type.
| Event | Payload for an invoice | Payload for a credit memo |
|---|---|---|
einvoice_before_generate |
invoice, format |
creditmemo, format |
einvoice_after_generate |
invoice, format, document |
creditmemo, format, document |
einvoice_generation_failed |
invoice, format, exception |
creditmemo, format, exception |
einvoice_before_validate |
invoice, format |
creditmemo, format |
einvoice_after_validate |
invoice, format, document, validation_result |
creditmemo, format, document, validation_result |
Safe uses
Use after_generate to enqueue a hand-off to a separate delivery service, or after_validate to record a local diagnostic result. Keep handlers short and idempotent. Do not transmit customer data from an event observer without an explicit integration boundary and access controls.
Failure handling
The einvoice_generation_failed event carries the exception from the failed operation. Sanitize messages before sending them to external systems or support logs.
These events do not provide network delivery receipts. The module creates local documents; a PEPPOL access point, portal or recipient system remains responsible for transport and acceptance feedback.