Webhook Payload Reference
Payload structure and event types delivered by Bre-B participant webhooks
This guide describes the envelope Mono uses for every Bre-B participant webhook delivery and lists the outgoing-transfer and target-resolution events your endpoint can expect.
Verify first
Before trusting any payload, verify the Mono-Signature header. See Webhook Signature
Verification.
Payload structure
All webhooks share the same envelope. The event.type string tells you which
event fired and implicitly which fields to expect inside event.data.
interface WebhookPayload {
timestamp: string; // ISO 8601 delivery time
event: {
type: string; // e.g., "outgoing_transfer.created", "outgoing_transfer.failed"
data: {
id: string;
state: string;
// ...additional fields depend on event.type
};
};
}For the exact shape of each event's data object, follow the link in the
events table below — every event has a dedicated schema in the API reference.
Outgoing transfer events
| Event | Description |
|---|---|
outgoing_transfer.created | Transfer was created. Schema |
outgoing_transfer.processing | Transfer is being processed. Schema |
outgoing_transfer.target_resolved | Target (Bre-B key) was resolved. Schema |
outgoing_transfer.held | Funds have been held on the source account. Schema |
outgoing_transfer.sent_to_breb_provider | Transfer was sent to the Bre-B provider. Schema |
outgoing_transfer.successful | Transfer completed successfully. Schema |
outgoing_transfer.failed | Transfer failed. Inspect state_reason for the cause. Schema |
When you receive outgoing_transfer.failed, the state_reason field tells you
why — see Outgoing Transfer Error Codes
for the full list and suggested handling per code.
Target resolution events
Every resolution request emits these events — whether you created it with
Resolve target or a transfer by key created it for you. event.data is the
resolution request: the expected_creditor you sent (or null) and, once resolved, the
target.
| Event | Description |
|---|---|
target_resolution.created | The resolution request was created. Schema |
target_resolution.resolved | The key was resolved; data.target carries the destination. Schema |
target_resolution.failed | The key could not be resolved. state_reason is target_creditor_mismatch when the holder did not match your expected_creditor; no target was persisted. Schema |