Get invoice items

Retrieves invoice items for one or more reservations.

Field selection

You must specify at least one field to return via the fields query parameter.
id is always included on every invoice item and reservationId and currency are always included at the result level — none of these need to be listed in fields.
Use the exact enum values listed — any unrecognized field name results in a 400 error.

Nested fields must be requested using their full dot-notation path.
The parent name alone (e.g. adjustments) is not a valid selection;
you must specify the leaf fields you need (e.g. adjustments.amount, adjustments.type).

A field listed in fields may still be absent from a given invoice item when no value is stored for that item.
For example, description, logs, and realizationDates are omitted rather than returned as null when not set.
Scalar arrays such as adjustments and nightsBreakdown may be omitted or empty depending on the item type and data.
See each field's description for details on when it may be absent.

Response structure

Each result groups all invoice items for one reservation under a reservationId key and includes the reservation currency.
The invoiceItems array contains one entry per invoice item on that reservation,
with only the requested fields populated.
An empty invoiceItems array means the reservation exists but has no invoice items.
Results order and invoice item ordering within the array is not guaranteed.

Currency and monetary amounts

All monetary fields (totalPrice, nightsSubtotal, adjustments.amount, nightsBreakdown.basePrice, etc.)
are in the ISO 4217 currency returned in the top-level currency field for that reservation.
Values are returned with full precision as stored; no additional rounding is applied by this endpoint.
Tax treatment follows the channel and reservation configuration and is reflected in the stored amounts.

Monetary fields on the same invoice item do not necessarily reconcile arithmetically.
For example, totalPrice is the final stored amount after all adjustments, while nightsSubtotal is the
sum of per-night prices before adjustments — these will differ whenever adjustments exist.
Tax treatment, deductions (isDeducted, isDeductedV2), and account-level configuration each affect
stored amounts independently. Treat each field as the authoritative figure for its own semantic
rather than attempting to derive one field's value from another.

Partial success

A reservation ID is placed in notFound when the reservation does not exist.

The response always returns HTTP 200. Found records appear in results;
unavailable IDs are listed in notFound.

Batching

A maximum of 200 reservation IDs can be submitted per request.
For larger datasets, split reservation IDs into batches of up to 200 and call this endpoint once per batch.

Example usage

Fetch the line item type, total price, and per-night breakdown for two reservations:

GET /v1/guest-folio/invoice-items?reservationIds=64a1f2c3e4b0a1b2c3d4e5f6,64a1f2c3e4b0a1b2c3d4e5f7&fields=normalType,totalPrice,nightsBreakdown.date,nightsBreakdown.basePrice
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
reservationIds
array of strings
required
length between 1 and 200

Comma-separated reservation IDs. Maximum 200 per request.

reservationIds*
fields
array of strings
required
length ≥ 1

Comma-separated field names to include in each invoice item in the response. Must specify at least one. id is always returned on each invoice item and reservationId/currency are always returned at the result level — none need to be listed here. Unrecognized values result in HTTP 400. Nested array fields (e.g. adjustments, nightsBreakdown) must be requested using their leaf paths (e.g. adjustments.amount, nightsBreakdown.date) — the parent name alone is not a valid selection. A requested field may be absent from an item when no value is stored for it. For a description of each field and its presence conditions, see the Response Body section on this page.

fields*
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json