Overview
- Outbound events: Matcher publishes its lifecycle event catalog on the platform’s streaming backbone. Those events reach you as a stream, not as HTTP webhooks.
- Inbound callbacks: External systems, such as a ticketing tool, notify Matcher when they act on an exception. Matcher then updates the exception status.
Outbound events
Matcher emits events when significant actions occur in the reconciliation process, and publishes them on the streaming backbone. Each event follows its own schema on the event stream.
Available events
The tables below list the event catalog by domain. Configuration
Discovery
Ingestion
Matching
Exceptions and disputes
Governance and reporting
Inbound callbacks
External systems send callbacks to Matcher to update exception status after processing. The callback endpoint accepts status updates, resolution notes, and assignee changes from any external system.
Process a callback
TheX-Callback-Token header authenticates the callback endpoint. An operator JWT does not authenticate it. The header carries an opaque token from the callback credentials surface. Every field below is mandatory. dueAt and updatedAt accept null, and payload can be an empty object:
cURL
externalSystem field identifies the external system that processed the exception. Common values include "JIRA", "SERVICENOW", or "WEBHOOK", but callbacks can report any system identifier. Omitting any of the nine required fields returns a 422.
Response
X-Idempotency header is required. Matcher reads the idempotency key only from this header. A request that carries a key only in X-Idempotency-Key or Idempotency-Key is refused with 400 (MTCH-0015), and nothing is processed. Matcher deduplicates a callback by its external system, its exception, and its key together. The same key on another exception or from another external system is a new callback.
Callback status
statusmoves the exception toASSIGNEDorRESOLVED. Matcher reads the value without case sensitivity.- To move the exception to
ASSIGNED, send a non-blankassignee. - When
statusis the current status of the exception, Matcher keeps the status and updatesassigneeanddueAtif you send them.
Callback refusals
An unknown or revoked callback token answers
404. When Matcher cannot check the token, it answers 503.
Automatic retry for failed callbacks
If a previous callback for the same idempotency key failed during processing, Matcher automatically attempts to reacquire the idempotency lock and reprocess the callback. You don’t need to generate a new idempotency key when retrying a failed callback. Resend the same request and Matcher handles the recovery. The retry behavior applies only to callbacks with an internalfailed state. Matcher still deduplicates callbacks that completed successfully.
Callback credentials
An opaque bearer token authenticates inbound callbacks. The external system sends this token in the
X-Callback-Token header. You mint, list, rotate, and revoke these callback credentials through a dedicated CRUD surface under /v1/exceptions/callbacks/credentials. Each credential belongs to the caller’s tenant. Matcher stores only the token’s SHA-256 hash server-side. The mint and rotate responses return the raw token exactly once.
Mint a credential
The request needs a JSON body. Send{} if you do not set a label. The externalSystem field is optional. Provide it as an operator-legible label for the system this token authenticates.
cURL
201 response (CredentialSecretResponse) returns:
Rotate a credential
cURL
CredentialSecretResponse (201, new raw token) and revokes the previous credential in the same transaction. Callbacks that still send the old token fail, so update the external system with the new token at once.
Revoke a credential
cURL
Next steps
Exception Routing
Configure rules that route exceptions.
External Sources
Set up data sources. Among them, only aggregator connections receive webhooks.

