Webhooks

Supported events

Look up the event names Blnk sends.

These are the event values Blnk sends to your global webhook URL. Configure your endpoint in webhook configuration, then handle the events listed below.

Ledgers

Event nameDescription
ledger.createdWhen a ledger is created.

Balances

Event nameDescription
balance.createdWhen a balance is created.

Balance monitors

Event nameDescription
balance.monitorWhen the monitor’s trigger says to send. An edge monitor sends once per crossing. A level monitor sends on every committed update while the condition holds.

Transactions

Event nameDescription
transaction.appliedWhen a transaction is applied or committed.
transaction.inflightWhen a transaction is inflight.
transaction.voidWhen an inflight transaction is voided.
transaction.scheduledWhen a transaction is successfully scheduled.
transaction.rejectedWhen a transaction is rejected.

Bulk transactions

Event nameDescription
bulk_transaction.appliedWhen all items in a bulk transaction have been applied.
bulk_transaction.inflightWhen all items in a bulk transaction are successfully inflight.
bulk_transaction.failedWhen a bulk transaction fails.

Identities

Event nameDescription
identity.createdWhen an identity is created.

Metadata

Event nameDescription
ledger.metadata.updatedAfter a successful public ledger metadata update.
balance.metadata.updatedAfter a successful public balance metadata update.
identity.metadata.updatedAfter a successful public identity metadata update, including PUT /identities/{identity_id} when the body writes meta_data.
transaction.metadata.updatedAfter a successful public transaction metadata update.

Internal metadata writes do not emit these events. Each payload includes event_id and timestamp in data for deduplication.

Ledger, balance, and identity — full resource snapshot with merged meta_data for this write (same shape as *.created events).

Transaction — patch only:

{
  "event": "transaction.metadata.updated",
  "data": {
    "transaction_id": "txn_c62f200b-905f-4983-a349-cadd279234aa",
    "meta_data_patch": {
      "settlement_batch": "B-42"
    },
    "event_id": "7f1b0c8d-4e55-4b19-9e2c-a1c83e2f4b19",
    "timestamp": "2026-09-24T12:50:59Z"
  }
}
FieldTypeDescription
transaction_idStringThe id you passed (txn_… or bulk_…). For bulk ids, one event is sent but the merge applies to every matching row.
meta_data_patchObjectThe metadata this request applied. Blnk does not re-read merged meta_data in the event.
event_idStringUnique id for this event.
timestampStringUTC time when the event was enqueued.

The metadata merge is authoritative once the API returns 200. Webhook delivery is best-effort after that.

Update metadata to trigger these events.

Reconciliations

Event nameDescription
reconciliation.completedWhen a reconciliation run completes successfully.
reconciliation.failedWhen a reconciliation run fails.

Start reconciliation and Instant reconciliation return only reconciliation_id. Read status, match counts, and timestamps from the webhook payload.

System errors

Event nameDescription
system.errorWhen a system error occurs (e.g. duplicate reference).
{
  "event": "system.error",
  "data": {
    "error": "reference 0x8fa3c1a2b7d9_q has already been used",
    "time": "2025-12-08T10:30:45Z"
  }
}
FieldTypeDescription
errorStringThe error message describing what went wrong.
timeStringISO 8601 formatted timestamp when the error occurred.