Sites & Organisation

Organisations

An Organisation is the top-level account that owns one or more Brands and their Sites — the unit of contract, billing, and cross-site user-access management. The endpoints in this section cover the resources that belong to an organisation rather than to any single site (categories, labels, custom payment types, revenue centres, etc.).

The Organisation object

Attributes

  • iduuidrequired

    Stable identifier for the organisation.

  • namestringrequired

    Display name of the organisation as it appears in Trybe-internal tooling and on contracts. Not normally surfaced to end customers, who see the brand or site name instead.

  • created_atdate-timerequired

    When the organisation was provisioned in Trybe.

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Alex Morgan",
  "created_at": "2026-01-15T09:30:00+00:00"
}
get/shop/organisations/{organisationId}/categories

List Categories

listOrganisationCategories

Returns an array of all categories the current user has permission to view.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • voucher_applicablebooleanoptional

    Only return voucher categories.

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The categories were successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/categories

Create a Category

createOrganisationCategory

Create a new category that belongs to the given organisation.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • namestringoptional

    Display name of the category, shown to customers on the storefront and to staff in the admin UI. Categories group offerings (treatments, classes, products) for navigation and reporting. 1-120 characters; must not contain HTML.

  • voucher_applicablebooleanoptional

    Whether the category can be selected when issuing vouchers.

Responses

  • 201

    The category was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/categories/order

List Categories In Order

listOrganisationCategoryOrder

Returns all categories the current user has permission to view, in their persisted display order.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

Responses

  • 200

    The ordered categories were successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/categories/order

Update Category Order

updateOrganisationCategoryOrder

Persists the display order of categories. The position of each ID in the category_ids array is stored as that category's order.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • category_idsstring[]required

    The category IDs in their desired display order.

Responses

  • 200

    The ordered categories were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/categories/order/all

List All Categories

listAllOrganisationCategories

Returns every category belonging to the organisation in its persisted display order, regardless of voucher_applicable.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Responses

  • 200

    The ordered categories were successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/categories/{categoryId}

Get Category

getOrganisationCategory

Returns the details of a single category.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • categoryIduuidrequired

    The ID of the Category.

Responses

  • 200

    The category was successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/categories/{categoryId}

Update a Category

updateOrganisationCategory

Update an existing category.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • categoryIduuidrequired

    The ID of the Category.

Request body

  • namestringoptional

    Display name of the category, shown to customers on the storefront and to staff in the admin UI. Categories group offerings (treatments, classes, products) for navigation and reporting. 1-120 characters; must not contain HTML.

  • voucher_applicablebooleanoptional

    Whether the category can be selected when issuing vouchers.

Responses

  • 200

    The category was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

delete/shop/organisations/{organisationId}/categories/{categoryId}

Delete a Category

deleteOrganisationCategory

Delete the given category.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • categoryIduuidrequired

    The ID of the Category.

Responses

  • 204

    The category was successfully deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/categories/{categoryId}/copy

Copy a Category

copyOrganisationCategory

Copies the given category. Any properties supplied in the request body will override the corresponding values on the new category.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • categoryIduuidrequired

    The ID of the Category.

Request body

  • namestringoptional

    Display name to give the duplicated category. The new category inherits the source's offerings and settings; the name distinguishes the copy from the original. 1-120 characters; must not contain HTML.

  • voucher_applicablebooleanoptional

    Whether the new category can be selected when issuing vouchers.

Responses

  • 201

    The category was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/custom-payment-types

List custom payment types

listOrganisationCustomPaymentTypes

Returns all CustomPaymentTypes defined on the named Organisation. Custom payment types are shared across the organisation's Sites; assign them to individual sites via updateShopSite using the custom_payment_type_ids field.

The response is currently un-paginated — every custom payment type on the organisation is returned in one shot regardless of the page / per_page query parameters. The parameters are accepted (so a generic paginated-list helper can be pointed at this endpoint without special-casing) but treated as no-ops by the backend. Pass per_page=-1 for the same effect.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The custom payment types were successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/custom-payment-types

Create a custom payment type

createOrganisationCustomPaymentType

Create a new CustomPaymentType on the named Organisation.

The newly created payment type is not automatically enabled on any Site — add it to a site's custom_payment_type_ids via updateShopSite to make it selectable at the till.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • namestringrequired

    Display name shown to staff when accepting payment. 1-120 characters; required.

  • kindstringoptionalnullable

    Optional classification used to drive special handling. See the kind field on CustomPaymentType for the full meaning of each value.

    Possible values:pms_prepaidvoucherprepayment
  • fiscalisation_typestringoptionalnullable

    Optional mapping used when posting to fiscalisation integrations that require a tender-type code.

    Possible values:unknowncashdebit_cardcredit_cardvoucheronline

