booking-service (1.0.1)

Download OpenAPI specification:Download

The service provides capabilities to interact with the booking’s stored data inside of BEAUTY_OS Core in MongoDB. This is used throughout the website to retrieve information about the booking and interact with the booking’s settings.

Appointments

GetClientTypes

Get all client types

Authorizations:
jwt

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetClientTypeById

Get a single client type by ID

Authorizations:
jwt
path Parameters
clientTypeId
required
string

The client type ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

UpdateAppointment

Updates appointment data by given ID with comprehensive update options including services, timing, and client changes.

Authorizations:
jwt
path Parameters
appointmentId
required
string
Request Body schema: application/json
clientId
string
clientPhone
string
stylistSingleSalonId
required
string
startAt
required
string
required
Array of objects (CreateAppointmentServiceRequest)
totalCost
number <double>
allowOverlap
boolean
clientTypeId
string

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "clientPhone": "string",
  • "stylistSingleSalonId": "string",
  • "startAt": "string",
  • "services": [
    ],
  • "totalCost": 0.1,
  • "allowOverlap": true,
  • "clientTypeId": "string"
}

Response samples

Content type
application/json
{
  • "isOnlineBooking": true,
  • "clientTypeId": {
    },
  • "paymentIds": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "blockedReason": "string",
  • "cost": 0.1,
  • "duration": 0.1,
  • "repeatIntervalWeeks": 0.1,
  • "endAt": "2019-08-24T14:15:22Z",
  • "startAt": "2019-08-24T14:15:22Z",
  • "services": [
    ],
  • "clientUsername": "string",
  • "clientFullName": "string",
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "clientId": "string",
  • "basketId": "string",
  • "type": "APPOINTMENT",
  • "status": "RESERVED",
  • "id": "string"
}

GetBasketWithAppointments

Retrieves basket with its appointments by basket ID with enhanced client, stylist, and service information.

path Parameters
basketId
required
string

Responses

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string",
  • "appointments": [
    ]
}

GetSalonCalendar

Retrieves salon calendar with stylists, working hours, and appointments.

path Parameters
salonId
required
string
query Parameters
startDate
required
string
  • Start date in ISO format (e.g., "2025-01-27")
endDate
required
string
  • End date in ISO format (e.g., "2025-02-02")
inactiveArtist
boolean
  • Include inactive artists in the calendar
isOnlineBooking
boolean
  • Filter by online booking status (true = only online bookings, false = only non-online bookings)

Responses

Response samples

Content type
application/json
{
  • "stylists": [
    ]
}

CreateAppointments

Creates a new appointment for salon workers.

Authorizations:
jwt
path Parameters
salonId
required
string
Request Body schema: application/json
clientId
string
salonId
string
required
Array of objects (CreateBasketAppointmentRequest)
discountCode
string or null
tip
number or null <double>
notes
string or null
allowOverlap
boolean
description
string
repeatIntervalWeeks
number <double>

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "salonId": "string",
  • "appointments": [
    ],
  • "discountCode": "string",
  • "tip": 0.1,
  • "notes": "string",
  • "allowOverlap": true,
  • "description": "string",
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

CreateBlockedTimeSlot

Create a new blocked time slot for a stylist

Authorizations:
jwt
path Parameters
salonId
required
string

The salon ID

Request Body schema: application/json

The blocked time slot details

stylistSingleSalonId
required
string
startAt
required
string
endAt
required
string
blockedReason
string

Responses

Request samples

Content type
application/json
{
  • "stylistSingleSalonId": "string",
  • "startAt": "string",
  • "endAt": "string",
  • "blockedReason": "string"
}

Response samples

