Receive FinanceGPT events
Subscribe to the events your integration needs, verify every signed request, return a 2xx response quickly, and use delivery evidence only when something needs attention.
Subscribe → verify → acknowledge → recover
Register one HTTPS endpoint for sandbox or production and select the smallest useful event set.
Verify the timestamp plus raw request body before parsing or acting on the event.
Persist the event identifier, enqueue your own work, and acknowledge without holding the delivery open.
FinanceGPT retries with bounded backoff. Manual replay is available only for failed or retrying deliveries.
Verify the request before using it
signed_payload = X-FinanceGPT-Timestamp + "." + raw_request_body
expected = HMAC_SHA256(webhook_secret, signed_payload)
constant_time_compare("v1=" + expected, X-FinanceGPT-Signature)
X-FinanceGPT-Event— event typeX-FinanceGPT-Delivery— unique delivery identifierX-FinanceGPT-Timestamp— signing timestampX-FinanceGPT-Signature—v1=<digest>
Any 2xx response is accepted. Failed deliveries use bounded retries at approximately 1, 5, 20 and 60 minutes, with at most five automatic attempts.
Use X-FinanceGPT-Delivery as your idempotency key so a retry does not repeat downstream work.
Start with one event
benchmark.updatedfinance_benchmark_comparisonA published benchmarking comparison was refreshed.
forecast.createdfinancial_forecastA governed financial forecast has been generated.
investment.report.approvedinvestment_client_reportAn investment client report reached an approved or finalized state.
quant.compute.completedfinance_quant_compute_jobA quantitative compute job completed and sealed its result evidence.
test.pingtestA developer-triggered webhook connectivity test.
workflow.completedfinance_workflow_runA governed FinanceGPT workflow run completed.
Payload and recovery reference
Open when implementing event parsing, retries or delivery troubleshooting.
Payload and recovery reference
{
"id": "evt_...",
"type": "workflow.completed",
"created_at": "2026-08-30T08:00:00Z",
"workspace_id": "...",
"data": { "object": { "type": "finance_workflow_run", "id": "218" } }
}
Do not infer transaction authority from an event. Webhooks communicate state changes; existing workspace permissions, approvals, policies and Financial Actions controls remain authoritative.