Overview
Payment events notify you of every change to payments in BookingShake:payment.created, payment.updated, and payment.deleted.
These are pure CRUD events - there is no separate “payment received” event. The payment lifecycle is carried by the status field in the payload: a scheduled payment is created with status waiting, then updated to paid when received. An online payment received immediately emits a single payment.created with status paid.
Security deposits (holds) are out of scope. Documents recorded as security deposits never emit payment events. If a security deposit is converted into a payment (or vice versa), no
created/deleted event is emitted for the transition.- Reconcile payments in your accounting software
- Track cash-in across venues in real-time
- Trigger internal workflows when a payment becomes overdue or is received
Conventions
The payment payload follows the same conventions as invoice events:| Convention | Rule |
|---|---|
| Amounts | Integer cents (e.g., 90000 = €900.00) |
| Dates | YYYY-MM-DD strings, in the Europe/Paris timezone |
| Timestamps | Unix milliseconds |
| Missing values | Explicit null, never omitted |
Payload Example
payment.created, payment.updated, payment.deleted) carry the same data structure. Unlike account.deleted and contact.deleted, payment.deleted includes the full payment data as it was just before deletion - not only the ID.
Data Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique payment ID |
amount | number | null | Amount in integer cents |
status | string | null | waiting, paid, or canceled |
name | string | null | Payment label as entered by the user |
method | string | null | Payment method - see Payment methods |
received_date | string | null | Date the payment was received, YYYY-MM-DD |
due_date | string | null | Date the payment is expected, YYYY-MM-DD |
created_at | number | null | Creation timestamp, Unix milliseconds |
updated_at | number | null | Last update timestamp, Unix milliseconds |
invoice_id | string | null | ID of the linked invoice - matches data.id of invoice.created |
invoice_number | string | null | Number of the linked invoice, denormalized for convenience |
quote_id | string | null | ID of the linked quote |
booking_id | string | null | Opaque correlation key of the booking: all payments and invoices of the same booking share the same value |
Payment Methods
method is the payment method label verbatim, as displayed to the user who recorded the payment. It is not a normalized enum: the same method appears in the language of the venue’s locale (e.g., Virement bancaire / Wire transfer). Standard methods include card on site, card remote, voucher, check, cash, online payment, wire transfer, and restaurant vouchers - but free-text values are possible.
When Is payment.updated Triggered?
payment.updated is only emitted when at least one field exposed in the payload changes: amount, status, name, method, received/due dates, or the invoice, quote, and booking links. Internal changes (sync metadata, technical fields) do not emit events, so you will not receive no-op updates.
Next Steps
Invoice Events
Receive the full invoice payload when documents are issued
Security & Verification
Verify webhook signatures before processing
