Overview
Webhooks let Trace Finance push events to your backend as they happen — account onboarding completions, beneficiary review outcomes, payment operation updates, and more. Instead of polling for state changes, you register an HTTPS endpoint and Trace FinancePOSTs a JSON payload whenever a relevant event fires.
A typical integration looks like:
- Stand up an HTTPS endpoint on your side that accepts
POSTrequests. - Register the URL with the Subscriptions API, choosing the resource and event types you want.
- Verify each request’s signature, process the payload, and return a
2xxresponse. - Trace Finance retries failed deliveries and exposes execution logs for inspection and manual replay.
Setup
Webhook subscriptions are managed through the Subscriptions API. Each subscription binds one URL to one or more resources (ACCOUNT, OPERATION, BENEFICIARY) and optionally narrows delivery to specific event types per resource.
Signatures
Every outbound request carries aX-Message-Signature header containing an HMAC-SHA256 signature you use to verify the message came from Trace Finance. The signature is computed over ${messageId}+${clientId} with your client secret as the key:
See Verify signatures for verification code in Python, JavaScript, and Go.
Retry policy
If your endpoint returns a non-2xx status or fails to respond, Trace Finance queues the delivery for retry with a delay between attempts. Each delivery attempt is recorded in an execution log you can inspect or resend manually.
See Retry policy for the exact retry budget, log lifetime, and replay guidance.
Available events
Browse the full event catalog by resource:Operations publish webhooks on creation (
OPERATION_REQUESTED),
when paused waiting on your action
(OPERATION_CUSTOMER_ACTION_REQUIRED), and on terminal outcomes
(OPERATION_COMPLETED, OPERATION_FAILED). The intermediate
PROCESSING status is not published — poll
GET /v1/operations/{operationId} if you need it.Accounts publish ACCOUNT_CREATED, ACCOUNT_ACTION_REQUIRED,
ACCOUNT_ASSET_ACTIVATED, and ACCOUNT_ASSET_FAILED. Other account
state transitions are not published — poll
GET /v1/accounts/{accountId} if you need them.