Sent to your endpoint when a proof is anchored
Headers: ProofLedger-Signature (t=<unix seconds>,v1=<hex HMAC-SHA256 of "t.body" with your secret>) and ProofLedger-Event-Id. Answer 2xx within 10 s. Failed deliveries are retried after 1, 5, 30, 120, 360, 720 and 1,440 minutes (almost two days), then the endpoint is switched off and the account emailed. At-least-once: dedupe by event id. Since 2026-10-15 the payload also carries data.bundle, the proof bundle for the chain this event is about (see GET /api/v1/proof/{id}/bundle).
postWebhookproofAnchored
Payload
Example payload
{
"id": "evt_8812",
"data": {
"proof": {
"status": "approved",
"certificate_url": "https://proofledger.io/cert/42",
"verification_url": "https://proofledger.io/verify.html?hash=a1b2c3..."
},
"bundle": {
"format": "verify-proof/1",
"service": "proofledger",
"algorithm": "sha256",
"certificate_url": "https://proofledger.io/cert/42",
"verification_url": "https://proofledger.io/verify.html?hash=a1b2c3..."
}
}
}Response
Any 2xx acknowledges the event.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.