Inbox Ledger
FeaturesWebhooks

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.

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

On this page