Responses

  • 201

    The custom payment type was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/custom-payment-types/{customPaymentTypeId}

Get a custom payment type

getOrganisationCustomPaymentType

Returns the details of a single CustomPaymentType.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • The ID of the CustomPaymentType.

Responses

  • 200

    The custom payment type was successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/custom-payment-types/{customPaymentTypeId}

Update a custom payment type

updateOrganisationCustomPaymentType

Update an existing CustomPaymentType. Changes apply immediately to every Site that has the payment type attached.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • The ID of the CustomPaymentType.

Request body

  • namestringoptional

    Updated display name. When omitted the existing name is preserved.

  • kindstringoptionalnullable

    Updated classification. Pass null to clear back to the generic-tender default.

    Possible values:pms_prepaidvoucherprepayment
  • fiscalisation_typestringoptionalnullable

    Updated fiscalisation mapping.

    Possible values:unknowncashdebit_cardcredit_cardvoucheronline

Responses

  • 200

    The custom payment type was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

delete/shop/organisations/{organisationId}/custom-payment-types/{customPaymentTypeId}

Delete a custom payment type

deleteOrganisationCustomPaymentType

Delete a CustomPaymentType. Trybe will also remove the payment type's ID from custom_payment_type_ids on every Site in the organisation, so the tender stops appearing at the till.

Historical orders that recorded the payment type are preserved via soft-delete.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • The ID of the CustomPaymentType.

Responses

  • 204

    The custom payment type was successfully deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/date-sets

Get a list of all date sets belonging to the organisation.

listDateSets

Returns an array of all date sets the current user has permission to view.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • fromdateoptional

    Retrieve DataSets after this value.

  • limitintegeroptional

    The number of DataSets to retrieve.

Responses

  • 200

    DateSets were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

post/shop/organisations/{organisationId}/date-sets

Create a new DateSet

createDateSet

Use this endpoint to create a new DateSet.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • fromdateoptional

    Retrieve DataSets after this value.

  • limitintegeroptional

    The number of DataSets to retrieve.

Request body

  • datesobject[]optional

    The dates in the date set.

  • namestringoptional

    Label for the date set, shown wherever the set is referenced in the admin UI (date pickers, coupon validity, opening exceptions). Use a meaningful label like "Bank holidays" or "Closed for refurb". 1-120 characters.

Responses

  • 201

    The date set was successfully created.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/date-sets/{dateSetId}

Retrieve a DateSet

getDateSet

Use this endpoint to retrieve a DateSet.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • dateSetIdobject-idrequired

    The ID of the DateSet.

Responses

  • 200

    The date set details were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

patch/shop/organisations/{organisationId}/date-sets/{dateSetId}

Update a DateSet

updateDateSet

Use this endpoint to update a DateSet.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • dateSetIdobject-idrequired

    The ID of the DateSet.

Request body

  • datesobject[]optional

    The dates in the date set.

  • namestringoptional

    Label for the date set, shown wherever the set is referenced in the admin UI (date pickers, coupon validity, opening exceptions). Use a meaningful label like "Bank holidays" or "Closed for refurb". 1-120 characters.

Responses

  • 201

    The date set was successfully updated.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

put/shop/organisations/{organisationId}/date-sets/{dateSetId}

Replace a DateSet

actionReplaceDateSet

Replaces the name and dates of a DateSet with the supplied values. Functionally equivalent to the PATCH route — both end up routed to the same handler — exposed as PUT for legacy API clients that prefer the verb's "full replacement" semantics. Any field omitted from the body is treated as unchanged, matching the PATCH behaviour.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • dateSetIdobject-idrequired

    The ID of the DateSet.

Request body

  • datesobject[]optional

    The dates in the date set.

  • namestringoptional

    Label for the date set, shown wherever the set is referenced in the admin UI (date pickers, coupon validity, opening exceptions). Use a meaningful label like "Bank holidays" or "Closed for refurb". 1-120 characters.

Responses

  • 200

    The date set was successfully updated.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

delete/shop/organisations/{organisationId}/date-sets/{dateSetId}

Delete a DateSet

deleteDateSet

Permanently deletes the DateSet. The dates the set contained are no longer treated as restricted/special, but any bookings that were placed while the set was active remain unaffected.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • dateSetIdobject-idrequired

    The ID of the DateSet.

Responses

  • 204

    The date set was successfully deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/appointment-tags

List Appointment Tags

listOrganisationAppointmentTags

