Skip to content

Taxes

Reusable tax definitions

The tax object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this tax is defined in

created_atread-onlytimestamp with time zone

Creation timestamp

updated_atread-onlytimestamp with time zone

Last modification timestamp

ftsread-onlytsvector | null

Full text search index

labelMultiLanguageString

Localized label of the tax

percentagereal

Percentage of the tax

typeTaxType

Type of the tax: on-top or included

Related resources

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

organizations(*)object | null
organizations

The organization referenced by organization_id.

line_item_taxes(*)array
line_item_taxes

The line item taxes referencing this tax through line_item_taxes.tax_id.

The tax object
JSON
{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2026-10-30T22:27:57.051Z",
  "updated_at": "2026-10-30T22:27:57.051Z",
  "label": {},
  "percentage": 0,
  "type": "on-top"
}
Including related resources
curl -X GET "https://api.bookingmood.com/v1/taxes?limit=10&select=*,organizations(*),line_item_taxes(*)" \
  -H "Authorization: Bearer YOUR_API_KEY"

List taxes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this tax is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

ftsFilter<tsvector | null>

Full text search index

labelFilter<MultiLanguageString>

Localized label of the tax

percentageFilter<real>

Percentage of the tax

typeFilter<TaxType>

Type of the tax: on-top or included

Responses

200

A list of taxes 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 /taxes
curl -X GET "https://api.bookingmood.com/v1/taxes?select=*&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "organization_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:27:57.051Z",
    "updated_at": "2026-10-30T22:27:57.051Z",
    "label": {},
    "percentage": 0,
    "type": "on-top"
  }
]

Create taxes

Body

Partial<Tax> | Array<Partial<Tax>>

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

Responses

201

The newly created taxes 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 /taxes
curl -X POST "https://api.bookingmood.com/v1/taxes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": {},
    "organization_id": "00000000-0000-0000-0000-000000000000",
    "percentage": 0,
    "type": "on-top"
  }'
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "organization_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:27:57.051Z",
    "updated_at": "2026-10-30T22:27:57.051Z",
    "label": {},
    "percentage": 0,
    "type": "on-top"
  }
]

Delete taxes

Filters

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

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this tax is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

ftsFilter<tsvector | null>

Full text search index

labelFilter<MultiLanguageString>

Localized label of the tax

percentageFilter<real>

Percentage of the tax

typeFilter<TaxType>

Type of the tax: on-top or included

Responses

200

The deleted taxes 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 /taxes
curl -X DELETE "https://api.bookingmood.com/v1/taxes?id=eq.00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "organization_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:27:57.051Z",
    "updated_at": "2026-10-30T22:27:57.051Z",
    "label": {},
    "percentage": 0,
    "type": "on-top"
  }
]

Update taxes

Filters

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

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this tax is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

ftsFilter<tsvector | null>

Full text search index

labelFilter<MultiLanguageString>

Localized label of the tax

percentageFilter<real>

Percentage of the tax

typeFilter<TaxType>

Type of the tax: on-top or included

Body

Partial<Tax>

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

Responses

200

The updated taxes 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 /taxes
curl -X PATCH "https://api.bookingmood.com/v1/taxes?id=eq.00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": {}
  }'
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "organization_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2026-10-30T22:27:57.051Z",
    "updated_at": "2026-10-30T22:27:57.051Z",
    "label": {},
    "percentage": 0,
    "type": "on-top"
  }
]

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