Content type
application/json
{
  • "isOnlineBooking": true,
  • "clientTypeId": {
    },
  • "paymentIds": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "blockedReason": "string",
  • "cost": 0.1,
  • "duration": 0.1,
  • "repeatIntervalWeeks": 0.1,
  • "endAt": "2019-08-24T14:15:22Z",
  • "startAt": "2019-08-24T14:15:22Z",
  • "services": [
    ],
  • "clientUsername": "string",
  • "clientFullName": "string",
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "clientId": "string",
  • "basketId": "string",
  • "type": "APPOINTMENT",
  • "status": "RESERVED",
  • "id": "string"
}

GetBlockedTimeSlots

Get all blocked time slots for a salon within a date range

Authorizations:
jwt
path Parameters
salonId
required
string

The salon ID

query Parameters
startDate
required
string

Start date in ISO format (e.g., "2025-01-27")

endDate
required
string

End date in ISO format (e.g., "2025-02-02")

stylistSingleSalonId
string

Optional filter by specific stylist

Responses

Response samples

Content type
application/json
[
  • {
    }
]

UpdateBlockedTimeSlot

Update a blocked time slot

Authorizations:
jwt
path Parameters
blockedSlotId
required
string

The ID of the blocked time slot

Request Body schema: application/json

The updated blocked time slot details

startAt
string
endAt
string
blockedReason
string

Responses

Request samples

Content type
application/json
{
  • "startAt": "string",
  • "endAt": "string",
  • "blockedReason": "string"
}

Response samples

Content type
application/json
{
  • "isOnlineBooking": true,
  • "clientTypeId": {
    },
  • "paymentIds": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "blockedReason": "string",
  • "cost": 0.1,
  • "duration": 0.1,
  • "repeatIntervalWeeks": 0.1,
  • "endAt": "2019-08-24T14:15:22Z",
  • "startAt": "2019-08-24T14:15:22Z",
  • "services": [
    ],
  • "clientUsername": "string",
  • "clientFullName": "string",
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "clientId": "string",
  • "basketId": "string",
  • "type": "APPOINTMENT",
  • "status": "RESERVED",
  • "id": "string"
}

DeleteBlockedTimeSlot

Delete a blocked time slot

Authorizations:
jwt
path Parameters
blockedSlotId
required
string

The ID of the blocked time slot to delete

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "message": "string",
  • "code": "string",
  • "status": 0.1
}

GetAppointmentById

Retrieves appointment data by given ID with enhanced client, stylist, and service information.

path Parameters
appointmentId
required
string

Responses

Response samples

Content type
application/json
{
  • "isOnlineBooking": true,
  • "clientTypeId": {
    },
  • "paymentIds": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "blockedReason": "string",
  • "cost": 0.1,
  • "duration": 0.1,
  • "repeatIntervalWeeks": 0.1,
  • "endAt": "2019-08-24T14:15:22Z",
  • "startAt": "2019-08-24T14:15:22Z",
  • "services": [
    ],
  • "clientUsername": "string",
  • "clientFullName": "string",
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "clientId": "string",
  • "basketId": "string",
  • "type": "APPOINTMENT",
  • "status": "RESERVED",
  • "id": "string"
}

GetAppointmentById

Retrieves appointment's data by given id with enhanced client, stylist, and service information.

path Parameters
appointmentId
required
string

Represents the given id for an appointment.

Responses

Response samples

Content type
application/json
{
  • "isOnlineBooking": true,
  • "clientTypeId": {
    },
  • "paymentIds": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "blockedReason": "string",
  • "cost": 0.1,
  • "duration": 0.1,
  • "repeatIntervalWeeks": 0.1,
  • "endAt": "2019-08-24T14:15:22Z",
  • "startAt": "2019-08-24T14:15:22Z",
  • "services": [
    ],
  • "clientUsername": "string",
  • "clientFullName": "string",
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "clientId": "string",
  • "basketId": "string",
  • "type": "APPOINTMENT",
  • "status": "RESERVED",
  • "id": "string"
}

GetAppointmentsByStylistAndDate

Retrieves appointments for a specific stylist on a specific date.

path Parameters
stylistSingleSalonId
required
string

