4.0.0 • Published 3 years ago

@datafire/zenoti v4.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
3 years ago

@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

Output

  • output object
    • access_token string
    • refresh_token string
    • token_type string
    • scope string
    • expiration string

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

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)

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:

KeyTypeDescription
RequiredSlotsCountintNo of Slots you would like to request
CenterId *GUIDUnique Identifier of a Center
CenterDate *YYYY-MM-DDThh:mm:ssZDate of the availability you would like to check
SlotBookings *Array of slotBooking objectService 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

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:

FieldsValue typeDescription
ReservationNotesstringOptional Notes at the time of confirmation
ApplyAutomaticMembershipboolSet it to 'true' if you want to apply membership
CenterId *GUIDUnique Identifier of the center
ReservationId *GUIDUnique Identifier of the Reservation from the ReserveSlots API Response
BookingSourceEnum - Store = 0,Mobile = 1,Web = 2Source 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

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

keyValue typeDescription
CreateInvoicebooleanSet this to 'true' if you want Invoice to be created
ForceApplyAutomaticMembershipbooleanSet this to 'true' if you want to apply membership of the user
CenterId *GUIDUnique Identifier of the center
CenterTime *YYYY-MM-DDThh:mm:ssZYour preferred time slot
ReservationNotesstringOptional notes during the reservation
SlotBookings *Array of slotBooking objectThis 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

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

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

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

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.

statusenum
NoShow-2
Cancelled-1
New0
Closed1
Checkin2
Confirm4
Break10
NotSpecified11
Available20
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

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

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

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

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

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

Output

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

Output

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

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

Output

  • output object

v1.Catalog.Guests.Guest.GuestId.CreditCardsOnFile.get

Gets the Credit Cards on File for guest

Transaction Form

EnumValue
Web1
WebStore2
CheckWeb4
Mobile8
MobilePOS16
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

Output

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

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

Output

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

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:

  1. Balance
  2. TierName
  3. StartDate
  4. EnrollmentStatus
  5. LPTierMaintainSpent
  6. SpentTillNow
  7. DowngradeDate
  8. DirectEnrollment
  9. ByPassDowngrade
  10. RecentEnrollDate
  11. 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

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

Output

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:

FieldValue TypeDescription
VerificationId *GUIDVerificationId you get from OTP API
CenterId *GUIDUnique Identifier. Guest should register at a center
Guest *Guest Model objectFirstName, 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

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

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

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

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

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

Output

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

Output

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

Output

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

Output

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

Output

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

Output

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

Output

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

Output

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

Output

v1.Collections.OnlineTransactions.CenterId.get

Below is the description of the enums used.

TransactionType - enum

enumvalue
All0
Authorize1
Refund2
Reversal3
Sale4
Voided5

TransactionStatus - enum

feildvalue
All0
CCCompleteNotYetSubmitted1
Error2
Failed3
Originated4
Pending5
Queued6
Returned7
Settled8
Success9
Voided10

View - enum

feildvalue
Default1
Deposit2
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