Returns a paginated list of every appointment tag that belongs to the organisation. Tags are returned in creation order; use the pagination parameters to walk through large result sets.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The appointment tags were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/appointment-tags

Create an Appointment Tag

createOrganisationAppointmentTag

Create a new appointment tag against the given organisation. The tag becomes immediately available to every site under the organisation and can subsequently be attached to appointment types.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • namestringrequired

    Display name of the tag, shown to staff in the admin UI and used when grouping appointment types in reports. 1-120 characters; must not contain HTML.

Responses

  • 201

    The appointment tag was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/appointment-tags/{appointmentTagId}

Get an Appointment Tag

getOrganisationAppointmentTag

Returns the details of a single appointment tag, including its display name and the organisation it belongs to.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • appointmentTagIduuidrequired

    The unique identifier of the appointment tag. Tag IDs are stable once issued and can be referenced from appointment-type payloads.

Responses

  • 200

    The appointment tag was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/appointment-tags/{appointmentTagId}

Update an Appointment Tag

updateOrganisationAppointmentTag

Updates the display name of an existing appointment tag. The new name is reflected immediately wherever the tag is used in the admin UI and in reports.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • appointmentTagIduuidrequired

    The unique identifier of the appointment tag. Tag IDs are stable once issued and can be referenced from appointment-type payloads.

Request body

  • namestringrequired

    Display name of the tag, shown to staff in the admin UI and used when grouping appointment types in reports. 1-120 characters; must not contain HTML.

Responses

  • 200

    The appointment tag was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

delete/shop/organisations/{organisationId}/appointment-tags/{appointmentTagId}

Delete an Appointment Tag

deleteOrganisationAppointmentTag

Permanently deletes the appointment tag. The tag is removed from every appointment type it was previously attached to; existing bookings are not affected.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • appointmentTagIduuidrequired

    The unique identifier of the appointment tag. Tag IDs are stable once issued and can be referenced from appointment-type payloads.

Responses

  • 204

    The appointment tag was successfully deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/labels

List Labels

listOrganisationLabels

Returns a paginated list of every label that belongs to the organisation. Labels are coloured tags used to highlight or categorise records (customers, bookings, orders) in the admin UI. Use the pagination parameters to walk through large result sets.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • site_iduuidoptional

    Optional filter restricting the response to labels visible at the given site. When set, the response includes both labels with no site restriction (visible everywhere in the organisation) and labels explicitly scoped to this site via the label's site_ids list. When omitted, every label in the organisation is returned.

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The labels were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/labels

Create a Label

createOrganisationLabel

Create a new label against the given organisation. Labels can be restricted to a subset of the organisation's sites by passing the relevant site_ids; staff at other sites won't see the label in the admin UI.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • namestringrequired

    Display name of the label. 1-40 characters; must not contain HTML.

  • colorstringoptionalnullable

    Hex colour used to render the label in the admin UI, including the leading #. Lower-case hexadecimal; must match #rrggbb. Defaults to #f1f1f1 when omitted.

  • site_idsstring[]required

    Identifiers of the sites within the organisation that should be allowed to see and apply this label. Every site ID must belong to the same organisation as the label.

Responses

  • 201

    The label was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/labels/{labelId}

Get a Label

getOrganisationLabel

Returns the details of a single label, including its colour, the organisation it belongs to, and the sites it is visible to.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • labelIduuidrequired

    The unique identifier of the label. Label IDs are stable once issued and can be referenced from any record the label is attached to.

Responses

  • 200

    The label was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/labels/{labelId}

Update a Label

updateOrganisationLabel

Update an existing label. Pass the fields you want to change; site_ids is required and replaces the stored list of sites the label is visible to.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • labelIduuidrequired

    The unique identifier of the label. Label IDs are stable once issued and can be referenced from any record the label is attached to.

Request body

  • namestringoptional

    Display name of the label. 1-40 characters; must not contain HTML.

  • colorstringoptionalnullable

    Hex colour used to render the label in the admin UI, including the leading #. Lower-case hexadecimal; must match #rrggbb.

  • site_idsstring[]required

    Identifiers of the sites within the organisation that should be allowed to see and apply this label. Every site ID must belong to the same organisation as the label. The provided list replaces any previously stored list.

Responses

  • 200

    The label was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

delete/shop/organisations/{organisationId}/labels/{labelId}

Delete a Label

deleteOrganisationLabel

Soft-delete the label. Records previously tagged with the label keep the historical association but the label will no longer appear in pickers or filters.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • labelIduuidrequired

    The unique identifier of the label. Label IDs are stable once issued and can be referenced from any record the label is attached to.

Responses

  • 204

    The label was successfully deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/revenue-centres

List Revenue Centres

