deposit.failed
Sent when a deposit session ends without settling — the payer’s transaction reverted, or it could not be verified on-chain.
Headers
The event name, so you can route without parsing the body.
deposit.failed t=<epoch seconds>,v1=<hex hmac>. Carries a second v1= during secret rotation.
Legacy bare-hex HMAC over the body alone. No replay protection; prefer the v2 header.
Body
Event name. Also sent as the x-hypermid-event header so you can route before parsing.
checkout.completed, checkout.expired, checkout.failed, deposit.completed, deposit.expired, deposit.failed, withdrawal.completed, withdrawal.expired, withdrawal.failed Dispatch time, epoch MILLISECONDS. Note this differs from the t= value in x-hypermid-signature-v2, which is epoch SECONDS — sign with the header's value, not this one.
1755561600000
The completed session. Same shape for all three events.
Present and true only for a delivery sent by the dashboard's "Test" button, or by POST /v1/payments/webhooks/{webhookId}/test. A real payment never carries it. Reject or sandbox these in production so a test click cannot credit an account.
true
Response
Acknowledged. Any 2xx stops retries; anything else — or no response within 10 seconds — is retried, so return this BEFORE doing slow work.
The body is ignored. Returning one is optional.
Optional. Nothing reads it — the status code is the whole acknowledgement.