Skip to main content
Beta - Invoice data is currently in beta. The payload structure may still evolve before general availability. Share your feedback at support@bookingshake.com.

List invoices

Paginated (limit 1-100 default 25, opaque cursor, response { "items": [...], "next_cursor": "..." }), newest first. Filters: created_from/created_to (Unix ms, issue date), type (invoice, deposit_invoice, balance_invoice, credit_note, deposit_credit_note, balance_credit_note) and status (ongoing, paid, canceled). Items use the full invoice payload below - the natural way to backfill historical invoices before relying on the invoice.created webhook.
Iterate on next_cursor until it is null: a page may contain fewer than limit items even when more data remains. When type and status are combined, status is applied after the indexed query.

Get an invoice

Overview

GET /invoices/{id} returns a single invoice by its document ID - useful to back-fill a missed webhook, reconcile your accounting, or re-fetch a document on demand. The endpoint returns standard invoices, deposit invoices, balance invoices, and their credit notes. Quotes are not exposed by this endpoint.
Amounts are always integer cents, dates are YYYY-MM-DD strings in the Europe/Paris timezone, timestamps are Unix milliseconds, and missing values are explicit null. See the invoice webhook reference for the full field-by-field definition.

Authentication

All requests require a Bearer token (your BookingShake API key):

Path Parameters

string
required
The invoice document ID - the id field carried by the invoice.created webhook.

Request

Response

The invoice is returned wrapped in the standard { message, data } envelope. The data object follows the Invoice schema.

Key Fields

For the complete field reference (amounts, lines, snapshot blocks), see the invoice webhook documentation.

Errors

A 404 is returned uniformly whenever the invoice is outside your scope, so the existence of another venue’s invoice is never disclosed.

Next Steps

Invoice Events

Receive invoices in real time via the invoice.created webhook

Payment Events

Track payments tied to the same booking

Update invoice metadata

Overview

PATCH /invoices/{id} updates the metadata of an issued invoice - a free-form bag of string key/value pairs you can use to attach your own references (an external accounting ID, a Mews record, a sync state…). An issued invoice is legally immutable: its amounts, lines, and the seller / account / contact snapshots are frozen at issue time and cannot be changed through this endpoint. metadata is the only writable field; it lives alongside the legal invoice and never affects it. A legal correction is always materialized by a new document (typically a credit note), never by editing an invoice.
This endpoint does not emit any webhook - there is no invoice.updated event. Updating metadata is a silent, side-channel write. Any attempt to modify a legal field is rejected with 422.
The merge is per key:
  • metadata: { "ref": "ABC" } upserts the ref key, leaving every other key untouched.
  • metadata: { "ref": null } deletes the ref key.

Authentication

All requests require a Bearer token (your BookingShake API key):

Path Parameters

string
required
The invoice document ID - the id field carried by the invoice.created webhook.

Body Parameters

object
required
A flat object of string values. Pass null as a value to delete that key. Keys present in the object are merged into the existing metadata; keys you omit are left untouched.Limits: up to 50 keys per invoice, each key ≤ 40 characters, each value ≤ 500 characters. Nested objects, arrays, and non-string values are rejected with 422.

Request

Response

The full invoice is returned in its post-update state, wrapped in the standard { message, data } envelope - identical in shape to GET /invoices/{id}, with the updated metadata.
See the Get an Invoice reference for the full field descriptions.

Errors

A 404 is returned uniformly whenever the invoice is outside your scope, so the existence of another venue’s invoice is never disclosed.

Next Steps

Get an Invoice

Retrieve an invoice and read its current metadata

Invoice Events

Receive invoices in real time via the invoice.created webhook