Tab payment failed
Authoritative failure signal for a tab payment. Includes error code and message for debugging.
Request Body
application/json
Payload delivered to your subscribed webhook URL for the tab.payment_failed event.
TypeScript Definitions
Use the request body type in TypeScript.
Envelope POSTed to subscribed webhook URLs. Signed with HMAC-SHA256 in the X-Webhook-Signature header.
Unique id of this delivery attempt group.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidValue in
- "tab.payment_failed"
Value in
- "tab"
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$date-timeResponse Body
Example Requests
Envelope POSTed to subscribed webhook URLs. Signed with HMAC-SHA256 in the X-Webhook-Signature header.
/tab.payment_failedTab payment completed Webhook
Authoritative success signal for one payment, which may cover only part of the tab. It does not mean the tab was manually closed. Use tabSettled (or remainingBalanceCents) to decide whether the tab is fully paid, and use tab.closed only for manual or administrative closure.
Tab payment initiated Webhook
Fired when a payment is initiated (POST /api/v1/tabs/:id/pay). Mode-specific fields (`itemCount`, `itemIds`) are present only for ITEM mode.