Skip to main content
Sent every time a claim moves to a new collection stage — including the very first stage assignment on claim creation (from_stage is null in that case). The event type you’ll see in the body and in the X-IcoLaw-Event header is claim.collection_stage_changed.

Payload

Envelope fields

string
required
Stable event identifier (evt_…). The same id is reused for every retry of the same event — use it to deduplicate. It is not the value of the X-IcoLaw-Delivery header, which is a separate UUID, also stable across retries; dedupe on one of the two, consistently.
string
required
Always claim.collection_stage_changed for this event.
string (RFC 3339)
required
Server-side timestamp at which the event was emitted.
string
required
Payload contract version (YYYY-MM-DD). Currently 2026-05-14. Pin this in your handler to be notified of non-additive shape changes before they reach production.

data fields

uuid
required
ID of the claim whose stage just changed. Use it to look up the full claim via GET /openapi/claims/{id}.
string | null
The partner_reference you provided when creating the claim through the API, surfaced verbatim so you can correlate back to your own system without an extra API call. For a claim created by incaseof.law, its external_reference.
enum | null
required
Previous collection stage. null on the very first stage assignment (claim creation).Possible values (14): new, in_processing, first_demand_letter, second_demand_letter, third_demand_letter, installment_payment, installment_cancelled, dunning_action_recommended, exekutionsantrag_recommended, warten_auf_zinstermin, manuelle_pruefung, mzr_aufhebungserklaerung_sent, mzr_klage_recommended, closed — see the reference below.
enum
required
New collection stage that just took effect. Same value set as from_stage (excluding null).
string (RFC 3339)
required
When the stage transition was persisted server-side. Use this for reconciliation — see Reconcile out-of-order events.

Stage value reference

This is the complete list — the database accepts no other value. The four tenancy stages occur only on rental claims.

Example: initial claim creation

When a claim is first created the event has from_stage: null. This signal is useful for “ingest into our CRM” workflows.

Example: first demand letter sent

Example: claim closed


Handler example (Node.js + Express)

End-to-end: verify signature, deduplicate, dispatch.
Use the “Send test event” button in the admin UI to fire a synthetic event with claim_id: "00000000-0000-0000-0000-000000000000". Filter that ID out in your real handler — it’s intentionally a non-existent claim so you can sanity-check end-to-end without polluting your data.