Skip to content

Line items

Lines of booking invoices

The line item object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

Identifier of the related booking

event_iduuid | null
calendar_events.id

Identifier of the related calendar event

invoice_iduuid | null
invoices.id

Identifier of the related invoice

service_iduuid | null
services.id

Identifier of the related service

created_atread-onlytimestamp with time zone

Creation timestamp

updated_atread-onlytimestamp with time zone

Last modification timestamp

amountinteger

Amount of the line item, in cents

fee_typeLineItemFeeType

Type of the fee: fee or deposit

item_typeLineItemType

Type of the line item, most commonly fee

manualboolean

Whether the line item was added manually

nameMultiLanguageString

Localized name of the line item

quantityinteger

Quantity of the line item

Related resources

Embed related resources in the response with the select parameter, for example select=*,bookings(*). Resources related through more than one column need the column as a hint, like table!column(*).

bookings(*)object | null
bookings

The booking referenced by booking_id.

calendar_events(*)object | null
calendar_events

The calendar event referenced by event_id.

invoices(*)object | null
invoices

The invoice referenced by invoice_id.

services(*)object | null
services

The service referenced by service_id.

line_item_taxes(*)array
line_item_taxes

The line item taxes referencing this line item through line_item_taxes.line_item_id.

The line item object
JSON
{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "event_id": "00000000-0000-0000-0000-000000000000",
  "invoice_id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2026-10-30T22:26:24.060Z",
  "updated_at": "2026-10-30T22:26:24.060Z",
  "amount": 0,
  "fee_type": "fee",
  "item_type": "rent",
  "manual": false,
  "name": {},
  "quantity": 0
}
Including related resources
curl -X GET "https://api.bookingmood.com/v1/line_items?limit=10&select=*,bookings(*),calendar_events(*)" \
  -H "Authorization: Bearer YOUR_API_KEY"

List line items

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

event_idFilter<uuid | null>
calendar_events.id

Identifier of the related calendar event

invoice_idFilter<uuid | null>
invoices.id

Identifier of the related invoice

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Amount of the line item, in cents

fee_typeFilter<LineItemFeeType>

Type of the fee: fee or deposit

item_typeFilter<LineItemType>

Type of the line item, most commonly fee

manualFilter<boolean>

Whether the line item was added manually

nameFilter<MultiLanguageString>

Localized name of the line item

quantityFilter<integer>

Quantity of the line item

Responses

200

A list of line items with the selected columns

206

Partial Content

400

The request is malformed, for example an unknown column or an invalid filter.

401

The API key is missing or invalid.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
GET /line_items
curl -X GET "https://api.bookingmood.com/v1/line_items?select=*&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "event_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "service_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:26:24.060Z",
    "updated_at": "2026-10-30T22:26:24.060Z",
    "amount": 0,
    "fee_type": "fee",
    "item_type": "rent",
    "manual": false,
    "name": {},
    "quantity": 0
  }
]

Create line items

Body

Partial<LineItem> | Array<Partial<LineItem>>

Read-only attributes are set by the database and can't be written.

Responses

201

The newly created line items with the selected columns

400

The request is malformed, for example an unknown column, an invalid filter or an invalid body.

401

The API key is missing or invalid.

403

The API key has no permission for this change, for example when writing rows of another organization.

409

The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
POST /line_items
curl -X POST "https://api.bookingmood.com/v1/line_items" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 0,
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "fee_type": "fee",
    "item_type": "rent",
    "manual": false,
    "name": {},
    "quantity": 0
  }'
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "event_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "service_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:26:24.060Z",
    "updated_at": "2026-10-30T22:26:24.060Z",
    "amount": 0,
    "fee_type": "fee",
    "item_type": "rent",
    "manual": false,
    "name": {},
    "quantity": 0
  }
]

Delete line items

Filters

Without filters, this request deletes all line items you have access to. Always filter on at least one column, e.g. id=eq.{id}.

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

event_idFilter<uuid | null>
calendar_events.id

Identifier of the related calendar event

invoice_idFilter<uuid | null>
invoices.id

Identifier of the related invoice

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Amount of the line item, in cents

fee_typeFilter<LineItemFeeType>

Type of the fee: fee or deposit

item_typeFilter<LineItemType>

Type of the line item, most commonly fee

manualFilter<boolean>

Whether the line item was added manually

nameFilter<MultiLanguageString>

Localized name of the line item

quantityFilter<integer>

Quantity of the line item

Responses

200

The deleted line items with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.

400

The request is malformed, for example an unknown column or an invalid filter.

401

The API key is missing or invalid.

403

The API key has no permission for this change, for example when writing rows of another organization.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
DELETE /line_items
curl -X DELETE "https://api.bookingmood.com/v1/line_items?id=eq.00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "event_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "service_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:26:24.060Z",
    "updated_at": "2026-10-30T22:26:24.060Z",
    "amount": 0,
    "fee_type": "fee",
    "item_type": "rent",
    "manual": false,
    "name": {},
    "quantity": 0
  }
]

Update line items

Filters

Without filters, this request updates all line items you have access to. Always filter on at least one column, e.g. id=eq.{id}.

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

event_idFilter<uuid | null>
calendar_events.id

Identifier of the related calendar event

invoice_idFilter<uuid | null>
invoices.id

Identifier of the related invoice

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Amount of the line item, in cents

fee_typeFilter<LineItemFeeType>

Type of the fee: fee or deposit

item_typeFilter<LineItemType>

Type of the line item, most commonly fee

manualFilter<boolean>

Whether the line item was added manually

nameFilter<MultiLanguageString>

Localized name of the line item

quantityFilter<integer>

Quantity of the line item

Body

Partial<LineItem>

Read-only attributes are set by the database and can't be written.

Responses

200

The updated line items with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.

400

The request is malformed, for example an unknown column, an invalid filter or an invalid body.

401

The API key is missing or invalid.

403

The API key has no permission for this change, for example when writing rows of another organization.

409

The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
PATCH /line_items
curl -X PATCH "https://api.bookingmood.com/v1/line_items?id=eq.00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 0
  }'
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "event_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "service_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:26:24.060Z",
    "updated_at": "2026-10-30T22:26:24.060Z",
    "amount": 0,
    "fee_type": "fee",
    "item_type": "rent",
    "manual": false,
    "name": {},
    "quantity": 0
  }
]

Take control of your bookings. Build a business you own.

Join 1200+ independent vacation rental businesses using Bookingmood to grow direct bookings and build stronger guest relationships.

Start free 14-day trial