Output

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

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

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: {

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: {

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

Output

  • output object: {

v1.Revenues.InvoiceItem.CenterId.get

ItemTypevalue
Service0
Product2
Membership3
Package4
Day Package5
Pre-Paid/GiftCard6
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

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

Output

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

Output

  • output object

v1.appointments.put

API is used to update the existing appointment.

zenoti.v1.appointments.put({
  "body": {
    "appointment_id": ""
  }
}, context)

Input

Output

Output schema unknown

v1.appointments.AddFeedback.post

zenoti.v1.appointments.AddFeedback.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.AddNotes.post

zenoti.v1.appointments.AddNotes.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

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

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

Output

v1.appointments.CustomData.post

zenoti.v1.appointments.CustomData.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

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

Output

  • output object

v1.appointments.add.post

This API can be called to add an appointment.

Parameters

ParameterTypeDescription
AppointmentGroupIdGUIDUnique identifier for the appointment
CommentsStringComments for No Show

Security: Permissions required to call this API.

zenoti.v1.appointments.add.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.alternatives.put

Update the appointment for the alternative

zenoti.v1.appointments.alternatives.put({
  "body": {
    "appointment_id": ""
  }
}, context)

Input

Output

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

Output

v1.appointments.availabletimes.post

zenoti.v1.appointments.availabletimes.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.bulkbookingGuestdetails.post

zenoti.v1.appointments.bulkbookingGuestdetails.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.bulkbookingavailabletimes.post

zenoti.v1.appointments.bulkbookingavailabletimes.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.bulkbookingconfirmreservation.post

zenoti.v1.appointments.bulkbookingconfirmreservation.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.bulkbookingreserveslots.post

zenoti.v1.appointments.bulkbookingreserveslots.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.cancel.post

This API can be called to cancel an existing appointment.

Parameters

ParameterTypeDescription
AppointmentGroupIdGUIDUnique identifier for the appointment
ReasonIdINTReason for cancellation of appointment
CommentsStringComments for cancellation

Security: Permissions required to call this API.

zenoti.v1.appointments.cancel.post({
  "body": {}
}, context)

Input

Output

Output schema unknown

v1.appointments.noshow.post

This API can be called to Mark No Show for an existing appointment.

Parameters

ParameterTypeDescription
AppointmentGroupIdGUIDUnique identifier for the appointment
CommentsStringComments for No Show

Security: Permissions required to call this API.

zenoti.v1.appointments.noshow.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.reebook.post

This API can be called to cancel an existing appointment.

Parameters

ParameterTypeDescription
AppointmentGroupIdGUIDUnique identifier for the appointment
ReasonIdINTReason for cancellation of appointment
CommentsStringComments for cancellation

Security: Permissions required to call this API.

zenoti.v1.appointments.reebook.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.reserveslots.post

zenoti.v1.appointments.reserveslots.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.setstatus.post

Below are the respective statuses for the value of the status tag in the input.

statusvalue
New0
Checkin2
Undo Checkin0
Confirm4
zenoti.v1.appointments.setstatus.post({
  "body": {}
}, context)

Input

  • input object
    • API Key string: issued key
    • Authorization string: security token
    • body required object

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

Output

v1.appointments.update.post

This API can be called to cancel an existing appointment.

Parameters

ParameterTypeDescription
AppointmentGroupIdGUIDUnique identifier for the appointment
ReasonIdINTReason for cancellation of appointment
CommentsStringComments for cancellation

Security: Permissions required to call this API.

zenoti.v1.appointments.update.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

Output

  • output object

v1.appointments.updatebulkbookingGuestdetails.post

zenoti.v1.appointments.updatebulkbookingGuestdetails.post({
  "body": {}
}, context)

Input

  • input object
    • body required object

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

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

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

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

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

Output

  • output object

v1.appointments.AppointmentId.CustomData.get

zenoti.v1.appointments.AppointmentId.CustomData.get({
  "AppointmentId": ""
}, context)

Input

  • input object
    • AppointmentId required string

Output

  • output object

v1.appointments.AppointmentId.CustomData.History.get

zenoti.v1.appointments.AppointmentId.CustomData.History.get({
  "AppointmentId": ""
}, context)

Input

  • input object
    • AppointmentId required string

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

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

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

Output

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

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

Output

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

Output

v1.employees.post

fields that need to be unique : Code , UserName , Email

zenoti.v1.employees.post({
  "body": {}
}, context)

Input

Output

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

Output

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

Output

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

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

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

Output

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

Output

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

Output

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.

ParameterData TypeDescription
firstnamestringFirst name of the guest
middlenamestringMiddle name of the guest
lastnamestringLast name of the guest
email*stringEmail address of the guest
passwordstringNew password
mobilephonemodelobjectRefer to phone object definition.
homephonemodelobjectRefer to phone object definition.
genderstringmale, female, other
dateofbirthdatetimeyyyy-mm-ddThh:mm:ss.SSSZ
anniversarydatedatetimeyyyy-mm-ddThh:mm:ss.SSSZ
address1stringAddress field
address2stringAddress field
citystringCity of the guest
postalcodestringZip code
stateobjectRefer to state object definition in request body
countryobjectRefer to country object definition in request body
nationalityobjectRefer to nationality object definition in request body
referralsourceobjectRefer to referralsource object definition in request body
referredguest_idstring
receivetransactionalemailboolean
receivetransactionalsmsboolean
receivemarketingemailboolean
receivemarketingsmsboolean
creationdatedatetime
updatedatedatetime
center_idstring
is_memberbooleanIndicates if guest is a valid member.
dob_incompleteyearstringDate 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 CodeError MessageNote
503MissingInputOne or more required input is missing
414GuestNotFoundGuest is not found
441UserCodeAlreadyExistsCode already exists
442UserEmailAlreadyExistsEmail address already exists
481GuestMandatoryFieldsMissingMandatory fields are missing
482MobileNumberNotInLengthRangeMobile Number is outside the length range
484CountryIsNotValidInvalid code provided for the country
484NationalityIsNotValidInvalid code provided for the nationality
484StateIsNotValidInvalid 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_id required string

Output

  • output object: Response body.

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

Output

v1.guests.guest_id.notes.get

Returns notes associated with a guest

NoteType - enum

enumvalue
Generic2
Checkin3
Booking4
Payment8
Profile10

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

Output

v1.guests.guest_id.notes.post

Create a note associated with the guest.

NoteType - enum

enumvalue
Generic2
Checkin3
Booking4
Payment8
Profile10

Security:Write permission on notes object.

zenoti.v1.guests.guest_id.notes.post({
  "body": {},
  "guest_id": ""
}, context)

Input

  • input object

Output

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

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

Output

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

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

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