listOrganisationRevenueCentres

Returns every revenue centre defined for the organisation. The response includes Trybe's system revenue centres (spa, deposit, membership fees, ...) and any custom centres the operator has added. The meta.has_custom_revenue_centres flag indicates whether the organisation has overridden the Trybe defaults.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Responses

  • 200

    The revenue centres were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/revenue-centres

Create a Revenue Centre

createOrganisationRevenueCentre

Add a new revenue centre to the organisation. Pass at minimum a display name; key can be supplied if you want a stable identifier for use from external integrations. Adding the first custom centre flips has_custom_revenue_centres to true on subsequent list responses.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • keystringoptional

    Optional stable key for the new revenue centre. Used when looking the centre up from external integrations. Defaults to a slugified form of name when omitted.

  • namestringrequired

    Display name of the revenue centre, shown in the admin UI and on financial reports.

  • tax_percentnumberoptionalnullable

    The percentage of tax to apply to sales recorded against this revenue centre when no per-line tax configuration overrides it.

Responses

  • 200

    The revenue centre was successfully retrieved.

  • 400

    The request failed.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/revenue-centres/{revenueCentreId}

Get a Revenue Centre

getOrganisationRevenueCentre

Returns the details of a single revenue centre, including its display name, default tax percentage, and whether it is a required Trybe revenue centre that cannot be deleted.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • revenueCentreIdstringrequired

    The identifier of the revenue centre. System revenue centres use stable, lower-case slugs (spa, deposit, ...); custom ones are issued when the centre is created.

Responses

  • 200

    The revenue centre was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/revenue-centres/{revenueCentreId}

Update a Revenue Centre

updateOrganisationRevenueCentre

Update an existing revenue centre. The name is required; key and tax_percent can be supplied to change those fields. System revenue centres can be renamed and have their tax percentage updated but cannot be deleted.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • revenueCentreIdstringrequired

    The identifier of the revenue centre. System revenue centres use stable, lower-case slugs (spa, deposit, ...); custom ones are issued when the centre is created.

Request body

  • keystringoptional

    Optional stable key for the new revenue centre. Used when looking the centre up from external integrations. Defaults to a slugified form of name when omitted.

  • namestringrequired

    Display name of the revenue centre, shown in the admin UI and on financial reports.

  • tax_percentnumberoptionalnullable

    The percentage of tax to apply to sales recorded against this revenue centre when no per-line tax configuration overrides it.

Responses

  • 200

    The revenue centre was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

delete/shop/organisations/{organisationId}/revenue-centres/{revenueCentreId}

Delete a Revenue Centre

deleteOrganisationRevenueCentre

Permanently delete the revenue centre from the organisation. System revenue centres (spa, deposit, membership joining fee, membership fee, and deposit redemption) cannot be deleted and will return 400 Bad Request. Historical ledger lines that referenced the centre keep their reference for reporting purposes.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • revenueCentreIdstringrequired

    The identifier of the revenue centre. System revenue centres use stable, lower-case slugs (spa, deposit, ...); custom ones are issued when the centre is created.

Responses

  • 204

    The revenue centre was successfully deleted.

  • 400

    The request failed.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/sales-channels

List Sales Channels

listSalesChannels

Returns a paginated list of every sales channel that belongs to the organisation, ordered by their stored display order then by name. Sales channels are used to label the source of a sale (e.g. "Front Desk", "Phone", "Website") so revenue can be broken down by channel on reports.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Query parameters

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The sales channels were successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/sales-channels

Create a Sales Channel

createSalesChannel

Create a new sales channel against the given organisation. The channel becomes immediately available for tagging orders, appointments, and other revenue-bearing records across every site under the organisation.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • namestringrequired

    Display name of the sales channel, shown in pickers across the admin UI and on reports that break revenue down by channel.

Responses

  • 201

    The sales channel was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

get/shop/organisations/{organisationId}/sales-channels/{salesChannelId}

Get a Sales Channel

getSalesChannel

Returns the details of a single sales channel, including its display name and the organisation it belongs to.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • salesChannelIduuidrequired

    The unique identifier of the sales channel. Sales channel IDs are stable once issued and can be referenced from orders, appointments, and other revenue-bearing records.

Responses

  • 200

    The sales channel was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

delete/shop/organisations/{organisationId}/sales-channels/{salesChannelId}

Delete a Sales Channel

deleteSalesChannel

Permanently delete the sales channel. Existing records that were previously tagged with the channel keep their historical association on reports, but the channel will no longer appear in pickers when creating new records.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • salesChannelIduuidrequired

    The unique identifier of the sales channel. Sales channel IDs are stable once issued and can be referenced from orders, appointments, and other revenue-bearing records.

