@datafire/zenoti v4.0.0
@datafire/zenoti
Client library for Zenoti Open
Installation and Usage
npm install --save @datafire/zenoti
let zenoti = require('@datafire/zenoti').create({
username: "",
password: "",
access_token: "",
refresh_token: "",
client_id: "",
client_secret: "",
redirect_uri: ""
});
.then(data => {
console.log(data);
});
Description
Zenoti Open APIs now help you manage the powerful capabilities offered through a suite of Open APIs.
Actions
oauthCallback
Exchange the code passed to your redirect URI for an access_token
zenoti.oauthCallback({
"code": ""
}, context)
Input
- input
object
- code required
string
- code required
Output
- output
object
- access_token
string
- refresh_token
string
- token_type
string
- scope
string
- expiration
string
- access_token
oauthRefresh
Exchange a refresh_token for an access_token
zenoti.oauthRefresh(null, context)
Input
This action has no parameters
Output
- output
object
- access_token
string
- refresh_token
string
- token_type
string
- scope
string
- expiration
string
- access_token
packages.packageId.get
Returns details of a package
zenoti.packages.packageId.get({
"centerId": "",
"packageId": ""
}, context)
Input
- input
object
- centerId required
string
: DataType: UniqueIdentifier(GUID) - packageId required
string
: DataType: UniqueIdentifier(GUID)
- centerId required
Output
- output
object
v1.Catalog.Appointments.AvailableTimes.post
Returns the open slots for the requested date and service at the requested center. Optionally, you can request a specific therapist to perform a service. In this case, the API returns the available slots for that therapist.
To get the slots, one has to request the following:
Key | Type | Description |
---|---|---|
RequiredSlotsCount | int | No of Slots you would like to request |
CenterId * | GUID | Unique Identifier of a Center |
CenterDate * | YYYY-MM-DDThh:mm:ssZ | Date of the availability you would like to check |
SlotBookings * | Array of slotBooking object | Service id has to be passed inside SlotBookings object. Service Id is mandatory. Optionally, you can pass Therapist Id too. For more details, refer to 'SlotBooking' object |
Note: Fields marked with *
are Mandatory.
Example Request:
{
"CenterId":"3af2cf2e-9d36-45ca-84bc-eb7a7ee4be0e",
"CenterDate":"2017-10-25",
"SlotBookings":[
{
"Services":[{
"Service":{
"Id":"ac3589f0-f3a0-4772-b2c5-f6e1c81312db"
},
"RequestedTherapist": {
"Id": "1a08e842-77c8-49b4-9d42-336c2dea4c0b"
}
}]
}]
}
zenoti.v1.Catalog.Appointments.AvailableTimes.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required GetCatalogAvaliableSlotsRequest
- Authorization
Output
- output
object
: Returns the ReservationId, SlotBookings, Open slots and error json blocks
v1.Catalog.Appointments.ConfirmReservation.post
Returns the confirmed reservation.
Request body parameters:
Fields | Value type | Description |
---|---|---|
ReservationNotes | string | Optional Notes at the time of confirmation |
ApplyAutomaticMembership | bool | Set it to 'true' if you want to apply membership |
CenterId * | GUID | Unique Identifier of the center |
ReservationId * | GUID | Unique Identifier of the Reservation from the ReserveSlots API Response |
BookingSource | Enum - Store = 0,Mobile = 1,Web = 2 | Source of the API caller |
Note: Fields marked with *
are mandatory.
zenoti.v1.Catalog.Appointments.ConfirmReservation.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
: Returns following Json fields.
v1.Catalog.Appointments.ReserveSlots.post
Reserves slots for the Appointment based on CenterId, CenterTime, GuestId, ServiceId and optionally, TherapistId.
The following are the details of the request
key | Value type | Description |
---|---|---|
CreateInvoice | boolean | Set this to 'true' if you want Invoice to be created |
ForceApplyAutomaticMembership | boolean | Set this to 'true' if you want to apply membership of the user |
CenterId * | GUID | Unique Identifier of the center |
CenterTime * | YYYY-MM-DDThh:mm:ssZ | Your preferred time slot |
ReservationNotes | string | Optional notes during the reservation |
SlotBookings * | Array of slotBooking object | This must contain ServiceId and GuestId. Refer to slotBooking for structure. You can optionally pass TherapistId |
Note: Fields marked with *
are mandatory.
Example Request :
{
"CreateInvoice": true,
"ForceApplyAutomaticMembership": true,
"CenterId":"3af2cf2e-9d36-45ca-84bc-eb7a7ee4be0e",
"CenterTime": "2017-09-27T17:00:00",
"SlotBookings":[
{
"GuestId": "e08a1e29-29b5-4757-abd6-6ed0a09b9f94",
"Services":[{
"Service":{
"Id":"ac3589f0-f3a0-4772-b2c5-f6e1c81312db"
},
"RequestTherapistGender":3,
"RequestedTherapist": {
"Id": "1a08e842-77c8-49b4-9d42-336c2dea4c0b"
}
}]
}]
}
zenoti.v1.Catalog.Appointments.ReserveSlots.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
: Returns a json containing the following:
v1.Catalog.Appointments.AppointmentGroupId.Feedback.get
Gets Feedback for a AppointmentgroupId.
zenoti.v1.Catalog.Appointments.AppointmentGroupId.Feedback.get({
"AppointmentGroupId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - AppointmentGroupId required
string
- Authorization
Output
- output
object
v1.Catalog.Appointments.AppointmentGroupId.Feedback.post
Creates Feedback for a AppointmentgroupId.
zenoti.v1.Catalog.Appointments.AppointmentGroupId.Feedback.post({
"body": {},
"AppointmentGroupId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
: All of the below fields are nullable - AppointmentGroupId required
string
- Authorization
Output
- output
object
v1.Catalog.Appointments.AppointmentId.AddOnService.post
Adds an Add on service To an Existing Appointment of the user.
zenoti.v1.Catalog.Appointments.AppointmentId.AddOnService.post({
"body": {},
"AppointmentId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
: Service id of the requested add on service is given as a json. - AppointmentId required
string
- Authorization
Output
- output
object
: returns the status of the add on service and appointment id of the add on service.
v1.Catalog.Appointments.AppointmentId.Cancel.post
Changes the appointment status to cancelled and also returns a boolean for "IsCancelChargesApplied" feild.
Appointment status("Status" feild) of cancelled is -1.
status | enum |
---|---|
NoShow | -2 |
Cancelled | -1 |
New | 0 |
Closed | 1 |
Checkin | 2 |
Confirm | 4 |
Break | 10 |
NotSpecified | 11 |
Available | 20 |
zenoti.v1.Catalog.Appointments.AppointmentId.Cancel.post({
"body": {},
"AppointmentId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
: Below are the Fields of input Json. - AppointmentId required
string
- Authorization
Output
- output
object
: returns the status of the add on service and appointment id of the add on service.
v1.Catalog.Appointments.AppointmentId.CustomData.Html.get
Gets the Html form for a particular AppointmentId
zenoti.v1.Catalog.Appointments.AppointmentId.CustomData.Html.get({
"AppointmentId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - AppointmentId required
string
- Authorization
Output
- output
object
v1.Catalog.Appointments.AppointmentId.HtmlCustomData.get
Gets the Html form data for a particular AppointmentId
zenoti.v1.Catalog.Appointments.AppointmentId.HtmlCustomData.get({
"AppointmentId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - AppointmentId required
string
- Authorization
Output
- output
object
: Description for the Json fields in the output Json
v1.Catalog.Appointments.AppointmentId.HtmlCustomData.post
Creates a Html form data for a particular AppointmentId
zenoti.v1.Catalog.Appointments.AppointmentId.HtmlCustomData.post({
"body": {},
"AppointmentId": ""
}, context)
Input
- input
object
- body required
object
: Description for the Json fields in the Input Json - AppointmentId required
string
- body required
Output
- output
object
: Success field is a bool , confirms success of form being created.
v1.Catalog.Appointments.ReservationId.CancelReservation.post
Cancels a Reservation.
zenoti.v1.Catalog.Appointments.ReservationId.CancelReservation.post({
"ReservationId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - ReservationId required
string
- Authorization
Output
- output
object
: Returns following Json Fields
v1.Catalog.Centers.get
Gets the list of centers in the organization. Optionally, you can pass one or more Service Ids to see the Service-Specific centers that are available.
zenoti.v1.Catalog.Centers.get({}, context)
Input
- input
object
- ServiceIds
string
: List of Service Ids given separately. Each Service Id is a unique identifier - Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- ServiceIds
Output
- output CenterModel
v1.Catalog.Centers.Organization.get
Gets List of all the Centers in the Organization
zenoti.v1.Catalog.Centers.Organization.get({}, context)
Input
- input
object
- CatalogEnabled
boolean
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- CatalogEnabled
Output
- output CenterModel
v1.Catalog.Guests.CheckUserName.get
Check if the guest is already existing in the system based on UserName. UserName is mandatory
zenoti.v1.Catalog.Guests.CheckUserName.get({}, context)
Input
- input
object
- userName
string
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- userName
Output
- output
object
:
v1.Catalog.Guests.ForgottenPassword.post
Get password reset link
zenoti.v1.Catalog.Guests.ForgottenPassword.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
v1.Catalog.Guests.Guest.GuestId.CreditCardsOnFile.get
Gets the Credit Cards on File for guest
Transaction Form
Enum | Value |
---|---|
Web | 1 |
WebStore | 2 |
CheckWeb | 4 |
Mobile | 8 |
MobilePOS | 16 |
zenoti.v1.Catalog.Guests.Guest.GuestId.CreditCardsOnFile.get({
"GuestId": "",
"CenterId": "",
"GuestId_path": ""
}, context)
Input
- input
object
- GuestId required
string
- CenterId required
string
- TransactionForm
integer
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - GuestId_path required
string
- GuestId required
Output
- output GetCreditCardsOnFileResponse
v1.Catalog.Guests.Guests.Memberships.UserMembershipId.get
Get balance details of a User MembershipId
zenoti.v1.Catalog.Guests.Guests.Memberships.UserMembershipId.get({
"UserMembershipId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - UserMembershipId required
string
- Authorization
Output
- output
object
v1.Catalog.Guests.Guests.GuestId.get
Obtain profile details of a guest user.
zenoti.v1.Catalog.Guests.Guests.GuestId.get({
"GuestId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - GuestId required
string
- Authorization
Output
- output GetGuestResponse
v1.Catalog.Guests.Logout.post
Delete a token on logout
zenoti.v1.Catalog.Guests.Logout.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
v1.Catalog.Guests.LoyaltyPrograms.get
Gets the Loyalty Programs that the guest possesses. Additionally, it fetches the following details of Loyalty Programs: | Id | Name | Balance | | -------- | -------- | -------- | | 61acbc7a-a37e-43ea-8a94-b1bf0aa6518e | lp test | 1987 |
zenoti.v1.Catalog.Guests.LoyaltyPrograms.get(null, context)
Input
This action has no parameters
Output
- output
object
v1.Catalog.Guests.LoyaltyPrograms.Summary.get
Returns the summary of loyalty points of a guest. It contains the following:
- Balance
- TierName
- StartDate
- EnrollmentStatus
- LPTierMaintainSpent
- SpentTillNow
- DowngradeDate
- DirectEnrollment
- ByPassDowngrade
- RecentEnrollDate
- PointsToSpendToStayInSameTierByDowngradeDate
zenoti.v1.Catalog.Guests.LoyaltyPrograms.Summary.get(null, context)
Input
This action has no parameters
Output
- output
object
v1.Catalog.Guests.LoyaltyPrograms.ProgramId.get
Additional details of a particular Loyalty Program of a Guest by Program Id are returned, transaction wise.
- GuestId
- InvoiceId
- AppGroupId(AppointmentGroupId)
- CenterName
- ByPassDowngrade
- PointsDate
- RedemptionFrom
- RedemptionTo
- CreateDate
- Loyalty Program Details - Id, Name, Earned, Redeemed, Available
zenoti.v1.Catalog.Guests.LoyaltyPrograms.ProgramId.get({
"ProgramId": ""
}, context)
Input
- input
object
- ProgramId required
string
- ProgramId required
Output
- output
object
v1.Catalog.Guests.PastAppointments.get
To get the list of past bookings for the logged in guest
zenoti.v1.Catalog.Guests.PastAppointments.get({}, context)
Input
- input
object
- Page
integer
- Size
integer
- Sorters
string
- Filters
string
- startDate
string
- endDate
string
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- Page
Output
- output GetPastAppointmentsResponse
v1.Catalog.Guests.Register.post
Creates a new guest user account by providing the mandatory fields. First name and Last name are mandatory. According to your organization settings, email/phone number is mandatory to maintain uniqueness of the guest. Along side, the recent verificationId has to be passed in the request. CenterId is mandatory.
The request contains the following:
Field | Value Type | Description |
---|---|---|
VerificationId * | GUID | VerificationId you get from OTP API |
CenterId * | GUID | Unique Identifier. Guest should register at a center |
Guest * | Guest Model object | FirstName, LastName, Gender, Mobile Number, Email, Password |
Fields marked with *
are mandatory.
Exapmle request :
{
"VerificationId": "string",
"CenterId": "string",
"Guest": {
"FirstName": "string",
"LastName": "string",
"Email": "string",
"MobileNumber": "string",
"MobilePhoneModel": {
"CountryId": 0,
"Number": "string",
"DisplayNumber": "string"
},
"Gender": 0,
"DateOfBirth": "2017-09-13T04:48:01.773Z",
"AnniversaryDate": "2017-09-13T04:48:01.773Z",
"Address1": "string",
"Address2": "string",
"City": "string",
"PostalCode": "string",
"State": {
"Id": 0,
"Code": "string",
"Name": "string",
"ShortName": "string"
},
"Country": {
"Id": 0,
"Code": "string",
"Name": "string",
"PhoneCode": 0,
"Nationality": "string"
},
"Nationality": {
"Id": 0,
"Code": "string",
"Name": "string",
"PhoneCode": 0,
"Nationality": "string"
},
"ReferralSource": {
"Id": "string",
"Name": "string"
},
"ReferredGuestId": "string",
"ReceiveTransactionalSms": true,
"ReceiveMarketingEmail": true,
"ReceiveTransactionalEmail": true,
"ReceiveMarketingSms": true,
"DOB_IncompleteYear": "string",
"Password": "string",
"UserName": "string",
}
}
zenoti.v1.Catalog.Guests.Register.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
v1.Catalog.Guests.SendOtp.post
Create OTP for a guest account verification
Example Request :
{
"Email": "string",
"Phone": {
"CountryId": 0,
"Number": "string",
"DisplayNumber": "string"
},
"CenterId": "string"
}
zenoti.v1.Catalog.Guests.SendOtp.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
v1.Catalog.Guests.UpcomingAppointments.get
To get the list of future bookings for the logged in guest
zenoti.v1.Catalog.Guests.UpcomingAppointments.get({}, context)
Input
- input
object
- Page
integer
- Size
integer
- Sorters
string
- Filters
string
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- Page
Output
v1.Catalog.Guests.Update.post
Creates a new guest user account by providing an email address or through a Facebook sign-up.
zenoti.v1.Catalog.Guests.Update.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
v1.Catalog.Guests.VerifyOtp.post
Verify a guest account based on the generated OTP
Example Request :
{
"VerificationId": "string",
"OTP": "string",
"CenterId": "string"
}
zenoti.v1.Catalog.Guests.VerifyOtp.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
- Authorization
Output
- output
object
v1.Catalog.Invoices.ApplyCampaign.post
Apply a Promo or Campaign given a Campaign Code
zenoti.v1.Catalog.Invoices.ApplyCampaign.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - body required
object
: Input Json Fields
- Authorization
Output
- output AppointmentGroupModel
v1.Catalog.Invoices.InvoiceId.get
Returns the requested invoice details. {InvoiceId} is a Unique Identifier and is mandatory.
zenoti.v1.Catalog.Invoices.InvoiceId.get({
"InvoiceId": ""
}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - InvoiceId required
string
- Authorization
Output
- output AppointmentGroupModel
v1.Catalog.Organization.get
Gets Details of the Organization
zenoti.v1.Catalog.Organization.get({}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- Authorization
Output
- output OrganizationModel
v1.Catalog.Organization.Label.get
Gets Labels of the Organization
zenoti.v1.Catalog.Organization.Label.get({}, context)
Input
- input
object
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- Authorization
Output
- output OrganizationModel
v1.Catalog.Services.get
Gets the list of all the services available in a specific center. If a service category is requested along, the services in that category are returned.
zenoti.v1.Catalog.Services.get({
"CenterId": ""
}, context)
Input
- input
object
- CenterId required
string
: Unique Identifier of the Selected Center - page
integer
: Page number of the results - size
integer
: Number of results in each page - defaultPage
integer
- defaultSize
integer
- Sorters
array
- filters
array
- CategoryId
string
: Unique Identifier of the Category - SearchString
string
- Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- CenterId required
Output
- output CenterModel
v1.Catalog.Services.Categories.get
Gets the list of service categories that are used for grouping services into different areas such as hair or skin. You can request categories under a particular center or a particular parent category
zenoti.v1.Catalog.Services.Categories.get({}, context)
Input
- input
object
- CenterId
string
: Unique Identifier of the center - parentCategoryId
string
: Unqiue Identifier of Parent Category - Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- CenterId
Output
- output CenterModel
v1.Catalog.Services.ServiceId.get
Gets detailed information about a particular service. {ServiceId} is a Unique Identifer of a service.
zenoti.v1.Catalog.Services.ServiceId.get({
"CenterId": "",
"ServiceId": ""
}, context)
Input
- input
object
- CenterId required
string
: Unique Identifier of the center - parentCategoryId
string
: Unique Identifier of the Category - Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal - ServiceId required
string
- CenterId required
Output
- output CenterModel
v1.Catalog.Therapists.get
Gets the available therapists for a specified time, service and center
zenoti.v1.Catalog.Therapists.get({
"CenterId": "",
"searchString": ""
}, context)
Input
- input
object
- CenterId required
string
: Center Id - searchString required
string
: string - page
string
: Page number of the results - size
string
: Number of results in each page - defaultPage
string
- defaultSize
string
- Sorters
array
- filters
array
- ServiceId
string
: GUID - forDate
string
: YYYY-MM-DD - Authorization
string
: Security token - Apikey
string
: Issued Api key issued from apigee portal
- CenterId required
Output
- output CenterModel
v1.Collections.Center.CenterId.get
zenoti.v1.Collections.Center.CenterId.get({
"CenterId": ""
}, context)
Input
- input
object
- StartDate
string
- EndDate
string
- ShowTaxBreakUp
boolean
- Authorization
string
: Access Token - Content-Type
string
: Application/Json - CenterId required
string
- StartDate
Output
- output GetCenterCollectionsResponse
v1.Collections.OnlineTransactions.CenterId.get
Below is the description of the enums used.
TransactionType - enum
enum | value |
---|---|
All | 0 |
Authorize | 1 |
Refund | 2 |
Reversal | 3 |
Sale | 4 |
Voided | 5 |
TransactionStatus - enum
feild | value |
---|---|
All | 0 |
CCCompleteNotYetSubmitted | 1 |
Error | 2 |
Failed | 3 |
Originated | 4 |
Pending | 5 |
Queued | 6 |
Returned | 7 |
Settled | 8 |
Success | 9 |
Voided | 10 |
View - enum
feild | value |
---|---|
Default | 1 |
Deposit | 2 |
zenoti.v1.Collections.OnlineTransactions.CenterId.get({
"CenterId": ""
}, context)
Input
- input
object
- StartDate
string
- EndDate
string
- TransctionType
integer
: enum - TranctionStatus
integer
: enum - CardLogo
string
- View
integer
: enum - Authorization
string
: Access Token - Content-Type
string
: Application/Json - CenterId required
string
- StartDate
Output
- output GetOnlineTransactionResponse
v1.Collections.PaymentGroups.get
zenoti.v1.Collections.PaymentGroups.get({}, context)
Input
- input
object
- StartDate
string
- EndDate
string
- Page
integer
- Authorization
string
: Access Token - Content-Type
string
: Application/Json
- StartDate
Output
- output
object
v1.Collections.PaymentStatus.post
below is the example for request body
{
"CenterId": "7f7ace7c-574a-4e7f-922a-388a9f59f2b5",
"data": [
{
"PaymentID": 1,
"Status": "sample string 2",
"Amount": 3.0
},
{
"PaymentID": 1,
"Status": "sample string 2",
"Amount": 3.0
}
]
}
zenoti.v1.Collections.PaymentStatus.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Access Token - Content-Type
string
: Application/Json - body required
object
- Authorization
Output
- output
object
v1.Invoices.Add.post
Add an Invoice. Add Services, Memberships, Packages, GiftCards through creating an invoice.
Sample Request ( For Buying a membership):
{ "Invoice": { "InvoiceMemberships": { "AppointmentMembership": { "Membership": { "VersionId": "2431EBCB-097B-48AD-BE20-DAB1E979C145" }, "Employee": { "Id": "6372bb51-e507-4431-b0cc-6be2143bb99a" }, "Quantity": 1 } } }, "CenterId": "9a895b3c-1994-42c0-bc61-efda4a6e2828", "GuestId": "51c5d84b-a4db-4cd6-bb3e-0d410642da66", "IsForced": true, "Notes": "text" }
zenoti.v1.Invoices.Add.post({
"body": {}
}, context)
Input
- input
object
- CenterId
string
: Unique Identifer - GuestId
string
: Unique Identifer - IsForced
boolean
: Invoice to be forced - Notes
string
: Any notes to be required - Invoice
string
: Invoice model object - body required
object
: {
- CenterId
Output
- output
object
: {
v1.Invoices.Checkout.post
Check out Invoice
Sample Request:
{ "InvoiceId": "22b0d290-1284-4075-9439-9855bd18da27", "AppointmentGroupId": "aa979551-8f99-4aad-a833-f53096485bac" }
zenoti.v1.Invoices.Checkout.post({
"body": {}
}, context)
Input
- input
object
- body required
object
: {
- body required
Output
- output
object
: {
v1.Invoices.InvoiceId.get
Get Invoice Details via Invoice Id
zenoti.v1.Invoices.InvoiceId.get({
"InvoiceId": ""
}, context)
Input
- input
object
- InvoiceId required
string
: Unique Identifier
- InvoiceId required
Output
- output
object
: {
v1.Revenues.InvoiceItem.CenterId.get
ItemType | value |
---|---|
Service | 0 |
Product | 2 |
Membership | 3 |
Package | 4 |
Day Package | 5 |
Pre-Paid/GiftCard | 6 |
zenoti.v1.Revenues.InvoiceItem.CenterId.get({
"CenterId": ""
}, context)
Input
- input
object
- StartDate
string
- EndDate
string
- ItemType
integer
- MembershipType
integer
- IncludeExpiredPackageRevenue
boolean
- ConsiderRefunds
boolean
- Authorization
string
: Access Token - Content-Type
string
: Application/Json - CenterId required
string
: UniqueIdentifier
- StartDate
Output
v1.appointments.get
API returns a list of appointments based on multiple criterias provided by the caller.
zenoti.v1.appointments.get({
"startdate": "",
"enddate": ""
}, context)
Input
- input
object
- centerid
string
: Center id - startdate required
string
: Start date and time of the appointment - enddate required
string
: End date and time of the appointment - status
integer
(values: -2, -1, 0, 1, 2, 4, 10, 11, 20): Status of the appointment
- centerid
Output
- output
array
- items appointment
AppointmentsApi_ConfirmReservation
API is used to create a confirmed appointment. It is expected that following information is sent as the request body.
{"CenterId":"adb0c9cd-5357-440d-8ee4-4557c6241271","ReservationId":"ab2549c1-aea3-476e-b16b-d856f4363b03"}
Security:
API requires a security token of user with write permission on Appointments.
zenoti.AppointmentsApi_ConfirmReservation({
"body": {}
}, context)
Input
- input
object
- ApiKey
string
: Issued API key - Authorization
string
: Security token - body required ConfirmReservationRequest
- ApiKey
Output
- output
object
v1.appointments.put
API is used to update the existing appointment.
zenoti.v1.appointments.put({
"body": {
"appointment_id": ""
}
}, context)
Input
- input
object
- body required appointment
Output
Output schema unknown
v1.appointments.AddFeedback.post
zenoti.v1.appointments.AddFeedback.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.AddNotes.post
zenoti.v1.appointments.AddNotes.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.Admin.Sessions.get
zenoti.v1.appointments.Admin.Sessions.get(null, context)
Input
This action has no parameters
Output
- output
object
v1.appointments.Admin.Sessions.post
To enroll/register a guest for a session by Admin
zenoti.v1.appointments.Admin.Sessions.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
Output schema unknown
v1.appointments.ConfirmReservation.post
Example Request :
{
"CenterId": "string",
"ReservationId": "string",
"BookingSource": 0,
"HostId": "string",
"SlotBookings": [
{
"GuestId": "string",
"AppointmentGroupId": "string",
"Services": [
{
"AppointmentId": "string",
"InvoiceItemId": "string",
"CartItemId": "string",
"AppointmentSegmentId": "string",
"PackageId": "string",
"Package": {
"Id": "string",
"Name": "string",
"Description": "string",
"Code": "string",
"Type": 1,
"Price": {
"CurrencyId": 0,
"Sales": 0,
"Tax": 0,
"Final": 0,
"Final1": 0,
"Discount": 0,
"Tip": 0,
"SSG": 0,
"RoundingCorrection": 0
},
"Services": [
{
"Id": "string",
"Name": "string",
"Price": {
"CurrencyId": 0,
"Sales": 0,
"Tax": 0,
"Final": 0,
"Final1": 0,
"Discount": 0,
"Tip": 0,
"SSG": 0,
"RoundingCorrection": 0
},
"Duration": 0,
"CategoryId": "string",
"IsAddOn": true,
"HasAddOns": true,
"AddOnToServiceId": "string",
"CategoryName": "string",
"AddOns": [
{}
],
"IsVariant": true,
"HasVariant": true,
"ParentServiceId": "string",
"CartItemId": "string"
}
],
"Items": [
{
"Type": 1,
"Id": "string",
"Name": "string",
"Quantity": 0,
"Order": 0,
"Service": {
"Id": "string",
"Name": "string",
"Price": {
"CurrencyId": 0,
"Sales": 0,
"Tax": 0,
"Final": 0,
"Final1": 0,
"Discount": 0,
"Tip": 0,
"SSG": 0,
"RoundingCorrection": 0
},
"Duration": 0,
"CategoryId": "string",
"IsAddOn": true,
"HasAddOns": true,
"AddOnToServiceId": "string",
"CategoryName": "string",
"AddOns": [
{}
],
"IsVariant": true,
"HasVariant": true,
"ParentServiceId": "string",
"CartItemId": "string"
}
}
]
},
"Service": {
"Id": "string",
"Name": "string",
"Price": {
"CurrencyId": 0,
"Sales": 0,
"Tax": 0,
"Final": 0,
"Final1": 0,
"Discount": 0,
"Tip": 0,
"SSG": 0,
"RoundingCorrection": 0
},
"Duration": 0,
"CategoryId": "string",
"IsAddOn": true,
"HasAddOns": true,
"AddOnToServiceId": "string",
"CategoryName": "string",
"AddOns": [
{}
],
"IsVariant": true,
"HasVariant": true,
"ParentServiceId": "string",
"CartItemId": "string"
},
"RequestedTherapistGender": 0,
"StartTime": "2017-09-04T04:51:31.647Z",
"EndTime": "2017-09-04T04:51:31.647Z",
"StartTimeInCenter": "2017-09-04T04:51:31.647Z",
"EndTimeInCenter": "2017-09-04T04:51:31.647Z",
"Room": {
"Id": "string",
"Name": "string"
},
"Lock": true,
"Equipment": {
"Id": "string",
"Name": "string"
},
"Status": 0,
"RequestedTherapist": {
"Id": "string",
"ShortName": "string",
"NickName": "string",
"FullName": "string",
"Email": "string",
"PhoneNumber": "string",
"MobilePhoneModel": {
"CountryId": 0,
"Number": "string",
"DisplayNumber": "string"
},
"Gender": 0,
"FirstName": "string",
"LastName": "string",
"IsAvailable": true,
"VanityImageUrl": "string",
"ScalingFactor": 0,
"ScaledPrice": 0,
"ServiceTime": 0,
"DisplayName": "string"
},
"Quantity": 0,
"Price": {
"CurrencyId": 0,
"Sales": 0,
"Tax": 0,
"Final": 0,
"Final1": 0,
"Discount": 0,
"Tip": 0,
"SSG": 0,
"RoundingCorrection": 0
},
"SCD": "string",
"ActualStartTime": "2017-09-04T04:51:31.647Z",
"CompletedTime": "2017-09-04T04:51:31.647Z",
"Progress": 0,
"ParentAppointmentId": "string",
"ServiceCustomData": {
"Permission": {
"CanView": true,
"CanEdit": true
}
},
"ItemActions": "string",
"EquivalenceFactor": 0,
"EquivalentName": "string",
"IsMembershipApplied": true,
"IsAddOn": true,
"AddonAppointmentId": "string",
"IsPackageApplied": true,
"IsDiscountApplied": true,
"CanModifyTherapist": true
}
],
"TherapistId": "string",
"RoomId": "string",
"Quantity": 0,
"BookingNotes": "string",
"Price": {
"CurrencyId": 0,
"Sales": 0,
"Tax": 0,
"Final": 0,
"Final1": 0,
"Discount": 0,
"Tip": 0,
"SSG": 0,
"RoundingCorrection": 0
},
"VirtualGuest": {
"FirstName": "string",
"LastName": "string",
"Email": "string",
"Mobile": {
"CountryId": 0,
"Number": "string",
"DisplayNumber": "string"
},
"Gender": 0
},
"CartItemIds": [
"string"
]
}
]
}
zenoti.v1.appointments.ConfirmReservation.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output ConfirmReservationResponse
v1.appointments.CustomData.post
zenoti.v1.appointments.CustomData.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.Month.Year.Month.get
zenoti.v1.appointments.Month.Year.Month.get({
"Year": "",
"Month": ""
}, context)
Input
- input
object
- Year required
string
- Month required
string
- Year required
Output
- output
object
v1.appointments.add.post
This API can be called to add an appointment.
Parameters
Parameter | Type | Description | |
---|---|---|---|
AppointmentGroupId | GUID | Unique identifier for the appointment | |
Comments | String | Comments for No Show |
Security: Permissions required to call this API.
zenoti.v1.appointments.add.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.alternatives.put
Update the appointment for the alternative
zenoti.v1.appointments.alternatives.put({
"body": {
"appointment_id": ""
}
}, context)
Input
- input
object
- body required appointment
Output
- output appointment
AppointmentsApi_GetAvailableSlotsV2
The API returns a list of available appointments. API expects that following information be passed in the Request body.
{"CenterId":"adb0c9cd-5357-440d-8ee4-4557c6241271","CenterDate":"2017-05-08","SlotBookings":[{"Services":[{"Service":{"Id":"8b15f00d-0594-4975-8d27-c88a3c64bfab"}}]}]}
Security:
API requires a security token for a user with read permission on Appointments.
zenoti.AppointmentsApi_GetAvailableSlotsV2({
"body": {}
}, context)
Input
- input
object
- ApiKey
string
: Issued API key - Authorization
string
: Security token - body required
object
- ApiKey
Output
- output GetAvailableSlotsV2Response
v1.appointments.availabletimes.post
zenoti.v1.appointments.availabletimes.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.bulkbookingGuestdetails.post
zenoti.v1.appointments.bulkbookingGuestdetails.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.bulkbookingavailabletimes.post
zenoti.v1.appointments.bulkbookingavailabletimes.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.bulkbookingconfirmreservation.post
zenoti.v1.appointments.bulkbookingconfirmreservation.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.bulkbookingreserveslots.post
zenoti.v1.appointments.bulkbookingreserveslots.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.cancel.post
This API can be called to cancel an existing appointment.
Parameters
Parameter | Type | Description |
---|---|---|
AppointmentGroupId | GUID | Unique identifier for the appointment |
ReasonId | INT | Reason for cancellation of appointment |
Comments | String | Comments for cancellation |
Security: Permissions required to call this API.
zenoti.v1.appointments.cancel.post({
"body": {}
}, context)
Input
- input
object
- body required CancelAppointmentRequest
Output
Output schema unknown
v1.appointments.noshow.post
This API can be called to Mark No Show for an existing appointment.
Parameters
Parameter | Type | Description | |
---|---|---|---|
AppointmentGroupId | GUID | Unique identifier for the appointment | |
Comments | String | Comments for No Show |
Security: Permissions required to call this API.
zenoti.v1.appointments.noshow.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.reebook.post
This API can be called to cancel an existing appointment.
Parameters
Parameter | Type | Description |
---|---|---|
AppointmentGroupId | GUID | Unique identifier for the appointment |
ReasonId | INT | Reason for cancellation of appointment |
Comments | String | Comments for cancellation |
Security: Permissions required to call this API.
zenoti.v1.appointments.reebook.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.reserveslots.post
zenoti.v1.appointments.reserveslots.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.setstatus.post
Below are the respective statuses for the value of the status tag in the input.
status | value |
---|---|
New | 0 |
Checkin | 2 |
Undo Checkin | 0 |
Confirm | 4 |
zenoti.v1.appointments.setstatus.post({
"body": {}
}, context)
Input
- input
object
- API Key
string
: issued key - Authorization
string
: security token - body required
object
- API Key
Output
- output
object
AppointmentsApi_ReserveSlots
The API is used to reserve a temporary Appointment slot. API expects following information be sent in the Request body.
{"CenterId":"adb0c9cd-5357-440d-8ee4-4557c6241271","CenterTime":"2017-05-05 12:00:00","SlotBookings":[{"GuestId":"2e24d650-d7b4-473e-9bf3-b835c882cf35","Services":[{"Service":{"Id":"8b15f00d-0594-4975-8d27-c88a3c64bfab"}}],"StartTime":"2017-05-05 12:00:00"}]}
Security:
API requires a security token for user with write permission on Appointments.
zenoti.AppointmentsApi_ReserveSlots({
"body": {}
}, context)
Input
- input
object
- ApiKey
string
: Issued API key - Authorization
string
: Security token - body required ReserveSlotsRequest
- ApiKey
Output
- output ReserveSlotsResponse
v1.appointments.update.post
This API can be called to cancel an existing appointment.
Parameters
Parameter | Type | Description |
---|---|---|
AppointmentGroupId | GUID | Unique identifier for the appointment |
ReasonId | INT | Reason for cancellation of appointment |
Comments | String | Comments for cancellation |
Security: Permissions required to call this API.
zenoti.v1.appointments.update.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.updatebulkbookingGuestdetails.post
zenoti.v1.appointments.updatebulkbookingGuestdetails.post({
"body": {}
}, context)
Input
- input
object
- body required
object
- body required
Output
- output
object
v1.appointments.AppointmentFieldId.CustomDataFile.post
zenoti.v1.appointments.AppointmentFieldId.CustomDataFile.post({
"body": {},
"AppointmentFieldId": ""
}, context)
Input
- input
object
- AppointmentId
string
: GUID - body required
object
- AppointmentFieldId required
string
- AppointmentId
Output
- output
object
v1.appointments.AppointmentFieldValue.CustomDataImage.get
zenoti.v1.appointments.AppointmentFieldValue.CustomDataImage.get({
"AppointmentFieldValue": ""
}, context)
Input
- input
object
- AppointmentId
string
: GUID - AppointmentFieldValue required
string
- AppointmentId
Output
- output
object
v1.appointments.AppointmentFieldValue.CustomDataImage.post
Uploads service custom data image for a given field. The file name should be of the format field id.extension of image
zenoti.v1.appointments.AppointmentFieldValue.CustomDataImage.post({
"AppointmentFieldValue": ""
}, context)
Input
- input
object
- AppointmentFieldValue required
string
- AppointmentFieldValue required
Output
- output
object
v1.appointments.AppointmentFieldValue.UploadCustomDataImage.post
Uploads service custom data image for a given field. The file name should be of the format field id.extension of image
zenoti.v1.appointments.AppointmentFieldValue.UploadCustomDataImage.post({
"AppointmentFieldValue": ""
}, context)
Input
- input
object
- AppointmentFieldValue required
string
- AppointmentFieldValue required
Output
- output
object
v1.appointments.AppointmentGroupId.setprogress.post
Below are the respective statuses for the value of the status tag in the input.
| status | value | | New | 0 | | Checkin | 1 | | Undo Checkin | 2 | | Confirm | 3 |
zenoti.v1.appointments.AppointmentGroupId.setprogress.post({
"body": {},
"AppointmentGroupId": ""
}, context)
Input
- input
object
- API Key
string
: issued key - Authorization
string
: security token - body required
object
- AppointmentGroupId required
string
- API Key
Output
- output
object
v1.appointments.AppointmentId.CustomData.get
zenoti.v1.appointments.AppointmentId.CustomData.get({
"AppointmentId": ""
}, context)
Input
- input
object
- AppointmentId required
string
- AppointmentId required
Output
- output
object
v1.appointments.AppointmentId.CustomData.History.get
zenoti.v1.appointments.AppointmentId.CustomData.History.get({
"AppointmentId": ""
}, context)
Input
- input
object
- AppointmentId required
string
- AppointmentId required
Output
- output
object
v1.appointments.AppointmentId.CustomData.AppointmentFieldId.Annotations.get
zenoti.v1.appointments.AppointmentId.CustomData.AppointmentFieldId.Annotations.get({
"AppointmentId": "",
"AppointmentFieldId": ""
}, context)
Input
- input
object
- AppointmentId required
string
- AppointmentFieldId required
string
- AppointmentId required
Output
- output
object
v1.appointments.AppointmentId.SendMail.post
zenoti.v1.appointments.AppointmentId.SendMail.post({
"body": {},
"AppointmentId": ""
}, context)
Input
- input
object
- AppointmentId_query
string
: GUID - body required
object
- AppointmentId required
string
- AppointmentId_query
Output
- output
object
v1.appointments.appointmentgroupid.get
This API gets us an appointment group json object, which has the details of the appointment for the particular appointment group id.
zenoti.v1.appointments.appointmentgroupid.get({
"appointmentgroupid": ""
}, context)
Input
- input
object
- API key
string
: Issued API key - Authorization
string
: Security Token - appointmentgroupid required
string
- API key
Output
- output GetAppointmentGroupResponse
v1.appointments.appointmentgroupid.invoice.get
Gets invoice Details for a particular appointment group id
zenoti.v1.appointments.appointmentgroupid.invoice.get({
"appointmentgroupid": ""
}, context)
Input
- input
object
- Authorization
string
: security token - API Key
string
: issued API key - appointmentgroupid required
string
- Authorization
Output
- output
object
CentersApi_GetCenters
API returns a list of Centers that the user is authorized to view.
Security:
API requires a security token for a user with read permission on Centers.
zenoti.CentersApi_GetCenters({}, context)
Input
- input
object
- CatalogEnabled
boolean
: True shows only catalog enabled values - ApiKey
string
: Issued API key - Authorization
string
: Security token
- CatalogEnabled
Output
- output GetCentersResponse
CentersApi_GetCenterDetails
API returns the details of a specific center.
Security:
API requires a security token for a user with read permission on Centers.
zenoti.CentersApi_GetCenterDetails({
"CenterId": ""
}, context)
Input
- input
object
- ApiKey
string
: Issued API key - Authorization
string
: Security token - CenterId required
string
- ApiKey
Output
- output GetCenterDetailsResponse
v1.employees.post
fields that need to be unique : Code , UserName , Email
zenoti.v1.employees.post({
"body": {}
}, context)
Input
- input
object
- Authorization
string
: Token - body required AddEmployeeDetailRequest
- Authorization
Output
- output AddEmployeeDetailResponse
v1.employees.performance.get
For providing the performance data for the employee.
zenoti.v1.employees.performance.get({}, context)
Input
- input
object
- start_date
string
: Start Date to show the Employee performance report. - end_date
string
: EndDate till which the performance is to be displayed - employee_id
string
: Employee Id to provide the performance report for. - job_id
string
: Job id to filter out the employees with that job - center_id
string
: Center Id to check for - Authorization
string
: To authorize the api from unwanted calls
- start_date
Output
- output
object
- employee_perfomances
array
- items employee_performance
- error error
- employee_perfomances
v1.employees.sales.get
Get Sales report of employees
zenoti.v1.employees.sales.get({
"start_date": "",
"end_date": ""
}, context)
Input
- input
object
- start_date required
string
: StartDate for the sales report to be calculated - end_date required
string
: EndDate for the sales report to be calculated - employee_id
string
: Employee id to provide report for - job_id
string
: JobId is to fetch for the employees with that job id. - center_id
string
: Center Id to look for - Authorization
string
: To Authorize the api calls
- start_date required
Output
- output
object
- employee_sales employee_sales
- error error
v1.employees.employee_id.payroll.get
Get the payroll report of the employee
zenoti.v1.employees.employee_id.payroll.get({
"employee_id": ""
}, context)
Input
- input
object
- start_date
string
: Start Date to get the payroll report for - end_date
string
: End Date to get the payroll report for - employee_id required
string
- start_date
Output
Output schema unknown
v1.giftcards.giftcard_id.get
Get details of a giftcard. API accepts a giftcard_id to return the response. Giftcard_id refers to the unique identifier stored in Zenoti and is not the same as the giftcard number.
Security: A user who has read access to giftcards object can call this API to get giftcard details. User role must also have API Access permission.
Note: It is not secure to create a GET API that fetches giftcard details by passing giftcard number as either a path parameter or a query parameter, because this information may reside in browser history, and can be misused. If we need an API that returns giftcard details by passing a giftcard number, we will need to create a POST api that accepts giftcard number in the request body.
zenoti.v1.giftcards.giftcard_id.get({
"giftcard_id": ""
}, context)
Input
- input
object
- giftcard_id required
string
- giftcard_id required
Output
GuestsApi_SearchGuests
This API returns a list of Guest objects that match one or more of the parameters listed below. For instance, if there is a need to check if a Guest already exists in the system based on an email, this API can help.
a. UserCode
b. MobileNumber
c. Email
d. FirstName
e. LastName
In the response JSON, only the following fields have desired values, others are reserved for future use.
a. Guest id - This is a GUID that refers to the guest.
b. First name
c. Last name
d. Mobile phone model - DisplayNumber contains the full mobile number to use, other fields are reserved for future use.
e. Gender
f. Email
Return values:
a. If request.count value is not provided, the API returns a maximum of 100 records.
b. If the search string doesn't match any guest, it will return 200 OK, with no guests in the response JSON
c. The results will be sorted on the basis of first name only
Security:
API requires a security token of an admin user with read permission on Guests.
zenoti.GuestsApi_SearchGuests({}, context)
Input
- input
object
- request.centerId
string
: CenterId in GUID format - request.searchValue
string
: Search string across five different fields - request.count
integer
: Controls total number of records in results - request.page
integer
: Specific page count to be returned - request.size
integer
: Not used - request.sorters
array
: Fields on which results are sorted - request.filters
array
: Not used - ApiKey
string
: Issued API key - Authorization
string
: Security token
- request.centerId
Output
- output SearchGuestsResponse
GuestsApi_AddGuest
First name and Last name are always mandatory. Depending on the settings on your system, more fields will be mandatory - check the Add Guest page on your site (Loyalty→Manage Guests). One or more of the following may be set as mandatory:
a. Mobile number
b. Email
c. Birthday
d. Address1
e. City
f. State
g. Country
h. Nationality
i. Referral Source
j. Gender
Please note that the API user has to send one of the following values for Gender:
-1 - NotSpecified
0 - Female
1 - Male
Validate = true should be passed at all time so that input can be validated.
Security:
API requires a security token of an admin user with write permission on Guest.
zenoti.GuestsApi_AddGuest({
"body": {}
}, context)
Input
- input
object
- ApiKey
string
: Issues API key - Authorization
string
: Security Token - body required AddGuestRequest
- ApiKey
Output
- output AddGuestResponse
GuestsApi_GetGuest
API can be used to obtain details of a particular Guest user by passing a GuestId.
Security:
API requires security token of an admin with read permission on Guest, or that of a user who has permission to read information for a particular Guest.
zenoti.GuestsApi_GetGuest({
"guest_id": ""
}, context)
Input
- input
object
- request.type
integer
(values: 0, 1): User Type - ApiKey
string
: Issued API key - Authorization
string
: Security token - guest_id required
string
- request.type
Output
- output GetGuestResponse
v1.guests.guest_id.put
API is used to perform update on the details of a guest. One or more values from below list can be updated.
Parameter | Data Type | Description |
---|---|---|
firstname | string | First name of the guest |
middlename | string | Middle name of the guest |
lastname | string | Last name of the guest |
email* | string | Email address of the guest |
password | string | New password |
mobilephonemodel | object | Refer to phone object definition. |
homephonemodel | object | Refer to phone object definition. |
gender | string | male, female, other |
dateofbirth | datetime | yyyy-mm-ddThh:mm:ss.SSSZ |
anniversarydate | datetime | yyyy-mm-ddThh:mm:ss.SSSZ |
address1 | string | Address field |
address2 | string | Address field |
city | string | City of the guest |
postalcode | string | Zip code |
state | object | Refer to state object definition in request body |
country | object | Refer to country object definition in request body |
nationality | object | Refer to nationality object definition in request body |
referralsource | object | Refer to referralsource object definition in request body |
referredguest_id | string | |
receivetransactionalemail | boolean | |
receivetransactionalsms | boolean | |
receivemarketingemail | boolean | |
receivemarketingsms | boolean | |
creationdate | datetime | |
updatedate | datetime | |
center_id | string | |
is_member | boolean | Indicates if guest is a valid member. |
dob_incompleteyear | string | Date of birth without year information. |
Security: Requires an authorization for read and write permission on the guest object. * Edit Email and Edit Mobile permission should be enabled for the user.
API Specific Errors:
Error Code | Error Message | Note |
---|---|---|
503 | MissingInput | One or more required input is missing |
414 | GuestNotFound | Guest is not found |
441 | UserCodeAlreadyExists | Code already exists |
442 | UserEmailAlreadyExists | Email address already exists |
481 | GuestMandatoryFieldsMissing | Mandatory fields are missing |
482 | MobileNumberNotInLengthRange | Mobile Number is outside the length range |
484 | CountryIsNotValid | Invalid code provided for the country |
484 | NationalityIsNotValid | Invalid code provided for the nationality |
484 | StateIsNotValid | Invalid code provided for the state |
Sample code:
{
"guest": {
"firstname": "TestGuest2SK",
"middlename": "Changed",
"lastname": "TestGuest1SK",
"email": "TestGuest1SrK@zenoti.com",
"mobilephonemodel": {
"countryid": 91,
"number": "9000498410"
},
"password":"changed1",
"ReferralSource":{
"Id":"3db2bb19-7430-4608-b34e-be44e64ac692"
}
}
}
zenoti.v1.guests.guest_id.put({
"body": {},
"guest_id": ""
}, context)
Input
- input
object
- apikey
string
- authorization
string
- body required
object
- guest guest
- guest_id required
string
- apikey
Output
- output
object
: Response body.- guest guest
v1.guests.guest_id.loyaltypoints.get
Get Guest Loyalty Points
zenoti.v1.guests.guest_id.loyaltypoints.get({
"guest_id": ""
}, context)
Input
- input
object
- guest_id required
string
- guest_id required
Output
- output
array
- items guest_loyaltypoints
v1.guests.guest_id.notes.get
Returns notes associated with a guest
NoteType - enum
enum | value |
---|---|
Generic | 2 |
Checkin | 3 |
Booking | 4 |
Payment | 8 |
Profile | 10 |
Security: Requires read permission on guest and notes. Guest can view only her information.
zenoti.v1.guests.guest_id.notes.get({
"guest_id": ""
}, context)
Input
- input
object
- guest_id required
string
- guest_id required
Output
- output
array
- items guest_notes
v1.guests.guest_id.notes.post
Create a note associated with the guest.
NoteType - enum
enum | value |
---|---|
Generic | 2 |
Checkin | 3 |
Booking | 4 |
Payment | 8 |
Profile | 10 |
Security:Write permission on notes object.
zenoti.v1.guests.guest_id.notes.post({
"body": {},
"guest_id": ""
}, context)
Input
- input
object
- body required guest_notes
- guest_id required
string
Output
- output
object
- IsNoteAdded
string
- Note guest_notes
- IsNoteAdded
v1.guests.guest_id.notes.note_id.delete
Delete a note associated with the guest.
Security:Write permission on notes object.
zenoti.v1.guests.guest_id.notes.note_id.delete({
"guest_id": "",
"note_id": ""
}, context)
Input
- input
object
- guest_id required
string
- note_id required
string
- guest_id required
Output
Output schema unknown
v1.guests.guest_id.packages.get
Returns packages bought by a guest.
Security: Required read permission on the guest and packages object. Guest user can only view her information.
zenoti.v1.guests.guest_id.packages.get({
"CenterId": "",
"guest_id": ""
}, context)
Input
- input
object
- CenterId required
string
: Unique Identifier - InvoiceId
string
: Unique Identifier - guest_id required
string
- CenterId required
Output
- output
array
- items guest_packages
v1.otp.post
API is used to create an OTP associated with a provided email address or phone number. Below are the samples. The user has to pass either email or phone number (but not both) in the request body.
Case 1: Generate OTP and send to email
{
"CenterId": "3ECC3E05-8AAF-4792-BA0A-EC3D822FA6C5",
"Email": "danjohn@zenoti.com"
}
Case 2: Genetate OTP and send to phone number.
{
"CenterId": "3ECC3E05-8AAF-4792-BA0A-EC3D822FA6C5",
"Phone": {
"CountryId": 91,
"Number": "3434443339",
"DisplayNumber": "3434443339"
}
}
zenoti.v1.otp.post({
"body": {}
}, context)
Input
- input
object
- ApiKey
string
: Issued API key - Authorization
string
: Security token - body required
object
- ApiKey
Output
- output
object
v1.otp.put
API can be used to check if the provided OTP matches with the issued OTP to a given email address or phone number.
PUT method has been used for security reasons. Following request has to be sent in the body.
{
"VerificationId": "4d0cf94f-be9a-43b1-9b7b-8aab57fbc7e2",
"OTP": "234954",
"CenterId": "3ECC3E05-8AAF-4792-BA0A-EC3D822FA6C5"
}
zenoti.v1.otp.put({
"body": {}
}, context)
Input
- input
object
- ApiKey
string
: Issued API key - Authorization
string
: Security token - body required
object
- ApiKey
Output
- output
object
ServicesApi_GetServices
API returns a list of services. Following filter options are supported.
a. centerId - To return services in a particular center.
b. categoryId - To return services in a specified category only.
c. isCatalogEnabled - To return services that can be displayed in a webstore.
d. tag - To return services which are tagged by
Security:
Required read permisson on Services
zenoti.ServicesApi_GetServices({}, context)
Input
- input
object
- request.centerId
string
: Id of the center - request.categoryId
string
: Id of a category - request.pageNum
integer
: Page number to be returned. - request.pageSize
integer
: Size of the page. - CatalogEnabled
- request.centerId