Skip to content

Webhook Events

Every webhook payload includes these common fields:

{
"event": "invoice.delivered",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
...event-specific fields
}

Fired when a new invoice is created.

{
"event": "invoice.created",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"direction": "outgoing",
"amount": 150000,
"currency": "EUR",
"state": "Draft"
}

Fired when an invoice is successfully transmitted to the Peppol network.

{
"event": "invoice.sent",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"state": "Sent",
"message_id": "msg-a1b2c3d4"
}

Fired when delivery to the recipient is confirmed.

{
"event": "invoice.delivered",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"state": "Delivered",
"delivered_at": "2026-03-27T10:30:00+00:00"
}

Fired when invoice delivery fails.

{
"event": "invoice.failed",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"state": "Failed",
"error": "Recipient not registered on Peppol network",
"error_code": "RECIPIENT_NOT_FOUND"
}

Fired whenever the invoice state changes (covers all transitions).

{
"event": "invoice.status_changed",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"previous_state": "Sending",
"new_state": "Sent"
}

Fired when the payment status of an invoice changes.

{
"event": "invoice.payment_status_changed",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"payment_status": "partially_paid",
"total_paid_cents": 75000,
"amount": 150000
}
{
"event": "participant.created",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"participant_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"identifier": "0088:1234567890123",
"name": "My Company"
}
{
"event": "participant.activated",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"participant_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"identifier": "0088:1234567890123"
}
{
"event": "participant.deactivated",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"participant_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"identifier": "0088:1234567890123",
"reason": "User requested deactivation"
}

company.created / company.updated / company.deleted

Section titled “company.created / company.updated / company.deleted”
{
"event": "company.updated",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"company_name": "My Company"
}
{
"event": "domain.verified",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"domain": "example.com"
}
{
"event": "domain.failed",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"domain": "example.com",
"reason": "DNS verification failed"
}

Fired when credit usage reaches 90% of the limit.

{
"event": "limit.warning",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"credit_type": "peppol",
"remaining": 10,
"limit": 100
}

Fired when credits are fully exhausted.

{
"event": "limit.reached",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"credit_type": "peppol",
"remaining": 0,
"limit": 100
}

Fired when usage exceeds the credit limit (overage).

{
"event": "limit.exceeded",
"timestamp": "2026-03-27T10:30:00+00:00",
"company_id": "550e8400-e29b-41d4-a716-446655440000",
"credit_type": "peppol",
"overage": 5
}