Overview
The payment endpoints expose the payments recorded on your venue’s invoices:GET /payments?invoice_id={id}- list every payment attached to an invoiceGET /payments/{id}- retrieve a single payment by its document ID
payment.* webhook.
Security deposits (holds) are out of scope - they are excluded from the list and return
404 on the single-get, consistent with the payment webhooks (which never emit for holds). Amounts are integer cents, dates are YYYY-MM-DD strings in the Europe/Paris timezone, timestamps are Unix milliseconds, and missing values are explicit null.Authentication
All requests require a Bearer token (your BookingShake API key):List payments of an invoice
GET /payments?invoice_id={id} returns every payment attached to the given invoice. The result is scoped to the authenticated venue, so an invoice that does not exist or belongs to another venue simply returns an empty array.
ID of the invoice whose payments you want to list - the
invoice_id carried by the payment.* webhooks, and the id of GET /invoices/{id}.{ message, data } envelope, where data is an array of payment objects (each identical in shape to GET /payments/{id}).
Get a payment
GET /payments/{id} returns a single payment by its document ID, in the same shape as the list items.
The payment document ID - the
id field carried by the payment.* webhooks.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, verbatim label (not a normalized enum) - appears in the venue locale language. Do not build logic on exact values |
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 the id of GET /invoices/{id} |
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 | Correlation key shared with invoice and payment events of the same booking |
Errors
| Status | Meaning |
|---|---|
400 | Missing/invalid token, missing invoice_id (GET /payments), or missing payment id (GET /payments/{id}) |
404 | Payment not found - it does not exist, belongs to another venue, or is a security deposit (hold). (single-get only; the list returns 200 with [] instead) |
429 | Rate limit exceeded (60 requests/minute) |
500 | Internal server error |
Out-of-scope payments are never disclosed: the single-get returns a uniform
404, and the list silently omits them - an invoice belonging to another venue returns an empty array, never an error revealing its existence.Next Steps
Get an Invoice
Retrieve the invoice linked to a payment via invoice_id
Payment Events
Receive payments in real time via the payment.* webhooks