The ID of the stylist's single salon.

date
required
string

The date in ISO format (e.g., "2024-01-15").

Responses

Response samples

Content type
application/json
[
  • {
    }
]

CountAppointments

Counts appointments by filters (salonId, stylistSingleSalonId, status, date range).

query Parameters
salonId
string

Optional salon ID filter.

stylistSingleSalonId
string

Optional stylist single salon ID filter.

status
string (AppointmentStatus)
Enum: "RESERVED" "CONFIRMED" "COMPLETED" "CANCELLED" "PAID" "PARTIALLY_PAID"

Optional appointment status filter.

startDate
string

Optional start date filter (ISO format).

endDate
string

Optional end date filter (ISO format).

Responses

Response samples

Content type
application/json
{
  • "count": 0.1
}

GetBasketById

Retrieves basket's data by given id with enhanced client information.

path Parameters
basketId
required
string

Represents the given id for an basket.

Responses

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

UpdateBasket

Updates a basket by completely replacing all appointments with new ones.

path Parameters
basketId
required
string

Represents the given id for the basket to update.

Request Body schema: application/json

The update request with new basket data.

clientId
string
salonId
string
required
Array of objects (CreateBasketAppointmentRequest)
discountCode
string or null
tip
number or null <double>
notes
string or null
allowOverlap
boolean
description
string
repeatIntervalWeeks
number <double>

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "salonId": "string",
  • "appointments": [
    ],
  • "discountCode": "string",
  • "tip": 0.1,
  • "notes": "string",
  • "allowOverlap": true,
  • "description": "string",
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

CancelBasket

Cancels a basket by completely removing all appointments.

path Parameters
basketId
required
string

Represents the given id for the basket to cancel.

Request Body schema: application/json

The cancel request with cancellation details.

note
string
cancelledBy
required
string (CancelledBy)
Enum: "CLIENT" "STYLIST" "SALON"
cancelChargeAmount
number <double>

Responses

Request samples