Responses

  • 204

    The sales channel was successfully deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/shop/organisations/{organisationId}/labels/{labelId}/copy

Duplicate a Label

copyOrganisationLabel

Creates a copy of an existing organisation Label with new fields applied from the request body. Useful for spinning up a second label for another set of sites without rebuilding it from scratch.

name and site_ids are required so the copy is distinct from the source. color is optional and defaults to the source's colour when omitted.

Requires the SETTINGS_MANAGE permission on the organisation.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • labelIduuidrequired

    The unique identifier of the label. Label IDs are stable once issued and can be referenced from any record the label is attached to.

Request body

  • namestringrequired

    Display name for the new copy. Plain text only (any HTML is rejected); maximum 40 characters.

  • colorstringoptionalnullable

    Six-digit hex colour with a leading #. Defaults to the source's colour when omitted.

  • site_idsstring[]required

    UUIDs of the sites the copy is visible at. Every ID must belong to the organisation in the path. Replaces (does not extend) the source's site list.

Responses

  • 200

    The label was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

post/shop/organisations/{organisationId}/labels/{labelId}/restore

Restore a Label

restoreOrganisationLabel

Restores a previously soft-deleted organisation Label. The label reappears in pickers and filters and any records that were tagged with it before deletion immediately regain the tag in the UI.

Requires the SETTINGS_MANAGE permission on the organisation. No request body.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • labelIduuidrequired

    The unique identifier of the label. Label IDs are stable once issued and can be referenced from any record the label is attached to.

Responses

  • 200

    The label was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/shop/organisations/{organisationId}/sales-channels-order

List Sales Channels in Display Order

listOrganisationSalesChannelsOrder

Returns every sales channel that belongs to the organisation, sorted by the organisation-wide display order (ascending). Use this endpoint when you need the channels in the order they should be rendered in a UI picker; use GET /shop/organisations/{organisationId}/sales-channels when you want a paginated list.

Requires the RESERVATIONS_VIEW permission on a site under the organisation.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Responses

  • 200

    The ordered sales channels.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

put/shop/organisations/{organisationId}/sales-channels-order

Update Sales Channels Order

updateSalesChannelsOrder

Updates the organisation-wide display order of sales channels by supplying the desired sequence of SalesChannel IDs. IDs not listed retain their previous order relative to one another and are appended to the tail.

Requires the SHARED_SETTINGS_MANAGE permission on any site under the organisation.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

Request body

  • organisation_iduuidrequired

    UUID of the organisation whose channels are being reordered. Must match the organisationId in the path.

  • sales_channel_idsstring[]required

    The desired display sequence of SalesChannel IDs.

Responses

  • 204

    The sales channel order was updated successfully.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

post/shop/organisations/{organisationId}/category/{categoryId}/copy

Copy a Category (singular alias)

copyOrganisationCategoryLegacy

Legacy URL alias for POST /shop/organisations/{organisationId}/categories/{categoryId}/copy. Routes to the same handler — copies the category and overlays any properties supplied in the request body.

New integrations should use the plural route; this endpoint remains for backwards compatibility with API consumers that were built against the original singular URL.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • categoryIduuidrequired

    The ID of the Category.

Request body

  • namestringoptional

    Display name to give the duplicated category. 1-120 characters; must not contain HTML.

  • voucher_applicablebooleanoptional

    Whether the new category can be selected when issuing vouchers.

Responses

  • 201

    The category was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation

post/shop/organisations/{organisationId}/label/{labelId}/copy

Duplicate a Label (singular alias)

copyOrganisationLabelLegacy

Legacy URL alias for POST /shop/organisations/{organisationId}/labels/{labelId}/copy. Routes to the same handler — duplicates the label with new fields overlaid from the body.

New integrations should use the plural route; this endpoint remains for backwards compatibility with API consumers that were built against the original singular URL.

Path parameters

  • organisationIduuidrequired

    Identifier of the organisation. Organisations group sites together under a single billing/admin entity; the caller's API key must have access to the named organisation.

  • labelIduuidrequired

    The unique identifier of the label. Label IDs are stable once issued and can be referenced from any record the label is attached to.

Request body

  • namestringrequired

    Display name for the new copy. Plain text only; maximum 40 characters.

  • colorstringoptionalnullable

    Six-digit hex colour with a leading #. Defaults to the source's colour when omitted.

  • site_idsstring[]required

    UUIDs of the sites the copy is visible at. Every ID must belong to the organisation in the path.

Responses

  • 200

    The label was successfully retrieved.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

  • 422

    The request didn't pass validation