This API is documented in OpenAPI format. The Trybe API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
You can download this OpenAPI specification and use the OpenAPI Generator to generate libraries in a supported language of your choice.
You will need to replace values in this documentation between hashes such as ##SiteId## with information provided to you. These values will be different per environment.
This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with W3C spec. And that allows cross-domain communication from the browser. All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site.
Trybe offers different methods of authentication. Customers, guests and members can be authenticated using OpenID on top of OAuth2. Trybe users can be authenticated with a long lived personal access bearer token issued by the Trybe Account Management team.
You will have received your OAuth Client credentials for the authorization code flow used for SSO for both the playground and live environments. You should have also recieved a long lived personal access bearer token belonging to your user in the system. The personal access token will be used to manage Trybe resources.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Security Scheme Type | OAuth2 |
---|---|
authorizationCode OAuth Flow | Authorization URL: /oauth/authorize Token URL: /oauth/token Scopes:
|
All top-level API resources have support for bulk fetches via "list" API methods. For instance, you can list customers, and list membership types. These list API methods share a common structure, accepting the following 2 pagination parameters: page, per_page.
List endpoints will return meta and link information.
from | integer The item number from which this results set starts from |
to | integer The item number from which this results set ends at |
total | integer The total number of results |
current_page | integer The current page number |
last_page | integer The page number of the last result set |
per_page | integer The number of results per page |
path | string The path of this api request |
{- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
first | string The url of the first page for the paginated results set |
next | string Nullable The url of the next page for the paginated results set |
prev | string Nullable The url of the previous page for the paginated results set |
last | string The url of the last page for the paginated results set |
{
}
Use the booking frame to easily integrate Trybe into your existing booking flow.
With the booking frame, you can provide your guests with a smooth experience for booking treatments and packages without having to worry about the frontend.
The booking frame works in the following way:
Creating a Booking Frame Session
You make a request to our API to create a booking frame session, providing us with the date range and the number of guests.
In the response, we'll generate you a URL.
You present an iframe with the source as the generated URL.
Guest uses booking frame
The guest uses the Trybe booking frame to check availability, book treatments, and configure packages for their stay.
Handle when the user is finished
When the user has finished booking, they'll click a call to action within the booking frame which triggers a postMessage
on the parent document.
When you're ready, submit the basket to confirm the guest's choices.
If you've captured a payment, make an additional request to our API to record this.
To make requests to the API, you need to authenticate. There are two methods of authentication required for the different endpoints you'll be using:
booking-frame
endpoints
Pass a partner_id
in the request to create your booking frame session. Get in touch with us to request a partner ID.
shop
endpoints
Generate an API key from the Developer settings page in Trybe and pass this as a Bearer token.
When using the BookingFrameApi, the base URL of the API is specific to the site. You can see the URL for a site by heading to Shop Settings within Trybe.
Use the following code samples for examples on how to integrate the booking frame into your application.
Here's an example cURL request to create a booking frame session for 2 guests at Palm Tree Spa. The guests will be able to book treatments between 1st April 2023 to 3rd April 2023 inclusive. All treatments that are available for the given dates will be offered to the guest.
curl --request POST \
--url https://palmtreespa.try.be/booking-frame/create \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2
}'
You can use the reservation_id
to store your own reference against this booking frame session.
In the response, we'll send a JSON encoded url
back. This is the URL to use to present an iframe to the user.
...
"url": "https:\/\/palmtreespa.try.be\/booking-frame\/6419a5ff5faebc72af0529a3",
...
The booking frame supports basic theming to create a consistent look and feel with your application.
We support customising the following values:
accent_color
The accent colour is used as the background colour for some buttons and links.accent_text_color
The accent text colour is the text colour used for text placed over the accent colour background.Send these values as a hex colour code under the theme
property when creating a new booking frame session. Here's an example payload:
{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2,
"theme": {
"accent_color": "#9999ff",
"accent_text_color": "#ffffff"
}
}
If you want the user to only be able to pick from a specific range of treatments, you can pass the offering IDs when creating the booking frame session using the allowed_offering_ids
field.
{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2,
"allowed_offering_ids": [
"5e932c0901d210625e3a8766",
"5e932c0901d210625e3a8767"
]
}
With the given payload, only two offerings will be available to choose from.
Similarly, you can use the disallowed_offering_ids
field to exclude specific offerings.
{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2,
"disallowed_offering_ids": [
"5e932c0901d210625e3a8766",
"5e932c0901d210625e3a8767"
]
}
This payload will generate a booking frame session where the guest can choose from any offering except the ones specified.
In some cases, you may not want the guest to see prices of the treatments; for example if the guest is buying an overnight package where the price includes one spa treatment.
To hide all the prices from the guest, use the hide_prices
field.
{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2,
"hide_prices": true
}
Sometimes you might want to offer the guest one or more specific treatments or packages within Trybe where the price is already included in your rate, but also give the guest flexibility to book more treatments at an additional cost.
For example, if the guest is booking a "Stay and Spa" rate in your application which includes a room and a specific treatment, but they are also free to book additional treatments on top of this.
With the included_offering_ids
field, you can specify which offerings are "included", and should therefore display their price as zero on the booking frame. We'll display the value in the currency of the site, so if the site has GBP as the default currency, the price of the offering will display as "£0.00".
{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2,
"included_offering_ids": [
"5e932c0901d210625e471af1"
]
}
Please note, the Basket response will still show the full price of the item in order for the revenue to be associated in Trybe.
You can create a booking frame session which only allows the guest to configure an item already in the basket, and it removes the ability for them to pick an offering.
This can be useful if you want the guest to pick a package from your own application, but you don't want to deal with the complexities of configuring the package in your application. Or if you only want to offer a specific package to the guest, and you've already made it clear to the guest in your flow that they're booking a specific offering.
To use this, pass the configure_only
field when creating the booking frame session:
{
"partner_id": "INSERT_YOUR_PARTNER_ID",
"reservation_id": "12345",
"date_from": "2023-04-01",
"date_to": "2023-04-03",
"num_guests": 2,
"configure_only": true
}
Then, use the API to programatically add an item to the basket. You can retrieve the basket ID and guest IDs from the response of the previous API request. Here's an example cURL request to add an item to the basket. Make sure you replace the IDs with ones relevant to your use case, and provide a valid Bearer token for authentication.
curl --request POST \
--url https://api.try.be/shop/basket/5e932c0901d210625e3a8766/items \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer INSERT_YOUR_BEARER_TOKEN' \
--data '{
"offering_id": "5e932c0901d210625e471af1",
"offering_type": "package",
"date": "2023-04-01",
"guest_id": "5e932c0901d210625e471af2",
}'
Now, when the booking frame is presented, the guest will only be able to configure the item in the basket. They won't be able to pick a different offering, nor remove the offering.
Once you've created the booking frame session, you can present the booking frame to the guest by embedding an iframe on your page.
Here's an example of how you could acheive this in plain JavaScript:
const bookingFrameUrl = bookingFrameResponse.data.url
const iframe = document.createElement('iframe')
iframe.src = bookingFrameUrl
document.body.appendChild(iframe)
The booking frame is responsive and has been engineered with small screens in mind. For the best mobile experience, we strongly recommend that the iframe is sized to fill the width and height of the viewport.
When the user has finished configuring their order, they'll click the "Continue" CTA button. This will trigger a postMessage
event to be sent to the parent window with the following payload:
{
"type": "trybeBookingFrameComplete",
"reservationId": "12345"
}
The reservationId
will match what you provided when creating the booking frame session.
You should add an event listener to this event, and use it to close the iframe and continue with your flow.
Here's an example of how you could do this in plain JavaScript:
window.addEventListener('message', function (event) {
if (event.data.type === 'trybeBookingFrameComplete') {
// Close the iframe
// Continue with your flow
}
})
Once the guest has finished configuring their order, you'll need to "submit" the basket. This is what confirms the order in Trybe and schedules it with the relevant practitioner/room/area.
To do this, you'll need to make a POST request to the /shop/orders/{basketId}/submit
endpoint. Make sure you replace the basket ID with one relevant to your use case, and provide a valid Bearer token for authentication.
curl --request POST \
--url https://api.try.be/shop/orders/5e932c0901d210625e3a8766/submit \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer INSERT_YOUR_BEARER_TOKEN'
If you've taken payment for the order within your application and want to record this in Trybe, make a POST request to the /shop/orders/{basketId}/payments
endpoint.
Pass the amount
as an integer of the smallest unit of currency. For example, if you've taken £100.00, pass 10000
. No need to pass the currency code - it's derived from the Site's configuration.
curl --request POST \
--url https://api.try.be/shop/orders/5e932c0901d210625e3a8766/submit \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer INSERT_YOUR_BEARER_TOKEN' \
--data '{
"amount": 10000,
"processor": "partner"
}'
date_from | string <date> Filter to appointments with a date after this date. |
date_to | string <date> Filter to appointments with a date before this date. |
start_date_from | string <date> Filter to appointments with a start date after this date. |
start_date_to | string <date> Filter to appointments with a start date before this date. |
site_id | string The ID of the site to filter on. |
status | string Filter on appointments of this status. |
boolean Whether to request an email of this report. | |
practitioner_id | string Example: practitioner_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of practitioner ids to fetch bookings for |
room_id | string Example: room_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of room ids to fetch bookings for |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to fetch bookings for |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Returns the details of a single appointment
appointmentId required | string The ID of the appointment you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000000",
- "appointment_type_id": "5dcb47800000000000001234",
- "appointment_type_name": "60 minute massage",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "order_is_locked": false,
- "order_locked_at": "2019-01-15T12:00:00+01:00",
- "product_code": "MAS123",
- "order_labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "status": "none",
- "stage": "not_arrived",
- "net_total": 4950,
- "total_cost": 5000,
- "currency": "gbp",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "room_id": "5dcb47800000000000000020",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "start_time": "2019-01-15T12:00:00+01:00",
- "end_time": "2019-01-15T13:00:00+01:00",
- "end_buffer": 15,
- "duration": 60,
- "is_locked": true,
- "is_group_booking": true,
- "is_hotel_room_booking": true,
- "has_outstanding_balance": true,
- "has_notes": true,
- "has_special_requests": true,
- "is_part_of_package": true,
- "package_product_code": "MAS123",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "submitted_at": "2019-01-15T12:00:00+01:00",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
}
Update an existing appointment
appointmentId required | string The ID of the appointment you want to update |
Updates the specified Appointment
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
practitioner_ids | Array of strings The IDs of the practitioners this slot is for |
room_id | string The ID of the room this slot is for |
time | string <date-time> The start time of the appointment. |
duration | integer The duration of appointment that the price rule applies to. |
stage | string Enum: "not_arrived" "arrived" "in_treatment" "checked_out" The current stage of the order the session belongs to. |
{- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000011",
- "time": "2020-07-24T12:00:00+01:00",
- "duration": 60,
- "stage": "not_arrived"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "appointment_type_id": "5dcb47800000000000001234",
- "appointment_type_name": "60 minute massage",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "order_is_locked": false,
- "order_locked_at": "2019-01-15T12:00:00+01:00",
- "product_code": "MAS123",
- "order_labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "status": "none",
- "stage": "not_arrived",
- "net_total": 4950,
- "total_cost": 5000,
- "currency": "gbp",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "room_id": "5dcb47800000000000000020",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "start_time": "2019-01-15T12:00:00+01:00",
- "end_time": "2019-01-15T13:00:00+01:00",
- "end_buffer": 15,
- "duration": 60,
- "is_locked": true,
- "is_group_booking": true,
- "is_hotel_room_booking": true,
- "has_outstanding_balance": true,
- "has_notes": true,
- "has_special_requests": true,
- "is_part_of_package": true,
- "package_product_code": "MAS123",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "submitted_at": "2019-01-15T12:00:00+01:00",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
}
appointmentId required | string The ID of the appointment you want to check |
practitioner_ids | Array of strings The IDs of the practitioners this slot is for |
room_id | string The ID of the room this slot is for |
time | string <date-time> The start time of the appointment. |
duration | integer The duration of appointment that the price rule applies to. |
stage | string Enum: "not_arrived" "arrived" "in_treatment" "checked_out" The current stage of the order the session belongs to. |
{- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000011",
- "time": "2020-07-24T12:00:00+01:00",
- "duration": 60,
- "stage": "not_arrived"
}
{- "data": {
- "allowed": true,
- "errors": [
- {
- "type": "NoSlotException",
- "message": "The requested time slot isn't valid for this appointment type."
}
], - "user_can_override": true
}
}
Returns an array of all appointments the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: date_from=2019-01-15T12:00:00+01:00 the date to fetch appointments from |
date_to | string <date> Example: date_to=2019-01-15T12:00:00+01:00 the date to fetch appointments to |
order_submitted_at_from | string <date> Example: order_submitted_at_from=2019-01-15T12:00:00+01:00 the order submitted date to fetch appointments from |
order_submitted_at_to | string <date> Example: order_submitted_at_to=2019-01-15T12:00:00+01:00 the order submitted date to fetch appointments to |
practitioner_id | string Example: practitioner_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of practitioner ids to fetch bookings for |
room_id | string Example: room_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of room ids to fetch bookings for |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of zone ids to fetch bookings for |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "appointment_type_id": "5dcb47800000000000001234",
- "appointment_type_name": "60 minute massage",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "order_is_locked": false,
- "order_locked_at": "2019-01-15T12:00:00+01:00",
- "product_code": "MAS123",
- "order_labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "status": "none",
- "stage": "not_arrived",
- "net_total": 4950,
- "total_cost": 5000,
- "currency": "gbp",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "room_id": "5dcb47800000000000000020",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "start_time": "2019-01-15T12:00:00+01:00",
- "end_time": "2019-01-15T13:00:00+01:00",
- "end_buffer": 15,
- "duration": 60,
- "is_locked": true,
- "is_group_booking": true,
- "is_hotel_room_booking": true,
- "has_outstanding_balance": true,
- "has_notes": true,
- "has_special_requests": true,
- "is_part_of_package": true,
- "package_product_code": "MAS123",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "submitted_at": "2019-01-15T12:00:00+01:00",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "totals": {
- "net_total": 5000,
- "total_items": 4
}, - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
date_from | string <date> Filter to appointments with a date after this date. |
date_to | string <date> Filter to appointments with a date before this date. |
order_submitted_at_from | string <date> Filter to appointments with a start date after this date. |
order_submitted_at_to | string <date> Filter to appointments with a start date before this date. |
site_id | string The ID of the site to filter on. |
status | string Filter on appointments of this status. |
practitioner_id | string Example: practitioner_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of practitioner ids to fetch bookings for |
room_id | string Example: room_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of room ids to fetch bookings for |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to fetch bookings for |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Returns an array of all appointments the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
date_from | string <date> Example: date_from=2019-01-15T12:00:00+01:00 the date to fetch appointments from |
date_to | string <date> Example: date_to=2019-01-15T12:00:00+01:00 the date to fetch appointments to |
start_date_from | string <date> Example: start_date_from=2019-01-15T12:00:00+01:00 the start date to fetch appointments from |
start_date_to | string <date> Example: start_date_to=2019-01-15T12:00:00+01:00 the start date to fetch appointments to |
submitted_at_from | string <date-time> Example: submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Example: submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
practitioner_id | string Example: practitioner_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of practitioner ids to fetch bookings for |
room_id | string Example: room_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of room ids to fetch bookings for |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of zone ids to fetch bookings for |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "appointment_type_id": "5dcb47800000000000001234",
- "appointment_type_name": "60 minute massage",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "order_is_locked": false,
- "order_locked_at": "2019-01-15T12:00:00+01:00",
- "product_code": "MAS123",
- "order_labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "status": "none",
- "stage": "not_arrived",
- "net_total": 4950,
- "total_cost": 5000,
- "currency": "gbp",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "room_id": "5dcb47800000000000000020",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "start_time": "2019-01-15T12:00:00+01:00",
- "end_time": "2019-01-15T13:00:00+01:00",
- "end_buffer": 15,
- "duration": 60,
- "is_locked": true,
- "is_group_booking": true,
- "is_hotel_room_booking": true,
- "has_outstanding_balance": true,
- "has_notes": true,
- "has_special_requests": true,
- "is_part_of_package": true,
- "package_product_code": "MAS123",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "submitted_at": "2019-01-15T12:00:00+01:00",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "totals": {
- "net_total": 5000,
- "total_items": 4
}, - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Returns an array of all appointment types the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
archived | boolean Only show archived resources |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new appointment type
To create an appointment type, you pass an AppointmentType
object.
id | string The ID of the appointment type. |
name | string The name of this appointment type |
description | string A description of the appointment type |
product_code | string A custom product code for the appointment type. |
currency | string The ISO-4217 currency code in lower case |
image_id | string The id of the image |
object (Media) | |
practitioner_ids | Array of strings The IDs of practitioners who can provide this appointment |
Array of objects (AvailabilityRule) The rules defining periods during which appointments can be offered | |
enquiries_enabled | boolean Whether enquiries can be accepted for this appointment type |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (AppointmentPriceRule) The rules defining prices for this appointment type | |
durations | Array of integers The allowed durations of the appointment in minutes |
end_buffer | integer An optional number of minutes that should be blocked out at the end of the appointment, for example for cleaning or changeover time. |
start_time_interval | integer Appointments may start on intervals of this number of minutes |
max_advance_bookings_interval | string The maximum time before an appointment's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before an appointment's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
allocate_multi_capacity_rooms | boolean If enabled, Trybe will attemtpt to assign guests to larger rooms before allocating single rooms. |
members_only | boolean Whether this appointment requires an active membership in order to book. |
permitted_membership_type_ids | Array of strings If this appointment is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this appointment type. |
Array of objects (MembershipBookingWindow) | |
object | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
tag_ids | Array of strings The tags IDs associated with this appointment type |
Array of objects (Tag) The tags associated with this appointment type | |
category_ids | Array of strings The category IDs associated with this appointment type |
Array of objects (Category) The category associated with this appointment type | |
site_ids | Array of strings The IDs of the sites this appointment type belongs to |
equipment_ids | Array of strings The IDs of the equipment this appointment type requires |
room_ids | Array of strings The IDs of rooms that may be used to provide this appointment type |
Array of objects (Contraindication) | |
offered_online | boolean Whether this appointment type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
min_guests | integer The minimum guests this appointment type is for |
max_guests | integer The maximum guests this appointment type is for |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the details of a single appointment type
appointmentTypeId required | string The ID of the appointment type you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Update an existing appointment type
appointmentTypeId required | string The ID of the appointment type you want to retrieve |
Updates the specified AppointmentType
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the appointment type. |
name | string The name of this appointment type |
description | string A description of the appointment type |
product_code | string A custom product code for the appointment type. |
currency | string The ISO-4217 currency code in lower case |
image_id | string The id of the image |
object (Media) | |
practitioner_ids | Array of strings The IDs of practitioners who can provide this appointment |
Array of objects (AvailabilityRule) The rules defining periods during which appointments can be offered | |
enquiries_enabled | boolean Whether enquiries can be accepted for this appointment type |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (AppointmentPriceRule) The rules defining prices for this appointment type | |
durations | Array of integers The allowed durations of the appointment in minutes |
end_buffer | integer An optional number of minutes that should be blocked out at the end of the appointment, for example for cleaning or changeover time. |
start_time_interval | integer Appointments may start on intervals of this number of minutes |
max_advance_bookings_interval | string The maximum time before an appointment's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before an appointment's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
allocate_multi_capacity_rooms | boolean If enabled, Trybe will attemtpt to assign guests to larger rooms before allocating single rooms. |
members_only | boolean Whether this appointment requires an active membership in order to book. |
permitted_membership_type_ids | Array of strings If this appointment is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this appointment type. |
Array of objects (MembershipBookingWindow) | |
object | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
tag_ids | Array of strings The tags IDs associated with this appointment type |
Array of objects (Tag) The tags associated with this appointment type | |
category_ids | Array of strings The category IDs associated with this appointment type |
Array of objects (Category) The category associated with this appointment type | |
site_ids | Array of strings The IDs of the sites this appointment type belongs to |
equipment_ids | Array of strings The IDs of the equipment this appointment type requires |
room_ids | Array of strings The IDs of rooms that may be used to provide this appointment type |
Array of objects (Contraindication) | |
offered_online | boolean Whether this appointment type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
min_guests | integer The minimum guests this appointment type is for |
max_guests | integer The maximum guests this appointment type is for |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the status of deletion
appointmentTypeId required | string The ID of the appointment type you want to retrieve |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Ensures that each date which this appointment type is available for has a price rule
appointmentTypeId required | string The ID of the appointment type you want to retrieve |
{- "data": {
- "valid": true,
- "missing_dates": [
- {
- "from": "2021-10-01T00:00:00.000Z",
- "to": "2021-11-01T00:00:00.000Z"
}
]
}
}
Restores a soft-deleted (archived) appointment type.
appointmentTypeId required | string The ID of the appointment type you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all price rules for the given appointment type.
appointmentTypeId required | string The ID of the appointment type you want to retrieve |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
appointmentTypeId required | string The ID of the appointment type you want to add a price rule for |
To create a price rule you pass an AppointmentPriceRule
object.
id | string The ID of the price rule. |
appointment_type_id | string The ID of the appointment type the price rule relates to. |
date_from | string <date> The rule should apply to appointments on or after this date. |
date_to | string <date> The rule should not apply to appointments after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to appointments starting on or after this time. |
time_to | string The rule should not apply to appointments starting on or after this time. |
duration | integer The duration of appointment that the price rule applies to. |
price | integer The price of the appointment. |
{- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
}
Returns the details of a single price rule.
appointmentTypeId required | string The ID of the appointment type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
}
Update an existing price rule.
appointmentTypeId required | string The ID of the appointment type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to update. |
Updates the specified AppointmentPriceRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the price rule. |
appointment_type_id | string The ID of the appointment type the price rule relates to. |
date_from | string <date> The rule should apply to appointments on or after this date. |
date_to | string <date> The rule should not apply to appointments after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to appointments starting on or after this time. |
time_to | string The rule should not apply to appointments starting on or after this time. |
duration | integer The duration of appointment that the price rule applies to. |
price | integer The price of the appointment. |
{- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
}
Returns the status of deletion
appointmentTypeId required | string The ID of the appointment type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns an array of all availability rules for the given appointment type.
appointmentTypeId required | string The ID of the appointment type the availability rules relate to. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
appointmentTypeId required | string The ID of the appointment type the availability rules relate to. |
To create an availability rule you pass an AvailabilityRule
object.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
Returns the details of a single availability rule.
appointmentTypeId required | string The ID of the appointment type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
}
Update an existing availability rule.
appointmentTypeId required | string The ID of the appointment type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
Updates the specified AvailabilityRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
}
Returns the status of deletion
appointmentTypeId required | string The ID of the appointment type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
appointmentTypeId required | string The ID of the appointment type to copy. |
Pass any appointment type properties that should be overridden on the copied resource.
id | string The ID of the appointment type. |
name | string The name of this appointment type |
description | string A description of the appointment type |
product_code | string A custom product code for the appointment type. |
currency | string The ISO-4217 currency code in lower case |
image_id | string The id of the image |
object (Media) | |
practitioner_ids | Array of strings The IDs of practitioners who can provide this appointment |
Array of objects (AvailabilityRule) The rules defining periods during which appointments can be offered | |
enquiries_enabled | boolean Whether enquiries can be accepted for this appointment type |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (AppointmentPriceRule) The rules defining prices for this appointment type | |
durations | Array of integers The allowed durations of the appointment in minutes |
end_buffer | integer An optional number of minutes that should be blocked out at the end of the appointment, for example for cleaning or changeover time. |
start_time_interval | integer Appointments may start on intervals of this number of minutes |
max_advance_bookings_interval | string The maximum time before an appointment's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before an appointment's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
allocate_multi_capacity_rooms | boolean If enabled, Trybe will attemtpt to assign guests to larger rooms before allocating single rooms. |
members_only | boolean Whether this appointment requires an active membership in order to book. |
permitted_membership_type_ids | Array of strings If this appointment is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this appointment type. |
Array of objects (MembershipBookingWindow) | |
object | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
tag_ids | Array of strings The tags IDs associated with this appointment type |
Array of objects (Tag) The tags associated with this appointment type | |
category_ids | Array of strings The category IDs associated with this appointment type |
Array of objects (Category) The category associated with this appointment type | |
site_ids | Array of strings The IDs of the sites this appointment type belongs to |
equipment_ids | Array of strings The IDs of the equipment this appointment type requires |
room_ids | Array of strings The IDs of rooms that may be used to provide this appointment type |
Array of objects (Contraindication) | |
offered_online | boolean Whether this appointment type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
min_guests | integer The minimum guests this appointment type is for |
max_guests | integer The maximum guests this appointment type is for |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "practitioner_ids": [
- "5dcb47800000000000000010"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "enquiries_enabled": true,
- "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
], - "durations": [
- 30,
- 60
], - "end_buffer": 15,
- "start_time_interval": 30,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "allocate_multi_capacity_rooms": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_ids": [
- "5dcb47800000000000000010"
], - "equipment_ids": [
- "5dcb47800000000000000034"
], - "room_ids": [
- "5dcb47800000000000000035"
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy."
}
], - "offered_online": true,
- "private": true,
- "min_guests": 2,
- "max_guests": 2,
- "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all area booking types the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
archived | boolean Only show archived resources |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new area booking type
To create an area booking type, you pass an AreaBookingType
object.
id | string The ID of the area booking type. |
name | string The name of this area booking type. |
description | string A description of the area booking type. |
product_code | string A custom product code for the area booking type. |
currency | string The ISO-4217 currency code in lower case. |
image_id | string The id of the image |
object (Media) | |
Array of objects (AvailabilityRule) The rules defining periods during which appointments can be offered. | |
Array of objects (AreaBookingPriceRule) The rules defining prices for this area booking type. | |
end_buffer | integer An optional number of minutes that should be blocked out at the end of the appointment, for example for cleaning or changeover time. |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
start_time_interval | integer Bookings may start on intervals of this number of minutes. |
duration_interval | integer Bookings may last for intervals of this number of minutes. |
min_duration | integer The shortest allowed duration for bookings of this type, in minutes. |
max_duration | integer The longest allowed duration for bookings of this type, in minutes. |
max_advance_bookings_interval | string The maximum time before a booking's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before a booking's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
members_only | boolean Whether an active membership is required to book. |
permitted_membership_type_ids | Array of strings If this booking type is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this booking type. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
offered_online | boolean Whether or not this area booking type is bookable online. |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
area_ids | Array of strings An array of area IDs that can be booked with this booking type. |
max_baskets | integer The maximum number of baskets that may have bookings in a single area. |
min_guests | integer The minimum guests allowed in a booking of this type. |
max_guests | integer The maximum guests allowed in a booking of this type. |
site_id | string The ID of the site this area booking type belongs to |
category_ids | Array of strings The category IDs associated with this offering |
Array of objects (Category) The category associated with this offering | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the details of a single area booking type
areaBookingTypeId required | string The ID of the area booking type you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Update an existing area booking type
areaBookingTypeId required | string The ID of the area booking type you want to update |
Updates the specified AreaBookingType
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the area booking type. |
name | string The name of this area booking type. |
description | string A description of the area booking type. |
product_code | string A custom product code for the area booking type. |
currency | string The ISO-4217 currency code in lower case. |
image_id | string The id of the image |
object (Media) | |
Array of objects (AvailabilityRule) The rules defining periods during which appointments can be offered. | |
Array of objects (AreaBookingPriceRule) The rules defining prices for this area booking type. | |
end_buffer | integer An optional number of minutes that should be blocked out at the end of the appointment, for example for cleaning or changeover time. |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
start_time_interval | integer Bookings may start on intervals of this number of minutes. |
duration_interval | integer Bookings may last for intervals of this number of minutes. |
min_duration | integer The shortest allowed duration for bookings of this type, in minutes. |
max_duration | integer The longest allowed duration for bookings of this type, in minutes. |
max_advance_bookings_interval | string The maximum time before a booking's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before a booking's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
members_only | boolean Whether an active membership is required to book. |
permitted_membership_type_ids | Array of strings If this booking type is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this booking type. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
offered_online | boolean Whether or not this area booking type is bookable online. |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
area_ids | Array of strings An array of area IDs that can be booked with this booking type. |
max_baskets | integer The maximum number of baskets that may have bookings in a single area. |
min_guests | integer The minimum guests allowed in a booking of this type. |
max_guests | integer The maximum guests allowed in a booking of this type. |
site_id | string The ID of the site this area booking type belongs to |
category_ids | Array of strings The category IDs associated with this offering |
Array of objects (Category) The category associated with this offering | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the status of deletion
areaBookingTypeId required | string The ID of the area booking type to delete |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Restores a soft-deleted (archived) area booking type.
areaBookingTypeId required | string The ID of the area booking type you want to restore |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
areaBookingTypeId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the area booking type ID |
Pass any area booking type properties that should be overridden on the copied resource.
id | string The ID of the area booking type. |
name | string The name of this area booking type. |
description | string A description of the area booking type. |
product_code | string A custom product code for the area booking type. |
currency | string The ISO-4217 currency code in lower case. |
image_id | string The id of the image |
object (Media) | |
Array of objects (AvailabilityRule) The rules defining periods during which appointments can be offered. | |
Array of objects (AreaBookingPriceRule) The rules defining prices for this area booking type. | |
end_buffer | integer An optional number of minutes that should be blocked out at the end of the appointment, for example for cleaning or changeover time. |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
start_time_interval | integer Bookings may start on intervals of this number of minutes. |
duration_interval | integer Bookings may last for intervals of this number of minutes. |
min_duration | integer The shortest allowed duration for bookings of this type, in minutes. |
max_duration | integer The longest allowed duration for bookings of this type, in minutes. |
max_advance_bookings_interval | string The maximum time before a booking's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before a booking's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
members_only | boolean Whether an active membership is required to book. |
permitted_membership_type_ids | Array of strings If this booking type is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this booking type. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
offered_online | boolean Whether or not this area booking type is bookable online. |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
area_ids | Array of strings An array of area IDs that can be booked with this booking type. |
max_baskets | integer The maximum number of baskets that may have bookings in a single area. |
min_guests | integer The minimum guests allowed in a booking of this type. |
max_guests | integer The maximum guests allowed in a booking of this type. |
site_id | string The ID of the site this area booking type belongs to |
category_ids | Array of strings The category IDs associated with this offering |
Array of objects (Category) The category associated with this offering | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "description": "Soak away in one of our private hot tubs",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "end_buffer": 15,
- "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "start_time_interval": 30,
- "duration_interval": 15,
- "min_duration": 60,
- "max_duration": 180,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "offered_online": true,
- "private": true,
- "area_ids": [
- "5dcb47800000000000000010"
], - "max_baskets": 1,
- "min_guests": 1,
- "max_guests": 1,
- "site_id": "5dcb47800000000000000010",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all price rules for the given area booking type.
areaBookingTypeId required | string The ID of the area booking type you want to retrieve |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
areaBookingTypeId required | string The ID of the area booking type you want to add a price rule for |
To create a price rule you pass an AreaBookingPriceRule
object.
id | string The ID of the price rule. |
area_booking_type_id | string The ID of the area booking type the price rule relates to. |
date_from | string <date> The rule should apply to appointments on or after this date. |
date_to | string <date> The rule should not apply to appointments after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to appointments starting on or after this time. |
time_to | string The rule should not apply to appointments starting on or after this time. |
max_duration | integer The longest duration that the price rule applies to. |
price | integer The price of the area booking type per minute. |
{- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
}
Returns the details of a single price rule.
areaBookingTypeId required | string The ID of the area booking type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
}
Update an existing price rule.
areaBookingTypeId required | string The ID of the area booking type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to update. |
Updates the specified AreaBookingPriceRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the price rule. |
area_booking_type_id | string The ID of the area booking type the price rule relates to. |
date_from | string <date> The rule should apply to appointments on or after this date. |
date_to | string <date> The rule should not apply to appointments after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to appointments starting on or after this time. |
time_to | string The rule should not apply to appointments starting on or after this time. |
max_duration | integer The longest duration that the price rule applies to. |
price | integer The price of the area booking type per minute. |
{- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "area_booking_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "max_duration": 90,
- "price": 6000
}
}
Returns the status of deletion
areaBookingTypeId required | string The ID of the area booking type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns an array of all availability rules for the given area booking type.
areaBookingTypeId required | string The ID of the area booking type the availability rules relate to. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true,
- "min_duration": 0,
- "max_duration": 0
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
areaBookingTypeId required | string The ID of the area booking type the availability rules relate to. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
To create an availability rule you pass an AreaBookingAvailabilityRule
object.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
min_duration | integer The minimum booking duration permitted by this availability rule. |
max_duration | integer The maximum booking duration permitted by this availability rule. |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true,
- "min_duration": 0,
- "max_duration": 0
}
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true,
- "min_duration": 0,
- "max_duration": 0
}
}
Returns the details of a single availability rule.
areaBookingTypeId required | string The ID of the area booking type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true,
- "min_duration": 0,
- "max_duration": 0
}
}
Update an existing availability rule.
areaBookingTypeId required | string The ID of the area booking type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
Updates the specified AreaBookingAvailabilityRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
min_duration | integer The minimum booking duration permitted by this availability rule. |
max_duration | integer The maximum booking duration permitted by this availability rule. |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true,
- "min_duration": 0,
- "max_duration": 0
}
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true,
- "min_duration": 0,
- "max_duration": 0
}
}
Returns the status of deletion
areaBookingTypeId required | string The ID of the area booking type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Creates a new basket
Pass an object containing the ID of the organisation that owns the items to be added.
site_id | string The ID of the site owning the items to be added to the basket. |
customer_id | string The ID of the customer to associate this basket with |
{- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "00000000-0000-0000-0000-222222222222"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Get basket details
basketId required | string The ID of the basket to be retrieved. |
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Update basket details
basketId required | string The ID of the basket to be updated. |
Pass an object containing the details to be updated.
special_requests | string Any customer requests relating to the basket |
{- "special_requests": "I would like the Blue Room please"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Adds an item to a basket
basketId required | string The ID of the basket items are to be added to. |
Pass an object containing the details of the item to be added.
offering_type | string The type of item being added. |
offering_id | string The ID of the item to be added. |
date | string The date of the item, if applicable |
time | string The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
quantity | integer The quantity of items being added, if applicable. |
Array of objects (Guest) Pass an array of guests to be associated with this basket item. | |
object |
{- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { }
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Update an item in the basket.
basketId required | string The ID of the basket. |
itemId required | string The ID of the item being updated. |
Pass an object containing the details of the item to be updated.
offering_type | string The type of item being added. |
offering_id | string The ID of the item to be added. |
date | string The date of the item, if applicable |
time | string The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
quantity | integer The quantity of items being added, if applicable. |
Array of objects (Guest) Pass an array of guests to be associated with this basket item. | |
object |
{- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { }
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Remove all quantity of an item from the basket.
basketId required | string The ID of the basket. |
itemId required | string The ID of the item being removed. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
basketId required | string The ID of the basket. |
itemId required | string The ID of the item being updated. |
Pass an object containing the details of the item to be updated.
choice_id | string The ID of the package choice. |
option_id | string The ID of the chosen option. |
room_id | string The ID of the room. |
practitioner_id | string The ID of the chosen practitioner. |
practitioner_ids | Array of strings The IDs of the chosen practitioners. |
time | string <date-time> The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
guest_ids | Array of strings An optional array of guest IDs who are having this item. If this is not passed then the guests will be inferred from the package and item being added. |
object |
{- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "room_id": "5f184bb0b6ecff2e8157bf26",
- "practitioner_id": "5f184bb0b6ecff2e8157bf27",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "time": "2020-02-24T12:00:00+01:00",
- "duration": 60,
- "guest_ids": [
- "string"
], - "item_configuration": { }
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
basketId required | string The ID of the basket. |
itemId required | string The ID of the item being updated. |
packageItemId required | string The ID of the package item being removed. |
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Update multiple guests at once. Guests passed without an ID will be created, and any guests not passed will be removed from the basket.
basketId required | string The ID of the basket. |
Pass an object containing an array of guests.
Array of objects (Guest) |
{- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
]
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Adds customer details to the basket
basketId required | string The ID of the basket. |
Pass an object containing the customer details.
id | string The ID of the customer. |
first_name | string The first name of the customer. |
last_name | string The last name of the customer. |
full_name | string The customer's full name |
phone | string The customer's phone number |
has_password | boolean Whether the user has a password |
dob | string <date> The customer's date of birth |
brand_id | string The ID of the brand this customer belongs to |
site_id | string The ID of the site this customer belongs to |
stripe_id | string The Stripe Customer ID for this customer |
express_stripe_id | string The Stripe Customer ID for this customer if they also exist in Trybe's legacy Stripe integration |
string The email address of the customer. | |
Array of objects (CustomerLabel) | |
preferred_locale | string The preferred locale of the customer |
locked_at | string <date-time> Nullable The datetime which the customer was locked, or null if it has not been locked. |
created_at | string <date-time> The datetime which the customer was created |
updated_at | string <date-time> The datetime which the customer was last updated |
deleted_at | string <date-time> The datetime which the customer was anonymised, or null if it has not been. |
last_active_at | string <date-time> The datetime which the customer was last active |
email_verified_at | string <date-time> The datetime which the customer verified their email address |
object | |
avatar_id | string <uuid> The id of the log image |
object (Media) | |
external_ref | string An external reference for this customer. |
{- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Returns a collection of retail products which should be offered to the customer based on the items they have in their basket. For a retail product to appear here, it needs to be added as a cross-sell offering for at least one of the items in the basket.
basketId required | string The ID of the basket. |
{- "data": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "price": 895,
- "discounted_price": 800,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "type": "product",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
]
}
]
}
Get configuration details required for the checkout for the current basket
basketId required | string The ID of the basket. |
{- "data": {
- "terms": "I have read and agree to the <a href=\"/terms\">terms and conditions</a>",
- "marketing_preferences": [
- {
- "id": "000000-000000-000000-000000",
- "text": "I agree to the terms and conditions",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "contraindications": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy.",
- "offering_id": "string"
}
], - "voucher_payment_enabled": true
}
}
basketId required | string The ID of the basket. |
id | string The ID of the coupon code. |
code | string The code used to add the coupon. |
object (BasketCouponSummary) |
{- "id": "60254378631dc82ed0792333",
- "code": "ABC123",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
basketId required | string The ID of the basket. |
couponId required | string The ID of the coupon code to be removed. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
basketId required | string The ID of the order you want to apply the credit to. |
id | string <uuid> The ID of the customer credit to be applied. |
{- "id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
basketId required | string The ID of the basket you want to update. |
customerCreditId required | string The ID of the customer credit you want to remove. |
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
basketId required | string The ID of the basket. |
code | string The voucher code. |
{- "code": "ABCDEFGHIJ123"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
basketId required | string The ID of the basket. |
voucherId required | string The ID of the voucher code to be removed. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Set up a new pending payment for the basket
basketId required | string The ID of the basket. |
Pass an object containing optional payment details.
id | string A unique ID for the basket payment |
amount | integer The amount of the payment in the smallest denomination, e.g. pence |
processor | string The processor for the payment to be added |
details_source | string How the payment method will be entered |
capture_method | string How the payment amount should be captured |
object A dictionary of processor-specific data |
{- "id": "5f204853badb610f2167d67c",
- "amount": 1000,
- "processor": "stripe",
- "details_source": "pay_by_link",
- "capture_method": "automatic",
- "processor_data": { }
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
basketId required | string The ID of the basket. |
paymentId required | string The ID of the payment. |
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Reserve the basket
basketId required | string The ID of the basket. |
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Check that the basket is in a state that is ready to be submitted.
basketId required | string The ID of the basket. |
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Complete the checkout process
basketId required | string The ID of the basket. |
Pass an object containing optional customer details.
id | string The ID of the customer. |
first_name | string The first name of the customer. |
last_name | string The last name of the customer. |
full_name | string The customer's full name |
phone | string The customer's phone number |
has_password | boolean Whether the user has a password |
dob | string <date> The customer's date of birth |
brand_id | string The ID of the brand this customer belongs to |
site_id | string The ID of the site this customer belongs to |
stripe_id | string The Stripe Customer ID for this customer |
express_stripe_id | string The Stripe Customer ID for this customer if they also exist in Trybe's legacy Stripe integration |
string The email address of the customer. | |
Array of objects (CustomerLabel) | |
preferred_locale | string The preferred locale of the customer |
locked_at | string <date-time> Nullable The datetime which the customer was locked, or null if it has not been locked. |
created_at | string <date-time> The datetime which the customer was created |
updated_at | string <date-time> The datetime which the customer was last updated |
deleted_at | string <date-time> The datetime which the customer was anonymised, or null if it has not been. |
last_active_at | string <date-time> The datetime which the customer was last active |
email_verified_at | string <date-time> The datetime which the customer verified their email address |
object | |
avatar_id | string <uuid> The id of the log image |
object (Media) | |
external_ref | string An external reference for this customer. |
{- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
Creates a new basket for a membership, and this in turn creates the membership.
customer_id required | string <uuid> The ID of the customer who this membership should belong to |
site_id required | string <uuid> The ID of the site which this membership is for |
membership_type_id required | string <uuid> The membership type ID |
membership_rate_id required | string <uuid> The membership rate ID |
start_date | string <date-time> The date and time which the membership should start |
end_date | string <date-time> The date and time which the membership should end |
{- "customer_id": "00000000-0000-0000-0000-444444444444",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "membership_rate_id": "00000000-0000-0000-0000-333333333333",
- "start_date": "2021-07-28T00:00:00.000Z",
- "end_date": "2019-08-24T14:15:22Z"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
Returns an array of all calendar events for a single date
date | string <date> Example: The date to fetch events for |
view_type | string Enum: "area" "practitioner" "room" The view type (resource) to return events for. If specified, an event object will be returned for each resource of this type in the event. |
zone_id | string The zone ID to filter events for. |
include_customers | string <boolean> |
include_payments | string <boolean> |
events | string A comma-separated list of event keys and event types to return.
The format is {event_type}..{event_key}, for example:
|
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "key": "6220d459e7c1c2f0ff31c3f3_5dcb47800000000000000010",
- "id": "6220d459e7c1c2f0ff31c3f3",
- "resource_id": "5dcb47800000000000000010",
- "resource_type": "practitioner",
- "event_type": "appointment",
- "status": "confirmed",
- "reserved_until": "2022-03-04T12:00:00+00:00",
- "start_time": "2022-03-04T12:00:00+00:00",
- "end_time": "2022-03-04T13:15:00+00:00",
- "duration": 60,
- "end_buffer": 0,
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Alpha Massage",
- "product_code": "ULO346",
- "order": {
- "id": "5e9823c217483703da777777",
- "order_ref": "TRY00",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
]
}, - "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "status": "complete",
- "stage": "not_arrived",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "special_requests": "I would like the Blue Room please",
- "is_locked": true,
- "has_posting_room": true,
- "external_visit_ref": "RES1234"
}, - "bookings": [
- {
- "id": "5e9823c217483703da555555",
- "booking_type": "appointment",
- "status": "confirmed",
- "order": {
- "id": "5e9823c217483703da777777",
- "order_ref": "TRY00",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
]
}, - "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "status": "complete",
- "stage": "not_arrived",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "special_requests": "I would like the Blue Room please",
- "is_locked": true,
- "has_posting_room": true,
- "external_visit_ref": "RES1234"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "customer_id": "5e932c0901d210625e3a8766"
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "customer_id": "5e932c0901d210625e3a8766"
}
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "rooms": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "locked": true,
- "blocked_time_details": {
- "type": "break",
- "label": "Lunch",
- "notes": "Can be rearranged if required.",
- "color": null,
- "created_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "created_at": "2019-06-15T12:00:00+01:00"
}, - "session_details": {
- "capacity": 20,
- "waitlist_enabled": true
}, - "num_overlaps": 1,
- "overlap_order": 0
}
], - "meta": {
- "occupancy_per_day": 4,
- "occupancy_for_view": 2,
- "occupancy_per_hour": [
- {
- "time": "10:00",
- "guests": 12
}
]
}
}
Returns details of all calendar resources for a single date.
date required | string <date> Example: The date to fetch resources for. |
zone_id | string The zone ID to filter resources for. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "opening_hours": [
- {
- "start_time": "2022-03-02T09:00:00+00:00",
- "end_time": "2022-03-02T17:00:00+00:00"
}
], - "areas": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Hot Tub",
- "capacity": 5,
- "slots": [
- {
- "start_time": "2022-03-02T09:00:00+00:00",
- "end_time": "2022-03-02T17:00:00+00:00"
}
]
}
], - "practitioners": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Debbie S",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "slots": [
- {
- "start_time": "2022-03-02T09:00:00+00:00",
- "end_time": "2022-03-02T17:00:00+00:00"
}
]
}
], - "rooms": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Room",
- "capacity": 1,
- "slots": [
- {
- "start_time": "2022-03-02T09:00:00+00:00",
- "end_time": "2022-03-02T17:00:00+00:00"
}
]
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
]
}
}
Returns details of all information pertaining to occupancy.
date required | string <date> Example: The date to fetch occupancy for. |
view_type | string Enum: "area" "practitioner" "room" The view type (resource) to return occupancy for. If specified, an event object will be returned for each resource of this type in the event. |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
{- "data": {
- "occupancy_per_hour": [
- {
- "time": "10:00",
- "guests": 12
}
], - "occupancy_for_view": 8,
- "occupancy_per_day": 12
}
}
Returns an array of completed baskets along with customer and item details.
query | string The query to filter orders on. |
customer_id | string <uuid> Example: customer_id=Jane The customer ID to filter orders on. |
status | string Example: status=settled The status to filter orders on. |
labels | string Example: labels=settled The labels to filter orders on. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
item_offering_id | string Example: item_offering_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of offering ids to fetch orders for |
submitted_by_id | string Example: submitted_by_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of user ids to fetch orders for |
revenue_date_from | string <date> Example: Filter on orders with a revenue date on or after this date. |
revenue_date_to | string <date> Example: Filter on orders with a revenue date on or before this date. |
item_date | string <date> Example: Filter on orders with an items on this date. |
item_date_from | string <date-time> Example: item_date_from=2019-01-15T12:00:00+01:00 Filter on orders with an item date on or after this date. |
item_date_to | string <date-time> Example: item_date_to=2019-01-15T12:00:00+01:00 Filter on orders with an item date on or before this date. |
item_status | string Example: item_status=confirmed Filter on orders with an item status of one of these comma-separated values. |
submitted_at_from | string <date-time> Example: submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Example: submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
updated_at_from | string <date-time> Example: updated_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a updated date on or after this date. |
updated_at_to | string <date-time> Example: updated_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a updated date before this date. |
is_membership | boolean Example: is_membership=true Filter on orders that contain a membership purchase |
has_outstanding_balance | boolean Example: has_outstanding_balance=true Filters on orders that have an outstanding balance |
sales_channel | string Example: sales_channel=5dcb47800000000000000000 Filter on orders that have the given sales channel ID |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": null,
- "name": null
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": null,
- "name": null
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": null,
- "name": null
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Creates a new order
Pass an object containing the ID of the organisation that owns the items to be added.
site_id | string The ID of the site owning the items to be added to the order. |
customer_id | string The ID of the customer to associate this order with. |
status | string The status of the order. |
external_ref | string An external reference to be stored against the order. |
{- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "00000000-0000-0000-0000-222222222222",
- "status": "new",
- "external_ref": "ABC-123"
}
{- "data": {
- "id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "status": "in_progress",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5dcb47800000000000000012",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "items": [
- {
- "id": "5dcb47800000000000000010",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "price": 1100,
- "discount_total": 100,
- "total_cost": 1000,
- "tax_percent": 20,
- "tax_amount": 200,
- "net_total": 800,
- "currency": "gbp",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "reserved_until": "2020-02-24T12:00:00+01:00",
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "will_be_waitlisted": true,
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "validity": {
- "valid": true,
- "errors": [
- {
- "message": "This item has no time selected."
}
]
}, - "item_configuration": { },
- "purchasable_details": { },
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 10100,
- "discount_total": 100,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "totals": {
- "net_total": 3334,
- "gross_total": 4000,
- "tax": 666,
- "payment_required": 3000,
- "auth_required": 0,
- "discounts": 0,
- "applied_vouchers": 1000
}, - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00"
}
], - "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "currency": "gbp",
- "items_reserved_until": "2020-02-24T12:00:00+01:00",
- "special_requests": "I would like the Blue Room please",
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
}
}
query | string Example: query=Jane The query to filter orders on. |
customer_id | string <uuid> Example: customer_id=Jane The customer ID to filter orders on. |
status | string Example: status=settled The status to filter orders on. |
labels | string Example: labels=settled The labels to filter orders on. |
page | integer Example: page=1 The page to retrieve results from. |
per_page | integer Example: per_page=15 The number of results to return per page. |
item_offering_id | string Example: item_offering_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of offering ids to fetch orders for. |
revenue_date_from | string <date> Example: Filter on orders with a revenue date on or after this date. |
revenue_date_to | string <date> Example: Filter on orders with a revenue date on or before this date. |
item_date_from | string <date-time> Example: item_date_from=2019-01-15T12:00:00+01:00 Filter on orders with an item date on or after this date. |
item_date_to | string <date-time> Example: item_date_to=2019-01-15T12:00:00+01:00 Filter on orders with an item date on or before this date. |
item_status | string Example: item_status=confirmed Filter on orders with an item status of one of these comma-separated values. |
submitted_at_from | string <date-time> Example: submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Example: submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
updated_at_from | string <date-time> Example: updated_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a updated date on or after this date. |
updated_at_to | string <date-time> Example: updated_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a updated date before this date. |
submitted_by_id | string A comma-separated list of user IDs to filter for items submitted by that user. |
is_membership | boolean Example: is_membership=true Filter on orders that contain a membership purchase |
has_outstanding_balance | boolean Example: has_outstanding_balance=true Filters on orders that have an outstanding balance |
sales_channel | string Example: sales_channel=5dcb47800000000000000000 Filter on orders that have the given sales channel ID |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
customer_id required | string <uuid> The ID of the customer to anonymise orders for |
{- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e"
}
Returns the details of a single order
orderId required | string The ID of the order you want to retrieve |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
orderId required | string The ID of the order you want to retrieve |
Updates the specified Order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
sales_channel_id | string The ID of the sales channel for this order. |
stage | string Enum: "not_arrived" "arrived" "in_treatment" "checked_out" The current stage of the order. |
customer_id | string The ID of the customer this order belongs to. |
integration_config_id | string The ID of the integration config to associate with this order. |
external_ref | string An external reference to be stored against the order. |
{- "sales_channel_id": "5f344d756e7f2e7d3f2e4b82",
- "stage": "not_arrived",
- "customer_id": "5f344d756e7f2e7d3f2e4b83",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b83",
- "external_ref": "ABC-123"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Cancels an order and all associated order items
orderId required | string The ID of the order you want to cancel. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Reserve the order
orderId required | string The ID of the order. |
reserve_mins | integer Optionally specify a number of minutes that the items should be reserved for. |
{- "reserve_mins": 15
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Submits the given order
orderId required | string The ID of the basket. |
skip_availability_checks | boolean Whether to skip availability checks during this request. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Returns the revenue lines for an order. This is an array of objects containing the gross, net tax and discount amounts as well as asscociated basket item id.
orderId required | string The ID of the order. |
{- "data": [
- {
- "revenue_centre": "spa",
- "basket_id": "5fcfc90563c1f8242d5919b2",
- "basket_item_id": "5fcfc90563c1f8242d5919b2",
- "date": "2020-08-12T10:30:00+01:00",
- "net_amount": 3334,
- "gross_amount": 4000,
- "tax_amount": 666,
- "discount_amount": 4000
}
], - "meta": {
- "currency": "gbp"
}
}
Returns the ledger lines for an order. This is an array of objects describing all payments and revenues associated with the order.
orderId required | string The ID of the order. |
{- "data": [
- {
- "id": "5fcfc90563c1f8242d5919b2",
- "gross_amount": 10000,
- "net_amount": 8333,
- "type": "charge",
- "description": "Trybe Cash payment [TRY3Z] Jane Jenkins",
- "revenue_centre": "spa",
- "revenue_centre_name": "Spa",
- "payment_processor": "manual",
- "payment_processor_friendly": "Manual (Cash)",
- "mapped_value": "trybe_spa_revenue",
- "ledger_date": "2023-04-02T00:00:00+01:00",
- "revenue_date": "2023-04-02T00:00:00+01:00",
- "currency": "gbp"
}
]
}
Returns the ledger line postings for an order. This is an array of objects describing attempts to post one or more ledger lines.
orderId required | string The ID of the order. |
{- "data": [
- {
- "id": "6454dca5ea22513a59006057",
- "created_at": "2023-05-05T11:38:29+01:00",
- "integration": "guestline_rezlynx",
- "integration_name": "Guestline",
- "integration_is_async": false,
- "status": "not_started",
- "payable_id": "6454dca5ea22513a59006067",
- "order_ref": "TRY00",
- "causer_id": "6454dca5ea22513a59006068",
- "causer_type": "payment",
- "last_error": "string",
- "last_error_at": null,
- "succeeded_at": "2023-05-05T11:39:21+01:00",
- "lines": [
- {
- "id": "5fcfc90563c1f8242d5919b2",
- "gross_amount": 10000,
- "net_amount": 8333,
- "type": "charge",
- "description": "Trybe Cash payment [TRY3Z] Jane Jenkins",
- "revenue_centre": "spa",
- "revenue_centre_name": "Spa",
- "payment_processor": "manual",
- "payment_processor_friendly": "Manual (Cash)",
- "mapped_value": "trybe_spa_revenue",
- "ledger_date": "2023-04-02T00:00:00+01:00",
- "revenue_date": "2023-04-02T00:00:00+01:00",
- "currency": "gbp"
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Moves the order to 'settled' status after which it cannot be modified. The order must be in submitted state first.
orderId required | string The ID of the basket. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Applies a voucher with a discount amount to an order. Vouchers with a monetary amount need to be added as a payment.
orderId required | string The ID of the order. |
code | string The code of the voucher to be added |
{- "code": "CSZYGTXOTNXM"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Removes a voucher from an order.
orderId required | string The ID of the order. |
voucherId required | string The ID of the applied voucher code. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Moves the order to 'no show' status after which it cannot be modified.
orderId required | string The ID of the basket. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Locks the order indicating that the order should not be moved
orderId required | string The ID of the order. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Unlocks the order indicating that the order can now be moved
orderId required | string The ID of the order. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Restores a cancelled order to 'new' status
orderId required | string The ID of the basket. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Items can only be added to orders in submitted
state.
orderId required | string The ID of the order items are to be added to. |
skip_availability_checks | boolean Whether to skip availability checks during this request. |
Pass an object containing the details of the item to be added.
offering_type | string The type of item being added. |
offering_id | string The ID of the item to be added. |
date | string The date of the item, if applicable |
time | string The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
quantity | integer The quantity of items being added, if applicable. |
Array of objects (Guest) Pass an array of guests to be associated with this basket item. | |
object | |
practitioner_ids | Array of strings The IDs of practitioners who will carry out this booking. |
room_id | string The ID of the room the booking should be assigned to. |
{- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000011"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
skip_availability_checks | boolean Whether to skip availability checks during this request. |
Pass an object containing the details of the item to be updated.
offering_type | string The type of item being added. |
offering_id | string The ID of the item to be added. |
date | string The date of the item, if applicable |
time | string The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
quantity | integer The quantity of items being added, if applicable. |
Array of objects (Guest) Pass an array of guests to be associated with this basket item. | |
object | |
practitioner_ids | Array of strings The IDs of practitioners who will carry out this booking. |
room_id | string The ID of the room the booking should be assigned to. |
{- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000011"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order you want to update. |
itemId required | string The ID of the order item you want to remove. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
Pass an object containing the new delivery date.
price | string The new delivery date of the voucherPurchase item, in a GMT string. |
{- "price": 2800
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
Pass an object containing the new item price.
price | integer The new price of the item, in the smallest denomination. This must be higher than the item's original price; a discount may be used to decrease the price of an item. |
{- "price": 2800
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the order item. |
id | string The ID of the order discount |
amount_type | string Enum: "fixed_amount" "percentage" "monetary" The type of the amount this discount describes. |
fixed_amount | integer The amount of the discount if the type is |
percentage | integer The amount of the discount if the type is |
calculated_amount | integer The total calculated amount of this discount. |
currency | string The currency code for the discount. |
discount_type_id | string The ID of the discount type being used, if applicable. |
is_custom_amount | boolean True if the discount amount should be taken from this model rather than the related discount type. |
coupon_code_id | string The ID of the coupon code used to add this discount, if applicable. |
object (BasketCouponSummary) | |
reason_code | string A code to describe the reason for the discount. |
added_by_id | string The ID of the user who added the discount. |
discount_type_code | string The code for the discount type. |
applicable_for | string Enum: "app_only" "app_and_booking_engine" Where this discount type is able to be applied. |
discount_amount | integer The value of the discount to be applied when a discount type is used. This can be used as a monetary or percentage value for an in-app discount type and is set to percentage for a promo code. |
object (UserSummary) | |
applied_at | string <date-time> The date and time that the discount was applied. |
site_id | string The ID of the site the discount is associated with. |
{- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
{- "data": {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
}
orderId required | string The ID of the order you want to delete a discount for. |
itemId required | string The ID of the order item. |
discountId required | string The ID of the discount you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
Pass an object containing the details of the item to be updated.
choice_id | string The ID of the package choice. |
option_id | string The ID of the chosen option. |
room_id | string The ID of the room. |
practitioner_id | string The ID of the chosen practitioner. |
practitioner_ids | Array of strings The IDs of the chosen practitioners. |
time | string <date-time> The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
guest_ids | Array of strings An optional array of guest IDs who are having this item. If this is not passed then the guests will be inferred from the package and item being added. |
object |
{- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "room_id": "5f184bb0b6ecff2e8157bf26",
- "practitioner_id": "5f184bb0b6ecff2e8157bf27",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "time": "2020-02-24T12:00:00+01:00",
- "duration": 60,
- "guest_ids": [
- "string"
], - "item_configuration": { }
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
packageItemId required | string The ID of the package item being removed. |
Pass an object containing the details of the item to be updated.
choice_id | string The ID of the package choice. |
option_id | string The ID of the chosen option. |
room_id | string The ID of the room. |
practitioner_id | string The ID of the chosen practitioner. |
practitioner_ids | Array of strings The IDs of the chosen practitioners. |
time | string <date-time> The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
guest_ids | Array of strings An optional array of guest IDs who are having this item. If this is not passed then the guests will be inferred from the package and item being added. |
object |
{- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "room_id": "5f184bb0b6ecff2e8157bf26",
- "practitioner_id": "5f184bb0b6ecff2e8157bf27",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "time": "2020-02-24T12:00:00+01:00",
- "duration": 60,
- "guest_ids": [
- "string"
], - "item_configuration": { }
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
packageItemId required | string The ID of the package item being removed. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Items can only be added to orders in submitted
state.
orderId required | string The ID of the order items are to be added to. |
skip_availability_checks | boolean Whether to skip availability checks during this request. |
Pass an object containing the details of the item to be added.
offering_type | string The type of item being added. |
offering_id | string The ID of the item to be added. |
date | string The date of the item, if applicable |
time | string The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
quantity | integer The quantity of items being added, if applicable. |
Array of objects (Guest) Pass an array of guests to be associated with this basket item. | |
object | |
practitioner_ids | Array of strings The IDs of practitioners who will carry out this booking. |
room_id | string The ID of the room the booking should be assigned to. |
{- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000011"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
orderId required | string The ID of the order. |
itemId required | string The ID of the item being updated. |
skip_availability_checks | boolean Whether to skip availability checks during this request. |
Pass an object containing the details of the item to be updated.
offering_type | string The type of item being added. |
offering_id | string The ID of the item to be added. |
date | string The date of the item, if applicable |
time | string The start date and time of the item, if applicable. |
duration | integer The duration of the item being added, in minutes, if applicable. |
quantity | integer The quantity of items being added, if applicable. |
Array of objects (Guest) Pass an array of guests to be associated with this basket item. | |
object | |
practitioner_ids | Array of strings The IDs of practitioners who will carry out this booking. |
room_id | string The ID of the room the booking should be assigned to. |
{- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000011"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
orderId required | string The ID of the order you want to update. |
itemId required | string The ID of the order item you want to remove. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
Update the lead booker details for an order. If there is a 'lead booker' guest attached to the order, their details will also be updated.
orderId required | string The ID of the order you want to update |
first_name | string The first name of the customer. |
last_name | string The last name of the customer. |
string The email address of the customer. | |
phone | string The customer's phone number. |
{- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
}
orderId required | string The ID of the order you want to retrieve payments for. |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
]
}
orderId required | string The ID of the order you want to add a payment to. |
skip_availability_checks | boolean Whether to skip availability checks during this request. |
processor | string The payment processor to be used for the payment |
capture_method | string At what point the payment amount will be captured |
amount | integer The amount of the payment, in the lowest denomination |
currency | string The currency code for the amount |
status | string Enum: "pending" "paid" "ready_for_capture" "payment_method_stored" "payment_method_charged" "requires_action" "expired" "failed" The current status of the payment |
details_source | string How the payment method will be entered |
object A dictionary of processor-specific data |
{- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { }
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
}
orderId required | string The ID of the order you want to retrieve a payment for. |
paymentId required | string The ID of the payment you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
}
orderId required | string The ID of the order you want to update. |
paymentId required | string The ID of the payment you want to delete. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
orderId required | string The ID of the order you want to charge a payment for. |
paymentId required | string The ID of the payment you want to charge. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
}
orderId required | string The ID of the order you want to refund a payment for. |
{- "data": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
orderId required | string The ID of the order you want to retrieve a refund for. |
refundId required | string The ID of the refund you want to refund. |
{- "data": {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
}
orderId required | string The ID of the order you want to refund a payment for. |
paymentId required | string The ID of the payment you want to refund. |
Pass a CreateRefund
object.
amount | number The amount to be refunded, in the smallest denomination. Defaults to the remaining payment amount if not specified. |
notes | string Notes to be stored against the refund. |
processor | string Specify if the refund should use a different processor to the original payment. This is only permitted in certain circumstances, for example specifying 'manual' to record a PMS payment as manually refunded. |
object (CreateRefundAllocations) A map of order items with the corresponding amounts to be refunded |
{- "amount": 4500,
- "notes": "Customer cancelled.",
- "processor": "manual",
- "allocations": {
- "goodwill": 1995,
- "property1": 0,
- "property2": 0
}
}
{- "data": {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
}
orderId required | string The ID of the order you want to retrieve discounts for. |
voucher_type_id | string The ID of the voucher type to create. |
{- "voucher_type_id": "631748c2eb5a8f5eb5035f42"
}
{- "code": "858297JWY5SY",
- "payment_processor": "external_voucher",
- "processor_voucher_id": "16319",
- "processor": "Giftpro",
- "valid_from_date": "2020-08-12T10:30:00+01:00",
- "valid_to_date": "2020-08-12T12:30:00+01:00",
- "amount_type": "discount_to_zero",
- "total": 10000,
- "balance": 9200,
- "currency": "gbp",
- "partially_redeemable": true,
- "voucher_name": "30 min treatment",
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "customer_id": "d2330199-49a1-462f-9bd8-4680fc929245"
}
orderId required | string The ID of the order you want to retrieve discounts for. |
{- "data": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
]
}
orderId required | string The ID of the order you want to add a discount to. |
id | string The ID of the order discount |
amount_type | string Enum: "fixed_amount" "percentage" "monetary" The type of the amount this discount describes. |
fixed_amount | integer The amount of the discount if the type is |
percentage | integer The amount of the discount if the type is |
calculated_amount | integer The total calculated amount of this discount. |
currency | string The currency code for the discount. |
discount_type_id | string The ID of the discount type being used, if applicable. |
is_custom_amount | boolean True if the discount amount should be taken from this model rather than the related discount type. |
coupon_code_id | string The ID of the coupon code used to add this discount, if applicable. |
object (BasketCouponSummary) | |
reason_code | string A code to describe the reason for the discount. |
added_by_id | string The ID of the user who added the discount. |
discount_type_code | string The code for the discount type. |
applicable_for | string Enum: "app_only" "app_and_booking_engine" Where this discount type is able to be applied. |
discount_amount | integer The value of the discount to be applied when a discount type is used. This can be used as a monetary or percentage value for an in-app discount type and is set to percentage for a promo code. |
object (UserSummary) | |
applied_at | string <date-time> The date and time that the discount was applied. |
site_id | string The ID of the site the discount is associated with. |
{- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
{- "data": {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
}
orderId required | string The ID of the order you want to delete a discount for. |
discountId required | string The ID of the discount you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
orderId required | string The ID of the order you want to apply the credit to. |
id | string <uuid> The ID of the customer credit to be applied. |
{- "id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
orderId required | string The ID of the order you want to update. |
customerCreditId required | string The ID of the customer credit you want to remove. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
orderId required | string The ID of the order you want to get emails for. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5ed2b95f72823c4f98419f32",
- "basket_id": "5ed2b95f72823c4f98419f34",
- "from": {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}, - "to": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "cc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "bcc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "subject": "Your order is confirmed (TRY33).",
- "type": "BookingConfirmed",
- "created_at": "2020-09-24T12:00:00+01:00",
- "sent_at": "2020-09-24T12:00:00+01:00",
- "delivered_at": "2020-09-24T12:00:00+01:00",
- "opened": true,
- "bounced": true
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
orderId required | string The ID of the order you want to send an email for. |
type | string The type of the email to be sent. |
{- "type": "basket_confirmed"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "customer_id": "5ed2b95f72823c4f98419f32",
- "basket_id": "5ed2b95f72823c4f98419f34",
- "from": {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}, - "to": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "cc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "bcc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "subject": "Your order is confirmed (TRY33).",
- "type": "BookingConfirmed",
- "created_at": "2020-09-24T12:00:00+01:00",
- "sent_at": "2020-09-24T12:00:00+01:00",
- "delivered_at": "2020-09-24T12:00:00+01:00",
- "opened": true,
- "bounced": true
}
}
orderId required | string The ID of the order you want to preview an email for. |
type | string The type of the email to be sent. |
{- "type": "basket_confirmed"
}
{- "data": {
- "from": {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}, - "to": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "cc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "bcc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "subject": "Hello world",
- "html": "<html></html>"
}
}
orderId required | string The ID of the order the email relates to. |
emailId required | string The ID of the email you want to retrieve. |
{- "data": {
- "from": {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}, - "to": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "cc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "bcc": [
- {
- "address": "jenny@example.com",
- "name": "Jenny Smith"
}
], - "subject": "Hello world",
- "html": "<html></html>"
}
}
orderId required | string The ID of the order the email relates to. |
emailId required | string The ID of the email you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
orderId required | string The ID of the order you want to get notes for. |
{- "data": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
]
}
orderId required | string The ID of the order you want to add a note to. |
Pass an OrderNote
object.
id | string |
order_id | string The order this note belongs too |
content | string The contents of the note. |
object | |
created_by_id | string The ID of the user who added the note. |
created_at | string <date-time> The date and time the note was created. |
{- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
}
orderId required | string The ID of the order the note belongs to. |
noteId required | string The ID of the note you want to retrieve. |
{- "data": {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
}
orderId required | string The ID of the order the note belongs to. |
noteId required | string The ID of the note you want to retrieve. |
Pass an OrderNote
object. Only included fields will be updated.
id | string |
order_id | string The order this note belongs too |
content | string The contents of the note. |
object | |
created_by_id | string The ID of the user who added the note. |
created_at | string <date-time> The date and time the note was created. |
{- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
{- "data": {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
}
orderId required | string The ID of the order the note belongs to. |
noteId required | string The ID of the note you want to retrieve. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Retrieves all guests associated with a order.
orderId required | string The ID of the order items are to be added to. |
{- "data": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
]
}
Adds a guest to an order
orderId required | string The ID of the order the guest is to be added to. |
Pass an object containing the details of the guest to be added.
id | string The ID of the guest. |
name | string The guest's full name. |
first_name | string The first name of the guest. |
last_name | string The last name of the guest. |
is_lead_booker | boolean Whether this guest is the lead booker |
intake_form_submission_id | string The ID of the submission for the guest. |
intake_form_complete | boolean True if the guest has completed their intake form. |
intake_form_submitted_at | string <date-time> The date and time the intake form was submitted. |
{- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
{- "data": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
}
Update a guest in the order.
orderId required | string The ID of the order. |
guestId required | string The ID of the guest being updated. |
Pass an object containing the details of the guest to be updated.
id | string The ID of the guest. |
name | string The guest's full name. |
first_name | string The first name of the guest. |
last_name | string The last name of the guest. |
is_lead_booker | boolean Whether this guest is the lead booker |
intake_form_submission_id | string The ID of the submission for the guest. |
intake_form_complete | boolean True if the guest has completed their intake form. |
intake_form_submitted_at | string <date-time> The date and time the intake form was submitted. |
{- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
{- "data": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
}
Removes the guest from the order
orderId required | string The ID of the order. |
guestId required | string The ID of the guest being removed. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
orderId required | string The ID of the order you want to retrieve a label for. |
labelId required | string The ID of the label you want to associate. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
}
orderId required | string The ID of the order you want to delete a label for. |
labelId required | string The ID of the label you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
orderId required | string The ID of the order you want to retrieve an itinerary for. |
{- "data": [
- {
- "date": "2022-05-16T00:00:00.000Z",
- "items": [
- {
- "guests": [
- "Sam"
], - "items": [
- {
- "name": "Hot Tub Booking",
- "start_time": "2022-03-02T09:00:00+00:00",
- "end_time": "2022-03-02T17:00:00+00:00"
}
]
}
]
}
]
}
Looks up a single order by its reference.
orderRef required | string Example: TRY00 The reference of the order you want to retrieve |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
}
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
site_id | string Example: site_id=10000000-0000-0000-0000-000000000000 The ID of the site that inventory belongs to. |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "status": "draft",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "MRJ Suppliers Ltd",
- "supplier_email": "orders@example.com",
- "subtotal": 2000,
- "currency": "gbp",
- "item_count": 2,
- "created_at": "2019-06-15T12:00:00.000Z",
- "updated_at": "2019-06-15T12:00:00.000Z",
- "submitted_at": "2019-06-15T12:00:00.000Z",
- "organisation_id": "10000000-0000-0000-0000-000000000000"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
supplier_id | string The ID of the supplier this order is for. |
supplier_email | string The email address of the supplier. |
site_id | string The ID of the site this order belongs to. |
{- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_email": "orders@example.com",
- "site_id": "30000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "status": "draft",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "MRJ Suppliers Ltd",
- "supplier_email": "orders@example.com",
- "subtotal": 2000,
- "currency": "gbp",
- "item_count": 2,
- "created_at": "2019-06-15T12:00:00.000Z",
- "updated_at": "2019-06-15T12:00:00.000Z",
- "submitted_at": "2019-06-15T12:00:00.000Z",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "items": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
]
}
}
orderId required | string The ID of the order you want to update. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "status": "draft",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "MRJ Suppliers Ltd",
- "supplier_email": "orders@example.com",
- "subtotal": 2000,
- "currency": "gbp",
- "item_count": 2,
- "created_at": "2019-06-15T12:00:00.000Z",
- "updated_at": "2019-06-15T12:00:00.000Z",
- "submitted_at": "2019-06-15T12:00:00.000Z",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "items": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
]
}
}
orderId required | string The ID of the order you want to update. |
supplier_email | string The email address of the supplier. |
{- "supplier_email": "orders@example.com"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "status": "draft",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "MRJ Suppliers Ltd",
- "supplier_email": "orders@example.com",
- "subtotal": 2000,
- "currency": "gbp",
- "item_count": 2,
- "created_at": "2019-06-15T12:00:00.000Z",
- "updated_at": "2019-06-15T12:00:00.000Z",
- "submitted_at": "2019-06-15T12:00:00.000Z",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "items": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
]
}
}
orderId required | string The ID of the order to submit. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "status": "draft",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "MRJ Suppliers Ltd",
- "supplier_email": "orders@example.com",
- "subtotal": 2000,
- "currency": "gbp",
- "item_count": 2,
- "created_at": "2019-06-15T12:00:00.000Z",
- "updated_at": "2019-06-15T12:00:00.000Z",
- "submitted_at": "2019-06-15T12:00:00.000Z",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "items": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
]
}
}
orderId required | string The ID of the order to receive. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "status": "draft",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "MRJ Suppliers Ltd",
- "supplier_email": "orders@example.com",
- "subtotal": 2000,
- "currency": "gbp",
- "item_count": 2,
- "created_at": "2019-06-15T12:00:00.000Z",
- "updated_at": "2019-06-15T12:00:00.000Z",
- "submitted_at": "2019-06-15T12:00:00.000Z",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "items": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
]
}
}
orderId required | string The ID of the order you want to update. |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
orderId required | string The ID of the order you want to update. |
product_id | string The Trybe ID of the product being ordered. |
quantity | integer The quantity of the item being ordered. |
{- "product_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
orderId required | string The ID of the order you want to update. |
orderItemId required | string The ID of the order item you want to update. |
quantity | integer The quantity of the item being ordered. |
{- "quantity": 200
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "order_id": "10000000-0000-0000-0000-000000000000",
- "quantity": 200,
- "unit_price": 200,
- "product_id": "10000000-0000-0000-0000-000000000000",
- "supplier_product_id": "MRJ-45-100",
- "product_name": "Large white towels",
- "line_total": 2000
}
}
Returns an array of all packages the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
archived | boolean Only show archived resources |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": null,
- "name": null
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new package
To create an package, you pass a Package
object.
id | string The ID of the package. |
name | string The name of this package |
description | string A description of the package |
product_code | string A custom product code for the package. |
Array of objects (PackageItemChoice) An array of choices for items which may be included in this package. | |
currency | string The ISO-4217 currency code in lower case |
object (Media) | |
site_id | string The ID of the site the package belongs to. |
Array of objects (AvailabilityRule) The rules defining periods during which this package is available | |
max_daily_duration | integer The maximum amount of time between the start of the first and end of the last item on each day of a package, in minutes. |
prevent_choice_overlaps | boolean Whether to prevent booking choices in this package from overlapping times. |
max_advance_bookings_interval | string The maximum time before the package's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before the package's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
Array of objects (PackagePriceRule) The rules defining prices for this package | |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
offered_online | boolean Whether this session type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this package requires an active membership in order to book. |
permitted_membership_type_ids | Array of strings If this package is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this package. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
category_ids | Array of strings The category IDs associated with this package type |
Array of objects (Category) The category associated with this package type | |
min_guests | integer The minimum guests this package is for |
max_guests | integer The maximum guests this package is for |
default_revenue_centre | string The default revenue centre to fall back to to balance allocations |
object (OfferingEmailOptions) | |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the details of a single package
packageId required | string The ID of the package you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Update an existing package
packageId required | string The ID of the package you want to update |
Updates the specified Package
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the package. |
name | string The name of this package |
description | string A description of the package |
product_code | string A custom product code for the package. |
Array of objects (PackageItemChoice) An array of choices for items which may be included in this package. | |
currency | string The ISO-4217 currency code in lower case |
object (Media) | |
site_id | string The ID of the site the package belongs to. |
Array of objects (AvailabilityRule) The rules defining periods during which this package is available | |
max_daily_duration | integer The maximum amount of time between the start of the first and end of the last item on each day of a package, in minutes. |
prevent_choice_overlaps | boolean Whether to prevent booking choices in this package from overlapping times. |
max_advance_bookings_interval | string The maximum time before the package's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before the package's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
Array of objects (PackagePriceRule) The rules defining prices for this package | |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
offered_online | boolean Whether this session type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this package requires an active membership in order to book. |
permitted_membership_type_ids | Array of strings If this package is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this package. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
category_ids | Array of strings The category IDs associated with this package type |
Array of objects (Category) The category associated with this package type | |
min_guests | integer The minimum guests this package is for |
max_guests | integer The maximum guests this package is for |
default_revenue_centre | string The default revenue centre to fall back to to balance allocations |
object (OfferingEmailOptions) | |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Restores a soft-deleted (archived) package.
packageId required | string The ID of the package you want to restore |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all availability rules for the given package.
packageId required | string The ID of the package the availability rules relate to. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
packageId required | string The ID of the package the availability rules relate to. |
To create an availability rule you pass an AvailabilityRule
object.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
Returns the details of a single availability rule.
packageId required | string The ID of the package the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
}
Update an existing availability rule.
packageId required | string The ID of the package the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
Updates the specified AvailabilityRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
}
Returns the status of deletion
packageId required | string The ID of the package the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns an array of all price rules for the given package.
packageId required | string The ID of the package you want to retrieve |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
packageId required | string The ID of the package you want to add a price rule for |
To create a price rule you pass an PackagePriceRule
object.
id | string The ID of the price rule. |
package_id | string The ID of the package the price rule relates to. |
date_from | string <date> The rule should apply to packages starting on or after this date. |
date_to | string <date> The rule should not apply to packages starting after this date. |
weekdays | Array of strings The rule should apply to packages starting on any of these weekdays. |
price | integer The price of the package. |
{- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
}
Returns the details of a single price rule.
packageId required | string The ID of the package the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
}
Update an existing price rule.
packageId required | string The ID of the package the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to update. |
Updates the specified AppointmentPriceRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the price rule. |
appointment_type_id | string The ID of the appointment type the price rule relates to. |
date_from | string <date> The rule should apply to appointments on or after this date. |
date_to | string <date> The rule should not apply to appointments after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to appointments starting on or after this time. |
time_to | string The rule should not apply to appointments starting on or after this time. |
duration | integer The duration of appointment that the price rule applies to. |
price | integer The price of the appointment. |
{- "id": "5dcb47800000000000000010",
- "appointment_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "20:00",
- "duration": 60,
- "price": 6000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
}
Returns the status of deletion
packageId required | string The ID of the package the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
packageId required | string The ID of the package to copy. |
Pass any package properties that should be overridden on the copied resource.
id | string The ID of the package. |
name | string The name of this package |
description | string A description of the package |
product_code | string A custom product code for the package. |
Array of objects (PackageItemChoice) An array of choices for items which may be included in this package. | |
currency | string The ISO-4217 currency code in lower case |
object (Media) | |
site_id | string The ID of the site the package belongs to. |
Array of objects (AvailabilityRule) The rules defining periods during which this package is available | |
max_daily_duration | integer The maximum amount of time between the start of the first and end of the last item on each day of a package, in minutes. |
prevent_choice_overlaps | boolean Whether to prevent booking choices in this package from overlapping times. |
max_advance_bookings_interval | string The maximum time before the package's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before the package's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
Array of objects (PackagePriceRule) The rules defining prices for this package | |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
offered_online | boolean Whether this session type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this package requires an active membership in order to book. |
permitted_membership_type_ids | Array of strings If this package is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this package. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
category_ids | Array of strings The category IDs associated with this package type |
Array of objects (Category) The category associated with this package type | |
min_guests | integer The minimum guests this package is for |
max_guests | integer The maximum guests this package is for |
default_revenue_centre | string The default revenue centre to fall back to to balance allocations |
object (OfferingEmailOptions) | |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns a list of item choices for the given package.
packageId required | string The ID of the package you want to retrieve choices for. |
{- "data": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
]
}
packageId required | string The ID of the package you want to update |
id | string The ID of this choice. |
name | string A name for this choice. |
description | string A description of this choice. |
min_options | integer The minimum number of options that must be chosen. |
max_options | integer The maximum number of options that may be chosen. |
option_budget | integer The budget that this package allows for options in this choice. Each option will use its standalone price, and the overall package price will be increased if the total exceeds the budget. |
auto_select_timeslot | boolean Whether a timeslot should be automatically selected for this choice |
hide_times | boolean Whether to hide times for this choice from customers |
optional | boolean Whether this item choice should be optional. |
visible | boolean Whether this item choice should be visible to the customer. |
allow_overlaps | boolean Allow this choice to overlap with other items when |
offering_type | string Enum: "appointment" "product" "session" The type of offerings included in this choice. |
object (OfferingRevenueAllocation) | |
Array of objects (PackageChoiceStartTimeRule) An array of rules determining the start times that should be allowed for this choice. | |
Array of objects (PackageItemChoiceOption) An array of options to make up this choice. |
{- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
{- "data": {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
}
Returns the details of a single package item choice
packageId required | string The ID of the package the choice belongs to |
itemChoiceId required | string The ID of the choice you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
}
Update an existing item choice
packageId required | string The ID of the package the choice belongs to. |
itemChoiceId required | string The ID of the choice you want to update. |
Updates the specified PackageItemChoice
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of this choice. |
name | string A name for this choice. |
description | string A description of this choice. |
min_options | integer The minimum number of options that must be chosen. |
max_options | integer The maximum number of options that may be chosen. |
option_budget | integer The budget that this package allows for options in this choice. Each option will use its standalone price, and the overall package price will be increased if the total exceeds the budget. |
auto_select_timeslot | boolean Whether a timeslot should be automatically selected for this choice |
hide_times | boolean Whether to hide times for this choice from customers |
optional | boolean Whether this item choice should be optional. |
visible | boolean Whether this item choice should be visible to the customer. |
allow_overlaps | boolean Allow this choice to overlap with other items when |
offering_type | string Enum: "appointment" "product" "session" The type of offerings included in this choice. |
object (OfferingRevenueAllocation) | |
Array of objects (PackageChoiceStartTimeRule) An array of rules determining the start times that should be allowed for this choice. | |
Array of objects (PackageItemChoiceOption) An array of options to make up this choice. |
{- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
{- "data": {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
}
Returns the status of deletion
packageId required | string The ID of the package the choice belongs to. |
itemChoiceId required | string The ID of the choice you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
packageId required | string The ID of the package you want to update |
order | Array of strings An array of IDs in the required order. |
{- "order": [
- "string"
]
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Treatment and Yoga",
- "description": "Buy together and save",
- "product_code": "MAS123",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- { }
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
], - "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_id": "00000000-0000-0000-0000-111111111111",
- "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "max_daily_duration": 240,
- "prevent_choice_overlaps": true,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "package_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "price": 20000
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "min_guests": 2,
- "max_guests": 2,
- "default_revenue_centre": "string",
- "email_options": {
- "hide_prices": true
}, - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns a list of options for the given item choice.
packageId required | string The ID of the package you want to retrieve choices for. |
itemChoiceId required | string The ID of the choice you want to retrieve options for. |
{- "data": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- { }
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
]
}
packageId required | string The ID of the package you want to update |
itemChoiceId required | string The ID of the choice you want to add an option to. |
id | string The ID of the item type. |
item_type | string The type of item this option represents. |
price_change | integer A currency amount that this option would increase the package price by. |
object (ShopOffering) |
{- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- { }
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
{- "data": {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- { }
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
}
Returns the details of a single package item choice
packageId required | string The ID of the package the option belongs to. |
itemChoiceId required | string The ID of the choice the option belongs to. |
optionId required | string The ID of the option to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- { }
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
}
packageId required | string The ID of the package the option belongs to. |
itemChoiceId required | string The ID of the choice the option belongs to. |
optionId required | string The ID of the option to update. |
Updates the specified PackageItemChoiceOption
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the item type. |
item_type | string The type of item this option represents. |
price_change | integer A currency amount that this option would increase the package price by. |
object (ShopOffering) |
{- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- { }
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
{- "data": {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- { }
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
}
Returns the status of deletion
packageId required | string The ID of the package the option belongs to. |
itemChoiceId required | string The ID of the choice the option belongs to. |
optionId required | string The ID of the option to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
]
}
Pass an object containing an array of ordered practitioner IDs
practitioner_ids required | Array of strings |
site_id required | string |
{- "practitioner_ids": [
- "string"
], - "site_id": "string"
}
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
]
}
Returns the details of a single practitioner
practitionerId required | string The ID of the practitioner you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
}
Update an existing practitioner
practitionerId required | string The ID of the practitioner you want to update |
Updates the specified Practitioner
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the practitioner. |
name | string The full name of the practitioner. |
avatar_id | string The id of the avatar |
object (Media) | |
site_ids | Array of strings The IDs of the sites this practitioner is part of |
tag_ids | Array of strings The IDs of the tags this practitioner is tagged with |
Array of objects (Tag) The tags associated with this Practitioner | |
Array of objects (Zone) An array of zones this practitioner is assigned to | |
can_offer_tags | Array of strings The IDs of tags for services this practitioner is able to offer. |
Array of objects (PractitionerAppointmentRestriction) A set of rules defining when a practitioner cannot offer certain appointments. | |
scheduling_week_interval_start | integer The date that week numbers should start from. |
scheduling_week_interval | integer The interval for recurring weekly availability, i.e. a value of 4 means a 4-week rolling rota. |
created_at | string <date-time> The date and time the practitioner was created. |
updated_at | string <date-time> The date and time the practitioner was last updated. |
{- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
}
practitionerId required | string The ID of the practitioner to copy. |
Pass any practitioner properties that should be overridden on the copied resource.
id | string The ID of the practitioner. |
name | string The full name of the practitioner. |
avatar_id | string The id of the avatar |
object (Media) | |
site_ids | Array of strings The IDs of the sites this practitioner is part of |
tag_ids | Array of strings The IDs of the tags this practitioner is tagged with |
Array of objects (Tag) The tags associated with this Practitioner | |
Array of objects (Zone) An array of zones this practitioner is assigned to | |
can_offer_tags | Array of strings The IDs of tags for services this practitioner is able to offer. |
Array of objects (PractitionerAppointmentRestriction) A set of rules defining when a practitioner cannot offer certain appointments. | |
scheduling_week_interval_start | integer The date that week numbers should start from. |
scheduling_week_interval | integer The interval for recurring weekly availability, i.e. a value of 4 means a 4-week rolling rota. |
created_at | string <date-time> The date and time the practitioner was created. |
updated_at | string <date-time> The date and time the practitioner was last updated. |
{- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
}
practitionerId required | string The ID of the practitioner to get restrictions for. |
{- "data": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
practitionerId required | string The ID of the practitioner to add a restriction to. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
Pass a PractitionerAppointmentRestriction
object.
id | string The ID of the restriction |
type | string Enum: "cannot_offer" "max_duration" The type of the restriction |
applies_to_type | string Enum: "specific" "categories" The type of the restriction |
appointment_type_ids | Array of strings The IDs of appointment types that this restriction applies to |
Array of objects (AppointmentTypeSummary) The appointment types associated with this product | |
category_ids | Array of strings The IDs of categories that this restriction applies to |
Array of objects (Category) The category associated with this product | |
date_from | string <date> The first day that this restriction should apply |
date_to | string <date> The last date that this restriction should apply |
max_duration | string For a |
{- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
{- "data": {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
}
practitionerId required | string The ID of the practitioner to get a rota for. |
date required | string <date> The date the rota should apply to. |
{- "data": {
- "id": "609cfdeb2d8e8643f76d5573",
- "start_date": "2019-01-15T00:00:00.000Z",
- "end_date": "2019-01-15T00:00:00.000Z",
- "practitioner_id": "5dcb47800000000000000010",
- "scheduling_week_interval": 4,
- "availability_rules": [
- {
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "monday",
- "week_num": 1
}
]
}, - "for_date": {
- "date": "2021-07-05T00:00:00.000Z",
- "week_number": 1,
- "rules_for_date": "rota_availability_rules",
- "rota_availability_rules": [
- {
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "monday",
- "week_num": 1
}
], - "custom_rules": [
- {
- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
]
}
}
practitionerId required | string The ID of the practitioner to get a rota for. |
Pass a PractitionerRotaDateUpdate
object.
date | string <date> The date the availability rules apply to. |
Array of objects (PractitionerRotaAvailabilityRule) The rota rules that apply to the given date, including only times that are available. If an empty array is passed then an 'unavailable' custom availability rule will be created for the date. If the availability times match the regular rota times then all custom rules for the date will be removed. |
{- "date": "2021-07-05T00:00:00.000Z",
- "availability_rules": [
- {
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "monday",
- "week_num": 1
}
]
}
{- "data": {
- "id": "609cfdeb2d8e8643f76d5573",
- "start_date": "2019-01-15T00:00:00.000Z",
- "end_date": "2019-01-15T00:00:00.000Z",
- "practitioner_id": "5dcb47800000000000000010",
- "scheduling_week_interval": 4,
- "availability_rules": [
- {
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "monday",
- "week_num": 1
}
]
}, - "for_date": {
- "date": "2021-07-05T00:00:00.000Z",
- "week_number": 1,
- "rules_for_date": "rota_availability_rules",
- "rota_availability_rules": [
- {
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "monday",
- "week_num": 1
}
], - "custom_rules": [
- {
- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
]
}
}
practitionerId required | string The ID of the practitioner to get restrictions for. |
restrictionId required | string The ID of the appointment restriction to get. |
{- "data": {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
}
practitionerId required | string The ID of the practitioner who owns the restriction. |
restrictionId required | string The ID of the appointment restriction to update. |
Updates the specified appointment restriction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the restriction |
type | string Enum: "cannot_offer" "max_duration" The type of the restriction |
applies_to_type | string Enum: "specific" "categories" The type of the restriction |
appointment_type_ids | Array of strings The IDs of appointment types that this restriction applies to |
Array of objects (AppointmentTypeSummary) The appointment types associated with this product | |
category_ids | Array of strings The IDs of categories that this restriction applies to |
Array of objects (Category) The category associated with this product | |
date_from | string <date> The first day that this restriction should apply |
date_to | string <date> The last date that this restriction should apply |
max_duration | string For a |
{- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
{- "data": {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
}
practitionerId required | string The ID of the practitioner the restriction belongs to. |
restrictionId required | string The ID of the appointment restriction to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
practitionerId required | string The ID of the practitioner to get custom availability entries for. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
is_available | boolean Filter on custom availability rules that match this value. |
{- "data": [
- {
- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
practitionerId required | string The ID of the practitioner to add a custom availability entry to. |
Pass a PractitionerAppointmentRestriction
object.
id | string The ID of the custom availability rule. |
has_availability_id | string The ID of the resource this availability rule belongs to. |
date_time_from | string <date-time> The start date and time of the rule. |
date_time_to | string <date-time> The end date and time of the rule. |
is_available | boolean Whether the resource is available for the given time slot. |
{- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
{- "data": {
- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
}
practitionerId required | string The ID of the practitioner to get custom availability entries for. |
ruleId required | string The ID of the availability rule to get. |
{- "data": {
- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
}
practitionerId required | string The ID of the practitioner who owns the custom availability entry. |
ruleId required | string The ID of the custom availability entry to update. |
Updates the specified custom availability entry object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the custom availability rule. |
has_availability_id | string The ID of the resource this availability rule belongs to. |
date_time_from | string <date-time> The start date and time of the rule. |
date_time_to | string <date-time> The end date and time of the rule. |
is_available | boolean Whether the resource is available for the given time slot. |
{- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
{- "data": {
- "id": "5dcb47800000000000000031",
- "has_availability_id": "5dcb47800000000000000032",
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true
}
}
practitionerId required | string The ID of the practitioner the restriction belongs to. |
ruleId required | string The ID of the custom availability entry to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns an array of all slots of scheduled availability for a practitioner - i.e. the rules that determine availability before any checks against scheduled appointments and sessions that the practitioner is assigned to.
practitioner_ids | string Example: practitioner_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of practitioner ids to fetch availability for |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "date_time_from": "2020-02-24T12:00:00+01:00",
- "date_time_to": "2020-02-24T12:00:00+01:00",
- "is_available": true,
- "availability_type": "regular",
- "custom_availability_id": "5dcb47800000000000000030",
- "practitioner_id": "5dcb47800000000000000010",
- "room_id": "5dcb47800000000000000011"
}
]
}
Returns an array of all practitioners the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
query | string A search query to filter practitioners by name. |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new practitioner
To create a practitioner, you create a Practitioner
object.
id | string The ID of the practitioner. |
name | string The full name of the practitioner. |
avatar_id | string The id of the avatar |
object (Media) | |
site_ids | Array of strings The IDs of the sites this practitioner is part of |
tag_ids | Array of strings The IDs of the tags this practitioner is tagged with |
Array of objects (Tag) The tags associated with this Practitioner | |
Array of objects (Zone) An array of zones this practitioner is assigned to | |
can_offer_tags | Array of strings The IDs of tags for services this practitioner is able to offer. |
Array of objects (PractitionerAppointmentRestriction) A set of rules defining when a practitioner cannot offer certain appointments. | |
scheduling_week_interval_start | integer The date that week numbers should start from. |
scheduling_week_interval | integer The interval for recurring weekly availability, i.e. a value of 4 means a 4-week rolling rota. |
created_at | string <date-time> The date and time the practitioner was created. |
updated_at | string <date-time> The date and time the practitioner was last updated. |
{- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe",
- "avatar_id": "5dcb47800000000000000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "site_ids": [
- "00000000-0000-0000-0000-111111111111"
], - "tag_ids": [
- "5dcb47800000000000000011"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "zones": [
- {
- "id": "5dcb47800000000000000110",
- "name": "Hydrotherapy zone",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "can_offer_tags": [
- "5dcb47800000000000000011"
], - "appointment_restrictions": [
- {
- "id": "5dcb47800000000000000011",
- "type": "cannot_offer",
- "applies_to_type": "specific",
- "appointment_type_ids": [
- "5dcb47800000000000000010"
], - "appointment_types": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Massage"
}
], - "category_ids": [
- "5dcb47800000000000000010"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "date_from": "2020-06-20T00:00:00.000Z",
- "date_to": "2020-06-20T00:00:00.000Z",
- "max_duration": null
}
], - "scheduling_week_interval_start": "2019-12-30T00:00:00.000Z",
- "scheduling_week_interval": 4,
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00"
}
}
Returns an array of all products the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
query | string Example: query=Jane The query to filter the products on. This will search the product name |
archived | boolean Only show archived resources |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new product
To create a product, you pass a Product
object.
id | string The ID of the product. |
name | string The name of this product |
description | string A description of the product |
product_code | string A custom product code for the product. |
barcode | string The barcode of the product |
currency | string The ISO-4217 currency code in lower case |
object (Media) | |
offered_online | boolean Whether this product is available online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this product requires an active membership in order to purchase. |
permitted_membership_type_ids | Array of strings If this product is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
tag_ids | Array of strings The tags IDs associated with this product |
Array of objects (Tag) The tags associated with this product | |
category_ids | Array of strings The category IDs associated with this product |
Array of objects (Category) The category associated with this product | |
site_id | string The ID of the site this product belongs to |
inventory_product_id | string The ID of the inventory product. Only products with trackable inventory will have this property. |
Array of objects (ProductPriceRule) The rules defining prices for this product | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
code required | string The barcode to search for. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the details of a single product
productId required | string The ID of the product you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Update an existing product
productId required | string The ID of the product you want to update |
Updates the specified Product
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the product. |
name | string The name of this product |
description | string A description of the product |
product_code | string A custom product code for the product. |
barcode | string The barcode of the product |
currency | string The ISO-4217 currency code in lower case |
object (Media) | |
offered_online | boolean Whether this product is available online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this product requires an active membership in order to purchase. |
permitted_membership_type_ids | Array of strings If this product is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
tag_ids | Array of strings The tags IDs associated with this product |
Array of objects (Tag) The tags associated with this product | |
category_ids | Array of strings The category IDs associated with this product |
Array of objects (Category) The category associated with this product | |
site_id | string The ID of the site this product belongs to |
inventory_product_id | string The ID of the inventory product. Only products with trackable inventory will have this property. |
Array of objects (ProductPriceRule) The rules defining prices for this product | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Restores a soft-deleted (archived) product.
productId required | string The ID of the product you want to restore |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all price rules for the given product.
productId required | string The ID of the product you want to retrieve price rules for. |
page | integer Example: page=1 The page to retrieve results from. |
per_page | integer Example: per_page=15 The number of results to return per page. |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
]
}
productId required | string The ID of the product you want to add a price rule for. |
To create a price rule you pass an ProductPriceRule
object.
id | string The ID of the price rule. |
product_id | string The ID of the product the price rule relates to. |
date_from | string <date> The rule should apply to products sold on or after this date. |
date_to | string <date> The rule should not apply to products sold after this date. |
price | integer The price of the product. |
{- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
}
Returns the details of a single price rule.
productId required | string The ID of the product the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
}
Update an existing price rule.
productId required | string The ID of the product the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to update. |
Updates the specified ProductPriceRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the price rule. |
product_id | string The ID of the product the price rule relates to. |
date_from | string <date> The rule should apply to products sold on or after this date. |
date_to | string <date> The rule should not apply to products sold after this date. |
price | integer The price of the product. |
{- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
}
Returns the status of deletion.
productId required | string The ID of the product the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
productId required | string The ID of the product to copy. |
Pass any product properties that should be overridden on the copied resource.
id | string The ID of the product. |
name | string The name of this product |
description | string A description of the product |
product_code | string A custom product code for the product. |
barcode | string The barcode of the product |
currency | string The ISO-4217 currency code in lower case |
object (Media) | |
offered_online | boolean Whether this product is available online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this product requires an active membership in order to purchase. |
permitted_membership_type_ids | Array of strings If this product is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
tag_ids | Array of strings The tags IDs associated with this product |
Array of objects (Tag) The tags associated with this product | |
category_ids | Array of strings The category IDs associated with this product |
Array of objects (Category) The category associated with this product | |
site_id | string The ID of the site this product belongs to |
inventory_product_id | string The ID of the inventory product. Only products with trackable inventory will have this property. |
Array of objects (ProductPriceRule) The rules defining prices for this product | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Ricky's Hand Moisturiser",
- "description": "For silky soft hands",
- "product_code": "MAS123",
- "barcode": 5013635312160,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "tag_ids": [
- "string"
], - "tags": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "inventory_product_id": "5dcb47800000000000000020",
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "product_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
supplier_ids | string Example: supplier_ids=10000000-0000-0000-0000-000000000000,20000000-0000-0000-0000-000000000000 A comma-separated list of supplier IDs to retrieve products for |
category_ids | string Example: category_ids=10000000-0000-0000-0000-000000000000,20000000-0000-0000-0000-000000000000 A comma-separated list of category IDs to retrieve products for |
brand_ids | string Example: brand_ids=10000000-0000-0000-0000-000000000000,20000000-0000-0000-0000-000000000000 A comma-separated list of brand IDs to retrieve products for |
query | string Example: query=Jane The query to filter the products on. This will search the product name. |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
id | string The ID of the product. |
name | string The name of the product. |
description | string An internal description of the product. |
barcode | string The barcode on the product. |
sku | string An internal reference code for the product. |
reorder_level | integer The quantity of this product at which it should be reordered. |
currency | string The currency of the product. |
brand_id | string The ID of the brand of this product. |
category_id | string The ID of the category this product is in. |
organisation_id | string The ID of the organisation this product belongs to. |
site_id | string The ID of the site this product belongs to. |
average_cost | integer The average cost of this item in the lowest denomination for the products currency. |
stock_value | integer The total value of this stock at the site in the lowest denomination for the products currency. |
stock_level | integer The amount of stock for this product at the site. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
}
productId required | string The ID of the product you want to update. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
}
productId required | string The ID of the product you want to update. |
id | string The ID of the product. |
name | string The name of the product. |
description | string An internal description of the product. |
barcode | string The barcode on the product. |
sku | string An internal reference code for the product. |
reorder_level | integer The quantity of this product at which it should be reordered. |
currency | string The currency of the product. |
brand_id | string The ID of the brand of this product. |
category_id | string The ID of the category this product is in. |
organisation_id | string The ID of the organisation this product belongs to. |
site_id | string The ID of the site this product belongs to. |
average_cost | integer The average cost of this item in the lowest denomination for the products currency. |
stock_value | integer The total value of this stock at the site in the lowest denomination for the products currency. |
stock_level | integer The amount of stock for this product at the site. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
}
productId required | string The ID of the product to copy. |
Pass any product properties that should be overridden on the copied resource.
id | string The ID of the product. |
name | string The name of the product. |
description | string An internal description of the product. |
barcode | string The barcode on the product. |
sku | string An internal reference code for the product. |
reorder_level | integer The quantity of this product at which it should be reordered. |
currency | string The currency of the product. |
brand_id | string The ID of the brand of this product. |
category_id | string The ID of the category this product is in. |
organisation_id | string The ID of the organisation this product belongs to. |
site_id | string The ID of the site this product belongs to. |
average_cost | integer The average cost of this item in the lowest denomination for the products currency. |
stock_value | integer The total value of this stock at the site in the lowest denomination for the products currency. |
stock_level | integer The amount of stock for this product at the site. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Moisture bliss body butter",
- "description": "Nutrient rich organic argan oil and a comforting blend of geranium, cedarwood and ylang pure essential oils",
- "barcode": 123456789,
- "sku": "AB123",
- "reorder_level": 20,
- "currency": "gbp",
- "brand_id": "10000000-0000-0000-0000-000000000000",
- "category_id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "average_cost": 100,
- "stock_value": 1000,
- "stock_level": 10
}
}
productId required | string The ID of the product you want to get adjustments for. |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "20000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "product_id": "30000000-0000-0000-0000-000000000000",
- "quantity": 0,
- "reason_code": "string",
- "reason_description": "string",
- "location_id": 0,
- "created_at": "2019-01-15T12:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
productId required | string The ID of the product to add an adjustment for. |
id | string The ID of the adjustment. |
organisation_id | string The ID of the organisation this adjustment belongs to. |
site_id | string The ID of the site this adjustment belongs to. |
product_id | string The ID of the product this adjustment is for. |
quantity | integer The amount of the adjustment, which may be positive or negative. |
reason_code | string A reason code for the adjustment. |
reason_description | string A free-text reason for the adjustment. |
location_id | integer Nullable The ID of the location the stock is moving from. |
created_at | string <date-time> The date and time the adjustment was created. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "20000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "product_id": "30000000-0000-0000-0000-000000000000",
- "quantity": 0,
- "reason_code": "string",
- "reason_description": "string",
- "location_id": 0,
- "created_at": "2019-01-15T12:00:00.000Z"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "organisation_id": "20000000-0000-0000-0000-000000000000",
- "site_id": "30000000-0000-0000-0000-000000000000",
- "product_id": "30000000-0000-0000-0000-000000000000",
- "quantity": 0,
- "reason_code": "string",
- "reason_description": "string",
- "location_id": 0,
- "created_at": "2019-01-15T12:00:00.000Z"
}
}
productId required | string The ID of the product to retrieve suppliers for. |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "product_id": "10000000-0000-0000-0000-000000000000",
- "product_name": "Moisture bliss body butter",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "Wallmart",
- "supplier_product_id": "MRJ-45-100",
- "order_quantity": 10,
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "unit_price": 200,
- "currency": "gbp"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
productId required | string The ID of the product to add a supplier to. |
id | string The ID of the product-supplier relationship. |
product_id | string The ID of the product. |
product_name | string The name of the product. |
supplier_id | string The ID of the supplier. |
supplier_name | string The name of the supplier |
supplier_product_id | string The supplier's ID of the product being ordered. |
order_quantity | integer The default quantity of the product to order from this supplier. |
organisation_id | string The ID of the organisation this product supplier record belongs to. |
unit_price | integer The unit price of this item in the lowest denomination for the products currency. |
currency | string The currency of the supplier product |
{- "id": "10000000-0000-0000-0000-000000000000",
- "product_id": "10000000-0000-0000-0000-000000000000",
- "product_name": "Moisture bliss body butter",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "Wallmart",
- "supplier_product_id": "MRJ-45-100",
- "order_quantity": 10,
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "unit_price": 200,
- "currency": "gbp"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "product_id": "10000000-0000-0000-0000-000000000000",
- "product_name": "Moisture bliss body butter",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "Wallmart",
- "supplier_product_id": "MRJ-45-100",
- "order_quantity": 10,
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "unit_price": 200,
- "currency": "gbp"
}
}
productId required | string The ID of the product. |
supplierProductId required | string The ID of the supplier-product you want to retrieve. |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "product_id": "10000000-0000-0000-0000-000000000000",
- "product_name": "Moisture bliss body butter",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "Wallmart",
- "supplier_product_id": "MRJ-45-100",
- "order_quantity": 10,
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "unit_price": 200,
- "currency": "gbp"
}
}
productId required | string The ID of the product. |
supplierProductId required | string The ID of the supplier-product you want to update. |
order_quantity | integer The default quantity of the product to order from this supplier. |
supplier_product_id | string The supplier's ID of the product. |
{- "order_quantity": 10,
- "supplier_product_id": "MRJ-45-100"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "product_id": "10000000-0000-0000-0000-000000000000",
- "product_name": "Moisture bliss body butter",
- "supplier_id": "10000000-0000-0000-0000-000000000000",
- "supplier_name": "Wallmart",
- "supplier_product_id": "MRJ-45-100",
- "order_quantity": 10,
- "organisation_id": "10000000-0000-0000-0000-000000000000",
- "unit_price": 200,
- "currency": "gbp"
}
}
productId required | string The ID of the product. |
supplierProductId required | string The ID of the supplier-product you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns the details of all sessions
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
start_time_from | string <date-time> Example: start_time_from=2019-01-15T12:00:00+01:00 The time of the earliest session to include |
start_time_to | string <date-time> Example: start_time_to=2019-01-15T12:00:00+01:00 The time of the latest session to include |
session_type_id | string Example: session_type_id=2019-01-15T12:00:00+01:00 The session type to filter results for |
recurrence_group_id | string Example: recurrence_group_id=609bb63f702b5315cd55b4a4 The recurrence group to filter results for |
include_bookings | boolean Whether to include session bookings |
include_cancelled | boolean Whether to include cancelled sessions |
cancelled | boolean Only show cancelled sessions |
practitioner_id | string Example: practitioner_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of practitioner ids to fetch bookings for |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "session_type_name": "Spa access",
- "practitioner_id": "5dcb47800000000000000010",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "capacity": 10,
- "max_baskets": 1,
- "remaining_capacity": 4,
- "waitlist_enabled": true,
- "num_waitlisted": 2,
- "price": 595,
- "currency": "gbp",
- "bookings": [
- {
- "id": "5dcb47800000000000000000",
- "session_id": "5dcb47800000000000001111",
- "session_type_id": "5dcb47800000000000001234",
- "session_type_name": "Spa access",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "status": "none",
- "stage": "not_arrived",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "checked_in_at": "2022-03-02T09:00:00+00:00",
- "is_no_show": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "num_checked_in": 12,
- "num_no_show": 2,
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "site_id": "5dcb47800000000000000010",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "deleted_at": "2019-01-15T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Returns the details of a single session
sessionId required | string The ID of the session you want to retrieve |
include_bookings | boolean Whether to include session bookings |
{- "data": {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "session_type_name": "Spa access",
- "practitioner_id": "5dcb47800000000000000010",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "capacity": 10,
- "max_baskets": 1,
- "remaining_capacity": 4,
- "waitlist_enabled": true,
- "num_waitlisted": 2,
- "price": 595,
- "currency": "gbp",
- "bookings": [
- {
- "id": "5dcb47800000000000000000",
- "session_id": "5dcb47800000000000001111",
- "session_type_id": "5dcb47800000000000001234",
- "session_type_name": "Spa access",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "status": "none",
- "stage": "not_arrived",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "checked_in_at": "2022-03-02T09:00:00+00:00",
- "is_no_show": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "num_checked_in": 12,
- "num_no_show": 2,
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "site_id": "5dcb47800000000000000010",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "deleted_at": "2019-01-15T12:00:00+01:00"
}
}
Update an existing session
sessionId required | string The ID of the session you want to update |
Updates the specified Session
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the session. |
session_type_id | string The ID of the session type this session is for. |
session_type_name | string The name of the session type this session is for. |
practitioner_id | string Nullable The ID of the practitioner leading the session. |
object (PractitionerSummary) The summary of a | |
room_id | string The ID of the room where the session is taking place. |
object (RoomSummary) The summary of a | |
start_time | string <date-time> The date and time the session starts. |
end_time | string <date-time> The date and time the session ends. |
duration | integer The duration of the session. |
capacity | integer The total capacity of the session. |
max_baskets | integer The maximum number of baskets that may have bookings for this session. |
remaining_capacity | integer The remaining capacity of the session. |
waitlist_enabled | boolean Whether the waitlist is enabled for this session. |
num_waitlisted | integer The number of customers currently on the waiting list for this session. |
price | integer The cost of the session, in the smallest denomination (eg pence or cents). |
currency | string The ISO-4217 currency code in lower case. |
Array of objects (SessionBooking) If requested, an array of bookings for this session. | |
num_checked_in | integer If bookings are included, this is the number of bookings that have been checked in. |
num_no_show | integer If bookings are included, this is the number of bookings that have marked as no-show. |
no_availability_reason | string Nullable A code representing the reason this slot is unavailable. |
no_availability_message | string Nullable A customer-friendly message representing the reason this slot is unavailable. |
site_id | string The ID of the site where the session is taking place. |
organisation_id | string The ID of the organisation the session belongs to. |
created_at | string <date-time> The date and time the session was created. |
updated_at | string <date-time> The date and time the session was last updated. |
deleted_at | string <date-time> The date and time the session was deleted (cancelled). |
{- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "session_type_name": "Spa access",
- "practitioner_id": "5dcb47800000000000000010",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "capacity": 10,
- "max_baskets": 1,
- "remaining_capacity": 4,
- "waitlist_enabled": true,
- "num_waitlisted": 2,
- "price": 595,
- "currency": "gbp",
- "bookings": [
- {
- "id": "5dcb47800000000000000000",
- "session_id": "5dcb47800000000000001111",
- "session_type_id": "5dcb47800000000000001234",
- "session_type_name": "Spa access",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "status": "none",
- "stage": "not_arrived",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "checked_in_at": "2022-03-02T09:00:00+00:00",
- "is_no_show": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "num_checked_in": 12,
- "num_no_show": 2,
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "site_id": "5dcb47800000000000000010",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "deleted_at": "2019-01-15T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "session_type_name": "Spa access",
- "practitioner_id": "5dcb47800000000000000010",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "capacity": 10,
- "max_baskets": 1,
- "remaining_capacity": 4,
- "waitlist_enabled": true,
- "num_waitlisted": 2,
- "price": 595,
- "currency": "gbp",
- "bookings": [
- {
- "id": "5dcb47800000000000000000",
- "session_id": "5dcb47800000000000001111",
- "session_type_id": "5dcb47800000000000001234",
- "session_type_name": "Spa access",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "status": "none",
- "stage": "not_arrived",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "checked_in_at": "2022-03-02T09:00:00+00:00",
- "is_no_show": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "num_checked_in": 12,
- "num_no_show": 2,
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "site_id": "5dcb47800000000000000010",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "deleted_at": "2019-01-15T12:00:00+01:00"
}
}
Restores a soft-deleted (cancelled) session. If the session is not soft-deleted, this endpoint will still return a 200.
sessionId required | string The ID of the session |
{- "data": {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "session_type_name": "Spa access",
- "practitioner_id": "5dcb47800000000000000010",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "capacity": 10,
- "max_baskets": 1,
- "remaining_capacity": 4,
- "waitlist_enabled": true,
- "num_waitlisted": 2,
- "price": 595,
- "currency": "gbp",
- "bookings": [
- {
- "id": "5dcb47800000000000000000",
- "session_id": "5dcb47800000000000001111",
- "session_type_id": "5dcb47800000000000001234",
- "session_type_name": "Spa access",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "status": "none",
- "stage": "not_arrived",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "checked_in_at": "2022-03-02T09:00:00+00:00",
- "is_no_show": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "num_checked_in": 12,
- "num_no_show": 2,
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "site_id": "5dcb47800000000000000010",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "deleted_at": "2019-01-15T12:00:00+01:00"
}
}
Returns an array of all session types the given user has permission to view
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
session_type_id | string Example: session_type_id=5dcb47800000000000000010 A comma separated string of session type IDs to filter results for |
archived | boolean Only show archived resources |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new session type
To create a session type, you pass a SessionType
object.
id | string The ID of the session type. |
name | string The name of this session type |
description | string A description of the session type |
product_code | string A custom product code for the session type. |
currency | string The ISO-4217 currency code in lower case |
image_id | string The id of the image |
object (Media) | |
offered_online | boolean Whether this session type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
site_id | string The ID of the site this session is part of |
duration | integer The duration of the session type. |
max_baskets_per_session | integer Limit the number of baskets that may create bookings for a single session. |
max_advance_bookings_interval | string The maximum time before a session's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before a session's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
members_only | boolean Whether this session requires an active membership in order to book. |
max_bookings_per_member | integer The maximum number of bookings a member may make on a single session. |
permitted_membership_type_ids | Array of strings If this session is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this session type. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
waitlist_enabled | boolean Whether the waitlist is enabled for sessions of this type. |
min_guests | integer The minimum guests allowed in a booking for this session |
max_guests | integer The maximum guests allowed in a booking for this session |
Array of objects (SessionPriceRule) The rules defining prices for this session type. | |
category_ids | Array of strings The category IDs associated with this session type |
Array of objects (Category) The category associated with this session type | |
Array of objects (SessionRecurrenceGroup) An array of recurrence groups for this session type | |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the details of a single session type
sessionTypeId required | string The ID of the session type you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Update an existing session type
sessionTypeId required | string The ID of the session type you want to update |
Updates the specified SessionType
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the session type. |
name | string The name of this session type |
description | string A description of the session type |
product_code | string A custom product code for the session type. |
currency | string The ISO-4217 currency code in lower case |
image_id | string The id of the image |
object (Media) | |
offered_online | boolean Whether this session type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
site_id | string The ID of the site this session is part of |
duration | integer The duration of the session type. |
max_baskets_per_session | integer Limit the number of baskets that may create bookings for a single session. |
max_advance_bookings_interval | string The maximum time before a session's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before a session's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
members_only | boolean Whether this session requires an active membership in order to book. |
max_bookings_per_member | integer The maximum number of bookings a member may make on a single session. |
permitted_membership_type_ids | Array of strings If this session is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this session type. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
waitlist_enabled | boolean Whether the waitlist is enabled for sessions of this type. |
min_guests | integer The minimum guests allowed in a booking for this session |
max_guests | integer The maximum guests allowed in a booking for this session |
Array of objects (SessionPriceRule) The rules defining prices for this session type. | |
category_ids | Array of strings The category IDs associated with this session type |
Array of objects (Category) The category associated with this session type | |
Array of objects (SessionRecurrenceGroup) An array of recurrence groups for this session type | |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Restores a soft-deleted (archived) session type.
sessionTypeId required | string The ID of the session type you want to restore |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all price rules for the given session type.
sessionTypeId required | string The ID of the session type you want to retrieve |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
sessionTypeId required | string The ID of the session type you want to add a price rule for |
To create a price rule you pass a SessionPriceRule
object.
id | string The ID of the price rule. |
session_type_id | string The ID of the session type the price rule relates to. |
date_from | string <date> The rule should apply to sessions on or after this date. |
date_to | string <date> The rule should not apply to sessions after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to sessions starting on or after this time. |
time_to | string The rule should apply to sessions starting before this time. |
price | integer The price of the session. |
{- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
}
Returns the details of a single price rule.
sessionTypeId required | string The ID of the session type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
}
Update an existing price rule.
sessionTypeId required | string The ID of the session type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to update. |
Updates the specified SessionPriceRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the price rule. |
session_type_id | string The ID of the session type the price rule relates to. |
date_from | string <date> The rule should apply to sessions on or after this date. |
date_to | string <date> The rule should not apply to sessions after this date. |
weekdays | Array of strings The weekdays that this rule should apply to. |
time_from | string The rule should apply to sessions starting on or after this time. |
time_to | string The rule should apply to sessions starting before this time. |
price | integer The price of the session. |
{- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
}
Returns the status of deletion
sessionTypeId required | string The ID of the session type the price rule belongs to. |
priceRuleId required | string The ID of the price rule you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
sessionTypeId required | string The ID of the session type you want to add a recurrence group for |
To create a recurrence group you pass a SessionRecurrenceGroupUpdate
object.
name | string An option name for the recurrence group. |
practitioner_id | string The practitioner who leads the sessions in this group. |
room_id | string The room where the sessions in this group take place. |
weekdays | Array of strings The weekdays sessions in this group take place. |
start_time | string The start time of each occurrence in this group, in 24 hour format. |
capacity | integer The capacity of each session in this group. |
recurrence_start | string <date> The start date of the recurrence group. |
recurrence_end | string <date> The end date of the recurrence group. |
{- "name": "Mondays with Adrienne",
- "practitioner_id": "5f184bb0b6ecff2e8157bf27",
- "room_id": "5dcb47800000000000000010",
- "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
{- "data": {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
}
Update an existing recurrence group.
sessionTypeId required | string The ID of the session type the recurrence group belongs to. |
recurrenceGroupId required | string The ID of the recurrence group you want to update. |
Updates the specified SessionRecurrenceGroup
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
name | string An option name for the recurrence group. |
practitioner_id | string The practitioner who leads the sessions in this group. |
room_id | string The room where the sessions in this group take place. |
weekdays | Array of strings The weekdays sessions in this group take place. |
start_time | string The start time of each occurrence in this group, in 24 hour format. |
capacity | integer The capacity of each session in this group. |
recurrence_start | string <date> The start date of the recurrence group. |
recurrence_end | string <date> The end date of the recurrence group. |
{- "name": "Mondays with Adrienne",
- "practitioner_id": "5f184bb0b6ecff2e8157bf27",
- "room_id": "5dcb47800000000000000010",
- "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
{- "data": {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
}
Returns the status of deletion
sessionTypeId required | string The ID of the session type the recurrence group belongs to. |
recurrenceGroupId required | string The ID of the recurrence group you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Check an update to a recurrence group
sessionTypeId required | string The ID of the session type the recurrence group belongs to. |
recurrenceGroupId required | string The ID of the recurrence group you want to check. |
Checks the impact of applying the updates given in the SessionRecurrenceGroup
object.
name | string An option name for the recurrence group. |
practitioner_id | string The practitioner who leads the sessions in this group. |
room_id | string The room where the sessions in this group take place. |
weekdays | Array of strings The weekdays sessions in this group take place. |
start_time | string The start time of each occurrence in this group, in 24 hour format. |
capacity | integer The capacity of each session in this group. |
recurrence_start | string <date> The start date of the recurrence group. |
recurrence_end | string <date> The end date of the recurrence group. |
{- "name": "Mondays with Adrienne",
- "practitioner_id": "5f184bb0b6ecff2e8157bf27",
- "room_id": "5dcb47800000000000000010",
- "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
{- "data": {
- "cancelled": {
- "after_new_end": {
- "count": 1,
- "session_ids": [
- "string"
]
}, - "before_new_start": {
- "count": 1,
- "session_ids": [
- "string"
]
}
}, - "counts": {
- "cancelled": 5,
- "created": 0,
- "requires_attention": 0,
- "updated": 5
}, - "created": {
- "after_old_end": {
- "count": 1,
- "session_ids": [
- "string"
]
}, - "before_old_start": {
- "count": 1,
- "session_ids": [
- "string"
]
}, - "weekdays_added": {
- "count": 1,
- "session_ids": [
- "string"
]
}
}, - "requires_attention": {
- "over_capacity": {
- "count": 1,
- "session_ids": [
- "string"
]
}
}
}
}
sessionTypeId required | string The ID of the session type to copy. |
Pass any session type properties that should be overridden on the copied resource.
id | string The ID of the session type. |
name | string The name of this session type |
description | string A description of the session type |
product_code | string A custom product code for the session type. |
currency | string The ISO-4217 currency code in lower case |
image_id | string The id of the image |
object (Media) | |
offered_online | boolean Whether this session type is bookable online |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
site_id | string The ID of the site this session is part of |
duration | integer The duration of the session type. |
max_baskets_per_session | integer Limit the number of baskets that may create bookings for a single session. |
max_advance_bookings_interval | string The maximum time before a session's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_advance_bookings_interval | string The minimum time before a session's start time that it may be booked, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
members_only | boolean Whether this session requires an active membership in order to book. |
max_bookings_per_member | integer The maximum number of bookings a member may make on a single session. |
permitted_membership_type_ids | Array of strings If this session is for members only, this property may be used to restrict the offering further so it may only be booked by active members with of one of the given membership types. |
membership_booking_windows_enabled | boolean Whether membership-specific booking windows should be enabled for this session type. |
Array of objects (MembershipBookingWindow) | |
customer_cancellation_permitted | string Enum: "allowed" "disallowed" "unpaid" Whether bookings of this type may be cancelled online by customers. A value of |
customer_cancellation_min_duration | string The minimum duration that must be left before the booking in order for the customer to cancel, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
waitlist_enabled | boolean Whether the waitlist is enabled for sessions of this type. |
min_guests | integer The minimum guests allowed in a booking for this session |
max_guests | integer The maximum guests allowed in a booking for this session |
Array of objects (SessionPriceRule) The rules defining prices for this session type. | |
category_ids | Array of strings The category IDs associated with this session type |
Array of objects (Category) The category associated with this session type | |
Array of objects (SessionRecurrenceGroup) An array of recurrence groups for this session type | |
object | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
Array of objects (OfferingIdentifier) | |
revenue_centre | string The revenue centre to assign revenue to for this offering |
updated_at | string <date-time> The time and date that the appointment type was last updated. |
deleted_at | string <date-time> The time and date that the appointment type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "Vinyasa yoga",
- "description": "A dynamic form of yoga",
- "product_code": "MAS123",
- "currency": "gbp",
- "image_id": "5dcb47800000000000000000",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "offered_online": true,
- "private": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "duration": 60,
- "max_baskets_per_session": 1,
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D",
- "members_only": true,
- "max_bookings_per_member": 1,
- "permitted_membership_type_ids": [
- "string"
], - "membership_booking_windows_enabled": true,
- "membership_booking_windows": [
- {
- "membership_type_id": "00000000-0000-0000-0000-222222222222",
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
], - "customer_cancellation_permitted": "allowed",
- "customer_cancellation_min_duration": "P7D",
- "waitlist_enabled": true,
- "min_guests": 1,
- "max_guests": 2,
- "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "weekdays": [
- "monday"
], - "time_from": "16:00",
- "time_to": "17:00",
- "price": 1500
}
], - "category_ids": [
- "string"
], - "categories": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "recurrence_groups": [
- {
- "id": "609bd745e4358066f7061d82",
- "name": "Mondays with Adrienne",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "weekdays": [
- "monday"
], - "start_time": "16:00",
- "capacity": 12,
- "recurrence_start": "2021-04-10T00:00:00.000Z",
- "recurrence_end": "2021-05-10T00:00:00.000Z"
}
], - "meta": {
- "title": "string",
- "description": "string"
}, - "upsell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "cross_sell_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "related_retail_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "revenue_centre": "spa",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
organisation_id required | string Example: organisation_id=00000000-0000-0000-0000-000000000000 The ID of the organisation the tags belong to |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
organisation_id required | string Example: organisation_id=00000000-0000-0000-0000-000000000000 The ID of the organisation the categories belong to |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
Get all offerings (appointments, sessions etc) available from the shop, optionally filtered by availability on a particular date or by category.
site_id required | string The ID of the site. |
date | string <date> An optional date to filter offering availability. |
category_id | string An optional category to filter offerings. |
{- "data": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": { }
}
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
]
}
Gets a specific offering available from the shop.
offeringType required | string Enum: "appointment" "package" "session" The offering type |
offeringId required | string The ID of the offering |
site_id required | string <uuid> The site ID which the offering belongs to |
{- "data": {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": { }
}
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
}
offeringType required | string Enum: "appointment" "package" "session" The offering type |
offeringId required | string The ID of the offering |
site_id required | string <uuid> The site ID which the offering belongs to |
{- "data": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": { }
}
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
]
}
offeringType required | string Enum: "appointment" "package" "session" The offering type |
offeringId required | string The ID of the offering |
site_id required | string <uuid> The site ID which the offering belongs to |
{- "data": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "60 minute massage",
- "description": "Choose from classic, deep tissue and Swedish massage",
- "price_from": 5000,
- "price_to": 6500,
- "discounted_price_from": 4500,
- "currency": "gbp",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "duration": 30,
- "durations": [
- 30
], - "type": "appointment",
- "has_availability": true,
- "next_available_date": "2019-08-24",
- "item_choices": [
- {
- "id": "5dcb47800000000000000025",
- "name": "Massage",
- "description": "Choose your type of massage.",
- "min_options": 1,
- "max_options": 2,
- "option_budget": 2000,
- "auto_select_timeslot": true,
- "hide_times": true,
- "optional": true,
- "visible": true,
- "allow_overlaps": true,
- "offering_type": "appointment",
- "allocation": {
- "revenue_centre": "spa_food",
- "amount": 3700
}, - "start_time_rules": [
- {
- "type": "relative",
- "relative_to": "first_item_start",
- "relative_mins_from": 0,
- "relative_mins_to": 30,
- "absolute_time_from": "12:00",
- "absolute_time_to": "12:30"
}
], - "options": [
- {
- "id": "5dcb47800000000000000026",
- "item_type": "appointment",
- "price_change": 2000,
- "offering": { }
}
]
}
], - "min_guests": 2,
- "max_guests": 2,
- "categories": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Massage"
}
]
}
]
}
Returns an array of all coupons that the given user has permission to view
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Test coupon",
- "description": "This coupon is a test",
- "offering_discounts": [
- {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
], - "currency": "gbp",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "default_multi_use": true,
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
]
}
Create a new coupon
To create a coupon, specify the offerings which it applies to and when the coupon is valid.
name required | string The name of the coupon |
description | string A string to describe the coupon |
valid_weekdays | Array of strings An array of weekdays which this coupon is available for use |
invalid_date_set_ids | Array of strings An array of IDs of |
default_validity_interval | string The default duration this coupon is valid for, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
redemption_type | string Enum: "manual" "programmatic" The method that this coupon may be redeemed. |
{- "name": "Test coupon",
- "description": "This coupon is a test",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "redemption_type": "manual"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Test coupon",
- "description": "This coupon is a test",
- "offering_discounts": [
- {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
], - "currency": "gbp",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "default_multi_use": true,
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Gets details about a coupon
couponId required | string The ID of the coupon |
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Test coupon",
- "description": "This coupon is a test",
- "offering_discounts": [
- {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
], - "currency": "gbp",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "default_multi_use": true,
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Updates base information for an existing coupon. If you're looking to update the nested offerings_discounts
, see the updateCouponOffering endpoint.
couponId required | string The ID of the coupon |
The base information to update the existing coupon with. Any parameters not provided will be left unchanged.
name | string The name of the coupon |
description | string A string to describe the coupon |
valid_weekdays | Array of strings An array of weekdays which this coupon is available for use |
invalid_date_set_ids | Array of strings An array of IDs of |
default_validity_interval | string The default duration this coupon is valid for, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
{- "name": "Test coupon",
- "description": "This coupon is a test",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Test coupon",
- "description": "This coupon is a test",
- "offering_discounts": [
- {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
], - "currency": "gbp",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "default_multi_use": true,
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Soft-deletes a coupon. To restore a soft-deleted coupon, see the restoreCoupon endpoint.
couponId required | string The ID of the coupon |
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Test coupon",
- "description": "This coupon is a test",
- "offering_discounts": [
- {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
], - "currency": "gbp",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "default_multi_use": true,
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Restores a soft-deleted coupon. If the coupon is not soft-deleted, this endpoint will still return a 200.
couponId required | string The ID of the coupon |
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Test coupon",
- "description": "This coupon is a test",
- "offering_discounts": [
- {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
], - "currency": "gbp",
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5dcb47800000000000000000"
], - "default_validity_interval": "P1Y",
- "default_multi_use": true,
- "created_at": "2020-02-24T12:00:00+01:00",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Adds a new offering discount to an existing coupon
couponId required | string The ID of the coupon |
An object describing which offering the discount applies to, and what the discount is.
required | Array of objects An array of offerings which this discount applies to |
discount_type required | string Enum: "fixed_amount" "percentage" The type of discount to be applied |
fixed_amount | integer The amount of discount to apply as an integer of the smallest unit of currency. |
percentage | integer The percentage of discount to apply |
{- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
}
Removes an existing offering discount from the given coupon
couponId required | string The ID of the coupon |
offeringDiscountId required | string The ID of the offering discount |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Updates an existing offering discount on the given coupon
couponId required | string The ID of the coupon |
offeringDiscountId required | string The ID of the offering discount |
object | |
discount_type | string Enum: "fixed_amount" "percentage" The type of discount to be applied. |
fixed_amount | integer The amount of discount to apply as an integer of the smallest unit of currency. |
percentage | integer The percentage of discount to apply. |
{- "offerings": {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000"
}, - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000000",
- "offering_name": "Test offering"
}
], - "discount_type": "fixed_amount",
- "fixed_amount": 50,
- "percentage": 10
}
}
Returns an array of all coupon codes for the given coupon.
couponId required | string The ID of the coupon |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "coupon_id": "5dcb56700000000000000000",
- "code": null,
- "valid_from_date": "2021-02-15T12:00:00+00:00",
- "valid_to_date": "2022-02-15T12:00:00+00:00",
- "multi_use": true,
- "revenue": 2495,
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
]
}
couponId required | string The ID of the coupon |
Pass a CreateCouponCodeRequest
object to create a new code.
code | string The redemption code to be used, which must be unique to the organisation. A code will be generated if none is specified. |
valid_from_date | string <date-time> The date and time after which the coupon code may be used. |
valid_to_date | string <date-time> The date and time after which the coupon code may not be used. |
multi_use | boolean Whether the coupon code may be used multiple times. |
customer_credit_id | string <uuid> Nullable The ID of the associated Customer Credit, if applicable. |
customer_id | string <uuid> Nullable The ID of the associated customer, if a customer credit ID is passed. |
revenue | integer The amount of revenue that should be allocated when this coupon code is redeemed, in the smallest unit of currency. |
{- "code": "WYQZF",
- "valid_from_date": "2021-02-15T12:00:00+00:00",
- "valid_to_date": "2022-02-15T12:00:00+00:00",
- "multi_use": true,
- "customer_credit_id": "0f5432ff-5183-409d-985f-9ec93f791046",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "revenue": 2495
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "coupon_id": "5dcb56700000000000000000",
- "code": null,
- "valid_from_date": "2021-02-15T12:00:00+00:00",
- "valid_to_date": "2022-02-15T12:00:00+00:00",
- "multi_use": true,
- "revenue": 2495,
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Special Offer"
}
]
}
Pass an object containing an array of ordered voucher type IDs
voucher_type_ids required | Array of strings |
site_id required | string |
{- "voucher_type_ids": [
- "string"
], - "site_id": "string"
}
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Special Offer"
}
]
}
Returns an array of all voucher types the given user has permission to view.
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
archived | boolean Only show archived resources |
amount_type | string Example: amount_type=cash Only include vouchers that have this amount type. |
customisable_amount | boolean Example: customisable_amount=true Only include vouchers that have a customisable amount. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Create a new voucher type
To create a voucher type, you pass a VoucherType
object.
id | string The ID of the voucher type. |
name | string The name of this voucher type. |
description | string A description of the voucher type. |
product_code | string A custom product code for the voucher type. |
object (Media) | |
recipient_message | string A message that will be included in the email containing the gift voucher. |
amount_type | string Enum: "cash" "discount_to_zero" The type of discount offered by this voucher. |
amount | integer The value of this voucher if it is a 'cash' type |
customisable_amount | boolean Whether the amount of this voucher can be overridden by a user when it is being sold |
valid_weekdays | Array of strings An array of weekdays (in lowercase) that this voucher may be used on. |
invalid_date_set_ids | Array of strings An array of date set IDs that this voucher may not be used on. |
Array of objects (OfferingIdentifier) An array of offerings this voucher may be used on. | |
Array of objects (OfferingIdentifier) If no | |
partially_redeemable | boolean Whether vouchers of this type should be partially redeemable. |
default_validity_interval | string The default duration this voucher is valid for, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
offered_online | boolean Whether this voucher type is allowed to be purchased online. |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this voucher type requires an active membership in order to purchase. |
permitted_membership_type_ids | Array of strings If this voucher type is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
Array of objects (AvailabilityRule) The rules defining periods during which the voucher can be purchased. | |
Array of objects (VoucherPriceRule) The rules defining prices for this voucher type. | |
currency | string The ISO-4217 currency code in lower case. |
site_id | string The ID of the site this voucher type belongs to. |
organisation_id | string The ID of the organisation this voucher type belongs to. |
category_ids | Array of strings The category IDs associated with this session type |
updated_at | string <date-time> The time and date that the voucher type was last updated. |
deleted_at | string <date-time> The time and date that the voucher type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the details of a single voucher type
voucherTypeId required | string The ID of the voucher type you want to retrieve |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Update an existing voucher type
voucherTypeId required | string The ID of the voucher type you want to retrieve |
Updates the specified VoucherType
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the voucher type. |
name | string The name of this voucher type. |
description | string A description of the voucher type. |
product_code | string A custom product code for the voucher type. |
object (Media) | |
recipient_message | string A message that will be included in the email containing the gift voucher. |
amount_type | string Enum: "cash" "discount_to_zero" The type of discount offered by this voucher. |
amount | integer The value of this voucher if it is a 'cash' type |
customisable_amount | boolean Whether the amount of this voucher can be overridden by a user when it is being sold |
valid_weekdays | Array of strings An array of weekdays (in lowercase) that this voucher may be used on. |
invalid_date_set_ids | Array of strings An array of date set IDs that this voucher may not be used on. |
Array of objects (OfferingIdentifier) An array of offerings this voucher may be used on. | |
Array of objects (OfferingIdentifier) If no | |
partially_redeemable | boolean Whether vouchers of this type should be partially redeemable. |
default_validity_interval | string The default duration this voucher is valid for, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
offered_online | boolean Whether this voucher type is allowed to be purchased online. |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this voucher type requires an active membership in order to purchase. |
permitted_membership_type_ids | Array of strings If this voucher type is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
Array of objects (AvailabilityRule) The rules defining periods during which the voucher can be purchased. | |
Array of objects (VoucherPriceRule) The rules defining prices for this voucher type. | |
currency | string The ISO-4217 currency code in lower case. |
site_id | string The ID of the site this voucher type belongs to. |
organisation_id | string The ID of the organisation this voucher type belongs to. |
category_ids | Array of strings The category IDs associated with this session type |
updated_at | string <date-time> The time and date that the voucher type was last updated. |
deleted_at | string <date-time> The time and date that the voucher type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns the status of deletion
voucherTypeId required | string The ID of the voucher type you want to retrieve |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
voucherTypeId required | string The ID of the voucher type to copy. |
Pass any voucher type properties that should be overridden on the copied resource.
id | string The ID of the voucher type. |
name | string The name of this voucher type. |
description | string A description of the voucher type. |
product_code | string A custom product code for the voucher type. |
object (Media) | |
recipient_message | string A message that will be included in the email containing the gift voucher. |
amount_type | string Enum: "cash" "discount_to_zero" The type of discount offered by this voucher. |
amount | integer The value of this voucher if it is a 'cash' type |
customisable_amount | boolean Whether the amount of this voucher can be overridden by a user when it is being sold |
valid_weekdays | Array of strings An array of weekdays (in lowercase) that this voucher may be used on. |
invalid_date_set_ids | Array of strings An array of date set IDs that this voucher may not be used on. |
Array of objects (OfferingIdentifier) An array of offerings this voucher may be used on. | |
Array of objects (OfferingIdentifier) If no | |
partially_redeemable | boolean Whether vouchers of this type should be partially redeemable. |
default_validity_interval | string The default duration this voucher is valid for, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
offered_online | boolean Whether this voucher type is allowed to be purchased online. |
private | boolean Whether this is private. When private, it is accessible from the URL but doesn't appear on category pages and isn't indexed on search engines. |
members_only | boolean Whether this voucher type requires an active membership in order to purchase. |
permitted_membership_type_ids | Array of strings If this voucher type is for members only, this property may be used to restrict the offering further so it may only be purchased by active members with of one of the given membership types. |
Array of objects (AvailabilityRule) The rules defining periods during which the voucher can be purchased. | |
Array of objects (VoucherPriceRule) The rules defining prices for this voucher type. | |
currency | string The ISO-4217 currency code in lower case. |
site_id | string The ID of the site this voucher type belongs to. |
organisation_id | string The ID of the organisation this voucher type belongs to. |
category_ids | Array of strings The category IDs associated with this session type |
updated_at | string <date-time> The time and date that the voucher type was last updated. |
deleted_at | string <date-time> The time and date that the voucher type was archived. |
{- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Restores a soft-deleted (archived) voucher type.
voucherTypeId required | string The ID of the voucher type you want to restore |
{- "data": {
- "id": "5dcb47800000000000000010",
- "name": "£50 voucher",
- "description": "£50 off a treatment of your choice.",
- "product_code": "VOU123",
- "image": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "recipient_message": "You can spend this on anything you like. Enjoy!",
- "amount_type": "cash",
- "amount": 2500,
- "customisable_amount": true,
- "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "invalid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "partially_redeemable": true,
- "default_validity_interval": "P1Y",
- "offered_online": true,
- "private": true,
- "members_only": true,
- "permitted_membership_type_ids": [
- "string"
], - "availability_rules": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
], - "price_rules": [
- {
- "id": "5dcb47800000000000000010",
- "date_from": "2020-02-01T00:00:00.000Z",
- "date_to": "2020-04-01T00:00:00.000Z",
- "price": 20000
}
], - "currency": "gbp",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "category_ids": [
- "string"
], - "updated_at": "2020-02-24T12:00:00+01:00",
- "deleted_at": "2020-02-24T12:00:00+01:00"
}
}
Returns an array of all availability rules for the given voucher type.
voucherTypeId required | string The ID of the voucher type the availability rules relate to. |
{- "data": [
- {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
]
}
voucherTypeId required | string The ID of the voucher type the availability rules relate to. |
To create an availability rule you pass an AvailabilityRule
object.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
Returns the details of a single availability rule.
voucherTypeId required | string The ID of the voucher type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
}
Update an existing availability rule.
voucherTypeId required | string The ID of the voucher type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
Updates the specified AvailabilityRule
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the availability rule. |
date_from | string <date> The start of the rule period. |
date_to | string <date> The end of the rule period. |
time_from | string The daily start time of the time period, in 24 hour format. |
time_to | string The daily end time of the time period, in 24 hour format. |
weekday | string The weekday this rule applies to. |
weekdays | Array of strings The weekdays this rule applies to. |
is_available | boolean Whether the resource is available during this period. Any |
{- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
{- "data": {
- "id": "5dcb56700000000000000000",
- "date_from": "2021-02-15T12:00:00+00:00",
- "date_to": "2021-02-15T12:00:00+00:00",
- "time_from": "11:00",
- "time_to": "17:00",
- "weekday": "string",
- "weekdays": [
- "string"
], - "is_available": true
}
}
Returns the status of deletion
voucherTypeId required | string The ID of the voucher type the availability rule belongs to. |
availabilityRuleId required | string The ID of the availability rule you want to access. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
voucher_applicable | boolean Only show categories that are applicable to vouchers |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
]
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
Pass an object containing an array of ordered category IDs
category_ids required | Array of strings |
{- "category_ids": [
- "string"
]
}
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
]
}
Returns an array of all labels the given user has permission to view
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the labels belong to |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
archived | boolean Only show archived resources |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
Create a new label
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the label belong to |
To create a label, you pass an Label
object.
id | string <uuid> The ID of the label |
value | string The name of the label |
colour | string A hex colour code excluding the preceding # which this label will be rendered as. |
organisation_id | string <uuid> The organisation which this label belongs to |
created_at | string <date-time> The datetime which the label was created |
updated_at | string <date-time> The datetime which the label was last updated |
{- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Returns the details of a single label
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the label belong to |
labelId required | string The ID of the label you want to retrieve |
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Update an existing label
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the label belong to |
labelId required | string The ID of the label you want to update |
Updates the specified Label
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string <uuid> The ID of the label |
value | string The name of the label |
colour | string A hex colour code excluding the preceding # which this label will be rendered as. |
organisation_id | string <uuid> The organisation which this label belongs to |
created_at | string <date-time> The datetime which the label was created |
updated_at | string <date-time> The datetime which the label was last updated |
{- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Returns the status of deletion
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the label belong to |
labelId required | string The ID of the label to delete |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Restores a soft-deleted (archived) label.
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the label belongs to |
labelId required | string The ID of the label to restore |
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the label belong to |
labelId required | string The ID of the label to copy. |
Pass any label properties that should be overridden on the copied resource.
id | string <uuid> The ID of the label |
value | string The name of the label |
colour | string A hex colour code excluding the preceding # which this label will be rendered as. |
organisation_id | string <uuid> The organisation which this label belongs to |
created_at | string <date-time> The datetime which the label was created |
updated_at | string <date-time> The datetime which the label was last updated |
{- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Returns an array of all categories the given user has permission to view
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
voucher_applicable | boolean Only return voucher categories |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
Create a new category
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
To create a category, you pass an Category
object.
id | string The ID of the category. |
name | string The name of the category. |
organisation_id | string The ID of the organisation the category belongs to. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
}
Returns the details of a single category
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
categoryId required | string The ID of the category you want to retrieve |
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
}
Update an existing category
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
categoryId required | string The ID of the category you want to update |
Updates the specified Category
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the category. |
name | string The name of the category. |
organisation_id | string The ID of the organisation the category belongs to. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
}
Returns the status of deletion
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
categoryId required | string The ID of the category to delete |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the category belongs to |
categoryId required | string The ID of the category to copy. |
Pass any category properties that should be overridden on the copied resource.
id | string The ID of the category. |
name | string The name of the category. |
organisation_id | string The ID of the organisation the category belongs to. |
{- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Massage oils",
- "organisation_id": "20000000-0000-0000-0000-000000000000"
}
}
Returns an array of all custom payment types the given user has permission to view
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the custom payment type belongs to |
{- "data": [
- {
- "id": "5f8d944e79c9f341846e807a",
- "name": "Cash",
- "kind": "pms_prepaid"
}
]
}
Create a new custom payment type
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the custom payment type belongs to |
Pass a new CustomPaymentType
object.
id | string The ID of the custom payment type. |
name | string The name of the custom payment type. |
kind | string Enum: "pms_prepaid" "prepayment" "voucher" The kind of the custom payment type. |
{- "id": "5f8d944e79c9f341846e807a",
- "name": "Cash",
- "kind": "pms_prepaid"
}
{- "data": {
- "id": "5f8d944e79c9f341846e807a",
- "name": "Cash",
- "kind": "pms_prepaid"
}
}
Returns the details of a single custom payment type
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the custom payment type belongs to |
customPaymentTypeId required | string The ID of the custom payment type you want to retrieve |
{- "data": {
- "id": "5f8d944e79c9f341846e807a",
- "name": "Cash",
- "kind": "pms_prepaid"
}
}
Update an existing custom payment type
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the custom payment type belongs to |
customPaymentTypeId required | string The ID of the custom payment type you want to update |
Updates the specified CustomPaymentType
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the custom payment type. |
name | string The name of the custom payment type. |
kind | string Enum: "pms_prepaid" "prepayment" "voucher" The kind of the custom payment type. |
{- "id": "5f8d944e79c9f341846e807a",
- "name": "Cash",
- "kind": "pms_prepaid"
}
{- "data": {
- "id": "5f8d944e79c9f341846e807a",
- "name": "Cash",
- "kind": "pms_prepaid"
}
}
Returns the status of deletion
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the custom payment type belongs to |
customPaymentTypeId required | string The ID of the custom payment type to delete |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the tags belong to |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the tags belong to |
To create an appointment tag, you create a Tag
object.
id | string The ID of the tag. |
name | string The name of the tag. |
organisation_id | string The ID of the organisation the tag belongs to. |
{- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation whose tag you want to retrieve. |
tagId required | string Example: 5e932c0901d210625e3a8766 The ID of the tag you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation whose tag you want to update. |
tagId required | string Example: 5e932c0901d210625e3a8766 The ID of the tag you want to update. |
id | string The ID of the tag. |
name | string The name of the tag. |
organisation_id | string The ID of the organisation the tag belongs to. |
{- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Beginner friendly",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation whose tag you want to delete. |
tagId required | string Example: 5e932c0901d210625e3a8766 The ID of the tag you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the sales channels belong to |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the tags belong to |
To create a sales channel, you create a SalesChannel
object.
id | string The ID of the sales channel. |
organisation_id | string The ID of the organisation the sales channel belongs to. |
name | string The name of the sales channel. |
{- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}
{- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation whose sales channel you want to retrieve. |
salesChannelId required | string Example: 5e932c0901d210625e3a8766 The ID of the sales channel you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}
}
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation whose sales channel you want to delete. |
salesChannelId required | string Example: 5e932c0901d210625e3a8766 The ID of the sales channel you want to delete. |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns an array of all date sets the current user has permission to view.
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the date set belongs to. |
limit | integer Example: limit=1 A limit to the number of results that should be returned. |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Bank holidays",
- "dates": [
- {
- "date": "2020-12-25T00:00:00.000Z",
- "label": "Christmas Day"
}
], - "organisation_id": "00000000-0000-0000-0000-000000000000"
}
]
}
Create a new date set
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the date set belongs to. |
To create a date set, you pass an DateSet
object.
id | string The ID of the date set. |
name | string The name of the date set. |
Array of objects (DateSetDate) The dates in the date set. | |
organisation_id | string The ID of the organisation the date set belongs to. |
{- "id": "5dcb47800000000000000000",
- "name": "Bank holidays",
- "dates": [
- {
- "date": "2020-12-25T00:00:00.000Z",
- "label": "Christmas Day"
}
], - "organisation_id": "00000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Bank holidays",
- "dates": [
- {
- "date": "2020-12-25T00:00:00.000Z",
- "label": "Christmas Day"
}
], - "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
Returns the details of a single date set
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the date set belongs to. |
dateSetId required | string The ID of the date set you want to retrieve. |
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Bank holidays",
- "dates": [
- {
- "date": "2020-12-25T00:00:00.000Z",
- "label": "Christmas Day"
}
], - "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
Update an existing date set
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the date set belongs to |
dateSetId required | string The ID of the date set you want to update |
Updates the specified DateSet
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string The ID of the date set. |
name | string The name of the date set. |
Array of objects (DateSetDate) The dates in the date set. | |
organisation_id | string The ID of the organisation the date set belongs to. |
{- "id": "5dcb47800000000000000000",
- "name": "Bank holidays",
- "dates": [
- {
- "date": "2020-12-25T00:00:00.000Z",
- "label": "Christmas Day"
}
], - "organisation_id": "00000000-0000-0000-0000-000000000000"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "name": "Bank holidays",
- "dates": [
- {
- "date": "2020-12-25T00:00:00.000Z",
- "label": "Christmas Day"
}
], - "organisation_id": "00000000-0000-0000-0000-000000000000"
}
}
Delete a date set
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the date set belongs to |
dateSetId required | string The ID of the date set to delete |
{- "message": "The requested resource could not be found 5dcb47800000000000000000"
}
Returns an array of all revenue centres for the given organisation.
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the revenue belongs to. |
{- "data": [
- {
- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
], - "meta": {
- "has_custom_revenue_centres": true
}
}
Create a new revenue centre
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the revenue centre belongs to. |
To create a revenue centre, you pass an RevenueCentre
object.
id | string A string identifier of the revenue centre. |
key | string A string identifier of the revenue centre. |
name | string The name of the revenue centre |
tax_percent | number The tax percent for this revenue centre |
{- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
{- "data": {
- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
}
Returns the details of a single revenue centre
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the revenue centre belongs to. |
revenueCentreId required | string The ID of the revenue centre you want to retrieve. |
{- "data": {
- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
}
Updates the details of a single revenue centre
organisationId required | string Example: 00000000-0000-0000-0000-000000000000 The ID of the organisation the revenue centre belongs to. |
revenueCentreId required | string The ID of the revenue centre you want to retrieve. |
Updates the specified RevenueCentre
object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
id | string A string identifier of the revenue centre. |
key | string A string identifier of the revenue centre. |
name | string The name of the revenue centre |
tax_percent | number The tax percent for this revenue centre |
{- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
{- "data": {
- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
}
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "60119cd6cd0e5323af364b96",
- "name": "30 Min Treatment",
- "description": "From authentic Thai massage and invigorating body scrubs to organic facials and luxury\nmanicures, let them choose which indulgent treatment they would like to have.\n",
- "price": 4700,
- "currency": "gbp",
- "processor": "giftpro",
- "processor_voucher_id": 16319,
- "processor_data": { },
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "60 minute massage",
- "offering_details": { }
}
], - "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "processor_created_at": "2019-01-15T12:00:00+00:00",
- "created_at": "2019-01-15T12:00:00+00:00",
- "updated_at": "2019-01-15T12:00:00+00:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
voucherId required | string The ID of the voucher to retrieve. |
{- "data": {
- "id": "60119cd6cd0e5323af364b96",
- "name": "30 Min Treatment",
- "description": "From authentic Thai massage and invigorating body scrubs to organic facials and luxury\nmanicures, let them choose which indulgent treatment they would like to have.\n",
- "price": 4700,
- "currency": "gbp",
- "processor": "giftpro",
- "processor_voucher_id": 16319,
- "processor_data": { },
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "60 minute massage",
- "offering_details": { }
}
], - "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "processor_created_at": "2019-01-15T12:00:00+00:00",
- "created_at": "2019-01-15T12:00:00+00:00",
- "updated_at": "2019-01-15T12:00:00+00:00"
}
}
voucherId required | string The ID of the voucher to update. |
Array of objects An array of offerings that this voucher is valid for. | |
valid_weekdays | Array of strings An array of weekdays (in lowercase) that this voucher may be used on. |
invalid_date_set_ids | Array of strings An array of date set IDs that this voucher may not be used on. |
{- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_details": { }
}
], - "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
]
}
{- "data": {
- "id": "60119cd6cd0e5323af364b96",
- "name": "30 Min Treatment",
- "description": "From authentic Thai massage and invigorating body scrubs to organic facials and luxury\nmanicures, let them choose which indulgent treatment they would like to have.\n",
- "price": 4700,
- "currency": "gbp",
- "processor": "giftpro",
- "processor_voucher_id": 16319,
- "processor_data": { },
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "60 minute massage",
- "offering_details": { }
}
], - "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "processor_created_at": "2019-01-15T12:00:00+00:00",
- "created_at": "2019-01-15T12:00:00+00:00",
- "updated_at": "2019-01-15T12:00:00+00:00"
}
}
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
voucherId required | string Example: 60119cd6cd0e5323af364b96 The ID of the voucher to update |
{- "data": {
- "id": "60119cd6cd0e5323af364b96",
- "name": "30 Min Treatment",
- "description": "From authentic Thai massage and invigorating body scrubs to organic facials and luxury\nmanicures, let them choose which indulgent treatment they would like to have.\n",
- "price": 4700,
- "currency": "gbp",
- "processor": "giftpro",
- "processor_voucher_id": 16319,
- "processor_data": { },
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "60 minute massage",
- "offering_details": { }
}
], - "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "processor_created_at": "2019-01-15T12:00:00+00:00",
- "created_at": "2019-01-15T12:00:00+00:00",
- "updated_at": "2019-01-15T12:00:00+00:00"
}
}
voucherId required | string Example: 60119cd6cd0e5323af364b96 The ID of the voucher to update |
offeringId required | string Example: 60119cd6cd0e5323af364b97 The ID of the offering to remove |
{- "data": {
- "id": "60119cd6cd0e5323af364b96",
- "name": "30 Min Treatment",
- "description": "From authentic Thai massage and invigorating body scrubs to organic facials and luxury\nmanicures, let them choose which indulgent treatment they would like to have.\n",
- "price": 4700,
- "currency": "gbp",
- "processor": "giftpro",
- "processor_voucher_id": 16319,
- "processor_data": { },
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "60 minute massage",
- "offering_details": { }
}
], - "valid_weekdays": [
- "monday"
], - "invalid_date_set_ids": [
- "5e9823c217483703da222222"
], - "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "processor_created_at": "2019-01-15T12:00:00+00:00",
- "created_at": "2019-01-15T12:00:00+00:00",
- "updated_at": "2019-01-15T12:00:00+00:00"
}
}
voucherCode required | string The code for the voucher you want to retrieve |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "code": "858297JWY5SY",
- "payment_processor": "external_voucher",
- "processor_voucher_id": "16319",
- "processor": "Giftpro",
- "valid_from_date": "2020-08-12T10:30:00+01:00",
- "valid_to_date": "2020-08-12T12:30:00+01:00",
- "amount_type": "discount_to_zero",
- "total": 10000,
- "balance": 9200,
- "currency": "gbp",
- "partially_redeemable": true,
- "voucher_name": "30 min treatment",
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "customer_id": "d2330199-49a1-462f-9bd8-4680fc929245"
}
}
voucherCode required | string The code for the voucher you want to retrieve |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "code": "858297JWY5SY",
- "payment_processor": "external_voucher",
- "processor_voucher_id": "16319",
- "processor": "Giftpro",
- "valid_from_date": "2020-08-12T10:30:00+01:00",
- "valid_to_date": "2020-08-12T12:30:00+01:00",
- "amount_type": "discount_to_zero",
- "total": 10000,
- "balance": 9200,
- "currency": "gbp",
- "partially_redeemable": true,
- "voucher_name": "30 min treatment",
- "valid_offerings": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb56700000000000000000",
- "offering_name": "60 minute massage",
- "offering_config": { },
- "display_name": "Gold Membership (1 Day)"
}
], - "customer_id": "d2330199-49a1-462f-9bd8-4680fc929245"
}
}
Pass an object containing a site ID and an array of appointment details.
site_id | string The ID of the site where availability is to be checked. |
date | string <date> The date availability is to be checked for |
basket_id | string The ID of the current basket. This will show the current basket's items as still available in the response. |
Array of objects (AddBasketItem) The appointments to be checked for availability, in the same format they would be added to the basket. |
{- "site_id": "00000000-0000-0000-0000-111111111111",
- "date": "2020-04-15T00:00:00+01:00",
- "basket_id": "5dcb47800000000000111111",
- "items": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { }
}
]
}
{- "data": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "total_cost": 100,
- "can_auto_confirm": true,
- "appointments": [
- {
- "appointment_type_id": "5e9823c217483703da222222",
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "duration": 60,
- "end_buffer": 15,
- "practitioner_ids": [
- "5e9823c217483703da333333"
], - "price": 5000
}
]
}
]
}
Request availability for up to one month at a time.
offering_id required | string Example: offering_id=5dcb47800000000000000000 The ID of the offering. |
offering_type required | string Example: offering_type=appointment The type of the offering. |
date_from required | string <date> Example: Availability from this date. |
date_to required | string <date> Example: Availability up to and including this date. |
quantity | integer Example: quantity=2 Check availability for this quantity. |
{- "data": [
- {
- "date": "2020-06-01T00:00:00.000Z",
- "has_availability": true,
- "can_enquire": false,
- "bookable_from": "2024-05-06T00:00:00+01:00",
- "bookable_to": "2024-05-06T11:30:00+01:00"
}
], - "meta": {
- "max_advance_bookings_interval": "P2W",
- "min_advance_bookings_interval": "P2D"
}
}
Pass an object containing a site ID and an array of item details.
site_id | string The ID of the site where availability is to be checked. |
date | string <date> The date availability is to be checked for |
basket_id | string The ID of the current basket. This will show the current basket's items as still available in the response. |
Array of objects (AddBasketItem) The appointments to be checked for availability, in the same format they would be added to the basket. |
{- "site_id": "00000000-0000-0000-0000-111111111111",
- "date": "2020-04-15T00:00:00+01:00",
- "basket_id": "5dcb47800000000000111111",
- "items": [
- {
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "date": "2020-02-24T00:00:00+01:00",
- "time": "2020-02-24T12:00:00+01:00",
- "duration": 30,
- "quantity": 2,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { }
}
]
}
{- "data": [
- {
- "offering_id": "5ef469cd1a09043a4b6bd090",
- "duration": 60,
- "slots": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "quantity_available": 1,
- "price": 595
}
]
}
], - "currency": "gbp"
}
Returns availability slots matching the given details. A date range that include a portion of any days will include results for those whole days.
siteId required | string Example: 5dcb47800000000000000000 The site to retrieve availability for |
appointmentTypeId required | string Example: 5dcb47800000000000000000 The appointment type to retrieve availability for |
duration | integer Example: duration=60 Restrict availability checks to just those of the given length in minutes |
practitioner_id | string Example: practitioner_id=5dcb47800000000000000000 Restrict availability checks to just those offered by the given practitioner ID |
exclude_appointments | string Example: exclude_appointments=5dcb47800000000000000020,5dcb47800000000000000021 A comma separated string of appointment ids to exclude from availabliity checks |
exclude_basket_items | string Example: exclude_basket_items=5dcb47800000000000000020,5dcb47800000000000000021 A comma separated string of basket item ids to exclude from availabliity checks |
basket_id | string Example: basket_id=5dcb47800000000000000020 The ID of the basket availability should be checked for. |
guest_id | string Example: guest_id=5dcb47800000000000000020 The ID of the guest availability should be checked for. |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
{- "data": [
- {
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "end_buffer": 15,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_ids": [
- "5dcb47800000000000000015"
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "suggested_combinations": [
- {
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "room_id": "5dcb47800000000000000015"
}
], - "price": 595,
- "total_quantity": 2,
- "quantity_available": 1,
- "can_auto_confirm": true,
- "nonoptimal_practitioner_allocation": true,
- "nonoptimal_practitioner_ids": [
- "5dcb47800000000000000010"
], - "currency": "gbp",
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "bookable_from": "2024-05-24T13:00:00+01:00",
- "bookable_to": "2024-05-26T17:30:00+01:00"
}
]
}
DEPRECATED (2024-09-19): This endpoint is deprecated and will be removed in a future release. Use getOfferingDatesAvailability instead.
appointmentTypeId required | string Example: 5dcb47800000000000000000 The appointment type to retrieve availability for |
duration | integer Example: duration=60 Restrict availability checks to just those of the given length in minutes |
practitioner_id | string Example: practitioner_id=5dcb47800000000000000000 Restrict availability checks to just those offered by the given practitioner ID |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
{- "data": [
- {
- "date": "2020-04-15T00:00:00+01:00",
- "has_availability": true,
- "low_availability": true,
- "message": "string"
}
]
}
Returns all area booking slots matching the given details with their current availability.
bookingTypeId required | string Example: 5dcb47800000000000000000 The area booking type to retrieve availability for |
duration | integer Example: duration=60 If passed, will only return availability for slots of this number of minutes. |
exclude_bookings | string Example: exclude_bookings=5dcb47800000000000000020,5dcb47800000000000000021 A comma separated string of booking IDs to exclude from availabliity checks |
exclude_basket_items | string Example: exclude_basket_items=5dcb47800000000000000020,5dcb47800000000000000021 A comma separated string of basket item IDs to exclude from availabliity checks |
basket_id | string Example: basket_id=5dcb47800000000000000020 The ID of the basket availability should be checked for. |
guest_id | string Example: guest_id=5dcb47800000000000000021 The ID of the guest availability should be checked for. |
quantity | string Example: quantity=8 The required capacity of the slot. |
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
{- "data": [
- {
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "end_buffer": 15,
- "area_ids": [
- "5dcb47800000000000000015"
], - "areas": [
- {
- "id": "60e30b0fb1daa372a670f525",
- "name": "Hot Tub 1",
- "is_available": true,
- "capacity": 4,
- "remaining_capacity": 3,
- "is_suggested": true
}
], - "total_quantity": 2,
- "quantity_available": 1,
- "available_for_quantity": true,
- "no_availability_reason": "no_areas_available",
- "no_availability_message": "No areas are available.",
- "price": 595,
- "currency": "gbp"
}
], - "meta": {
- "basket_booking_slots": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "duration": 60,
- "area_ids": [
- "5dcb47800000000000000010"
], - "shared_basket_item_id": "664778961d3714b83b0a4e18"
}
]
}
}
Returns all sessions matching the given details and their current availability
siteId required | string The ID of the site you want to retrieve sessions for |
sessionTypeId required | string Example: 5dcb47800000000000000000 The session type to retrieve availability for |
basket_id | string Example: basket_id=5dcb47800000000000000020 The ID of the basket availability should be checked for. |
guest_id | string Example: guest_id=5dcb47800000000000000021 The ID of the guest availability should be checked for. |
quantity | string Example: quantity=8 The required capacity of the session. |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
{- "data": [
- {
- "id": "5dcb47800000000000000010",
- "session_type_id": "5dcb47800000000000000010",
- "session_type_name": "Spa access",
- "practitioner_id": "5dcb47800000000000000010",
- "practitioner": {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}, - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "capacity": 10,
- "max_baskets": 1,
- "remaining_capacity": 4,
- "waitlist_enabled": true,
- "num_waitlisted": 2,
- "price": 595,
- "currency": "gbp",
- "bookings": [
- {
- "id": "5dcb47800000000000000000",
- "session_id": "5dcb47800000000000001111",
- "session_type_id": "5dcb47800000000000001234",
- "session_type_name": "Spa access",
- "order_id": "5dcb47800000000000000009",
- "order_ref": "TRY00",
- "order_item_id": "5dcb47800000000000000019",
- "status": "none",
- "stage": "not_arrived",
- "customer_id": "5dcb47800000000000000020",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "checked_in_at": "2022-03-02T09:00:00+00:00",
- "is_no_show": true,
- "site_id": "00000000-0000-0000-0000-111111111111",
- "organisation_id": "00000000-0000-0000-0000-000000000000"
}
], - "num_checked_in": 12,
- "num_no_show": 2,
- "no_availability_reason": "no_practitioners_available",
- "no_availability_message": "No practitioners are available.",
- "site_id": "5dcb47800000000000000010",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "deleted_at": "2019-01-15T12:00:00+01:00"
}
]
}
MARKED FOR DEPRECATION: use getPackageChoiceSlotAvailability instead. Returns all packages matching the given details and their current availability.
siteId required | string The ID of the site you want to retrieve packages for |
packageId required | string Example: 5dcb47800000000000000000 The package type to retrieve availability for |
date required | string <date> A date to filter package availability. |
basket_item_id | string The ID of the current basket. This will show the current basket's items as still available in the response and will take into account any package rules. |
{- "data": {
- "item_choices": [
- {
- "id": "5dcb47800000000000000010",
- "options": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "slots": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "duration": 60,
- "is_valid": true,
- "price": 595,
- "currency": "gbp",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "nonoptimal_practitioner_allocation": true,
- "nonoptimal_practitioner_ids": [
- "5dcb47800000000000000010"
], - "quantity_available": 1
}
], - "suggested_slots": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "duration": 60,
- "area_ids": [
- "5dcb47800000000000000010"
], - "shared_basket_item_id": "664778961d3714b83b0a4e18"
}
]
}
]
}
], - "quantity_available": 1150
}
}
Returns all packages matching the given details and their current availability
packageId required | string Example: 5dcb47800000000000000000 The package type to retrieve availability for |
choiceId required | string The ID of the choice you want to retrieve slots for |
date required | string <date> An date to filter package availability. |
basket_id | string The ID of the current basket. This will be used for suggested slots. |
basket_item_id | string The ID of the current basket item. This will exclude the given item's bookings so they still appear available in the response and will take into account any package rules. The basket will also be set if this is passed. |
package_item_id | string The ID of the current package item. This will exclude the given item's booking so those times still appear available in the response and will take into account any package rules. The basket and basket item will also be set if this is passed. |
option_id | string Only show slots for the given option. |
{- "data": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "slots": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "duration": 60,
- "is_valid": true,
- "price": 595,
- "currency": "gbp",
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "nonoptimal_practitioner_allocation": true,
- "nonoptimal_practitioner_ids": [
- "5dcb47800000000000000010"
], - "quantity_available": 1
}
], - "suggested_slots": [
- {
- "start_time": "2020-06-01T10:30:00+01:00",
- "end_time": "2020-06-01T11:30:00+01:00",
- "duration": 60,
- "area_ids": [
- "5dcb47800000000000000010"
], - "shared_basket_item_id": "664778961d3714b83b0a4e18"
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
Returns the number of available stock for the product.
productId required | string Example: 5dcb47800000000000000000 The ID of the product to retrieve availability for |
{- "data": {
- "quantity_available": 23
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
status | string Enum: "unredeemed" "partially_redeemed" "redeemed" Filter on vouchers by status |
amount | string Example: amount=>1000 Filter on values of a certain amount, optionally including an operator. |
balance | string Example: balance=>1000 Filter on vouchers with a certain balance, optionally including an operator. |
created_since | string <date-time> Filter on vouchers created since a given date and time. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Retrieves a report of practitioner occupancy for a date range. This report is superseded by the Practitioner Utilisation report.
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "practitioner": {
- "id": "5dcb47800000000000000010",
- "name": "Lisa Keggs"
}, - "bookable_mins": 2400,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "bookable_mins": 10000,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 480
}, - "metadata": {
- "date_time_from": "2020-02-24T12:00:00+00:00",
- "date_time_to": "2020-02-24T12:00:00+00:00"
}
}
Retrieves a report of practitioner occupancy for a date range
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "date": "2019-01-15T00:00:00.000Z",
- "bookable_mins": 2400,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "bookable_mins": 10000,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 480
}, - "metadata": {
- "date_time_from": "2020-02-24T12:00:00+00:00",
- "date_time_to": "2020-02-24T12:00:00+00:00"
}
}
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from required | string <date> Include dates on or after this date. For revenue stats this will be treated as the revenue date. |
date_to required | string <date> Include dates on or before this date. For revenue stats this will be treated as the revenue date. |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "practitioner": {
- "id": "5dcb47800000000000000010",
- "name": "Lisa Keggs"
}, - "num_items": 24,
- "net_revenue": 30000,
- "bookable_mins": 2400,
- "available_mins": 1285,
- "appointment_mins": 575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "num_items": 24,
- "net_revenue": 30000,
- "bookable_mins": 2400,
- "available_mins": 1285,
- "appointment_mins": 575,
- "session_mins": 360,
- "blocked_mins": 180
}, - "meta": {
- "currency": "gbp",
- "date_from": "2020-02-24T00:00:00.000Z",
- "date_to": "2020-02-24T00:00:00.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from required | string <date> Include dates on or after this date. For revenue stats this will be treated as the revenue date. |
date_to required | string <date> Include dates on or before this date. For revenue stats this will be treated as the revenue date. |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Retrieves a report of room occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
room_ids | string Example: room_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of room ids to fetch occupany for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "room": {
- "id": "5dcb47800000000000000010",
- "name": "Light Blue Room"
}, - "bookable_mins": 2400,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "bookable_mins": 10000,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 480
}
}
Retrieves a report of room occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
room_ids | string Example: room_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of room ids to fetch occupany for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Retrieves a report of bookable area occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
bookable_area_ids | string Example: bookable_area_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of bookable area ids to fetch occupancy for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "bookable_area": {
- "id": "5dcb47800000000000000010",
- "name": "Light Blue Room"
}, - "bookable_mins": 2400,
- "blocked_mins": 180,
- "booked_mins": 6575
}
], - "totals": {
- "bookable_mins": 10000,
- "blocked_mins": 480,
- "booked_mins": 6575
}
}
Retrieves a report of bookable area occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
bookable_area_ids | string Example: bookable_area_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of bookable area ids to fetch occupancy for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
completed_from | string <date-time> Filter to charges completed after this time. |
completed_to | string <date-time> Filter to charges completed before this time. |
revenue_date_from | string <date> Filter to charges with a revenue date after this date. |
revenue_date_to | string <date> Filter to charges with a revenue date before this date. |
payout_date_from | string <date> Filter to charges with a payout date after this date. |
payout_date_to | string <date> Filter to charges with a payout date after this date. |
site_id | string The ID of the site to filter on. |
status | string Filter on charges of this status. |
chargeable_type | string Enum: "order" "membership" Filter on charges of this type. |
charge_type | string Enum: "refund" "payment" Filter on refunds or payments. |
processor | string Enum: "manual" "stripe" "adyen" "saved_card" "pms_folio" "voucher" "external_voucher" Filter payments by processor. |
processor_type_id | string Filter payments by processor. |
order_status | any Enum: "in_progress" "new" "submitted" "settled" "cancelled" "no_show" Filter status of orders. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5f4f7ed1e79390087033c495",
- "charge_type": "payment",
- "order_ref": "TRY12",
- "order_status": "settled",
- "chargeable_id": "5ed2b95f72823c4f98419f20",
- "chargeable_type": "order",
- "customer_name": "5ed2b95f72823c4f98419f20",
- "customer_id": "5ed2b95f72823c4f98419f20",
- "processor": "stripe",
- "processor_type_id": "5ed2b95f72823c4f98419f20",
- "processor_type": "cash",
- "processor_id": "ch_12345",
- "amount": 9635,
- "currency": "gbp",
- "status": "paid",
- "failure_reason": "FRAUD",
- "cardholder_name": "Ms J Smith",
- "card_brand": "visa",
- "card_last4": "string",
- "revenue_date": "2022-10-20T00:00:00.000Z",
- "payout_date": "2022-10-20T00:00:00.000Z",
- "created_at": "2020-09-02T11:15:29+00:00",
- "completed_at": "2020-09-02T11:20:35+00:00"
}
], - "processor_totals": [
- {
- "processor": "stripe",
- "payment_count": 14,
- "refund_count": 2,
- "payment_total": 77000,
- "refund_total": 12000,
- "types": [
- {
- "type": "cash",
- "payment_count": 10,
- "refund_count": 1,
- "payment_total": 56000,
- "refund_total": 3000
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
completed_from | string <date-time> Filter to charges completed after this time. |
completed_to | string <date-time> Filter to charges completed before this time. |
revenue_date_from | string <date> Filter to charges with a revenue date after this date. |
revenue_date_to | string <date> Filter to charges with a revenue date before this date. |
payout_date_from | string <date> Filter date that the transaction's payout is recognised. |
payout_date_to | string <date> Filter date that the transaction's payout is recognised. |
site_id | string The ID of the site to filter on. |
status | string Filter on charges of this status. |
chargeable_type | string Enum: "order" "membership" Filter on charges of this type. |
charge_type | string Enum: "refund" "payment" Filter on refunds or payments. |
processor | string Enum: "manual" "stripe" "adyen" "saved_card" "pms_folio" "voucher" "external_voucher" Filter payments by processor. |
processor_type_id | string Filter payments by processor. |
order_status | any Enum: "in_progress" "new" "submitted" "settled" "cancelled" "no_show" Filter status of orders. |
boolean Whether to request an email of this report. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date | string <date-time> Filter to charges completed on this date. Defaults to today's date. |
site_id | string The ID of the site to filter on. |
status | string Filter on charges of this status. |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "5f4f7ed1e79390087033c495",
- "charge_type": "payment",
- "order_ref": "TRY12",
- "order_status": "settled",
- "chargeable_id": "5ed2b95f72823c4f98419f20",
- "chargeable_type": "order",
- "customer_name": "5ed2b95f72823c4f98419f20",
- "customer_id": "5ed2b95f72823c4f98419f20",
- "processor": "stripe",
- "processor_type_id": "5ed2b95f72823c4f98419f20",
- "processor_type": "cash",
- "processor_id": "ch_12345",
- "amount": 9635,
- "currency": "gbp",
- "status": "paid",
- "failure_reason": "FRAUD",
- "cardholder_name": "Ms J Smith",
- "card_brand": "visa",
- "card_last4": "string",
- "revenue_date": "2022-10-20T00:00:00.000Z",
- "payout_date": "2022-10-20T00:00:00.000Z",
- "created_at": "2020-09-02T11:15:29+00:00",
- "completed_at": "2020-09-02T11:20:35+00:00"
}
], - "processor_totals": [
- {
- "processor": "stripe",
- "payment_count": 14,
- "refund_count": 2,
- "payment_total": 77000,
- "refund_total": 12000,
- "types": [
- {
- "type": "cash",
- "payment_count": 10,
- "refund_count": 1,
- "payment_total": 56000,
- "refund_total": 3000
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
revenue_date_from required | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to required | string <date> Filter to baskets with a revenue date on or before this date. |
site_id required | string The ID of the site to filter on. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
revenue_date_from required | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to required | string <date> Filter to baskets with a revenue date on or before this date. |
site_id required | string The ID of the site to filter on. |
{- "data": {
- "cancelled": {
- "name": "string",
- "count": 0,
- "total_net": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_gross": {
- "amount": 1000,
- "currency": "GBP"
}
}, - "no_shows": {
- "name": "string",
- "count": 0,
- "total_net": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_gross": {
- "amount": 1000,
- "currency": "GBP"
}
}, - "total": {
- "name": "string",
- "count": 0,
- "total_net": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_gross": {
- "amount": 1000,
- "currency": "GBP"
}
}
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
item_date_from | string <date-time> Filter to baskets with items on or after this date. |
item_date_to | string <date-time> Filter to baskets with items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
labels | string Filter to baskets with the given labels. This can be a comma separated list of label IDs, or 'none' to filter on baskets that don't have any labels. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
item_date_from | string <date-time> Filter to baskets with items on or after this date. |
item_date_to | string <date-time> Filter to baskets with items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
labels | string Filter to baskets with the given labels. This can be a comma separated list of label IDs, or 'none' to filter on baskets that don't have any labels. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
sales_channel | Array of strings <uuid> Filter to items of the selected sales channel(s). |
submitted_at_from | string <date-time> Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Filter on orders with a submitted date before this date. |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": [
- {
- "sales_channel_id": "64186cf7b85d4db4e60bb412",
- "sales_channel_name": "VoluptasChannel",
- "num_baskets": 11,
- "gross_revenue": 200000,
- "net_revenue": 180000,
- "revenue_centres": [
- {
- "revenue_centre_key": "fb",
- "revenue_centre": "Food & Beverage",
- "net_revenue": 8000,
- "gross_revenue": 10000
}
]
}
], - "meta": {
- "sales_channels": [
- {
- "id": "64186cf7b85d4db4e60bb412",
- "name": "VoluptasChannel"
}
], - "revenue_centres": [
- {
- "key": "fb",
- "name": "Food & Beverage"
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
sales_channel | Array of strings <uuid> Filter to items of the selected sales channel(s). |
submitted_at_from | string <date-time> Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Filter on orders with a submitted date before this date. |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
labels | Array of strings <uuid> Filter to items of the selected order label(s). |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": [
- {
- "label_id": "64186cfbb85d4db4e60bb43b",
- "label_name": "Residential",
- "num_baskets": 21,
- "gross_revenue": 120000,
- "net_revenue": 100000,
- "revenue_centres": [
- {
- "revenue_centre_key": "fb",
- "revenue_centre": "Food & Beverage",
- "net_revenue": 8000,
- "gross_revenue": 10000
}
]
}
], - "meta": {
- "revenue_centres": [
- {
- "key": "fb",
- "name": "Food & Beverage"
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
labels | Array of strings <uuid> Filter to items of the selected order label(s). |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date required | string <date> Filter to baskets with a revenue date on or after this date. |
practitioner_id | string A comma-separated list of practitioner IDs to filter on. |
site_id | string The ID of the site to filter on. |
{- "data": [
- {
- "id": "604cd0ff0ecb372cc6135892",
- "type": "appointment",
- "start_time": "2021-03-15T08:30:00+00:00",
- "end_time": "2021-03-15T09:00:00+00:00",
- "event_name": "Arrival",
- "practitioner_name": null,
- "room_name": "Pool area",
- "customer_name": "Jane Bridges",
- "session_capacity": 4,
- "session_booked_customers": 2
}
]
}
revenue_date_from | string <date> Filter to basket items with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to basket items with a revenue date on or before this date. |
offering_type | string A comma-separated list of item types to filter on. |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
page | integer Example: page=1 The page to retrieve results from |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": [
- {
- "id": "5ed2b4ea39e32a634f12521a",
- "basket_id": "5ed2b4ea39e32a634f12521b",
- "order_ref": "TRY00",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "total_cost": 1000,
- "net_total": 800,
- "gross_revenue": 1000,
- "net_revenue": 800,
- "date": "2019-08-24",
- "revenues": [
- {
- "revenue_centre": "fb",
- "gross_revenue": 6000,
- "net_revenue": 4800,
- "paid": true
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
- "revenue_centres": [
- {
- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
]
}, - "links": {
}
}
revenue_date_from | string <date> Filter to baskets items with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets items with a revenue date on or before this date. |
offering_type | string A comma-separated list of item types to filter on. |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date_from | string <date-time> Filter to items on or after this date. |
date_to | string <date-time> Filter to items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
offering_type | string The type of item to filter on. |
offering_category | string Filter on items for offerings in these categories. |
order_label | string Filter on items in orders with these labels. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "offering_id": "5fae93d2432c562bc06cda5b",
- "offering_type": "appointment",
- "offering_name": "Beta Facial",
- "num_standalone_items": 1,
- "num_package_items": 0,
- "gross_revenue": 6000,
- "net_revenue": 5000
}
], - "totals": {
- "by_offering_type": [
- {
- "offering_type": "appointment",
- "num_standalone_items": 1,
- "num_package_items": 0,
- "gross_revenue": 6000,
- "net_revenue": 5000
}
]
}
}
date_from | string <date-time> Filter to items on or after this date. |
date_to | string <date-time> Filter to items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
offering_type | string The type of item to filter on. |
offering_category | string Filter on items for offerings in these categories. |
order_label | string Filter on items in orders with these labels. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
order_status | Array of strings Example: order_status=settled The status to filter orders on. |
order_label | Array of strings Example: order_label=settled The labels to filter orders on. |
offering_id | Array of strings Example: offering_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of offering ids to fetch orders for |
offering_type | Array of strings A comma-separated list of item types to filter on. |
revenue_date_from | string <date> Example: Filter on orders with a revenue date on or after this date. |
revenue_date_to | string <date> Example: Filter on orders with a revenue date on or before this date. |
date_from | string <date-time> Example: date_from=2019-01-15T12:00:00+01:00 Filter on items with a start time on or after this date. |
date_to | string <date-time> Example: date_to=2019-01-15T12:00:00+01:00 Filter on items with a start time on or before this date. |
order_submitted_at_from | string <date-time> Example: order_submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
order_submitted_at_to | string <date-time> Example: order_submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
sold_by_id | Array of strings A comma-separated list of user IDs to filter for items sold by that user. |
category_id | Array of strings A comma-separated list of category IDs to filter on. |
sort | string The field to order results by. |
sort_order | string Enum: "asc" "desc" The direction to order results by. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "607198a822115c0025455382",
- "basket_id": "60719885598a81459479b532",
- "order_ref": "TRY28",
- "revenue_date": "2021-04-10T00:00:00.000Z",
- "item_date": "2021-04-10T00:00:00.000Z",
- "created_at": "2021-04-10T13:23:04+01:00",
- "quantity": 2,
- "offering_id": "606efc105443413bf774d40f",
- "offering_type": "appointment",
- "offering_name": "Beta Facial",
- "total_cost": 6000,
- "net_total": 5000,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}
}
], - "totals": {
- "net_total": 5000,
- "total_unique_orders": 2,
- "total_items": 4
}, - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
order_status | Array of strings Example: order_status=settled The status to filter orders on. |
order_label | Array of strings Example: order_label=settled The labels to filter orders on. |
offering_id | Array of strings Example: offering_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of offering ids to fetch orders for |
offering_type | Array of strings A comma-separated list of item types to filter on. |
revenue_date_from | string <date> Example: Filter on orders with a revenue date on or after this date. |
revenue_date_to | string <date> Example: Filter on orders with a revenue date on or before this date. |
date_from | string <date-time> Example: date_from=2019-01-15T12:00:00+01:00 Filter on items with a start time on or after this date. |
date_to | string <date-time> Example: date_to=2019-01-15T12:00:00+01:00 Filter on items with a start time on or before this date. |
order_submitted_at_from | string <date-time> Example: order_submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
order_submitted_at_to | string <date-time> Example: order_submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
sold_by_id | Array of strings A comma-separated list of user IDs to filter for items sold by that user. |
category_id | Array of strings A comma-separated list of category IDs to filter on. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": [
- {
- "discount_type_id": "64186c9259a825a76308ac6d",
- "discount_type_name": "Custom amount",
- "discount_type_code": "AMT",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "is_deleted": false,
- "num_baskets": 3,
- "num_items": 5,
- "basket_discount_total": 3000,
- "item_discount_total": 500,
- "discount_total": 3500
}
]
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": [
- {
- "id": "00000000-0000-0000-0000-444444444444",
- "full_name": "Jane Jones",
- "num_orders": 12,
- "total_value_gross": 30000,
- "total_value_net": 25000,
- "average_value_gross": 2500,
- "average_value_net": 2083
}
]
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to fetch stats for |
{- "data": [
- {
- "date": "2021-01-15T00:00:00.000Z",
- "baskets": {
- "num_baskets": 20,
- "num_booked_appointments": 18,
- "num_booked_sessions": 15,
- "num_booked_packages": 12
}, - "sessions": {
- "num_sessions": 3,
- "total_session_capacity": 30,
- "total_session_booked_customers": 8
}, - "blocked_times": {
- "num_blocked_times": 3,
- "total_mins": 90
}, - "practitioners": {
- "bookable_mins": 1785,
- "appointment_mins": 350,
- "session_mins": 90,
- "blocked_mins": 90,
- "by_practitioner": [
- {
- "practitioner_id": "60e30b11b1daa372a670f533",
- "bookable_mins": 1785,
- "appointment_mins": 350,
- "session_mins": 90,
- "blocked_mins": 90
}
]
}, - "rooms": {
- "bookable_mins": 1785,
- "booked_mins": 400,
- "occupancy": 45,
- "by_room": [
- {
- "room_id": "60e30b0fb1daa372a670f518",
- "bookable_mins": 1785,
- "booked_mins": 400,
- "occupancy": 45
}
]
}
}
]
}
date_from | string <date> Example: Filter for stats on or after this date. |
date_to | string <date> Example: Filter for stats on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
date_from | string <date> Example: Filter for stats on or after this date. |
date_to | string <date> Example: Filter for stats on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: Filter for balance changes on or after this date. |
date_to | string <date> Example: Filter for balance changes on or before this date. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "636e2ed8bd7284dca7090073",
- "time": "2020-09-02T11:15:29+01:00",
- "event": "captured",
- "type": "fee",
- "payment_id": "636d63477392752e71039156",
- "refund_id": "636d63477392752e71039157",
- "payable_id": "636d632b4f4e46261e05efd2",
- "payable_type": "basket",
- "order_ref": "TRY00",
- "amount": -100,
- "balance": 1000
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
- "currency": "gbp",
- "opening_balance": 1000,
- "closing_balance": 1295
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: Filter for balance changes on or after this date. |
date_to | string <date> Example: Filter for balance changes on or before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: Filter for payouts with a payout date on or after this date. |
date_to | string <date> Example: Filter for payouts with a payout date on or before this date. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "63fdee61f978c409de07b001",
- "status": "processed",
- "payout_date": "2023-04-01T00:00:00.000Z",
- "processed_date": "2019-08-24T14:15:22Z",
- "num_charges": 12,
- "amount": 124500,
- "currency": "gbp"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
payoutId required | string The ID of the payout you want to retrieve. |
{- "data": {
- "id": "63fdee61f978c409de07b001",
- "status": "not_started",
- "processor": "adyen",
- "charges": [
- {
- "id": "63fdee61f978c409de07a882",
- "type": "payment",
- "description": "Correction for payout xyz",
- "gross_amount": 2500,
- "fee_amount": 150,
- "net_amount": 2350,
- "completed_at": "2023-04-01T13:45:15+01:00",
- "payable_id": "63fdee61f978c409de07a993",
- "payable_type": "basket",
- "order_ref": "TRY12"
}
], - "payment_totals": {
- "count": 12,
- "gross": 10000,
- "fees": 200,
- "net": 9800
}, - "refund_totals": {
- "count": 12,
- "gross": 10000,
- "fees": 200,
- "net": 9800
}, - "amount": 12099,
- "currency": "gbp",
- "payout_date": "2023-04-01T00:00:00.000Z"
}
}
payoutId required | string The ID of the payout you want to retrieve. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
revenue_date_from | string <date> Example: Filter for items with revenue on or after this date. |
revenue_date_to | string <date> Example: Filter for items with revenue on or before this date. |
item_date_from | string <date> Example: Filter for items on or after this date. |
item_date_to | string <date> Example: Filter for items on or before this date. |
{- "data": {
- "with_package_groups": [
- {
- "offering_id": "630751a513da732ca805e1d5",
- "offering_name": "Gray package",
- "offering_type": "package",
- "package_type_id": "630751a513da732ca805e1d7",
- "revenue_centre": "spa",
- "revenue_centre_name": "Spa Treatments",
- "category": "Massages",
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "totals": {
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
}
], - "without_package_groups": [
- {
- "offering_id": "630751a513da732ca805e1d5",
- "offering_name": "Gray package",
- "offering_type": "package",
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "totals": {
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
}
], - "by_revenue_centre": [
- {
- "revenue_centre": "spa",
- "revenue_centre_name": "Spa Treatments",
- "num_items": 95,
- "gross_revenue": 2000,
- "net_revenue": 1666,
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
]
}
]
}, - "totals": {
- "with_package_groups": {
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}, - "without_package_groups": {
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}, - "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
revenue_date_from | string <date> Example: Filter for items with revenue on or after this date. |
revenue_date_to | string <date> Example: Filter for items with revenue on or before this date. |
item_date_from | string <date> Example: Filter for items on or after this date. |
item_date_to | string <date> Example: Filter for items on or before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
page | integer Example: page=1 The page to retrieve results from |
revenue_date_from | string <date> Example: Filter for payments for orders with revenue on or after this date. |
revenue_date_to | string <date> Example: Filter for payments for orders with revenue on or before this date. |
completed_from | string <date> Example: Filter for payments paid on or after this date. |
completed_to | string <date> Example: Filter for payments paid on or before this date. |
created_from | string <date> Example: Filter for payments created on or after this date. |
created_to | string <date> Example: Filter for payments created on or before this date. |
status | string Filter for payments with this status. |
created_by | Array of strings <uuid> Example: created_by=pending A comma-separated list of user IDs to filter for links where the payment was created by the user. |
sort | string The field to order results by. |
sort_order | string Enum: "asc" "desc" The direction to order results by. |
{- "data": [
- {
- "id": "64ff5e02c60a23ae20059745",
- "status": "pending",
- "order_ref": "TRY00",
- "basket_id": "64feb6c33e90e83a45035902",
- "customer_name": "Dan Johnson III",
- "created_at": "2023-09-22T20:12:35+01:00",
- "revenue_date": "2023-09-22T00:00:00.000Z",
- "paid_at": "2023-09-22T20:13:05+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
{- "data": [
- {
- "key": "recently_created",
- "name": "Recently created",
- "count": 34,
- "filters": [
- {
- "key": "status",
- "type": "date",
- "date_value": "2023-11-22T20:13:05+00:00",
- "string_value": "processing"
}
]
}
]
}
brand_id required | string The brand ID to filter memberships by |
created_at_from | string <datetime> Filters the report to only show memberships created after the given date |
created_at_to | string <datetime> Filters the report to only show memberships created before the given date |
site_id | string The site ID to filter memberships by |
{- "data": [
- {
- "membership_type_id": "000000-000000-000000-000000",
- "membership_type_name": "Gold tier",
- "rates": [
- {
- "membership_rate_id": "000000-000000-000000-000000",
- "membership_rate_name": "Standard rate",
- "total_members": 12,
- "total_active_members": 9,
- "total_needs_dd_members": 2,
- "total_inactive_members": 1,
- "total_active_mrr": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_missing_mrr": {
- "amount": 1000,
- "currency": "GBP"
}
}
]
}
]
}
date required | string <date> The date in Y-m-d format. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
category_ids | Array of strings <uuid> Example: category_ids=10000000-0000-0000-0000-000000000000 The category id |
supplier_ids | Array of strings <uuid> Example: supplier_ids=10000000-0000-0000-0000-000000000000 The supplier id |
brand_ids | Array of strings <uuid> Example: brand_ids=10000000-0000-0000-0000-000000000000 The brand id |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Face moisturiser",
- "stock_level": 50,
- "stock_value": 50,
- "average_cost": 50
}
], - "meta": {
- "total_stock_value": 50,
- "currency": "gbp"
}
}
date required | string <date> The date in Y-m-d format. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
category_ids | Array of strings <uuid> Example: category_ids=10000000-0000-0000-0000-000000000000 The category id |
supplier_ids | Array of strings <uuid> Example: supplier_ids=10000000-0000-0000-0000-000000000000 The supplier id |
brand_ids | Array of strings <uuid> Example: brand_ids=10000000-0000-0000-0000-000000000000 The brand id |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Uploads an image and returns a Media object
image | string <binary> |
file | string <binary> |
organisation_id | string The ID of the organisation which this media belongs to |
collection | string Enum: "library" "imports" The collection which this media should be categorised under |
{- "data": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}
}
Retrieves details about the given Media object
mediaId required | string The media ID |
{- "data": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}
}
A Customer
represents a customer within a brand. When a customer signs up, their account is attached to the brand which the site they signed up to belongs to.
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
query | string Example: query=@try.be Filters customers with a similar name, email or phone number to the given value |
string <email> Example: email=hello@example.com The email address to filter against | |
organisation_id | string <uuid> Example: organisation_id=000000-000000-000000-000000 The ID of the organisation to filter against |
brand_id | string <uuid> Example: brand_id=000000-000000-000000-000000 The ID of the brand to filter against |
site_id | string <uuid> Example: site_id=000000-000000-000000-000000 The ID of the site to filter against |
membership_number | string Example: membership_number=1234567890 The membership number to filter against |
name | string Example: name=Jane The customer's name to filter against |
phone | string Example: phone=1234567890 The phone number to filter against |
membership | string The state of membership to filter against. Set to "none" to filter customers that are not a member of any type, "any" to filter customers that are a member of any type, and "needs_dd_mandate" for memberships awaiting a direct debit mandate. |
membership_created_at_from | string Filters customers which have a membership that was created on or after the given date |
membership_created_at_to | string Filters customers which have a membership that was created on or before the given date |
membership_type_id | string Filters customers which have a membership of the given membership type ID |
membership_rate_id | string Filters customers which have a membership of the given membership rate ID |
marketing_opt_in | string Filters customers who are opted into the given marketing preference ID. Alternatively, pass "any" to filter customers opted into any marketing preference, or "none" to filter customers not opted into any preferences. |
label_ids | Array of strings <uuid> Filters customers which have the given label ids. Separate multiple label ids with a comma. |
id | string Filters to just the customers with the given IDs. Separate multiple IDs with a comma. |
created_at_from | string Filters customers that were created on or after the given date. |
created_at_to | string Filters customers that were created on or before the given date. |
updated_at_from | string Filters customers that were updated on or after the given date. |
updated_at_to | string Filters customers that were updated on or before the given date. |
{- "data": [
- {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
The new customers details
site_id | string The site ID which this customer belongs to |
first_name | string The customer's first name |
last_name | string The customer's last name |
phone | string The customer's phone number |
dob | string <date> The customer's date of birth |
string <email> The customer's email | |
password | string <password> The customer's password |
marketing_preference_ids | Array of strings An array of marketing preferences to opt the customer in to |
external_ref | string An external reference for this customer. |
guestline_ref | string The guestline reference for this customer. |
preferred_locale | string The preferred locale of the customer |
{- "site_id": "000000-000000-000000-000000",
- "first_name": "Dan",
- "last_name": "Johnson",
- "phone": "+447900000000",
- "dob": "1995-01-13T00:00:00.000Z",
- "email": "dan@try.be",
- "password": "password",
- "marketing_preference_ids": [
- "603e4d08b59fd07b83309fb9"
], - "external_ref": "string",
- "guestline_ref": "string",
- "preferred_locale": "en"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
Retrieves a report of customers in CSV format. The report will be generated asyncronously.
query | string Example: query=@try.be Filters customers with a similar name, email or phone number to the given value |
string <email> Example: email=hello@example.com The email address to filter against | |
organisation_id | string <uuid> Example: organisation_id=000000-000000-000000-000000 The ID of the organisation to filter against |
brand_id | string <uuid> Example: brand_id=000000-000000-000000-000000 The ID of the brand to filter against |
membership_number | string Example: membership_number=1234567890 The membership number to filter against |
name | string Example: name=Jane The customer's name to filter against |
phone | string Example: phone=1234567890 The phone number to filter against |
membership | string The state of membership to filter against. Set to "none" to filter customers that are not a member of any type, "any" to filter customers that are a member of any type, and "needs_dd_mandate" for memberships awaiting a direct debit mandate. |
membership_created_at_from | string Filters customers which have a membership that was created on or after the given date |
membership_created_at_to | string Filters customers which have a membership that was created on or before the given date |
membership_type_id | string Filters customers which have a membership of the given membership type ID |
membership_rate_id | string Filters customers which have a membership of the given membership rate ID |
marketing_opt_in | string Filters customers who are opted into the given marketing preference ID. Alternatively, pass "any" to filter customers opted into any marketing preference, or "none" to filter customers not opted into any preferences. |
label_ids | string Filters customers who have the given label attached. To filter on multiple labels, seperate IDs with a comma. |
created_at_from | string Filters customers that were created on or after the given date. |
created_at_to | string Filters customers that were created on or before the given date. |
updated_at_from | string Filters customers that were updated on or after the given date. |
updated_at_to | string Filters customers that were updated on or before the given date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
code required | string The barcode to search for. This could either be the ID of the customer or an associated barcode. |
site_id required | string The site ID to filter memberships on |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
Updates the specified customer with the values provided. Existing values that are not provided will remain unchanged.
first_name | string The customer's first name |
last_name | string The customer's last name |
string <email> The customer's email address | |
phone | string The customer's phone number in E.164 format |
dob | string <date> The customer's date of birth |
password | string <password> The customer's password |
external_ref | string An external reference for this customer. |
preferred_locale | string The preferred locale of the customer |
{- "first_name": "Dan",
- "last_name": "Johnson",
- "email": "user@example.com",
- "phone": "+447900000000",
- "dob": "1995-01-13T00:00:00.000Z",
- "password": "password",
- "external_ref": "string",
- "preferred_locale": "en"
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": [
- {
- "id": "string",
- "barcode": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}
Associate the given barcode with the given client.
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
object |
{- "data": {
- "barcode": "string"
}
}
{- "data": {
- "id": "string",
- "barcode": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
}
This endpoint triggers the billing cycle for the given customer. If the customer has any memberships, they will be charged, and any due credits will be issued.
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
customerId required | string The ID of the customer |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "name": "Home",
- "address_line_1": "123 Fake Street",
- "address_line_2": "Some Building",
- "city": "London",
- "county": "London",
- "country": "United Kingdom",
- "postcode": "E14 1AA"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
customerId required | string The ID of the customer |
name required | string The name of the address |
address_line_1 required | string The first address line |
address_line_2 | string Nullable The second address line |
city | string Nullable |
county | string Nullable |
country | string Nullable |
postcode | string Nullable |
{- "name": "Home",
- "address_line_1": "123 Fake Street",
- "address_line_2": "Some building",
- "city": "London",
- "county": "London",
- "country": "United Kingdom",
- "postcode": "E14 1AA"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "name": "Home",
- "address_line_1": "123 Fake Street",
- "address_line_2": "Some Building",
- "city": "London",
- "county": "London",
- "country": "United Kingdom",
- "postcode": "E14 1AA"
}
}
customerId required | string The ID of the customer |
addressId required | string The ID of the address |
{- "data": {
- "id": "000000-000000-000000-000000",
- "name": "Home",
- "address_line_1": "123 Fake Street",
- "address_line_2": "Some Building",
- "city": "London",
- "county": "London",
- "country": "United Kingdom",
- "postcode": "E14 1AA"
}
}
customerId required | string The ID of the customer |
addressId required | string The ID of the address to update |
name | string The name of the address |
address_line_1 | string The first address line |
address_line_2 | string Nullable The second address line |
city | string Nullable |
county | string Nullable |
country | string Nullable |
postcode | string Nullable |
{- "name": "Home",
- "address_line_1": "123 Fake Street",
- "address_line_2": "Some building",
- "city": "London",
- "county": "London",
- "country": "United Kingdom",
- "postcode": "E14 1AA"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "name": "Home",
- "address_line_1": "123 Fake Street",
- "address_line_2": "Some Building",
- "city": "London",
- "county": "London",
- "country": "United Kingdom",
- "postcode": "E14 1AA"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy.",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
contraindication_id required | string <uuid> The ID of the contraindication to attach/detach |
{- "contraindication_id": "ab707ffd-a3fa-4b94-a229-2ce327a7ce9d"
}
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy.",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
contraindication_id required | string <uuid> The ID of the contraindication to attach/detach |
{- "contraindication_id": "ab707ffd-a3fa-4b94-a229-2ce327a7ce9d"
}
{- "message": "The requested resource could not be found 602e2436fca8b45baa499643"
}
Returns a list of the labels attached to this customer
customerId required | string Example: 000000-000000-000000-000000 The ID of the customer you want to update |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
]
}
Attach existing labels to the given customer
customerId required | string Example: 000000-000000-000000-000000 The ID of the customer you want to update |
labels | Array of strings <uuid> |
{- "labels": [
- "000000-000000-000000-000000"
]
}
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
]
}
Detatch existing labels to the given customer
customerId required | string Example: 000000-000000-000000-000000 The ID of the customer you want to update |
labels | Array of strings <uuid> |
{- "labels": [
- "000000-000000-000000-000000"
]
}
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
]
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "note": "string",
- "author": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
note required | string The contents of the note |
{- "note": "string"
}
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "note": "string",
- "author": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
noteId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the note |
note | string The contents of the note |
{- "note": "string"
}
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "note": "string",
- "author": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
Returns an array of all the marketing preferences belonging to a customer
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "5dcb47800000000000000110",
- "opted_in": true,
- "opted_in_at": "2020-02-24T12:00:00+00:00",
- "opted_out_at": "2020-02-24T12:00:00+00:00",
- "is_archived": "string"
}
]
}
Opt a customer in to a marketing preference
customerId required | string Example: 000000-000000-000000-000000 The ID of the customer you want to update |
marketingPreferenceId required | string Example: 000000-000000-000000-000000 The ID of the marketing preference you want to update |
{- "data": {
- "id": "5dcb47800000000000000110",
- "opted_in": true,
- "opted_in_at": "2020-02-24T12:00:00+00:00",
- "opted_out_at": "2020-02-24T12:00:00+00:00",
- "is_archived": "string"
}
}
Opt a customer out of a marketing preference
customerId required | string Example: 000000-000000-000000-000000 The ID of the customer you want to update |
marketingPreferenceId required | string Example: 000000-000000-000000-000000 The ID of the marketing preference you want to update |
A public endpoint for listing marketing preferences for the given organisation.
organisation_id | string <uuid> The organisation ID to get marketing preferences for |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "text": "Send me exclusive offers and promotions by email"
}
]
}
List all the marketing preferences you're authorised to see.
organisation_id | string Filters marketing preferences that are associated with the given organisation ID |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "text": "I agree to the terms and conditions",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
]
}
text | string The text of the marketing preference |
organisation_id | string The ID of the organisation this marketing preference should be linked to |
{- "text": "I agree to the terms and conditions",
- "organisation_id": "000000-000000-000000-000000"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "text": "I agree to the terms and conditions",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
marketingPreferenceId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the marketing preference |
{- "data": {
- "id": "000000-000000-000000-000000",
- "text": "I agree to the terms and conditions",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
marketingPreferenceId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the marketing preference |
Details to update the marketing preference with
text | string The text of the marketing preference |
{- "text": "I agree to the terms and conditions"
}
{- "id": "000000-000000-000000-000000",
- "text": "I agree to the terms and conditions",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
marketingPreferenceId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the marketing preference |
{- "message": "The requested resource could not be found 602e2436fca8b45baa499643"
}
A collection of endpoints for managing labels.
Labels can be attached to a customer for metadata.
Retrieves a list of all the labels set up against the authenticated user's organisation
archived | boolean When true, only archived labels are returned |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
Creates a new label
value required | string <= 20 characters The name of the label |
colour required | string <= 6 characters A hex colour code excluding the preceding # which this label will be rendered as. |
organisation_id | string <uuid> The organisation which this label belongs to |
{- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Retrieves details about the given label
labelId required | string <uuid> The ID of the label |
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Updates the given label
labelId required | string <uuid> The ID of the label |
value | string <= 20 characters The name of the label |
colour | string <= 6 characters A hex colour code excluding the preceding # which this label will be rendered as. |
{- "value": "VIP",
- "colour": "ff6634"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
Restores a soft-deleted label
labelId required | string <uuid> The ID of the label |
{- "data": {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634",
- "organisation_id": "000000-000000-000000-000000",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
A MembershipType
is used to distinguish different types of memberships. MembershipType
belongs to a brand, and can only be linked to Memberships
that belong to the same brand.
A MembershipType
can be public or private. When public, the type will appear on the customer-facing signup flow. When private, it can only be seen on the Trybe application.
List all the membership types you're authorised to see.
brand_id | string Filters membership types that are associated with the given brand ID |
archived | boolean When true, only archived membership types are returned |
public | boolean When true, only public membership types are returned |
auto_payments | boolean When true, only membership types that support automatic payments are returned |
terms | boolean When true, only membership types that have terms and conditions are returned |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
name | string Name of the membership type |
description | string The description of the membership type |
terms | string Terms and conditions of the membership type |
brand_id | string The ID of the brand which this type belongs to |
offline_payments | boolean Whether this MembershipType takes "offline" payments. If true, the monthly fee won't automatically be collected using Stripe, which can be useful if a different provider is used for collecting direct debits. You'll need to manually manage the membership status. |
disable_confirmation_email | boolean Whether to disable sending the confirmation email when a membership is confirmed. |
default_duration | string The default duration a membership of this type should be valid for. If not specified, the default duration is one calendar year. The duration should be specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
minimum_start_date | string <date> The minimum start date for a membership of this type. |
private | boolean Whether the type is a private type |
min_members | integer The minimum number of members required to create a membership of this type |
max_members | integer The maximum number of members allowed to create a membership of this type |
object When creating a membership type, the first rate will be created too. Here, you can specify the currency, amount and billing frequency to use for the first rate. |
{- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "default_duration": "P3M",
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "private": true,
- "min_members": 2,
- "max_members": 4,
- "initial_rate": {
- "amount": 1000,
- "currency": "GBP",
- "billing_frequency": "P1M",
- "default_duration": "P1Y",
- "processors": [
- "string"
]
}
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}
}
membershipTypeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership type |
{- "data": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}
}
membershipTypeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership type |
Details to update the membership type with
name | string Name of the membership type |
description | string The description of the membership type |
terms | string Terms and conditions of the membership type |
private | boolean Whether the type is a private type |
offline_payments | boolean Whether this MembershipType takes "offline" payments. If true, the monthly fee won't automatically be collected using Stripe, which can be useful if a different provider is used for collecting direct debits. You'll need to manually manage the membership status. |
disable_confirmation_email | boolean Whether to disable sending the confirmation email when a membership is confirmed. |
minimum_start_date | string <date> The minimum start date for a membership of this type. |
default_duration | string The default duration a membership of this type should be valid for. If not specified, the default duration is one calendar year. The duration should be specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
min_members | integer The minimum number of members required to create a membership of this type |
max_members | integer The maximum number of members allowed to create a membership of this type |
{- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "private": true,
- "offline_payments": true,
- "disable_confirmation_email": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "default_duration": "P3M",
- "min_members": 2,
- "max_members": 4
}
{- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}
membershipTypeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership type |
{- "message": "The requested resource could not be found 602e2436fca8b45baa499643"
}
membershipTypeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership type |
{- "data": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}
}
List the membership types you're authorised to see in order
brand_id | string Filters membership types that are associated with the given brand ID |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier"
}
]
}
Update the order of the membership types you're authorised to see
Pass an object containing an array of membership type IDs
membership_type_ids required | Array of strings |
{- "membership_type_ids": [
- "string"
]
}
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier"
}
]
}
MembershipRates
define how a customer is billed for their membership. It contains the price the customer is charged for initially joining, the reoccurring fee, and the frequency in which the billing happens.
A MembershipRate
must belong to a MembershipType.
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
membership_type_id | string The membership type ID to filter against |
archived | boolean When true, only archived membership types are returned |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
name required | string The name of the membership rate |
membership_type_id required | string The ID of the membership type which this rate belongs to |
required | object (Money) |
object (Money) | |
private | boolean Whether this rate is private |
billing_frequency required | string The frequency that this membership is billed. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
processors | Array of strings |
default_duration | string Nullable The default duration of the membership. This is used when a customer signs themselves up for a membership. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations When null, by default the membership won't end. |
{- "name": "Standard rate",
- "membership_type_id": "000000-000000-000000-000000",
- "price": {
- "amount": 1000,
- "currency": "GBP"
}, - "joining_fee": {
- "amount": 1000,
- "currency": "GBP"
}, - "private": true,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
rateId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership rate |
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
rateId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership rate |
Details to update the rate with
name | string The name of the membership rate |
object (Money) | |
object (Money) | |
private | boolean Whether this rate is private |
billing_frequency | string The frequency that this membership is billed. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
default_duration | string The default duration of the membership. This is used when a customer signs themselves up for a membership. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations |
{- "name": "Standard rate",
- "price": {
- "amount": 1000,
- "currency": "GBP"
}, - "joining_fee": {
- "amount": 1000,
- "currency": "GBP"
}, - "private": true,
- "billing_frequency": "P1M",
- "default_duration": "P1Y"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
membershipRateId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership rate |
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
}
rateId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership rate |
start_date | string <date> Example: The date the membership will start |
end_date | string <date> Example: The date the membership will end |
source | string Example: source=app The source of the membership |
Accept-Language | string Example: en The language to use for the response. |
{- "data": {
- "total_price": {
- "amount": 1000,
- "currency": "GBP"
}, - "breakdowns": {
- "joining_fee": {
- "amount": 1000,
- "currency": "GBP"
}, - "pro_rata_fee": {
- "amount": 1000,
- "currency": "GBP"
}, - "monthly_fee": {
- "amount": 1000,
- "currency": "GBP"
}
}, - "summary_lines": [
- "Your first Direct Debit payment will be taken on **23rd June 2023** for **£30.00**."
]
}
}
A MembershipCreditRule
defines how a Credit should be issued for a Membership.
A Membership
defines a membership against a Customer
. A Membership
will always have a MembershipRate
and a MembershipType
, and a start and end date.
When a Customer
has a Membership
, they will be charged monthly until the end date using the provided payment method.
This endpoint is used to create the Stripe Checkout session for collecting a joining fee
as well as any pro-rata fees. A stripe_session_id
is returned which can be passed into
the Stripe.js SDK to redirect the user to the checkout.
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "status": "needs_dd_mandate",
- "account_id": "acct_1Jmwv72UMaxwwwup",
- "url": "string",
- "stripe_session_id": "si_1234567890",
- "rate_price": {
- "amount": 1000,
- "currency": "GBP"
}, - "rate_frequency": "P1M"
}
This endpoint is used to create the Stripe Checkout session for collecting bank details
for a Direct Debit mandate. A stripe_session_id
is returned which can be passed into
the Stripe.js SDK to redirect the user to the checkout.
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "status": "needs_dd_mandate",
- "account_id": "acct_1Jmwv72UMaxwwwup",
- "url": "string",
- "stripe_session_id": "si_1234567890",
- "rate_price": {
- "amount": 1000,
- "currency": "GBP"
}, - "rate_frequency": "P1M"
}
customer_id | string The customer ID to filter against |
site_id | string The site ID to filter against |
status | Array of strings The status of the membership |
membership_type_id | string <uuid> Deprecated |
membership_type_ids | Array of strings <uuid> The membership type IDs to filter against. Separate multiple IDs with a comma. |
membership_rate_id | string <uuid> The membership rate ID |
created_at_from | string <date> Filter memberships created no earlier than the given date |
created_at_to | string <date> Filter memberships created no later than the given date |
next_billing_date_from | string <date> Filter memberships due for billing no earlier than the given date |
next_billing_date_to | string <date> Filter memberships due for billing no later than the given date |
end_date_from | string <date> Filter memberships that end no earlier than the given date |
end_date_to | string <date> Filter memberships that end no later than the given date |
attention_reason | string The reason why this membership needs attention |
manual_payments | boolean Whether to only show membership types that have auto-payments disabled |
billing_frequency | Array of strings The membership billing frequency to filter against |
rate_id | Array of strings The membership rate to filter against |
membership_number | string The membership number to filter against |
external_ref | string Example: external_ref=1234567890 The external reference to filter against |
organisation_id | string <uuid> Example: organisation_id=00000000-0000-0000-0000-000000000000 The ID of the organisation |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
X-Trybe-On-Behalf-Of | string <uuid> The user ID of the user who is creating the membership |
The details of the membership to create. A Membership
always requires a Customer
, but
for convenience, you can pass customer_data
to create the customer inline and attach
the membership to the newly created customer.
Unless you're authorised to do so, you'll only be permitted to create a membership for a
private MembershipType
and/or a non-default MembershipRate
when you provide a valid
MembershipSignupToken
ID for the type and rate in question.
The status of newly created memberships is always 'reserved'. You'll need to make a request to the memberships/:membershipId/confirm endpoint to update the status - this should be done once the pro-rata or joining fee payment has been paid.
customer_id | string The ID of the customer which this membership relates to |
site_id | string The site ID which this membership belongs to |
object (CreateCustomerRequest) You must provide either an email address or both a first and last name. | |
membership_type_id required | string The membership type ID. This must belong to the same brand as the given customer. |
membership_rate_id required | string The membership rate ID. This must belong to the same type as provided. |
intake_form_required | boolean Whether an intake form is required for this membership |
basket_id | string The basket ID which was used to purchase this membership, if applicable. |
source | string Enum: "app" "self_signup" The source of where this membership was created. |
external_ref | string An external reference for this membership. |
start_date required | string <date> The date which the membership should start from. |
end_date required | string <date> Nullable The date which the membership should end. |
{- "customer_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "customer_data": {
- "site_id": "000000-000000-000000-000000",
- "first_name": "Dan",
- "last_name": "Johnson",
- "phone": "+447900000000",
- "dob": "1995-01-13T00:00:00.000Z",
- "email": "dan@try.be",
- "password": "password",
- "marketing_preference_ids": [
- "603e4d08b59fd07b83309fb9"
], - "external_ref": "string",
- "guestline_ref": "string",
- "preferred_locale": "en"
}, - "membership_type_id": "000000-000000-000000-000000",
- "membership_rate_id": "000000-000000-000000-000000",
- "intake_form_required": true,
- "basket_id": "60c0c01d92ec44e252235966",
- "source": "app",
- "external_ref": "string",
- "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2021-01-01T00:00:00.000Z"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
Retrieves a report of memberships in CSV format. The report will be generated asyncronously.
customer_id | string The customer ID to filter against |
site_id | string The site ID to filter against |
status | Array of strings The status of the membership |
membership_type_id | string <uuid> Deprecated |
membership_type_ids | Array of strings <uuid> The membership type IDs to filter against. Separate multiple IDs with a comma. |
membership_rate_id | string <uuid> The membership rate ID |
created_at_from | string <date> Filter memberships created no earlier than the given date |
created_at_to | string <date> Filter memberships created no later than the given date |
next_billing_date_from | string <date> Filter memberships due for billing no earlier than the given date |
next_billing_date_to | string <date> Filter memberships due for billing no later than the given date |
end_date_from | string <date> Filter memberships that end no earlier than the given date |
end_date_to | string <date> Filter memberships that end no later than the given date |
attention_reason | string The reason why this membership needs attention |
manual_payments | boolean Whether to only show membership types that have auto-payments disabled |
membership_number | string The membership number to filter against |
external_ref | string Example: external_ref=1234567890 The external reference to filter against |
billing_frequency | Array of strings The membership billing frequency to filter against |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
membership_type_id | string The membership type ID. This must belong to the same brand as the given customer. |
membership_rate_id | string The membership rate ID. This must belong to the same type as provided. |
start_date | string <date> The date which the membership should start from. |
end_date | string <date> Nullable The date which the membership should end. |
external_ref | string An external reference for this membership. |
{- "membership_type_id": "000000-000000-000000-000000",
- "membership_rate_id": "000000-000000-000000-000000",
- "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2021-01-01T00:00:00.000Z",
- "external_ref": "string"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "data": [
- {
- "membership_number": "string",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "is_lead": true
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
customer_id required | string <uuid> The ID of the customer to add to the membership |
{- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e"
}
{- "data": {
- "membership_number": "string",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "is_lead": true
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
customerId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the customer |
{- "message": "The requested resource could not be found 602e2436fca8b45baa499643"
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
When a membership is created through the self-signup flow, it first goes
into the "reserved" stage. This means the client hasn't completed their
signup yet, and the basket needs to be completed. Calling this endpoint
sets the status to needs_attention
if a mandate is required, or
active
if not.
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
X-Trybe-On-Behalf-Of | string <uuid> The user ID of the user who is confirming the membership |
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
Records a manual payment against the membership
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
processor_type_id required | string The ID of the custom payment type |
{- "processor_type_id": "string"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
}
membershipId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership |
{- "data": {
- "date": "2019-08-24",
- "amount": 0,
- "currency": "GBP"
}
}
membershipNumber required | string The membership number of the member to look up. |
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
When a customer is charged for their membership, a MembershipCharge
object is created which relates to a Stripe PaymentIntent.
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
site_id | string <uuid> Filters MembershipCharges by the site ID |
membership_id | string Filters MembershipCharges by the membership ID |
customer_id | string Filters MembershipCharges by the customer ID |
payment_intent_id | string Filters MembershipCharges by the payment intent ID |
status | string Example: status=processing Filters MembershipCharges by the status |
date_from | string <date> Example: Filters MembershipCharges by the date from |
date_to | string <date> Example: Filters MembershipCharges by the date to |
processor | string Example: processor=stripe Filters MembershipCharges by the processor |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
site_id | string <uuid> Filters MembershipCharges by the site ID |
membership_id | string Filters MembershipCharges by the membership ID |
customer_id | string Filters MembershipCharges by the customer ID |
payment_intent_id | string Filters MembershipCharges by the payment intent ID |
status | string Example: status=processing Filters MembershipCharges by the status |
date_from | string <date> Example: Filters MembershipCharges by the date from |
date_to | string <date> Example: Filters MembershipCharges by the date to |
processor | string Example: processor=stripe Filters MembershipCharges by the processor |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
membershipChargeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
}
membershipChargeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
}
membershipChargeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
customer_action_required | boolean Example: customer_action_required=true Whether the customer needs to take action |
reason | string The reason for the failure |
{- "reason": "The payment was declined"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
}
membershipChargeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
amount required | integer The amount to refund from this charge as an integer of the smallest unit |
note | string A custom description of why this refund was made |
{- "amount": 1000,
- "note": "Customer forgot to cancel last week"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
}
membershipChargeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
membershipChargeRefundId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
}
membershipChargeId required | string <uuid> Example: 000000-000000-000000-000000 The ID of the membership charge |
receipt_path required | string A path pointing to a PDF tax receipt of this charge |
{- "receipt_path": "string"
}
{- "data": {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
}
A customer can have one or more payment methods attached to their account.
These can be used for reoccurring membership billing or shop checkouts
customer_id | string Filters payment methods that are associated with the given customer |
type | string Filters payment methods that are of this type |
processor | string Filters payment methods that are for use with this processor |
status | string Filters payment methods that have this status |
membership_payment_method | string Filters payment methods that can be used for a membership |
per_page | integer Example: per_page=15 The number of results to return per page |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "payment_method_id": "pm_3K6a0RGysTOePye00nkob5Pi",
- "name": "My debit card",
- "type": "card",
- "status": "revoked",
- "cardholder_name": "Jane Doe",
- "card_brand": "amex",
- "card_country": "gb",
- "card_funding": "credit",
- "card_expiry": "08/22",
- "last_4": 1234,
- "processor": "stripe",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "revoked_at": "2021-01-01T00:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
Returns an array of completed baskets for the authenticated customer along with item details.
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5ed2b95f72823c4f98419f18",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "order_ref": "TRY00",
- "status": "complete",
- "stage": "not_arrived",
- "sales_channel": {
- "id": "5dcb47800000000000000000",
- "organisation_id": "00000000-0000-0000-0000-000000000000",
- "name": "Direct"
}, - "customer_id": "00000000-0000-0000-0000-000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "janedoe@example.com",
- "phone": "+447727123456",
- "labels": [
- {
- "id": "5dcb47800000000000000010",
- "name": "Blue Label",
- "color": "#f55656",
- "order_id": "5ed2b95f72823c4f98419f20"
}
], - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "visit": {
- "id": "string",
- "visit_ref": "string",
- "visit_type": {
- "id": "string",
- "name": "string"
}, - "status": "incomplete",
- "arrival_date": "2019-08-24T14:15:22Z",
- "departure_date": "2019-08-24T14:15:22Z",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "should_send_reminder_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "booking_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "status": "pending_confirmation",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Jane Doe"
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": "5dcb47800000000000000000",
- "name": "string"
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": "5dcb47800000000000000000",
- "name": "Hot Rocks 1"
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}, - "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "booking_reserved_until": "2019-01-15T11:00:00+01:00",
- "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "date": "2020-02-24T00:00:00+01:00",
- "start_time": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "is_modifiable": true
}
], - "package_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "appointment",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "total_cost": 595,
- "net_total": 506,
- "price": 595,
- "base_price": 595,
- "discount_amount": 595,
- "date": "2020-02-24T00:00:00+01:00",
- "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "pending_confirmation",
- "package_items": [
- {
- "id": "5f204853badb610f2167d67c",
- "choice_id": "5f184bb0b6ecff2e8157bf26",
- "option_id": "5f184bb0b6ecff2e8157bf27",
- "shared_basket_item_id": "664771b1482d020dc00495b8",
- "offering_type": "appointment",
- "offering_id": "5e9823c217483703da222222",
- "offering_name": "Hot Rocking Relax",
- "time": "2020-07-30T13:00:00+01:00",
- "duration": 60,
- "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "item_configuration": { },
- "reserved_until": "2020-07-29T15:27:45+01:00",
- "booking_summary": {
- "id": "5ed2b95f72823c4f98419f19",
- "start_time": "2019-01-15T11:00:00+01:00",
- "end_time": "2019-01-15T12:00:00+01:00",
- "duration": 60,
- "practitioner_ids": [
- "5dcb47800000000000000010"
], - "practitioners": [
- {
- "id": null,
- "name": null
}
], - "room_id": "5dcb47800000000000000010",
- "room": {
- "id": "5dcb47800000000000000000",
- "name": "string"
}, - "area_ids": [
- "5dcb47800000000000000010"
], - "areas": [
- {
- "id": null,
- "name": null
}
], - "equipment_ids": [
- "5dcb47800000000000000010"
], - "equipment": [
- {
- "id": null,
- "name": null
}
], - "practitioner_was_requested": true,
- "room_was_requested": true,
- "session_id": "5dcb47800000000000000022",
- "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "status": "none",
- "offering": {
- "id": null,
- "type": "appointment",
- "name": "30 Minute Massage"
}
}
}
], - "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "is_modifiable": true,
- "option_budgets": [
- {
- "choice_id": "5f204853badb610f2167d67d",
- "budget": 10000,
- "spent": 7500,
- "remaining": 2500
}
]
}
], - "booking_items_start_date": "2019-01-15T00:00:00.000Z",
- "booking_items_end_date": "2019-01-15T00:00:00.000Z",
- "booking_items_span_multiple_days": false,
- "purchase_items": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "item_type": "product",
- "type_id": "5ed2b4ea39e32a634f12521f",
- "type_name": "60 minute massage",
- "type_product_code": "MAS123",
- "quantity": 595,
- "unit_price": 595,
- "base_price": 595,
- "total_cost": 595,
- "net_total": 506,
- "status": "pending_confirmation",
- "guest": {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}, - "guests": [
- {
- "id": "5e932c0901d210625e3a8766",
- "name": "Jane Smith",
- "first_name": "Jane",
- "last_name": "Smith",
- "is_lead_booker": true,
- "intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_form_complete": true,
- "intake_form_submitted_at": "2020-02-24T12:00:00+00:00"
}
], - "discount_amount": 595,
- "discounts": [
- {
- "id": "60254887201f662231792222",
- "name": "April special",
- "amount_type": "percentage",
- "calculated_amount": 500,
- "coupon_code_id": "60254887201f662231792633",
- "currency": "gbp",
- "fixed_amount": 100,
- "percentage": 10,
- "reason_code": "coupon",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "applicable_for": "app_and_booking_engine"
}
], - "added_by_customer": true,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}, - "created_at": "2019-01-15T12:00:00+01:00",
- "updated_at": "2019-01-15T12:00:00+01:00",
- "item_configuration": { },
- "purchasable_details": { },
- "is_modifiable": true
}
], - "items_status": "confirmed",
- "order_notes": [
- {
- "id": "5ed2b95f72823c4f98419f19",
- "order_id": "5ed2b95f72823c4f98419f20",
- "content": "Requested a double treatment room.",
- "created_by": {
- "id": "5ed2b95f72823c4f98419f20",
- "name": "Jane Smith"
}, - "created_by_id": "5ed2b95f72823c4f98419f20",
- "created_at": "2019-01-15T12:00:00+01:00"
}
], - "currency": "gbp",
- "total_cost": 10000,
- "total_tax": 2000,
- "net_total": 8000,
- "submit_payment_amount": 10000,
- "submit_auth_amount": 0,
- "outstanding_payment_amount": 10000,
- "total_paid_or_authed": 10000,
- "service_charge": {
- "amount": 1025,
- "percentage": 15,
- "item_amounts": [
- {
- "item_id": "5ed2b95f72823c4f98419f20",
- "amount": 1025,
- "percentage": 15
}
]
}, - "tip_amount": 1050,
- "totals": {
- "subtotal": 1500,
- "order_discount": 200,
- "total": 1695
}, - "payment_totals": {
- "paid": 750,
- "pending": 250,
- "chargeable": 500,
- "provided": 1500,
- "missing": 1000,
- "unpaid": 1000
}, - "taxes": [
- {
- "name": "VAT",
- "percentage": 20,
- "amount": 1290,
- "inclusive": true
}
], - "payments": [
- {
- "id": "5dcb47800000000000000010",
- "processor": "stripe",
- "capture_method": "automatic",
- "amount": 10000,
- "currency": "gbp",
- "status": "pending",
- "details_source": "pay_by_link",
- "processor_data": { },
- "failure_reason": "Suspected fraud",
- "paid_at": "2020-02-24T12:00:00+01:00",
- "created_at": "2020-02-24T12:00:00+01:00",
- "refundable_amount": 3500,
- "refunds": [
- {
- "id": "5dcb47800000000000000036",
- "payment_id": "5dcb47800000000000000037",
- "amount": 4500,
- "currency": "gbp",
- "notes": "Customer cancelled.",
- "status": "pending",
- "processor": "manual",
- "processor_data": { },
- "created_at": "2020-07-24T13:47:13+01:00"
}
]
}
], - "discounts": [
- {
- "id": "5f7dd49633a7b72a5633380f",
- "amount_type": "fixed_amount",
- "fixed_amount": 150,
- "percentage": 15,
- "calculated_amount": 150,
- "currency": "gbp",
- "discount_type_id": "6307518e13da732ca805dbfe",
- "is_custom_amount": true,
- "coupon_code_id": "60587adcb907570dfa4f0b42",
- "coupon": {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}, - "reason_code": "general",
- "added_by_id": "916f12b0-02b2-4e68-8bd0-3245f2d061c0",
- "discount_type_code": "SUMMER23",
- "applicable_for": "app_and_booking_engine",
- "discount_amount": 15,
- "applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "applied_at": "2020-09-24T12:00:00+01:00",
- "site_id": "00000000-0000-0000-0000-111111111111"
}
], - "applied_promo_code_id": "5ed2b95f72823c4f98419f18",
- "applied_promo_code": {
- "id": "60254378631dc82ed0792632",
- "code": "SUMMER23",
- "percentage": 20
}, - "applied_promo_code_discount_total": 2000,
- "is_promo_code_discount_applied": true,
- "promo_code_applied_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}, - "promo_code_applied_at": "2023-11-15T12:00:00+00:00",
- "coupon_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "FIVEOFF",
- "name": "April special",
- "description": "Get 10% off all treatments booked in April.",
- "customer_credit_id": "de96c16f-e4ce-414d-aa4e-ae7f0f6e2a5a"
}
], - "voucher_codes": [
- {
- "id": "60254378631dc82ed0792632",
- "code": "ABCDEFGHIJ123",
- "voucher_type_id": "60254378631dc82ed0792644",
- "coupon_code_id": "62a73ff5a052e407790b6ec5",
- "name": "30 min treatment",
- "description": "A 30 minute treatment of your choice.",
- "amount_type": "discount_to_zero",
- "is_redeemed": false
}
], - "discount_total": 100,
- "special_requests": "I would like the Blue Room please",
- "intake_form_id": "5f344d756e7f2e7d3f2e4b82",
- "customer_intake_form_submission_id": "5f344d756e7f2e7d3f2e4b82",
- "intake_forms_complete": true,
- "intake_form_required": true,
- "is_locked": false,
- "locked_at": "2019-01-15T12:00:00+01:00",
- "has_posted": false,
- "posted_at": "2020-02-24T12:00:00+01:00",
- "last_post_attempt": "2020-02-24T12:00:00+01:00",
- "is_customer_required": true,
- "post_to_room_config": {
- "processor_data": {
- "G#": 2081111,
- "RN": "9500"
}, - "associated_at": "2019-08-24T14:15:22Z"
}, - "external_visit_ref": "RES1234",
- "external_ref": "ABC-123",
- "created_at": "2020-02-24T12:00:00+01:00",
- "integration_config_id": "5f344d756e7f2e7d3f2e4b82",
- "updated_at": "2020-02-24T12:00:00+01:00",
- "submitted_at": "2020-02-24T12:00:00+01:00",
- "submitted_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "email": "string"
}
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
{- "data": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}
}
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "customer": {
- "id": "5dcb47800000000000000000",
- "first_name": "Jane",
- "last_name": "Doe",
- "full_name": "Jane Doe",
- "phone": "+447900000000",
- "has_password": true,
- "dob": "1995-01-13T00:00:00.000Z",
- "brand_id": "000000-000000-000000-000000",
- "site_id": "000000-000000-000000-000000",
- "stripe_id": "cus_1234567890",
- "express_stripe_id": "cus_1234567890",
- "email": "janedoe@example.com",
- "labels": [
- {
- "id": "000000-000000-000000-000000",
- "value": "VIP",
- "colour": "ff6634"
}
], - "preferred_locale": "en",
- "locked_at": "2021-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z",
- "last_active_at": "2021-01-01T00:00:00.000Z",
- "email_verified_at": "2021-01-01T00:00:00.000Z",
- "last_check_in": {
- "checked_in_at": "2021-01-01T00:00:00.000Z",
- "method": "Scanned"
}, - "avatar_id": "000000-000000-000000-000000",
- "avatar": {
- "id": "00000000-0000-0000-0000-111111111111",
- "file_name": "AF1QipPvjLu1ORuDukRiNKdngq-5nzkyA4zhTQyjikG1%3Ds870-k-no.jpeg",
- "mime_type": "image/jpeg",
- "size": 84256,
}, - "external_ref": "string"
}, - "members": [
- {
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "is_lead": true
}
], - "type": {
- "id": "000000-000000-000000-000000",
- "name": "Gold tier",
- "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
- "terms": "string",
- "brand_id": "000000-000000-000000-000000",
- "offline_payments": true,
- "disable_confirmation_email": true,
- "private": true,
- "minimum_start_date": "2021-01-01T00:00:00.000Z",
- "min_members": 2,
- "max_members": 4,
- "rates": [
- {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}
], - "revenue_schedule": "FREQ=WEEKLY",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "deleted_at": "2021-01-01T00:00:00.000Z"
}, - "rate": {
- "id": "000000-000000-000000-000000",
- "membership_type_id": "000000-000000-000000-000000",
- "name": "Standard rate",
- "currency": "GBP",
- "price": 5000,
- "joining_fee": 1000,
- "tax": 1250,
- "billing_frequency": "P1M",
- "processors": [
- "string"
], - "default_duration": "P1Y",
- "private": true,
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z"
}, - "status": "active",
- "source": "self_signup",
- "payment_method": {
- "id": "string",
- "type": "card",
- "last_4": "string",
- "status": "revoked",
- "card_brand": "amex"
}, - "start_date": "2021-01-01T00:00:00.000Z",
- "end_date": "2022-01-01T00:00:00.000Z",
- "created_at": "2021-01-01T00:00:00.000Z",
- "basket_id": "60c0c01d92ec44e252235966",
- "external_ref": "string",
- "next_billing_date": "2021-01-01T00:00:00.000Z",
- "attention_reason": "no_mandate"
}
]
}
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "membership": {
- "id": "000000-000000-000000-000000",
- "customer_id": "000000-000000-000000-000000",
- "membership_number": "1234567890",
- "type_name": "Gold tier"
}, - "processor": "stripe",
- "processor_data": {
- "cardholder_name": "Jane Doe",
- "last_4": "1234",
- "payment_intent_id": "pi_1234567890",
- "processor_type_id": "000000-000000-000000-000000",
- "processor_type": "bacs_debit"
}, - "payment_method": {
- "type": "bacs_debit",
- "cardholder_name": "Jane Doe",
- "last_4": "1234"
}, - "stripe_id": "pi_1234567890",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "status": "succeeded",
- "can_download_receipt": true,
- "amount": 1200,
- "currency": "GBP",
- "tax": 200,
- "refunded": false,
- "amount_refunded": 200,
- "refunds": [
- {
- "id": "000000-000000-000000-000000",
- "status": "pending",
- "amount": 1000,
- "currency": "gbp",
- "notes": "Customer forgot to cancel last week",
- "failure_reason": "lost_or_stolen_card",
- "refunded_by": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "full_name": "Jane Doe"
}, - "processor_data": {
- "processor": "stripe",
- "processor_id": "pyr_12345"
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "description": "This should be processed by 4rd November 2021",
- "reattempt_date": "2021-11-06T00:00:00.000Z",
- "billing_period_from": "2022-01-01T00:00:00.000Z",
- "billing_period_to": "2022-01-31T00:00:00.000Z",
- "created_at": "2019-02-02T11:00:00.000Z",
- "updated_at": "2019-02-02T11:00:00.000Z"
}
]
}
By default, only credits which haven't been redeemed and haven't expired are shown, but this behaviour can be changed by passing the documented query parameters.
Revoked tokens are never returned on this endpoint.
redeemed | boolean Whether to include redeemed credits |
expired | boolean Whether to include expired credits |
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "coupon_name": "Free 30 minute massage",
- "coupon_description": "Enjoy a free 30 minute message as a thanks for being a loyal member",
- "multi_use": true,
- "customer_id": "000000-000000-000000-000000",
- "membership_id": "000000-000000-000000-000000",
- "coupon_code": "string",
- "revenue": 2495,
- "issued_at": "2021-01-01T00:00:00.000Z",
- "expires_at": "2021-01-01T00:00:00.000Z",
- "redeemed_at": "2021-01-01T00:00:00.000Z",
- "revoked_at": "2019-08-24T14:15:22Z"
}
]
}
{- "data": [
- {
- "id": "5dcb47800000000000000110",
- "opted_in": true,
- "opted_in_at": "2020-02-24T12:00:00+00:00",
- "opted_out_at": "2020-02-24T12:00:00+00:00",
- "is_archived": "string"
}
]
}
marketingPreferenceId required | string <uuid> The ID of the marketing preference to opt in/out of |
{- "data": [
- {
- "id": "5dcb47800000000000000110",
- "opted_in": true,
- "opted_in_at": "2020-02-24T12:00:00+00:00",
- "opted_out_at": "2020-02-24T12:00:00+00:00",
- "is_archived": "string"
}
]
}
marketingPreferenceId required | string <uuid> The ID of the marketing preference to opt in/out of |
{- "data": [
- {
- "id": "5dcb47800000000000000110",
- "opted_in": true,
- "opted_in_at": "2020-02-24T12:00:00+00:00",
- "opted_out_at": "2020-02-24T12:00:00+00:00",
- "is_archived": "string"
}
]
}
{- "data": [
- {
- "id": "000000-000000-000000-000000",
- "payment_method_id": "pm_3K6a0RGysTOePye00nkob5Pi",
- "name": "My debit card",
- "type": "card",
- "status": "revoked",
- "cardholder_name": "Jane Doe",
- "card_brand": "amex",
- "card_country": "gb",
- "card_funding": "credit",
- "card_expiry": "08/22",
- "last_4": 1234,
- "processor": "stripe",
- "created_at": "2021-01-01T00:00:00.000Z",
- "updated_at": "2021-01-01T00:00:00.000Z",
- "revoked_at": "2021-01-01T00:00:00.000Z"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}
}
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy.",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}
contraindication_id required | string <uuid> The ID of the contraindication to attach/detach |
{- "contraindication_id": "ab707ffd-a3fa-4b94-a229-2ce327a7ce9d"
}
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Pregnancy",
- "description": "Tick this if you're currently in any trimester of pregnancy.",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}
contraindication_id required | string <uuid> The ID of the contraindication to attach/detach |
{- "contraindication_id": "ab707ffd-a3fa-4b94-a229-2ce327a7ce9d"
}
{- "message": "The given data was invalid",
- "errors": {
- "title": [
- "This field is required"
]
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
status | string Enum: "unredeemed" "partially_redeemed" "redeemed" Filter on vouchers by status |
amount | string Example: amount=>1000 Filter on values of a certain amount, optionally including an operator. |
balance | string Example: balance=>1000 Filter on vouchers with a certain balance, optionally including an operator. |
created_since | string <date-time> Filter on vouchers created since a given date and time. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Retrieves a report of practitioner occupancy for a date range. This report is superseded by the Practitioner Utilisation report.
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "practitioner": {
- "id": "5dcb47800000000000000010",
- "name": "Lisa Keggs"
}, - "bookable_mins": 2400,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "bookable_mins": 10000,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 480
}, - "metadata": {
- "date_time_from": "2020-02-24T12:00:00+00:00",
- "date_time_to": "2020-02-24T12:00:00+00:00"
}
}
Retrieves a report of practitioner occupancy for a date range
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "date": "2019-01-15T00:00:00.000Z",
- "bookable_mins": 2400,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "bookable_mins": 10000,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 480
}, - "metadata": {
- "date_time_from": "2020-02-24T12:00:00+00:00",
- "date_time_to": "2020-02-24T12:00:00+00:00"
}
}
date_time_from | string <date-time> Example: date_time_from=2019-01-15T12:00:00+01:00 The start of the range to retrieve data for |
date_time_to | string <date-time> Example: date_time_to=2019-01-15T12:00:00+01:00 The end of the range to retrieve data for |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8768 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from required | string <date> Include dates on or after this date. For revenue stats this will be treated as the revenue date. |
date_to required | string <date> Include dates on or before this date. For revenue stats this will be treated as the revenue date. |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "practitioner": {
- "id": "5dcb47800000000000000010",
- "name": "Lisa Keggs"
}, - "num_items": 24,
- "net_revenue": 30000,
- "bookable_mins": 2400,
- "available_mins": 1285,
- "appointment_mins": 575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "num_items": 24,
- "net_revenue": 30000,
- "bookable_mins": 2400,
- "available_mins": 1285,
- "appointment_mins": 575,
- "session_mins": 360,
- "blocked_mins": 180
}, - "meta": {
- "currency": "gbp",
- "date_from": "2020-02-24T00:00:00.000Z",
- "date_to": "2020-02-24T00:00:00.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from required | string <date> Include dates on or after this date. For revenue stats this will be treated as the revenue date. |
date_to required | string <date> Include dates on or before this date. For revenue stats this will be treated as the revenue date. |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Retrieves a report of room occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
room_ids | string Example: room_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of room ids to fetch occupany for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "room": {
- "id": "5dcb47800000000000000010",
- "name": "Light Blue Room"
}, - "bookable_mins": 2400,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 180
}
], - "totals": {
- "bookable_mins": 10000,
- "appointment_mins": 6575,
- "session_mins": 360,
- "blocked_mins": 480
}
}
Retrieves a report of room occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
room_ids | string Example: room_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of room ids to fetch occupany for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
Retrieves a report of bookable area occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
bookable_area_ids | string Example: bookable_area_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of bookable area ids to fetch occupancy for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": [
- {
- "bookable_area": {
- "id": "5dcb47800000000000000010",
- "name": "Light Blue Room"
}, - "bookable_mins": 2400,
- "blocked_mins": 180,
- "booked_mins": 6575
}
], - "totals": {
- "bookable_mins": 10000,
- "blocked_mins": 480,
- "booked_mins": 6575
}
}
Retrieves a report of bookable area occupancy for a date range
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
bookable_area_ids | string Example: bookable_area_ids=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of bookable area ids to fetch occupancy for |
zone_id | Array of strings <uuid> Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to filter by. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
completed_from | string <date-time> Filter to charges completed after this time. |
completed_to | string <date-time> Filter to charges completed before this time. |
revenue_date_from | string <date> Filter to charges with a revenue date after this date. |
revenue_date_to | string <date> Filter to charges with a revenue date before this date. |
payout_date_from | string <date> Filter to charges with a payout date after this date. |
payout_date_to | string <date> Filter to charges with a payout date after this date. |
site_id | string The ID of the site to filter on. |
status | string Filter on charges of this status. |
chargeable_type | string Enum: "order" "membership" Filter on charges of this type. |
charge_type | string Enum: "refund" "payment" Filter on refunds or payments. |
processor | string Enum: "manual" "stripe" "adyen" "saved_card" "pms_folio" "voucher" "external_voucher" Filter payments by processor. |
processor_type_id | string Filter payments by processor. |
order_status | any Enum: "in_progress" "new" "submitted" "settled" "cancelled" "no_show" Filter status of orders. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "5f4f7ed1e79390087033c495",
- "charge_type": "payment",
- "order_ref": "TRY12",
- "order_status": "settled",
- "chargeable_id": "5ed2b95f72823c4f98419f20",
- "chargeable_type": "order",
- "customer_name": "5ed2b95f72823c4f98419f20",
- "customer_id": "5ed2b95f72823c4f98419f20",
- "processor": "stripe",
- "processor_type_id": "5ed2b95f72823c4f98419f20",
- "processor_type": "cash",
- "processor_id": "ch_12345",
- "amount": 9635,
- "currency": "gbp",
- "status": "paid",
- "failure_reason": "FRAUD",
- "cardholder_name": "Ms J Smith",
- "card_brand": "visa",
- "card_last4": "string",
- "revenue_date": "2022-10-20T00:00:00.000Z",
- "payout_date": "2022-10-20T00:00:00.000Z",
- "created_at": "2020-09-02T11:15:29+00:00",
- "completed_at": "2020-09-02T11:20:35+00:00"
}
], - "processor_totals": [
- {
- "processor": "stripe",
- "payment_count": 14,
- "refund_count": 2,
- "payment_total": 77000,
- "refund_total": 12000,
- "types": [
- {
- "type": "cash",
- "payment_count": 10,
- "refund_count": 1,
- "payment_total": 56000,
- "refund_total": 3000
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
completed_from | string <date-time> Filter to charges completed after this time. |
completed_to | string <date-time> Filter to charges completed before this time. |
revenue_date_from | string <date> Filter to charges with a revenue date after this date. |
revenue_date_to | string <date> Filter to charges with a revenue date before this date. |
payout_date_from | string <date> Filter date that the transaction's payout is recognised. |
payout_date_to | string <date> Filter date that the transaction's payout is recognised. |
site_id | string The ID of the site to filter on. |
status | string Filter on charges of this status. |
chargeable_type | string Enum: "order" "membership" Filter on charges of this type. |
charge_type | string Enum: "refund" "payment" Filter on refunds or payments. |
processor | string Enum: "manual" "stripe" "adyen" "saved_card" "pms_folio" "voucher" "external_voucher" Filter payments by processor. |
processor_type_id | string Filter payments by processor. |
order_status | any Enum: "in_progress" "new" "submitted" "settled" "cancelled" "no_show" Filter status of orders. |
boolean Whether to request an email of this report. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date | string <date-time> Filter to charges completed on this date. Defaults to today's date. |
site_id | string The ID of the site to filter on. |
status | string Filter on charges of this status. |
page | integer Example: page=1 The page to retrieve results from |
{- "data": [
- {
- "id": "5f4f7ed1e79390087033c495",
- "charge_type": "payment",
- "order_ref": "TRY12",
- "order_status": "settled",
- "chargeable_id": "5ed2b95f72823c4f98419f20",
- "chargeable_type": "order",
- "customer_name": "5ed2b95f72823c4f98419f20",
- "customer_id": "5ed2b95f72823c4f98419f20",
- "processor": "stripe",
- "processor_type_id": "5ed2b95f72823c4f98419f20",
- "processor_type": "cash",
- "processor_id": "ch_12345",
- "amount": 9635,
- "currency": "gbp",
- "status": "paid",
- "failure_reason": "FRAUD",
- "cardholder_name": "Ms J Smith",
- "card_brand": "visa",
- "card_last4": "string",
- "revenue_date": "2022-10-20T00:00:00.000Z",
- "payout_date": "2022-10-20T00:00:00.000Z",
- "created_at": "2020-09-02T11:15:29+00:00",
- "completed_at": "2020-09-02T11:20:35+00:00"
}
], - "processor_totals": [
- {
- "processor": "stripe",
- "payment_count": 14,
- "refund_count": 2,
- "payment_total": 77000,
- "refund_total": 12000,
- "types": [
- {
- "type": "cash",
- "payment_count": 10,
- "refund_count": 1,
- "payment_total": 56000,
- "refund_total": 3000
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
revenue_date_from required | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to required | string <date> Filter to baskets with a revenue date on or before this date. |
site_id required | string The ID of the site to filter on. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
revenue_date_from required | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to required | string <date> Filter to baskets with a revenue date on or before this date. |
site_id required | string The ID of the site to filter on. |
{- "data": {
- "cancelled": {
- "name": "string",
- "count": 0,
- "total_net": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_gross": {
- "amount": 1000,
- "currency": "GBP"
}
}, - "no_shows": {
- "name": "string",
- "count": 0,
- "total_net": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_gross": {
- "amount": 1000,
- "currency": "GBP"
}
}, - "total": {
- "name": "string",
- "count": 0,
- "total_net": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_gross": {
- "amount": 1000,
- "currency": "GBP"
}
}
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
item_date_from | string <date-time> Filter to baskets with items on or after this date. |
item_date_to | string <date-time> Filter to baskets with items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
labels | string Filter to baskets with the given labels. This can be a comma separated list of label IDs, or 'none' to filter on baskets that don't have any labels. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
item_date_from | string <date-time> Filter to baskets with items on or after this date. |
item_date_to | string <date-time> Filter to baskets with items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
labels | string Filter to baskets with the given labels. This can be a comma separated list of label IDs, or 'none' to filter on baskets that don't have any labels. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
sales_channel | Array of strings <uuid> Filter to items of the selected sales channel(s). |
submitted_at_from | string <date-time> Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Filter on orders with a submitted date before this date. |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": [
- {
- "sales_channel_id": "64186cf7b85d4db4e60bb412",
- "sales_channel_name": "VoluptasChannel",
- "num_baskets": 11,
- "gross_revenue": 200000,
- "net_revenue": 180000,
- "revenue_centres": [
- {
- "revenue_centre_key": "fb",
- "revenue_centre": "Food & Beverage",
- "net_revenue": 8000,
- "gross_revenue": 10000
}
]
}
], - "meta": {
- "sales_channels": [
- {
- "id": "64186cf7b85d4db4e60bb412",
- "name": "VoluptasChannel"
}
], - "revenue_centres": [
- {
- "key": "fb",
- "name": "Food & Beverage"
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
sales_channel | Array of strings <uuid> Filter to items of the selected sales channel(s). |
submitted_at_from | string <date-time> Filter on orders with a submitted date on or after this time. |
submitted_at_to | string <date-time> Filter on orders with a submitted date before this date. |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
labels | Array of strings <uuid> Filter to items of the selected order label(s). |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": [
- {
- "label_id": "64186cfbb85d4db4e60bb43b",
- "label_name": "Residential",
- "num_baskets": 21,
- "gross_revenue": 120000,
- "net_revenue": 100000,
- "revenue_centres": [
- {
- "revenue_centre_key": "fb",
- "revenue_centre": "Food & Beverage",
- "net_revenue": 8000,
- "gross_revenue": 10000
}
]
}
], - "meta": {
- "revenue_centres": [
- {
- "key": "fb",
- "name": "Food & Beverage"
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to get data for. |
labels | Array of strings <uuid> Filter to items of the selected order label(s). |
revenue_centre | Array of strings <uuid> Filter to items of the selected revenue centre(s). |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date required | string <date> Filter to baskets with a revenue date on or after this date. |
practitioner_id | string A comma-separated list of practitioner IDs to filter on. |
site_id | string The ID of the site to filter on. |
{- "data": [
- {
- "id": "604cd0ff0ecb372cc6135892",
- "type": "appointment",
- "start_time": "2021-03-15T08:30:00+00:00",
- "end_time": "2021-03-15T09:00:00+00:00",
- "event_name": "Arrival",
- "practitioner_name": null,
- "room_name": "Pool area",
- "customer_name": "Jane Bridges",
- "session_capacity": 4,
- "session_booked_customers": 2
}
]
}
revenue_date_from | string <date> Filter to basket items with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to basket items with a revenue date on or before this date. |
offering_type | string A comma-separated list of item types to filter on. |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
page | integer Example: page=1 The page to retrieve results from |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": [
- {
- "id": "5ed2b4ea39e32a634f12521a",
- "basket_id": "5ed2b4ea39e32a634f12521b",
- "order_ref": "TRY00",
- "offering_type": "appointment",
- "offering_id": "5dcb47800000000000000010",
- "offering_name": "60 minute massage",
- "total_cost": 1000,
- "net_total": 800,
- "gross_revenue": 1000,
- "net_revenue": 800,
- "date": "2019-08-24",
- "revenues": [
- {
- "revenue_centre": "fb",
- "gross_revenue": 6000,
- "net_revenue": 4800,
- "paid": true
}
]
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
- "revenue_centres": [
- {
- "id": "fb",
- "key": "fb",
- "name": "Food & Beverage",
- "tax_percent": 20
}
]
}, - "links": {
}
}
revenue_date_from | string <date> Filter to baskets items with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets items with a revenue date on or before this date. |
offering_type | string A comma-separated list of item types to filter on. |
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
date_from | string <date-time> Filter to items on or after this date. |
date_to | string <date-time> Filter to items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
offering_type | string The type of item to filter on. |
offering_category | string Filter on items for offerings in these categories. |
order_label | string Filter on items in orders with these labels. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": [
- {
- "offering_id": "5fae93d2432c562bc06cda5b",
- "offering_type": "appointment",
- "offering_name": "Beta Facial",
- "num_standalone_items": 1,
- "num_package_items": 0,
- "gross_revenue": 6000,
- "net_revenue": 5000
}
], - "totals": {
- "by_offering_type": [
- {
- "offering_type": "appointment",
- "num_standalone_items": 1,
- "num_package_items": 0,
- "gross_revenue": 6000,
- "net_revenue": 5000
}
]
}
}
date_from | string <date-time> Filter to items on or after this date. |
date_to | string <date-time> Filter to items on or before this date. |
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
offering_type | string The type of item to filter on. |
offering_category | string Filter on items for offerings in these categories. |
order_label | string Filter on items in orders with these labels. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
order_status | Array of strings Example: order_status=settled The status to filter orders on. |
order_label | Array of strings Example: order_label=settled The labels to filter orders on. |
offering_id | Array of strings Example: offering_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of offering ids to fetch orders for |
offering_type | Array of strings A comma-separated list of item types to filter on. |
revenue_date_from | string <date> Example: Filter on orders with a revenue date on or after this date. |
revenue_date_to | string <date> Example: Filter on orders with a revenue date on or before this date. |
date_from | string <date-time> Example: date_from=2019-01-15T12:00:00+01:00 Filter on items with a start time on or after this date. |
date_to | string <date-time> Example: date_to=2019-01-15T12:00:00+01:00 Filter on items with a start time on or before this date. |
order_submitted_at_from | string <date-time> Example: order_submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
order_submitted_at_to | string <date-time> Example: order_submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
sold_by_id | Array of strings A comma-separated list of user IDs to filter for items sold by that user. |
category_id | Array of strings A comma-separated list of category IDs to filter on. |
sort | string The field to order results by. |
sort_order | string Enum: "asc" "desc" The direction to order results by. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "607198a822115c0025455382",
- "basket_id": "60719885598a81459479b532",
- "order_ref": "TRY28",
- "revenue_date": "2021-04-10T00:00:00.000Z",
- "item_date": "2021-04-10T00:00:00.000Z",
- "created_at": "2021-04-10T13:23:04+01:00",
- "quantity": 2,
- "offering_id": "606efc105443413bf774d40f",
- "offering_type": "appointment",
- "offering_name": "Beta Facial",
- "total_cost": 6000,
- "net_total": 5000,
- "sold_by": {
- "id": "6307519313da732ca805dc6f",
- "name": "Jane Smith",
- "type": "practitioner"
}
}
], - "totals": {
- "net_total": 5000,
- "total_unique_orders": 2,
- "total_items": 4
}, - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
order_status | Array of strings Example: order_status=settled The status to filter orders on. |
order_label | Array of strings Example: order_label=settled The labels to filter orders on. |
offering_id | Array of strings Example: offering_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8767 A comma separated string of offering ids to fetch orders for |
offering_type | Array of strings A comma-separated list of item types to filter on. |
revenue_date_from | string <date> Example: Filter on orders with a revenue date on or after this date. |
revenue_date_to | string <date> Example: Filter on orders with a revenue date on or before this date. |
date_from | string <date-time> Example: date_from=2019-01-15T12:00:00+01:00 Filter on items with a start time on or after this date. |
date_to | string <date-time> Example: date_to=2019-01-15T12:00:00+01:00 Filter on items with a start time on or before this date. |
order_submitted_at_from | string <date-time> Example: order_submitted_at_from=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date on or after this time. |
order_submitted_at_to | string <date-time> Example: order_submitted_at_to=2019-01-15T12:00:00+01:00 Filter on orders with a submitted date before this date. |
item_date_from | string <date-time> Filter on items which are booked in for or after this date. |
item_date_to | string <date-time> Filter on items which are booked in for before this date. |
sold_by_id | Array of strings A comma-separated list of user IDs to filter for items sold by that user. |
category_id | Array of strings A comma-separated list of category IDs to filter on. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": [
- {
- "discount_type_id": "64186c9259a825a76308ac6d",
- "discount_type_name": "Custom amount",
- "discount_type_code": "AMT",
- "site_id": "00000000-0000-0000-0000-111111111111",
- "is_deleted": false,
- "num_baskets": 3,
- "num_items": 5,
- "basket_discount_total": 3000,
- "item_discount_total": 500,
- "discount_total": 3500
}
]
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": [
- {
- "id": "00000000-0000-0000-0000-444444444444",
- "full_name": "Jane Jones",
- "num_orders": 12,
- "total_value_gross": 30000,
- "total_value_net": 25000,
- "average_value_gross": 2500,
- "average_value_net": 2083
}
]
}
revenue_date_from | string <date> Filter to baskets with a revenue date on or after this date. |
revenue_date_to | string <date> Filter to baskets with a revenue date on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
date_from | string Example: date_from=2019-12-18 The start of the date range to retrieve data for |
date_to | string Example: date_to=2019-12-24 The end of the date range to retrieve data for |
zone_id | string Example: zone_id=5e932c0901d210625e3a8766,5e932c0901d210625e3a8769 A comma separated string of zone ids to fetch stats for |
{- "data": [
- {
- "date": "2021-01-15T00:00:00.000Z",
- "baskets": {
- "num_baskets": 20,
- "num_booked_appointments": 18,
- "num_booked_sessions": 15,
- "num_booked_packages": 12
}, - "sessions": {
- "num_sessions": 3,
- "total_session_capacity": 30,
- "total_session_booked_customers": 8
}, - "blocked_times": {
- "num_blocked_times": 3,
- "total_mins": 90
}, - "practitioners": {
- "bookable_mins": 1785,
- "appointment_mins": 350,
- "session_mins": 90,
- "blocked_mins": 90,
- "by_practitioner": [
- {
- "practitioner_id": "60e30b11b1daa372a670f533",
- "bookable_mins": 1785,
- "appointment_mins": 350,
- "session_mins": 90,
- "blocked_mins": 90
}
]
}, - "rooms": {
- "bookable_mins": 1785,
- "booked_mins": 400,
- "occupancy": 45,
- "by_room": [
- {
- "room_id": "60e30b0fb1daa372a670f518",
- "bookable_mins": 1785,
- "booked_mins": 400,
- "occupancy": 45
}
]
}
}
]
}
date_from | string <date> Example: Filter for stats on or after this date. |
date_to | string <date> Example: Filter for stats on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}, - "totals": {
- "rows": [
- {
- "cells": [
- {
- "value": "string",
- "format": "th",
- "colspan": 3
}
]
}
]
}
}
date_from | string <date> Example: Filter for stats on or after this date. |
date_to | string <date> Example: Filter for stats on or before this date. |
site_id | string The ID of the site to filter on. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: Filter for balance changes on or after this date. |
date_to | string <date> Example: Filter for balance changes on or before this date. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "636e2ed8bd7284dca7090073",
- "time": "2020-09-02T11:15:29+01:00",
- "event": "captured",
- "type": "fee",
- "payment_id": "636d63477392752e71039156",
- "refund_id": "636d63477392752e71039157",
- "payable_id": "636d632b4f4e46261e05efd2",
- "payable_type": "basket",
- "order_ref": "TRY00",
- "amount": -100,
- "balance": 1000
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
- "currency": "gbp",
- "opening_balance": 1000,
- "closing_balance": 1295
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: Filter for balance changes on or after this date. |
date_to | string <date> Example: Filter for balance changes on or before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
date_from | string <date> Example: Filter for payouts with a payout date on or after this date. |
date_to | string <date> Example: Filter for payouts with a payout date on or before this date. |
page | integer Example: page=1 The page to retrieve results from |
per_page | integer Example: per_page=15 The number of results to return per page |
{- "data": [
- {
- "id": "63fdee61f978c409de07b001",
- "status": "processed",
- "payout_date": "2023-04-01T00:00:00.000Z",
- "processed_date": "2019-08-24T14:15:22Z",
- "num_charges": 12,
- "amount": 124500,
- "currency": "gbp"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
payoutId required | string The ID of the payout you want to retrieve. |
{- "data": {
- "id": "63fdee61f978c409de07b001",
- "status": "not_started",
- "processor": "adyen",
- "charges": [
- {
- "id": "63fdee61f978c409de07a882",
- "type": "payment",
- "description": "Correction for payout xyz",
- "gross_amount": 2500,
- "fee_amount": 150,
- "net_amount": 2350,
- "completed_at": "2023-04-01T13:45:15+01:00",
- "payable_id": "63fdee61f978c409de07a993",
- "payable_type": "basket",
- "order_ref": "TRY12"
}
], - "payment_totals": {
- "count": 12,
- "gross": 10000,
- "fees": 200,
- "net": 9800
}, - "refund_totals": {
- "count": 12,
- "gross": 10000,
- "fees": 200,
- "net": 9800
}, - "amount": 12099,
- "currency": "gbp",
- "payout_date": "2023-04-01T00:00:00.000Z"
}
}
payoutId required | string The ID of the payout you want to retrieve. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
revenue_date_from | string <date> Example: Filter for items with revenue on or after this date. |
revenue_date_to | string <date> Example: Filter for items with revenue on or before this date. |
item_date_from | string <date> Example: Filter for items on or after this date. |
item_date_to | string <date> Example: Filter for items on or before this date. |
{- "data": {
- "with_package_groups": [
- {
- "offering_id": "630751a513da732ca805e1d5",
- "offering_name": "Gray package",
- "offering_type": "package",
- "package_type_id": "630751a513da732ca805e1d7",
- "revenue_centre": "spa",
- "revenue_centre_name": "Spa Treatments",
- "category": "Massages",
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "totals": {
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
}
], - "without_package_groups": [
- {
- "offering_id": "630751a513da732ca805e1d5",
- "offering_name": "Gray package",
- "offering_type": "package",
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "totals": {
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
}
], - "by_revenue_centre": [
- {
- "revenue_centre": "spa",
- "revenue_centre_name": "Spa Treatments",
- "num_items": 95,
- "gross_revenue": 2000,
- "net_revenue": 1666,
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
]
}
]
}, - "totals": {
- "with_package_groups": {
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}, - "without_package_groups": {
- "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}, - "by_date": [
- {
- "date": "2023-06-30T00:00:00.000Z",
- "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
], - "num_items": 4,
- "gross_revenue": 60000,
- "net_revenue": 50000
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
revenue_date_from | string <date> Example: Filter for items with revenue on or after this date. |
revenue_date_to | string <date> Example: Filter for items with revenue on or before this date. |
item_date_from | string <date> Example: Filter for items on or after this date. |
item_date_to | string <date> Example: Filter for items on or before this date. |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
page | integer Example: page=1 The page to retrieve results from |
revenue_date_from | string <date> Example: Filter for payments for orders with revenue on or after this date. |
revenue_date_to | string <date> Example: Filter for payments for orders with revenue on or before this date. |
completed_from | string <date> Example: Filter for payments paid on or after this date. |
completed_to | string <date> Example: Filter for payments paid on or before this date. |
created_from | string <date> Example: Filter for payments created on or after this date. |
created_to | string <date> Example: Filter for payments created on or before this date. |
status | string Filter for payments with this status. |
created_by | Array of strings <uuid> Example: created_by=pending A comma-separated list of user IDs to filter for links where the payment was created by the user. |
sort | string The field to order results by. |
sort_order | string Enum: "asc" "desc" The direction to order results by. |
{- "data": [
- {
- "id": "64ff5e02c60a23ae20059745",
- "status": "pending",
- "order_ref": "TRY00",
- "basket_id": "64feb6c33e90e83a45035902",
- "customer_name": "Dan Johnson III",
- "created_at": "2023-09-22T20:12:35+01:00",
- "revenue_date": "2023-09-22T00:00:00.000Z",
- "paid_at": "2023-09-22T20:13:05+01:00"
}
], - "meta": {
- "from": 1,
- "to": 2,
- "total": 2,
- "current_page": 1,
- "last_page": 2,
- "per_page": 15,
}, - "links": {
}
}
site_id required | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The ID of the site |
{- "data": [
- {
- "key": "recently_created",
- "name": "Recently created",
- "count": 34,
- "filters": [
- {
- "key": "status",
- "type": "date",
- "date_value": "2023-11-22T20:13:05+00:00",
- "string_value": "processing"
}
]
}
]
}
brand_id required | string The brand ID to filter memberships by |
created_at_from | string <datetime> Filters the report to only show memberships created after the given date |
created_at_to | string <datetime> Filters the report to only show memberships created before the given date |
site_id | string The site ID to filter memberships by |
{- "data": [
- {
- "membership_type_id": "000000-000000-000000-000000",
- "membership_type_name": "Gold tier",
- "rates": [
- {
- "membership_rate_id": "000000-000000-000000-000000",
- "membership_rate_name": "Standard rate",
- "total_members": 12,
- "total_active_members": 9,
- "total_needs_dd_members": 2,
- "total_inactive_members": 1,
- "total_active_mrr": {
- "amount": 1000,
- "currency": "GBP"
}, - "total_missing_mrr": {
- "amount": 1000,
- "currency": "GBP"
}
}
]
}
]
}
date required | string <date> The date in Y-m-d format. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
category_ids | Array of strings <uuid> Example: category_ids=10000000-0000-0000-0000-000000000000 The category id |
supplier_ids | Array of strings <uuid> Example: supplier_ids=10000000-0000-0000-0000-000000000000 The supplier id |
brand_ids | Array of strings <uuid> Example: brand_ids=10000000-0000-0000-0000-000000000000 The brand id |
{- "data": [
- {
- "id": "10000000-0000-0000-0000-000000000000",
- "name": "Face moisturiser",
- "stock_level": 50,
- "stock_value": 50,
- "average_cost": 50
}
], - "meta": {
- "total_stock_value": 50,
- "currency": "gbp"
}
}
date required | string <date> The date in Y-m-d format. |
site_id | string <uuid> Example: site_id=00000000-0000-0000-0000-111111111111 The site id to update |
category_ids | Array of strings <uuid> Example: category_ids=10000000-0000-0000-0000-000000000000 The category id |
supplier_ids | Array of strings <uuid> Example: supplier_ids=10000000-0000-0000-0000-000000000000 The supplier id |
brand_ids | Array of strings <uuid> Example: brand_ids=10000000-0000-0000-0000-000000000000 The brand id |
{- "data": {
- "id": "5ed2b4ea39e32a634f12521f",
- "status": "pending",
- "output": {
- "property1": "string",
- "property2": "string"
}, - "created_at": "2020-09-02T11:15:29.000Z",
- "updated_at": "2020-09-02T11:20:35.000Z"
}
}