Content type
application/json
{
  • "note": "string",
  • "cancelledBy": "CLIENT",
  • "cancelChargeAmount": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

MarkBasketRunningLate

Marks a basket as running late with specified delay in minutes.

path Parameters
basketId
required
string

Represents the given id for the basket to mark as running late.

Request Body schema: application/json

The running late request with delay information.

minutes
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "minutes": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

UpdateBasketStatus

Updates the status of a basket.

path Parameters
basketId
required
string

Represents the given id for the basket to update status.

Request Body schema: application/json

The status update request.

status
required
string (BasketStatus)
Enum: "DRAFT" "AWAITING_PAYMENT" "AWAITING_MINIMUM_PAYMENT" "PARTIALLY_PAID" "PAID" "CANCELLED"

Responses

Request samples

Content type
application/json
{
  • "status": "DRAFT"
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

UpdateBasketPaymentAmounts

Updates the payment amounts for a basket.

path Parameters
basketId
required
string

Represents the given id for the basket to update payment amounts.

Request Body schema: application/json

The payment amount update request.

paymentIds
Array of strings
tipAmount
required
number <double>
paymentAmount
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "paymentIds": [
    ],
  • "tipAmount": 0.1,
  • "paymentAmount": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

GetBasketsByFilters

Gets baskets by filters for revenue forecasting.

query Parameters
salonId
string

Salon ID to filter by

stylistSingleSalonId
string

Stylist single salon ID to filter by

status
Array of strings (BasketStatus)
Items Enum: "DRAFT" "AWAITING_PAYMENT" "AWAITING_MINIMUM_PAYMENT" "PARTIALLY_PAID" "PAID" "CANCELLED"

Basket status to filter by (can be repeated for multiple statuses)

startDate
string

Start date for filtering (ISO string)

endDate
string

End date for filtering (ISO string)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetBasketsByFiltersWithAppointments

Gets baskets by filters with appointments included - optimized for revenue forecasting. This endpoint returns baskets with their appointments in a single query to avoid N+1 queries.

query Parameters
salonId
string

Salon ID to filter by

stylistSingleSalonId
string

Stylist single salon ID to filter by

status
Array of strings (BasketStatus)
Items Enum: "DRAFT" "AWAITING_PAYMENT" "AWAITING_MINIMUM_PAYMENT" "PARTIALLY_PAID" "PAID" "CANCELLED"

Basket status to filter by (can be repeated for multiple statuses)

startDate
string

Start date for filtering (ISO string)

endDate
string

End date for filtering (ISO string)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetBasketById

Retrieves basket data by given ID with enhanced client information.

path Parameters
basketId
required
string

Responses

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

Admin Client Types

CreateClientType

Create a new client type.

Authorizations:
jwt-admin
Request Body schema: application/json

The object containing the client type data.

type
required
string

Responses

Request samples

Content type
application/json
{
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

GetClientTypes

Get all client types.

Authorizations:
jwt-admin

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetClientTypeById

Get a single client type by ID.

Authorizations:
jwt-admin
path Parameters
id
required
string

The client type ID.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

UpdateClientType

Update a client type.

Authorizations:
jwt-admin
path Parameters
id
required
string

The client type ID.

Request Body schema: application/json

The object containing the updated client type data.

type
required
string

Responses

Request samples

Content type
application/json
{
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

DeleteClientType

Delete a client type.

Authorizations:
jwt-admin
path Parameters
id
required
string

The client type ID.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "message": "string",
  • "code": "string",
  • "status": 0.1,
  • "details": { }
}

Baskets

GetBasketById

Retrieves basket data by given ID with enhanced client information.

path Parameters
basketId
required
string

Responses

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

UpdateBasket

Updates a basket by completely replacing all appointments with new ones.

Authorizations:
jwt
path Parameters
basketId
required
string
header Parameters
client-id
string
Request Body schema: application/json
clientId
string
salonId
string
required
Array of objects (CreateBasketAppointmentRequest)
discountCode
string or null
tip
number or null <double>
notes
string or null
allowOverlap
boolean
description
string
repeatIntervalWeeks
number <double>

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "salonId": "string",
  • "appointments": [
    ],
  • "discountCode": "string",
  • "tip": 0.1,
  • "notes": "string",
  • "allowOverlap": true,
  • "description": "string",
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

CreateBasket

Creates a new basket.

Authorizations:
jwt
header Parameters
client-id
string
Request Body schema: application/json
clientId
string
salonId
string
required
Array of objects (CreateBasketAppointmentRequest)
discountCode
string or null
tip
number or null <double>
notes
string or null
allowOverlap
boolean
description
string
repeatIntervalWeeks
number <double>

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "salonId": "string",
  • "appointments": [
    ],
  • "discountCode": "string",
  • "tip": 0.1,
  • "notes": "string",
  • "allowOverlap": true,
  • "description": "string",
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

CancelBasket

Cancels a basket and all its appointments.

Authorizations:
jwt
path Parameters
basketId
required
string
Request Body schema: application/json
note
string
cancelledBy
required
string (CancelledBy)
Enum: "CLIENT" "STYLIST" "SALON"
cancelChargeAmount
number <double>

Responses

Request samples

Content type
application/json
{
  • "note": "string",
  • "cancelledBy": "CLIENT",
  • "cancelChargeAmount": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

MarkBasketRunningLate

Marks a basket as running late with specified delay in minutes.

Authorizations:
jwt
path Parameters
basketId
required
string
Request Body schema: application/json
minutes
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "minutes": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

SetBasketRecurring

Sets recurring appointment settings for a basket. When repeatIntervalWeeks > 0, the basket will automatically create a new booking every N weeks. Set to 0 to disable recurring appointments.

Authorizations:
jwt
path Parameters
basketId
required
string
Request Body schema: application/json
repeatIntervalWeeks
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

GetBasketsByClientId

Retrieves baskets with enriched appointments for a specific client in a salon with optional filtering by past/upcoming and pagination.

Authorizations:
jwt
path Parameters
clientId
required
string

The client ID to filter baskets by

query Parameters
salonId
required
string

The salon ID to filter baskets by

type
string
Enum: "past" "upcoming"

Filter by 'past' or 'upcoming' baskets based on appointment dates

skip
number <double>
Default: 0

Number of records to skip for pagination

top
number <double>
Default: 10

Number of records to return (page size)

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "records": [
    ]
}

UpdateBasket

Updates a basket by completely replacing all appointments with new ones.

Authorizations:
jwt
path Parameters
basketId
required
string
header Parameters
client-id
string
Request Body schema: application/json
clientId
string
salonId
string
required
Array of objects (CreateBasketAppointmentRequest)
discountCode
string or null
tip
number or null <double>
notes
string or null
allowOverlap
boolean
description
string
repeatIntervalWeeks
number <double>

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "salonId": "string",
  • "appointments": [
    ],
  • "discountCode": "string",
  • "tip": 0.1,
  • "notes": "string",
  • "allowOverlap": true,
  • "description": "string",
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

CreateBasket

Creates a new basket via online booking.

Authorizations:
jwt
header Parameters
client-id
string
Request Body schema: application/json
clientId
string
salonId
string
required
Array of objects (CreateBasketAppointmentRequest)
discountCode
string or null
tip
number or null <double>
notes
string or null
allowOverlap
boolean
description
string
repeatIntervalWeeks
number <double>

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "salonId": "string",
  • "appointments": [
    ],
  • "discountCode": "string",
  • "tip": 0.1,
  • "notes": "string",
  • "allowOverlap": true,
  • "description": "string",
  • "repeatIntervalWeeks": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

CancelBasket

Cancels a basket and all its appointments.

Authorizations:
jwt
path Parameters
basketId
required
string
Request Body schema: application/json
note
string
cancelledBy
required
string (CancelledBy)
Enum: "CLIENT" "STYLIST" "SALON"
cancelChargeAmount
number <double>

Responses

Request samples

Content type
application/json
{
  • "note": "string",
  • "cancelledBy": "CLIENT",
  • "cancelChargeAmount": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

MarkBasketRunningLate

Marks a basket as running late with specified delay in minutes.

Authorizations:
jwt
path Parameters
basketId
required
string
Request Body schema: application/json
minutes
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "minutes": 0.1
}

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "mainClient": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "alertMessage": "string",
  • "isOnlineBooking": true,
  • "endDate": "2019-08-24T14:15:22Z",
  • "startDate": "2019-08-24T14:15:22Z",
  • "nextRebookDate": "2019-08-24T14:15:22Z",
  • "lastRebookCreatedAt": "2019-08-24T14:15:22Z",
  • "initialBasketId": "string",
  • "repeatIntervalWeeks": 0.1,
  • "runningLateAt": "2019-08-24T14:15:22Z",
  • "runningLateMinutes": 0.1,
  • "cancelChargeStatus": "PENDING",
  • "cancelChargeAmount": 0.1,
  • "cancellationNote": "string",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "cancelledBy": "CLIENT",
  • "description": "string",
  • "paymentIntentId": "string",
  • "status": "DRAFT",
  • "remainingAmount": 0.1,
  • "tipAmountPaid": 0.1,
  • "amountPaid": 0.1,
  • "total": 0.1,
  • "discounts": 0.1,
  • "subtotal": 0.1,
  • "paymentIds": [
    ],
  • "appointmentIds": [
    ],
  • "clientIds": [
    ],
  • "salonId": "string",
  • "mainClientId": "string",
  • "id": "string"
}

Jobs

SendAppointmentReminders

Manually trigger the 24-hour appointment reminder job This endpoint can be used for testing or manual job execution

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}