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.