_Docs/
Get StartedModulesPlatformDeployCookbookChangelogReference
_Stack
_Modules
  • Ledger
  • Numscript
  • Payments
  • WalletsEE
  • FlowsEE
  • ReconciliationEE
  • WebhooksEE
    • Receiving Webhooks
    • Delivery Lifecycle and Guarantees
    • Event Reference
  1. Modules
  2. Webhooks
  3. Event Reference
Webhooks

Event Reference

This reference lists the webhook events and JSON payload formats published with Formance Stack v3.2.8. It uses Ledger events v2.0.0, Orchestration events v2.0.0, Payments events v3.0.0, and Reconciliation events v2.4.0 from that release artifact.

Event envelope#

Every delivery uses the same top-level envelope. Webhooks builds the subscription identifier by lowercasing the producer message's app and type fields and joining them with a dot. It also writes that normalized identifier back to the outgoing type field. For example, app: ledger and producer type COMMITTED_TRANSACTIONS become type: ledger.committed_transactions in the webhook body.

The payload object changes with the event type. This example shows a complete Ledger committed-transactions message:

json
{
  "idempotency_key": "order-2026-0042",
  "app": "ledger",
  "version": "v2",
  "date": "2026-08-05T10:30:00Z",
  "type": "ledger.committed_transactions",
  "payload": {
    "ledger": "main",
    "transactions": [
      {
        "postings": [
          {
            "source": "world",
            "destination": "users:001",
            "amount": 1000,
            "asset": "USD/2"
          }
        ],
        "metadata": {
          "order": "ORD-2026-0042"
        },
        "id": 42,
        "timestamp": "2026-08-05T10:30:00Z",
        "reverted": false
      }
    ]
  }
}
FieldTypeRequiredDescription
idempotency_keystringYesIdempotency key supplied by the producing module. The field is present but can be an empty string.
versionstringYesVersion of the module event contract.
datestring (date-time)YesTime at which the event was published.
appstringYesModule that published the event.
typestringYesNormalized lowercase <module>.<event> identifier shown below.
payloadobjectYesEvent-specific data.

The Stack release artifact describes producer envelopes and event payloads. Webhooks normalizes the outgoing envelope as shown above, while the nested payload remains governed by the event's JSON Schema. The tables below summarize its top-level shape. Use the linked v3.2.8 artifact for required payload fields, nested objects, array items, formats, and enum values when generating validators or types.

Ledger events#

Webhook event typePayload shape
ledger.committed_transactionsledger: string; transactions: array of objects
ledger.deleted_metadataledger: string; targetType: string; targetId: string; key: string
ledger.reverted_transactionledger: string; revertedTransaction: object; revertTransaction: object
ledger.saved_metadataledger: string; targetType: string; targetId: string; metadata: object

Orchestration events#

Webhook event typePayload shape
orchestration.failed_triggerid: string; triggerID: string; error: string
orchestration.failed_workflowid: string; instanceID: string; error: string
orchestration.failed_workflow_stageid: string; instanceID: string; number: integer; error: string
orchestration.started_workflowid: string; instanceID: string
orchestration.started_workflow_stageid: string; instanceID: string; number: integer
orchestration.succeeded_triggerid: string; triggerID: string
orchestration.succeeded_workflowid: string; instanceID: string
orchestration.succeeded_workflow_stageid: string; instanceID: string; number: integer

Payments events#

Webhook event typePayload shape
payments.connector_resetcreatedAt: string; connectorID: string
payments.deleted_poolid: string; createdAt: string
payments.saved_accountid: string; provider: string; connectorID: string; createdAt: string; reference: string; type: string; rawData: object; defaultAsset: string; name: string; metadata: object
payments.saved_balanceaccountID: string; connectorID: string; provider: string; createdAt: string; lastUpdatedAt: string; asset: string; balance: number
payments.saved_bank_accountid: string; createdAt: string; name: string; accountNumber: string; iban: string; swiftBicCode: string; country: string; metadata: object; relatedAccounts: array
payments.saved_paymentid: string; connectorID: string; provider: string; reference: string; createdAt: string; type: string; status: string; scheme: string; asset: string; amount: number; initialAmount: number; account IDs, links, metadata, and raw data
payments.saved_payment_initiationid: string; connectorID: string; provider: string; reference: string; createdAt: string; scheduledAt: string; description: string; type: string; amount: number; asset: string; account IDs and metadata
payments.saved_payment_initiation_adjustmentid: string; paymentInitiationID: string; status: string; amount: number; asset: string; error: string; metadata: object
payments.saved_payment_initiation_related_paymentpaymentInitiationID: string; paymentID: string
payments.saved_poolid: string; name: string; createdAt: string; accountIDs: array of strings

Reconciliation events#

Webhook event typePayload shape
reconciliation.accepted_alertalert: object; event: object
reconciliation.acknowledged_alertalert: object; event: object
reconciliation.opened_alertalert: object; event: object
reconciliation.reopened_alertalert: object; event: object
reconciliation.resolved_alertalert: object; event: object
reconciliation.snoozed_alertalert: object; event: object
reconciliation.unsnoozed_alertalert: object; event: object
reconciliation.updated_alertalert: object; event: object

The alert object contains the alert state and evidence. The event object records the transition, including its previous and new status, actor metadata, notification decision, and timestamps. Refer to the release artifact for the complete nested schemas and enum values.

Delivery Lifecycle and Guarantees
On This Page
  • Event envelope
  • Ledger events
  • Orchestration events
  • Payments events
  • Reconciliation events