Skip to main content
Beta - Payment events are currently in beta. The payload structure may still evolve before general availability. If you build on them, share your feedback at support@bookingshake.com.

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.
Common use cases:
  • 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:

Payload Example

All three events (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

Payment Methods

Each venue manages its own catalog of payment methods. A payment carries the stable ID of its method in that catalog as method_id; resolve IDs to labels and translations with GET /payment-methods.
method_id is null on payments recorded before the venue catalog was introduced (mid-2026).

Refunds

Amounts are signed. When a venue refunds money to a client, BookingShake records it as a payment with a negative amount (cents refunded) and status paid (the money has actually left). It emits a regular payment.created, and sums of paid amounts on an invoice are therefore net of refunds by construction. Convention: a negative amount with status paid represents a refund. A negative amount with status waiting is a legacy scheduled line that expects nothing and will eventually be canceled - not a refund. Refund records are immutable: they are never rescheduled or corrected. An erroneous refund is compensated by a new incoming payment, not by editing the record.

When Is payment.updated Triggered?

payment.updated is only emitted when at least one field exposed in the payload changes: amount, status, name, payment 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