Events and payloads
The webhook events Inbox Ledger sends, plus the full and excluded JSON payload shapes.
Events and payloads
Admin+When you register a webhook you choose which events you want delivered. Inbox Ledger dispatches six events today, and the JSON body shape depends on the event.
The events
invoice.created: a new invoice finished extraction and was saved.invoice.updated: an existing invoice's fields changed, such as status or total.invoice.excluded: an invoice was marked excluded or filtered out.receipt.created: a new receipt finished extraction and was saved.receipt.updated: an existing receipt's fields changed.receipt.excluded: a receipt was marked excluded or filtered out.
A seventh event, document.processed, is reserved and not currently dispatched, so do not subscribe to it yet.
Full versus excluded payloads
Created and updated events carry the full payload. The full payload holds the complete invoice or receipt, including vendor, recipient (Bill To), tags, and line items.
The two excluded events carry the excluded payload. The excluded payload holds minimal metadata only, because an excluded document has no confirmed financial fields to report.
Example body
The body below is an invoice.created full payload.
Fields are null when extraction could not find a value.
{
"document_id": "8f2a1c44-3b9e-4d77-a1f0-6c2e9b5d0a31",
"org_id": "1d9c7e22-44a8-4b1c-9f3e-2a6b8c0d4e57",
"document_kind": "invoice",
"document_status": "done",
"document_received_at": "2026-05-24T09:14:02.000Z",
"document_processed_at": "2026-05-24T09:14:48.000Z",
"original_filename": "acme-invoice-0042.pdf",
"email_from": "billing@acme.example",
"email_subject": "Invoice 0042 from Acme",
"source_id": "b6e0f3a1-7c2d-49ab-8e11-5d3f9a0c1b22",
"source_name": "Accounts inbox",
"source_type": "gmail",
"invoice_id": "c4d5e6f7-8a9b-40c1-b2d3-e4f5a6b7c8d9",
"invoice_number": "0042",
"invoice_status": "unpaid",
"issue_date": "2026-05-20",
"due_date": "2026-06-19",
"currency": "USD",
"subtotal": 1200.0,
"tax": 240.0,
"discount": 0.0,
"total": 1440.0,
"is_subscription": false,
"vendor_id": "a1b2c3d4-5e6f-4071-8293-a4b5c6d7e8f9",
"vendor_name": "Acme Inc",
"vendor_vat_id": "US123456789",
"recipient_name": "Northwind LLC",
"recipient_vat_id": "US987654321",
"tag_names": ["software", "monthly"],
"line_items": [
{ "position": 1, "description": "Pro plan seat", "quantity": 4, "unit_price": 300.0, "amount": 1200.0, "tax": 0.0 }
]
}An excluded payload carries only document_id, org_id, document_kind, email_from, email_subject, original_filename, and extracted_json.
Read the X-Event request header to tell which event arrived before you parse the body.
Related
Webhooks
Register an endpoint and subscribe to events.
Securing and verifying webhooks
Validate the signature on each delivery.
Invoices and receipts
What the extracted fields mean.
Ready to try this?
Inbox Ledger turns your inbox into clean accounting data. The free tier includes 10 credits, refilled every 30 days.
Start free