UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 949 kB
{"openapi":"3.0.0","info":{"contact":{"email":"support@zenoti.com","x-twitter":"ZenotiSoftware"},"description":"Zenoti Open APIs now help you manage the powerful capabilities offered through a suite of Open APIs. \n\n","title":"Zenoti Open","version":"1.0.0","x-apisguru-categories":["customer_relation"],"x-logo":{"url":"https://twitter.com/ZenotiSoftware/profile_image?size=original"},"x-origin":[{"format":"swagger","url":"https://zenotiopenapi.docs.apiary.io/api-description-document","version":"2.0"}],"x-providerName":"zenoti.com"},"security":[{"API_Key":[]}],"paths":{"/packages/{packageId}":{"get":{"description":"Returns details of a package","parameters":[{"description":"DataType: UniqueIdentifier(GUID)","in":"query","name":"centerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"type":"object"}}}}},"summary":"Get details of package","tags":["Packages"]},"parameters":[{"description":"DataType: UniqueIdentifier(GUID)","in":"path","name":"packageId","required":true,"schema":{"type":"string"}}],"x-restlet":{"section":"Packages"}},"/v1/Catalog/Appointments/AvailableTimes":{"post":{"description":"Returns the open slots for the requested date and service at the requested center. \nOptionally, you can request a specific therapist to perform a service. In this case, the API returns the available slots for that therapist.\n\nTo get the slots, one has to request the following:\n\n| Key | Type | Description |\n| -------- | -------- | -------- |\n| RequiredSlotsCount | int| No of Slots you would like to request |\n| CenterId `*` | GUID | Unique Identifier of a Center |\n| CenterDate `*` | YYYY-MM-DDThh:mm:ssZ| Date of the availability you would like to check |\n| 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 |\n\n\nNote: Fields marked with `*` are Mandatory. \n\nExample Request:\n\n```\n{\n \"CenterId\":\"3af2cf2e-9d36-45ca-84bc-eb7a7ee4be0e\",\n \"CenterDate\":\"2017-10-25\",\n \"SlotBookings\":[\n {\n \"Services\":[{\n \"Service\":{\n \"Id\":\"ac3589f0-f3a0-4772-b2c5-f6e1c81312db\"\n },\n \"RequestedTherapist\": {\n \"Id\": \"1a08e842-77c8-49b4-9d42-336c2dea4c0b\"\n \t\n }\n }]\n }]\n}\n```","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCatalogAvaliableSlotsRequest"}}},"required":true,"x-examples":{"application/json":"{\n \"CenterId\":\"3af2cf2e-9d36-45ca-84bc-eb7a7ee4be0e\",\n \"CenterDate\":\"2017-10-25\",\n \"SlotBookings\":[\n {\n \"Services\":[{\n \"Service\":{\n \"Id\":\"ac3589f0-f3a0-4772-b2c5-f6e1c81312db\"\n },\n \"RequestedTherapist\": {\n \"Id\": \"1a08e842-77c8-49b4-9d42-336c2dea4c0b\"\n \t\n }\n }]\n }]\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"Returns the ***ReservationId, SlotBookings, Open slots*** and ***error*** json blocks\n\n* refer to slotBooking object for SlotBookings \n* below is Example json schema for openlots\n```\n \"OpenSlots\": [\n {\n \"Time\": \"2017-09-11T06:35:01.792Z\",\n \"Warnings\": [\n {\n \"Type\": 0,\n \"Message\": \"string\",\n \"GuestId\": \"string\",\n \"TherapistId\": \"string\",\n \"ServiceId\": \"string\",\n \"RoomId\": \"string\"\n }\n ],\n \"Priority\": 0\n }\n ]\n```\n\t\n| Warning Type | Enum | \n| -------- | -------- |\n|TherapistDoubleBooked | 0|\n|TherapistOutsideSchedule | 1|\n| GuestDoubleBooked | 2|\n|RoomCapacityExceeded | 3|\n|ServiceEndsOutsideCenterHours | 4|\n|EquipmentCapacityExceeded | 5|\n|DayIsHoliday | 6|\n\n\n","type":"object"},"examples":{"response":{"value":"{\n \"ReservationId\": null,\n \"SlotBookings\": [\n {\n \"GuestId\": null,\n \"AppointmentGroupId\": null,\n \"Services\": [\n {\n \"AppointmentId\": \"00000000-0000-0000-0000-000000000000\",\n \"InvoiceItemId\": \"00000000-0000-0000-0000-000000000000\",\n \"CartItemId\": null,\n \"AppointmentSegmentId\": null,\n \"PackageId\": null,\n \"Package\": null,\n \"Service\": {\n \"Id\": \"ac3589f0-f3a0-4772-b2c5-f6e1c81312db\",\n \"Name\": \"Ahmad Massage\",\n \"Price\": null,\n \"Duration\": 75,\n \"CategoryId\": \"c7e44ac2-702c-4f9c-a55e-dc009748d637\",\n \"IsAddOn\": false,\n \"HasAddOns\": null,\n \"AddOnToServiceId\": null,\n \"CategoryName\": null,\n \"AddOns\": null,\n \"IsVariant\": null,\n \"HasVariant\": null,\n \"ParentServiceId\": null,\n \"CartItemId\": null\n },\n \"RequestedTherapistGender\": 0,\n \"StartTime\": \"2017-10-25T21:45:00\",\n \"EndTime\": \"2017-10-25T23:00:00\",\n \"StartTimeInCenter\": null,\n \"EndTimeInCenter\": null,\n \"Room\": null,\n \"Lock\": false,\n \"Equipment\": null,\n \"Status\": 0,\n \"RequestedTherapist\": {\n \"Id\": \"1a08e842-77c8-49b4-9d42-336c2dea4c0b\",\n \"ShortName\": null,\n \"NickName\": null,\n \"FullName\": null,\n \"Email\": null,\n \"PhoneNumber\": null,\n \"MobilePhoneModel\": null,\n \"Gender\": 0,\n \"FirstName\": null,\n \"LastName\": null,\n \"IsAvailable\": false,\n \"VanityImageUrl\": null,\n \"ScalingFactor\": 0,\n \"ScaledPrice\": 0,\n \"ServiceTime\": 0,\n \"DisplayName\": null\n },\n \"Quantity\": 0,\n \"Price\": {\n \"CurrencyId\": 148,\n \"Sales\": 100,\n \"Tax\": 0,\n \"Final\": 100,\n \"Final1\": 100,\n \"Discount\": 0,\n \"Tip\": 0,\n \"SSG\": 0,\n \"RoundingCorrection\": 0\n },\n \"SCD\": null,\n \"ActualStartTime\": null,\n \"CompletedTime\": null,\n \"Progress\": 0,\n \"ParentAppointmentId\": null,\n \"ServiceCustomData\": null,\n \"ItemActions\": null,\n \"EquivalenceFactor\": null,\n \"EquivalentName\": null,\n \"IsMembershipApplied\": null,\n \"IsAddOn\": null,\n \"AddonAppointmentId\": null,\n \"IsPackageApplied\": null,\n \"IsDiscountApplied\": null,\n \"CanModifyTherapist\": false\n }\n ],\n \"TherapistId\": null,\n \"RoomId\": null,\n \"Quantity\": null,\n \"BookingNotes\": null,\n \"Price\": {\n \"CurrencyId\": 0,\n \"Sales\": 100,\n \"Tax\": 0,\n \"Final\": 100,\n \"Final1\": 100,\n \"Discount\": 0,\n \"Tip\": 0,\n \"SSG\": 0,\n \"RoundingCorrection\": 0\n },\n \"VirtualGuest\": null,\n \"CartItemIds\": null\n }\n ],\n \"OpenSlots\": [\n {\n \"Time\": \"2017-10-25T09:00:00\",\n \"Warnings\": null,\n \"Priority\": 0\n },\n {\n \"Time\": \"2017-10-25T09:15:00\",\n \"Warnings\": null,\n \"Priority\": 0\n },\n {\n \"Time\": \"2017-10-25T09:30:00\",\n \"Warnings\": null,\n \"Priority\": 0\n },\n {\n \"Time\": \"2017-10-25T13:15:00\",\n \"Warnings\": null,\n \"Priority\": 0\n },\n {\n \"Time\": \"2017-10-25T13:30:00\",\n \"Warnings\": null,\n \"Priority\": 0\n }\n ],\n \"Error\": null\n}"}}}}}},"summary":"/v1/Catalog/Appointments/AvailableTimes","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/ConfirmReservation":{"post":{"description":"Returns the confirmed reservation.\n\nRequest body parameters:\n\n| Fields | Value type | Description |\n| -------- | -------- | -------- |\n| ReservationNotes | string | Optional Notes at the time of confirmation\n| ApplyAutomaticMembership | bool | Set it to 'true' if you want to apply membership\n| CenterId `*` | GUID | Unique Identifier of the center\n| ReservationId `*` | GUID | Unique Identifier of the Reservation from the ReserveSlots API Response\n| BookingSource | Enum - `Store = 0,Mobile = 1,Web = 2 ` | Source of the API caller\n\n\nNote: Fields marked with `*` are mandatory.","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true,"x-examples":{"application/json":"{\n \"CenterId\": \"9a895b3c-1994-42c0-bc61-efda4a6e2828\",\n \"ReservationId\": \"9035d681-6879-4e79-8640-d38dfa7eaf9b\",\n \"BookingSource\":2\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"Returns following Json fields.\n\n\n| Field | Value Type | \n| -------- | -------- | \n| IsConfirmed | Bool |\n| ConfirmationId | GUID |\n| ReservationId | GUID |\n| ConfirmedBookings | Object |\n\n\n\nComponents of ConfirmedBookings:\n\n| Field | Value Type | \n| -------- | -------- | \n| GuestId | GUID |\n| AppointmentGroupId | GUID |\n| Services | Array of `Service` Object |\n| TherapistId | GUID |\n| RoomId | GUID |\n| Quantity | String |\n| BookingNotes | String |\n| Price | `Price` object |\n| Virtual Guest | `Virtual guest` Object |\n| CartItemIds | Array of GUIDs |\n\n\n","type":"object"},"examples":{"response":{"value":"{\n \"IsConfirmed\": true,\n \"ConfirmationId\": \"3d714afc-d60a-4dd3-bc17-7a5cb386f1c7\",\n \"ReservationId\": \"00000000-0000-0000-0000-000000000000\",\n \"ConfirmedBookings\": [\n {\n \"GuestId\": \"75ac5009-6b23-4275-8efe-4bb187683876\",\n \"AppointmentGroupId\": \"a09cfcf1-cceb-47ca-803c-bfa5a8dd1547\",\n \"Services\": [\n {\n \"AppointmentId\": \"c575be1e-9c96-4fe9-a760-b57596afb4e7\",\n \"InvoiceItemId\": \"144ff1cb-6a94-4a51-a352-e1f9648bc33b\",\n \"CartItemId\": null,\n \"AppointmentSegmentId\": null,\n \"PackageId\": null,\n \"Package\": null,\n \"Service\": {\n \"Id\": \"5794a470-7b92-4942-a7e9-15a06f128244\",\n \"Name\": \"Age Defying With Body Firming\",\n \"Price\": null,\n \"Duration\": 75,\n \"CategoryId\": \"b789ab1a-ec37-4866-8701-74a1333c4cd4\",\n \"IsAddOn\": false,\n \"HasAddOns\": null,\n \"AddOnToServiceId\": null,\n \"CategoryName\": null,\n \"AddOns\": null,\n \"IsVariant\": false,\n \"HasVariant\": false,\n \"ParentServiceId\": null,\n \"CartItemId\": null\n },\n \"ReducedTimeGroupId\": null,\n \"RequestedTherapistGender\": 0,\n \"StartTime\": \"2017-10-26T13:00:00\",\n \"EndTime\": \"2017-10-26T14:15:00\",\n \"NonReducedDuration\": null,\n \"StartTimeInCenter\": \"2017-10-26T18:30:00\",\n \"EndTimeInCenter\": \"2017-10-26T19:45:00\",\n \"Room\": null,\n \"Lock\": false,\n \"Equipment\": null,\n \"Status\": 0,\n \"RequestedTherapist\": {\n \"Id\": \"1afd493a-4aad-48a3-8f94-9fdea88691ac\",\n \"ShortName\": \"Ajay K\",\n \"NickName\": \"Ajay k\",\n \"FullName\": \"Ajay k\",\n \"Email\": null,\n \"PhoneNumber\": \"9213158104\",\n \"MobilePhoneModel\": {\n \"CountryId\": 95,\n \"Number\": \"9213158104\",\n \"DisplayNumber\": \"+91 92 13 158104\"\n },\n \"Gender\": 1,\n \"FirstName\": \"Ajay\",\n \"LastName\": \"Kumar Singh\",\n \"IsAvailable\": false,\n \"VanityImageUrl\": null,\n \"ScalingFactor\": 0,\n \"ScaledPrice\": 0,\n \"ServiceTime\": 0,\n \"DisplayName\": \"Ajay K\"\n },\n \"Quantity\": 1,\n \"Price\": {\n \"CurrencyId\": 61,\n \"Sales\": 1200,\n \"Tax\": 118.656,\n \"Final\": 1078.656,\n \"Final1\": 0,\n \"Discount\": 0,\n \"Tip\": 0,\n \"SSG\": null,\n \"RoundingCorrection\": 0\n },\n \"SCD\": null,\n \"ActualStartTime\": null,\n \"CompletedTime\": null,\n \"Progress\": 0,\n \"ParentAppointmentId\": null,\n \"ServiceCustomData\": null,\n \"ItemActions\": null,\n \"EquivalenceFactor\": null,\n \"EquivalentName\": null,\n \"IsMembershipApplied\": null,\n \"IsAddOn\": null,\n \"AddonAppointmentId\": null,\n \"IsPackageApplied\": null,\n \"IsDiscountApplied\": null,\n \"CanModifyTherapist\": false\n }\n ],\n \"TherapistId\": null,\n \"RoomId\": null,\n \"Quantity\": 1,\n \"BookingNotes\": null,\n \"Price\": {\n \"CurrencyId\": 61,\n \"Sales\": 1200,\n \"Tax\": 118.656,\n \"Final\": 1078.656,\n \"Final1\": 1078.656,\n \"Discount\": 240,\n \"Tip\": 0,\n \"SSG\": 0,\n \"RoundingCorrection\": 0\n },\n \"VirtualGuest\": null,\n \"CartItemIds\": null,\n \"ReducedTimeGroupId\": null\n }\n ],\n \"Error\": null\n}"}}}}}},"summary":"/v1/Catalog/Appointments/ConfirmReservation","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/ReserveSlots":{"post":{"description":"Reserves slots for the Appointment based on CenterId, CenterTime, GuestId, ServiceId and optionally, TherapistId.\n\nThe following are the details of the request\n\n| key | Value type | Description |\n| -------- | -------- | -------- |\n|CreateInvoice| boolean| Set this to 'true' if you want Invoice to be created |\n| ForceApplyAutomaticMembership| boolean| Set this to 'true' if you want to apply membership of the user |\n| CenterId `*` | GUID| Unique Identifier of the center |\n| CenterTime `*` | YYYY-MM-DDThh:mm:ssZ| Your preferred time slot |\n| ReservationNotes | string| Optional notes during the reservation |\n| SlotBookings `*` |Array of *slotBooking* object| This must contain ServiceId and GuestId. Refer to *slotBooking* for structure. You can optionally pass TherapistId\n\nNote: Fields marked with `*` are mandatory.\n\nExample Request : \n```\n{\n \"CreateInvoice\": true,\n \"ForceApplyAutomaticMembership\": true,\n \"CenterId\":\"3af2cf2e-9d36-45ca-84bc-eb7a7ee4be0e\",\n \"CenterTime\": \"2017-09-27T17:00:00\",\n \"SlotBookings\":[\n {\n \"GuestId\": \"e08a1e29-29b5-4757-abd6-6ed0a09b9f94\",\n \"Services\":[{\n \"Service\":{\n \"Id\":\"ac3589f0-f3a0-4772-b2c5-f6e1c81312db\"\n },\n \"RequestTherapistGender\":3,\n \"RequestedTherapist\": {\n \"Id\": \"1a08e842-77c8-49b4-9d42-336c2dea4c0b\"\n \t\n }\n }]\n }]\n}\n```","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true,"x-examples":{"application/json":"{\n \"CreateInvoice\": true,\n \"ForceApplyAutomaticMembership\": true,\n \"CenterId\":\"3af2cf2e-9d36-45ca-84bc-eb7a7ee4be0e\",\n \"CenterTime\": \"2017-09-27T17:00:00\",\n \"SlotBookings\":[\n {\n \"GuestId\": \"e08a1e29-29b5-4757-abd6-6ed0a09b9f94\",\n \"Services\":[{\n \"Service\":{\n \"Id\":\"ac3589f0-f3a0-4772-b2c5-f6e1c81312db\"\n },\n \"RequestTherapistGender\":3,\n \"RequestedTherapist\": {\n \"Id\": \"1a08e842-77c8-49b4-9d42-336c2dea4c0b\"\n \t\n }\n }]\n }]\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"Returns a json containing the following:\n\n| Field | Value Type | Description |\n| -------- | -------- | -------- |\n| CenterId | GUID | Unique identifier of the center |\n| CenterTime | YYYY-MM-DDThh:mm:ssZ | Time slot requested |\n| IsReserved | bool | Returns 'true' if the requested slot is reserved |\n| InvoiceId | GUID | Returns the InvoiceId if the 'CreateInvoice' is set to true |\n| ExpiryTime | YYYY-MM-DDThh:mm:ssZ | Expiry time of the reservation\n| Blocking Time | int | Returns the time that has been blocked in minutes |\n| SlotBookings | Array of *slotBooking* Object | Contains the Services you have requested, Appointment Id and other details |","type":"object"},"examples":{"response":{"value":"{\n \"CenterId\": \"9a895b3c-1994-42c0-bc61-efda4a6e2828\",\n \"CenterTime\": \"2017-10-28T18:30:00\",\n \"IsReserved\": true,\n \"ReservationId\": \"f9a64f28-08fa-4f63-9817-dc76ced7e45d\",\n \"InvoiceId\": \"2230816a-6e83-44ab-b2e5-a920c323a829\",\n \"ExpiryTime\": \"2017-10-26T14:35:52.0062478\",\n \"BlockingTime\": 5,\n \"SlotBookings\": [\n {\n \"GuestId\": \"75ac5009-6b23-4275-8efe-4bb187683876\",\n \"AppointmentGroupId\": null,\n \"Services\": [\n {\n \"AppointmentId\": \"00000000-0000-0000-0000-000000000000\",\n \"InvoiceItemId\": \"00000000-0000-0000-0000-000000000000\",\n \"CartItemId\": \"0d1969b2-0274-41bf-aeb4-b821e860cf61\",\n \"AppointmentSegmentId\": null,\n \"PackageId\": null,\n \"Package\": null,\n \"Service\": {\n \"Id\": \"5794a470-7b92-4942-a7e9-15a06f128244\",\n \"Name\": \"Age Defying With Body Firming\",\n \"Price\": null,\n \"Duration\": 75,\n \"CategoryId\": \"b789ab1a-ec37-4866-8701-74a1333c4cd4\",\n \"IsAddOn\": false,\n \"HasAddOns\": null,\n \"AddOnToServiceId\": null,\n \"CategoryName\": null,\n \"AddOns\": null,\n \"IsVariant\": null,\n \"HasVariant\": null,\n \"ParentServiceId\": null,\n \"CartItemId\": null\n },\n \"ReducedTimeGroupId\": null,\n \"RequestedTherapistGender\": 0,\n \"StartTime\": \"2017-10-28T13:00:00Z\",\n \"EndTime\": \"2017-10-28T14:15:00Z\",\n \"NonReducedDuration\": 75,\n \"StartTimeInCenter\": \"2017-10-28T18:30:00\",\n \"EndTimeInCenter\": \"2017-10-28T19:45:00\",\n \"Room\": null,\n \"Lock\": false,\n \"Equipment\": null,\n \"Status\": 0,\n \"RequestedTherapist\": {\n \"Id\": \"1afd493a-4aad-48a3-8f94-9fdea88691ac\",\n \"ShortName\": \"Ajay K\",\n \"NickName\": \"Ajay k\",\n \"FullName\": \"Ajay k\",\n \"Email\": null,\n \"PhoneNumber\": \"9213158104\",\n \"MobilePhoneModel\": {\n \"CountryId\": 95,\n \"Number\": \"9213158104\",\n \"DisplayNumber\": \"+91 92 13 158104\"\n },\n \"Gender\": 1,\n \"FirstName\": \"Ajay\",\n \"LastName\": \"Kumar Singh\",\n \"IsAvailable\": false,\n \"VanityImageUrl\": null,\n \"ScalingFactor\": 0,\n \"ScaledPrice\": 0,\n \"ServiceTime\": 0,\n \"DisplayName\": \"Ajay K\"\n },\n \"Quantity\": 0,\n \"Price\": {\n \"CurrencyId\": 61,\n \"Sales\": 1200,\n \"Tax\": 148.32,\n \"Final\": 1348.32,\n \"Final1\": 1348.32,\n \"Discount\": 0,\n \"Tip\": 0,\n \"SSG\": 0,\n \"RoundingCorrection\": 0\n },\n \"SCD\": null,\n \"ActualStartTime\": null,\n \"CompletedTime\": null,\n \"Progress\": 0,\n \"ParentAppointmentId\": null,\n \"ServiceCustomData\": null,\n \"ItemActions\": null,\n \"EquivalenceFactor\": null,\n \"EquivalentName\": null,\n \"IsMembershipApplied\": null,\n \"IsAddOn\": null,\n \"AddonAppointmentId\": null,\n \"IsPackageApplied\": null,\n \"IsDiscountApplied\": null,\n \"CanModifyTherapist\": false\n }\n ],\n \"TherapistId\": null,\n \"RoomId\": null,\n \"Quantity\": null,\n \"BookingNotes\": null,\n \"Price\": {\n \"CurrencyId\": 0,\n \"Sales\": 1200,\n \"Tax\": 148.32,\n \"Final\": 1348.32,\n \"Final1\": 1348.32,\n \"Discount\": 0,\n \"Tip\": 0,\n \"SSG\": 0,\n \"RoundingCorrection\": 0\n },\n \"VirtualGuest\": null,\n \"CartItemIds\": [\n \"0d1969b2-0274-41bf-aeb4-b821e860cf61\"\n ],\n \"ReducedTimeGroupId\": null\n }\n ],\n \"Error\": null\n}"}}}}}},"summary":"/v1/Catalog/Appointments/ReserveSlots","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/{AppointmentGroupId}/Feedback":{"get":{"description":"Gets Feedback for a AppointmentgroupId.","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"type":"object"},"examples":{"response":{"value":"{\n \"Feedback\": {\n \"Comments\": \"string\",\n \"Feedback1\": 1,\n \"Feedback2\": 1,\n \"Feedback3\": 1,\n \"Feedback4\": 1,\n \"FeedbackAnswer1\": true,\n \"FeedbackAnswer2\": true\n },\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentGroupId}/Feedback","tags":["Appointments - Catalog"]},"parameters":[{"in":"path","name":"AppointmentGroupId","required":true,"schema":{"type":"string"}}],"post":{"description":"Creates Feedback for a AppointmentgroupId.","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"All of the below fields are nullable\n\n| Field |Value Type | Description |\n| -------- | -------- | -------- |\n| Comments | Comments | string |\n| Feedback1 | Service | Feedback Raing Enum |\n| Feedback2 | Ambience | Feedback Raing Enum |\n| Feedback3 | Cleanliness | Feedback Raing Enum |\n| Feedback4 | Therapist | Feedback Raing Enum |\n| FeedbackAnswer1 | Recommendation | bool |\n| FeedbackAnswer2 | Share Feedback | bool |\n\n\n\n| Feedback Rating | Enum | \n| -------- | -------- | -------- |\n| Poor | 1 | \n| Average | 2 | \n| Good | 3 | \n| Excellent | 4 | \n| Outstanding | 5 | \n\n","type":"object"}}},"required":true,"x-examples":{"application/json":"{\n \"Comments\": \"string\",\n \"Feedback1\": 1,\n \"Feedback2\": 1,\n \"Feedback3\": 1,\n \"Feedback4\": 1,\n \"FeedbackAnswer1\": true,\n \"FeedbackAnswer2\": true\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"type":"object"},"examples":{"response":{"value":"{\n \"Success\": true,\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentGroupId}/Feedback","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/{AppointmentId}/AddOnService":{"parameters":[{"in":"path","name":"AppointmentId","required":true,"schema":{"type":"string"}}],"post":{"description":"Adds an Add on service To an Existing Appointment of the user.","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Service id of the requested add on service is given as a json.","type":"object"}}},"required":true,"x-examples":{"application/json":"{\n \"Serviceid\" : \"String\"\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"returns the status of the add on service and appointment id of the add on service.\n\n\n\n| Field |Value Type | Description |\n| -------- | -------- | -------- |\n| IsAddOnServiceAdded | boolean | Add on service added or not |\n| AddOnAppointmentId | String | AppointmentId of Add on service added |\n| AppointmentId | String | AppointmentId of Service to which Add on service is added |\n\n \n","type":"object"},"examples":{"response":{"value":"{\n \"IsAddOnServiceAdded\": boolean ,\n \"AddOnAppointmentId\": \"string\",\n \"AppointmentId\": \"string\",\n \"Error\": null\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentId}/AddOnService","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/{AppointmentId}/Cancel":{"parameters":[{"in":"path","name":"AppointmentId","required":true,"schema":{"type":"string"}}],"post":{"description":"Changes the appointment status to cancelled and also returns a boolean for \"IsCancelChargesApplied\" feild.\n\nAppointment status(\"Status\" feild) of cancelled is -1.\n\n|status|enum|\n| -------- | -------- |\n| NoShow | -2|\n|Cancelled | -1|\n|New | 0|\n|Closed | 1|\n|Checkin | 2|\n|Confirm | 4|\n| Break | 10|\n|NotSpecified | 11|\n|Available | 20|\n","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Below are the Fields of input Json.\n| Field | Value type | Description |\n| -------- | -------- | -------- |\n| ReasonId `*` | GUID | Reason for Cancellation |\n| Comments | string | Comments |\n\n\nNote: Feilds marked with `*` are mandatory.","type":"object"}}},"required":true,"x-examples":{"application/json":"{\n\"reason\": \"string\",\n\"Comments\" : \"string\"\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"returns the status of the add on service and appointment id of the add on service.","type":"object"},"examples":{"response":{"value":"{\n \"IsAppointmentStatusSet\": bool,\n \"Status\": enum,\n \"IsCancelChargeApplied\": bool,\n \"Error\": null\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentId}/Cancel","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/{AppointmentId}/CustomData/Html":{"get":{"description":"Gets the Html form for a particular AppointmentId","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"text/html":{"schema":{"type":"object"}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentId}/CustomData/Html","tags":["Appointments - Catalog"]},"parameters":[{"in":"path","name":"AppointmentId","required":true,"schema":{"type":"string"}}],"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/{AppointmentId}/HtmlCustomData":{"get":{"description":"Gets the Html form data for a particular AppointmentId","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"Description for the Json fields in the output Json\n\n| Field | Value Type | Description |\n| -------- | -------- | -------- |\n| Data | Json Object | Form data in Json form |\n| Guest Data | string | Guest Details |\n| IsFormSubmitted | bool | Form Status |\n\n","type":"object"},"examples":{"response":{"value":"{\n \"Data\": \"string\",\n \"GuestData\": \"string\",\n \"IsFormSubmitted\": true,\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentId}/HtmlCustomData","tags":["Appointments - Catalog"]},"parameters":[{"in":"path","name":"AppointmentId","required":true,"schema":{"type":"string"}}],"post":{"description":"Creates a Html form data for a particular AppointmentId","requestBody":{"content":{"application/json":{"schema":{"description":"Description for the Json fields in the Input Json\n\n| Field | Value Type | Description |\n| -------- | -------- | -------- |\n| Data | Json Object | Form data in Json form |\n| Guest Data | string | Guest Details |\n| IsFormSubmitted | bool | Form Status |\n\n","type":"object"}}},"required":true,"x-examples":{"application/json":"{\n \"Data\": \"string\",\n \"FormId\": \"string\",\n \"IsRequiredFilled\": true,\n \"GuestData\": \"string\",\n \"IsFormSubmitted\": true\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"Success field is a bool , confirms success of form being created.","type":"object"},"examples":{"response":{"value":"{\n \"Success\": true,\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{AppointmentId}/HtmlCustomData","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Appointments/{ReservationId}/CancelReservation":{"parameters":[{"in":"path","name":"ReservationId","required":true,"schema":{"type":"string"}}],"post":{"description":"Cancels a Reservation.","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"Returns following Json Fields\n\n| Field | Value Type | \n| -------- | -------- |\n| ReservationId | String | \n| IsCancelled | bool |\n\n","type":"object"},"examples":{"response":{"value":"{\n \"ReservationId\": \"string\",\n \"IsCancelled\": true,\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Appointments/{ReservationId}/CancelReservation","tags":["Appointments - Catalog"]},"x-restlet":{"section":"Appointments(Catalog)"}},"/v1/Catalog/Centers":{"get":{"description":"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.","parameters":[{"description":"List of Service Ids given separately. Each Service Id is a unique identifier","in":"query","name":"ServiceIds","required":false,"example":"ServiceIds={ServiceId1}&ServiceIds={ServiceId2}","schema":{"type":"string"}},{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CenterModel"},"examples":{"response":{"value":"{\n \"Centers\": [\n {\n \"Id\": \"7e9a5a8c-db49-48ed-a406-1732b38fd226\",\n \"Country\": {\n \"Id\": 95,\n \"Code\": \"IN\",\n \"Name\": \"India\",\n \"PhoneCode\": 91,\n \"Nationality\": \"Indian\"\n },\n \"State\": {\n \"Id\": -2,\n \"Code\": null,\n \"Name\": \"Others\",\n \"ShortName\": null\n },\n \"Name\": \"Tribeca\",\n \"GeoLatitude\": 40.7143516540527,\n \"GeoLongitude\": -74.0059661865234,\n \"Address1\": \"164 4Th Block\",\n \"Address2\": \"New York\",\n \"City\": \"New York\",\n \"ZipCode\": \"560009\",\n \"Phone1\": {\n \"CountryId\": 95,\n \"Number\": \"2128655555\",\n \"DisplayNumber\": \"2128655555\"\n },\n \"Phone2\": {\n \"CountryId\": 95,\n \"Number\": \"2128655555\",\n \"DisplayNumber\": \"2128655555\"\n },\n \"Email\": null,\n \"CenterInfo\": null,\n \"ServiceTaxNo\": null,\n \"TIN\": null,\n \"VAT\": null,\n \"CST\": null,\n \"CanBook\": true,\n \"working_hours\": [\n {\n \"day_of_week\": \"Monday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n },\n {\n \"day_of_week\": \"Tuesday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n },\n {\n \"day_of_week\": \"Wednesday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n },\n {\n \"day_of_week\": \"Thursday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n },\n {\n \"day_of_week\": \"Friday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n },\n {\n \"day_of_week\": \"Saturday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n },\n {\n \"day_of_week\": \"Sunday\",\n \"start_time\": \"800\",\n \"end_time\": \"2200\"\n }\n ]\n }\n ],\n \"Error\": null\n}"}}}}}},"summary":"/v1/Catalog/Centers","tags":["Centers - Catalog"]},"x-restlet":{"section":"Centers(Catalog)"}},"/v1/Catalog/Centers/Organization":{"get":{"description":"Gets List of all the Centers in the Organization","parameters":[{"in":"query","name":"CatalogEnabled","required":false,"schema":{"type":"boolean"}},{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CenterModel"},"examples":{"response":{"value":"{\n \"Centers\": [\n {\n \"Id\": \"string\",\n \"Name\": \"string\",\n \"Address\": \"string\",\n \"Phone\": \"string\",\n \"TimeZoneId\": 0,\n \"CurrencyId\": 0,\n \"SecurityRole\": {\n \"Id\": \"string\",\n \"Name\": \"string\",\n \"ScopeId\": \"string\",\n \"Scope\": 0,\n \"OrgOrZoneOrCenterName\": \"string\",\n \"CanAccessAdministratorMode\": true,\n \"CanAccessAppointmentBook\": true,\n \"CanViewGuestHistory\": true,\n \"CanViewServiceHistory\": true,\n \"Permissions\": [\n {\n \"ObjectName\": \"string\",\n \"PermissionBitMask\": 0\n }\n ]\n },\n \"SecurityRoles\": [\n {\n \"Id\": \"string\",\n \"Name\": \"string\",\n \"ScopeId\": \"string\",\n \"Scope\": 0,\n \"OrgOrZoneOrCenterName\": \"string\",\n \"CanAccessAdministratorMode\": true,\n \"CanAccessAppointmentBook\": true,\n \"CanViewGuestHistory\": true,\n \"CanViewServiceHistory\": true,\n \"Permissions\": [\n {\n \"ObjectName\": \"string\",\n \"PermissionBitMask\": 0\n }\n ]\n }\n ],\n \"OrganizationName\": \"string\",\n \"OrganizationLogoUrl\": \"string\",\n \"Email\": \"string\"\n }\n ],\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Centers/Organization","tags":["Centers - Catalog"]},"x-restlet":{"section":"Centers(Catalog)"}},"/v1/Catalog/Guests/CheckUserName":{"get":{"description":"Check if the guest is already existing in the system based on UserName. UserName is mandatory","parameters":[{"in":"query","name":"userName","required":false,"schema":{"type":"string"}},{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"\nmatched width - one to one","type":"object"},"examples":{"response":{"value":"{\n \"Success\": true,\n \"NumOfMatches\": 0,\n \"MatchedWith\": 0,\n \"Error\":null\n}"}}}}}},"summary":"/v1/Catalog/Guests/CheckUserName","tags":["Guests - Catalog"]},"x-restlet":{"section":"Guests(Catalog)"}},"/v1/Catalog/Guests/ForgottenPassword":{"post":{"description":"Get password reset link","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true,"x-examples":{"application/json":"{\n \"UserName\": \"string\"\n}"}},"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"","type":"object"},"examples":{"response":{"value":"{\n \"Success\": true,\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Guests/ForgottenPassword","tags":["Guests - Catalog"]},"x-restlet":{"section":"Guests(Catalog)"}},"/v1/Catalog/Guests/Guest/{GuestId}/CreditCardsOnFile":{"get":{"description":"Gets the Credit Cards on File for guest\n\nTransaction Form\n\n| Enum | Value | \n| -------- | -------- | \n| Web | 1 |\n| WebStore | 2 |\n| CheckWeb | 4 |\n| Mobile | 8 |\n| MobilePOS | 16 | ","parameters":[{"in":"query","name":"GuestId","required":true,"schema":{"type":"string"}},{"in":"query","name":"CenterId","required":true,"schema":{"type":"string"}},{"in":"query","name":"TransactionForm","required":false,"schema":{"type":"integer"}},{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCreditCardsOnFileResponse"},"examples":{"response":{"value":"{\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n },\n \"CreditCardsOnFile\": [\n {\n \"Id\": \"string\",\n \"CardBrand\": 0,\n \"CardType\": 0,\n \"LastFour\": \"string\",\n \"ExpirationMonth\": 0,\n \"ExpirationYear\": 0,\n \"ExtParams\": \"string\",\n \"IsSupportedCardType\": true\n }\n ],\n \"HasExpiredCards\": true\n}"}}}}}},"summary":"/v1/Catalog/Guests/{GuestId}/CreditCardsOnFile","tags":["Guests - Catalog"]},"parameters":[{"in":"path","name":"GuestId","required":true,"schema":{"type":"string"}}],"x-restlet":{"section":"Guests(Catalog)"}},"/v1/Catalog/Guests/Guests/Memberships/{UserMembershipId}":{"get":{"description":"Get balance details of a User MembershipId","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"description":"","type":"object"},"examples":{"response":{"value":"{\n \"Balance\": [\n {\n \"MembershipName\": \"string\",\n \"BenefitName\": \"string\",\n \"Quantity\": 0,\n \"Frequency\": \"string\",\n \"ExpirationDays\": 0,\n \"Used\": 0,\n \"Notes\": \"string\",\n \"AllowDirectBooking\": true,\n \"HasEquivalents\": true,\n \"Balance\": 0\n }\n ],\n \"Error\": {\n \"StatusCode\": 0,\n \"Message\": \"string\"\n }\n}"}}}}}},"summary":"/v1/Catalog/Guests/Memberships/{UserMembershipId}","tags":["Guests - Catalog"]},"parameters":[{"in":"path","name":"UserMembershipId","required":true,"schema":{"type":"string"}}],"x-restlet":{"section":"Guests(Catalog)"}},"/v1/Catalog/Guests/Guests/{GuestId}":{"get":{"description":"Obtain profile details of a guest user.","parameters":[{"description":"Security token","in":"header","name":"Authorization","required":false,"schema":{"type":"string"}},{"description":"Issued Api key issued from apigee portal","in":"header","name":"Apikey","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetGuestResponse"},"examples":{"response":{"value":"{\n \"Guest\": {\n \"Address1\": \"string\",\n \"Address2\": \"string\",\n \"AnniversaryDate\": \"string\",\n \"City\": \"string\",\n \"CountryFk\": \"string\",\n \"CountryName\": \"string\",\n \"DOB\": \"string\",\n \"DOB_IncompleteYear\": \"string\",\n \"Email\": \"string\",\n \"Gender\": \"string\",\n \"GuestFlagFT\": \"string\",\n \"GuestFlagHS\": \"string\",\n \"GuestFlagLF\": \"string\",\n \"GuestFlagMB\": \"string\",\n \"GuestFlagNS\": \"string\",\n \"GuestFlagPack\": \"string\",\n \"GuestFlagRC\": \"string\",\n \"GuestFlagReg\": \"string\",\n \"GuestFName\": \"string\",\n \"GuestLName\": \"string\",\n \"GuestMName\": \"string\",\n \"GuestPhone\": \"string\",\n \"HasCD\": \"string\",\n \"HomePhone\": \"string\",\n \"id\": \"string\",\n \"ReceiveLpStmt\": \"string\",\n \"ReceiveMarketingEMail\": \"string\",\n \"ReceiveMarketingSMS\": \"string\",\n \"ReceiveTransactionalEMail\": \"string\",\n \"ReceiveTransactionalSMS\": \"string\",\n \"StateFK\": \"string\",\n \"StateName\": \"string\",\n \"WorkPhone\": \"string\",\n \"MobilePhoneModel\": {\n \"CountryId\": 0,\n \"Number\": \"string\",\n \"DisplayNumber\": \"string\"\n },\n \"HomePhoneModel\": {\n \"CountryId\": 0,\n \"Number\": \"string\",\n \"DisplayNumber\": \"string\"\n },\n \"WorkPhoneModel\": {\n \"CountryId\": 0,\n \"Number\": \"string\",\n \"DisplayNumber\": \"string\"\n },\n \"memberships\": [\n {\n \"guest_id\": \"string\",\n \"id\": \"string\",\n \"MembershipBalance\": \"string\",\n \"MembershipEndD\": \"string\",\n \"MembershipName\": \"string\",\n \"MembershipStartD\": \"string\"\n }\n ],\n \"packages\": [\n {}\n ],\n \"products\": [\n {\n \"actors\": [\n {\n \"ActorDName\": \"string\",\n \"ActorFName\": \"string\",\n \"ActorLName\": \"string\",\n \"id\": \"string\"\n }\n ],\n \"CenterId\": \"string\",\n \"CenterName\": \"string\",\n \"CreatedDate\": \"string\",\n \"FinalSalePrice\": \"string\",\n \"id\": \"string\",\n \"InvoiceNo\": \"string\",\n \"Notes\": {},\n \"products\": [\n {\n \"id\": \"string\",\n \"productCode\": \"string\",\n \"productName\": \"string\"\n }\n ],\n \"Quantity\": \"string\"\n }\n ],\n \"appts\": [\n {\n \"actors\": [\n {\n \"ActorDName\": \"string\",\n \"ActorFName\": \"string\",\n \"ActorLName\": \"string\",\n \"id\": \"string\"\n }\n ],\n \"apptgroup_id\": \"string\",\n \"guests\": [\n {\n \"GuestFlagFT\": \"string\",\n \"GuestFlagHS\": \"string\",\n \"GuestFlagLF\": \"string\",\n \"GuestFlagMB\": \"string\",\n