openapi: 3.0.3 info: title: WellnessLiving API description: Curated, representative subset of WellnessLiving's official production API (RESTful, JSON-over-HTTPS). WellnessLiving is business-management software for fitness studios, gyms, spas, and salons; this API is the same one its own web and mobile clients (Achieve, Elevate) call, and is published for approved partners via an official OpenAPI document at github.com/wellnessliving/openapi (324 paths across 45+ resource areas as of the 2026-06-20 build). Endpoints below are grounded in that official spec and in the public github.com/wellnessliving/wl-sdk (PHP) and wl-sdk-js SDKs; this file selects roughly four representative endpoints per logical API area rather than reproducing the full catalog. Every WellnessLiving API resource is a `.json`-suffixed endpoint whose path is derived deterministically from the SDK model class's namespace (e.g. the PHP class `WellnessLiving\Wl\Staff\StaffElementModel` serves `/Wl/Staff/StaffElement.json`). Legacy numbered variants of several endpoints exist for backward compatibility (e.g. `Finish47`, `ServiceList52`, `Purchase72`) and are omitted here in favor of their current unsuffixed counterpart. version: 1.1.20260620071011 contact: name: WellnessLiving Support email: support@wellnessliving.com url: https://www.wellnessliving.com/support license: name: Proprietary url: https://www.wellnessliving.com/knowledge-sharing/terms-of-use/ termsOfService: https://www.wellnessliving.com/knowledge-sharing/terms-of-use/ servers: - url: https://us.wellnessliving.com description: Production - United States data center - url: https://au.wellnessliving.com description: Production - Australia data center - url: https://staging.wellnessliving.com description: Staging (pre-release QA branch) - url: https://demo.wellnessliving.com description: Demo/trunk (active development branch) security: - BearerAuth: [] tags: - name: Clients - name: Members - name: Profile - name: Family - name: Classes - name: Schedules - name: Group Fitness - name: Appointments - name: 1:1 Services - name: Booking - name: Checkout - name: Promotions - name: Memberships - name: Guest Pass - name: Staff - name: Locations - name: Business - name: Catalog - name: Purchases - name: Point of Sale - name: Payments - name: Thoth WlPay - name: Authentication - name: Login - name: Rewards - name: Loyalty - name: Reviews - name: Reports - name: WebSocket - name: Real-Time paths: /Wl/Member/Info/Info.json: get: operationId: get_Wl_Member_Info_Info summary: Returns information about specified member. description: 'Supports both single-user and batch modes: when `$a_uid` is provided, returns a keyed list of user data in `$a_result_list`; otherwise returns data for the single user identified by `$uid`. When `$is_full` is `true`, additional profile details, group membership, visit history, and lifetime value are included.' tags: - Clients parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_uid in: query required: false schema: type: array nullable: true items: type: string description: 'Primary keys of users whose information must be returned. `null` if data of a single user is requested.' - name: a_uid_date in: query required: false schema: type: array nullable: true items: type: string description: 'List of dates for load additional information about users. Key is UID of user. Value is date. `null` if data of a single user is requested.' - name: dt_date in: query required: true schema: type: string description: Date of the session, if we show it on the appointment info window or on the attendance list. - name: is_backend in: query required: true schema: type: boolean description: '`true` - if API is being used from backend, `false` - otherwise.' - name: is_full in: query required: true schema: type: boolean description: If you need to return additional information set to `true` or `false` if not. - name: k_business in: query required: true schema: type: string description: 'The business ID required to access client information. Specify this as `0` to retrieve the system-wide version of the information.' - name: k_visit in: query required: true schema: type: string description: ID of the visit, if we show icons on the attendance list and information that depends on visit is required. - name: s_show in: query required: true schema: type: string description: 'A list of icons with additional information about the business member. If empty, all available icons will be displayed. Comma separated values from [M' - name: uid in: query required: true schema: type: string description: ID of a user to retrieve member information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_info: description: The `a_info` field. nullable: true a_result_list: description: The `a_result_list` field. nullable: true a_visit_last: description: The `a_visit_last` field. nullable: true a_visit_next: description: The `a_visit_next` field. nullable: true i_lifetime_visit: description: The `i_lifetime_visit` field. nullable: true is_traveller: description: The `is_traveller` field. nullable: true m_lifetime_value: description: The `m_lifetime_value` field. nullable: true s_member: description: The `s_member` field. nullable: true text_first_name: description: The `text_first_name` field. nullable: true text_fullname: description: The `text_fullname` field. nullable: true url_barcode: description: The `url_barcode` field. nullable: true url_email: description: The `url_email` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Profile/Purchase/PurchaseList.json: get: operationId: get_Wl_Profile_Purchase_PurchaseList summary: Retrieves a list of user's purchase items to show in user profile. description: "Returns the complete purchase history for the client in the given business, covering\ \ all\n item types such as memberships, redemption codes, enrollments, products, appointments,\ \ and\n gift cards. Package components are resolved and included inline beside their parent item." tags: - Clients parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: The key of a business to show information for. - name: uid in: query required: true schema: type: string description: The key of a user to show information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_purchase: description: The `a_purchase` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Profile/ProfileCreate.json: post: operationId: post_Wl_Profile_ProfileCreate summary: Creates a new client profile with the provided personal details in the specified business. description: "Creates or retrieves a user account by email or phone, saves personal details such\ \ as name,\n address, phones, birthday, gender, and vaccination status, registers the user in\ \ the\n business, and optionally adds them to the lead report and sets intents." tags: - Clients parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_intents: description: The `a_intents` field. See WellnessLiving developer portal for full field semantics. type: string dt_birthday: description: The `dt_birthday` field. See WellnessLiving developer portal for full field semantics. type: string id_gender: description: The `id_gender` field. See WellnessLiving developer portal for full field semantics. type: string id_lead_source: description: The `id_lead_source` field. See WellnessLiving developer portal for full field semantics. type: string id_vaccination_status: description: The `id_vaccination_status` field. See WellnessLiving developer portal for full field semantics. type: string is_lead: description: The `is_lead` field. See WellnessLiving developer portal for full field semantics. type: string k_business: description: The `k_business` field. See WellnessLiving developer portal for full field semantics. type: string k_lead_source: description: The `k_lead_source` field. See WellnessLiving developer portal for full field semantics. type: string k_location_home: description: The `k_location_home` field. See WellnessLiving developer portal for full field semantics. type: string text_address: description: The `text_address` field. See WellnessLiving developer portal for full field semantics. type: string text_firstname: description: The `text_firstname` field. See WellnessLiving developer portal for full field semantics. type: string text_lastname: description: The `text_lastname` field. See WellnessLiving developer portal for full field semantics. type: string text_mail: description: The `text_mail` field. See WellnessLiving developer portal for full field semantics. type: string text_phone: description: The `text_phone` field. See WellnessLiving developer portal for full field semantics. type: string text_phone_home: description: The `text_phone_home` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_intents - dt_birthday - id_gender - id_lead_source - id_vaccination_status - is_lead - k_business - k_lead_source - k_location_home - text_address - text_firstname - text_lastname - text_mail - text_phone - text_phone_home responses: '200': description: Successful response. content: application/json: schema: type: object properties: uid: description: The `uid` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Family/Relation/FamilyRelation.json: get: operationId: get_Wl_Family_Relation_FamilyRelation summary: Gets relationships list. description: 'Returns all relationship types enabled for the given business, or all system-defined relationship types if no business key is provided.' tags: - Clients parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: The business key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_business_relationships: description: The `a_business_relationships` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Classes/ClassList/List.json: get: operationId: get_Wl_Classes_ClassList_List summary: Returns list of classes and events in the business. description: 'Used by import and integration tools to enumerate all classes and events offered by a business. In franchise mode, classes from all franchisee locations are included. Results are sorted by title and start date.' tags: - Classes parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_class_tab in: query required: false schema: type: array nullable: true items: type: string description: 'List of tabs keys. Filtering by Book Now Tab is not supported if `is_franchise` is `true`. `null` if no filtering by Book Now Tab is required.' - name: id_class_tab in: query required: false schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: 'ID of book now tab. One of [TabSid](#/components/schemas/Wl.Classes.Tab.TabSid) constants. Only [TabSid::TRAINING](#/components/schemas/Wl.Classes.Tab' - name: is_enrollment_block_all in: query required: true schema: type: boolean description: 'Whether all events should be returned from same enrollment block. * `true` to return all events from same enrollment block. * `false` to return only' - name: is_enrollment_block_empty in: query required: true schema: type: boolean description: 'Whether to include events without sessions. An empty event is neither published nor unpublished. It simply has no sessions. Such events can be useful' - name: is_event_include in: query required: true schema: type: boolean description: 'Whether to include events in the result. true` to include both classes and events. false` to include only classes.' - name: is_franchise in: query required: true schema: type: boolean description: 'Whether to return franchisee-created classes (if business is franchisor). `true` to include franchisee-created classes.' - name: k_business in: query required: true schema: type: string description: Business key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_class: description: The `a_class` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Classes/ClassView/Element.json: get: operationId: get_Wl_Classes_ClassView_Element summary: Returns class information including schedules, images, and booking settings for the specified business. description: 'Used by import tools to read the full class catalog for a business. Returns a map of all classes (or a single class) with the information needed to replicate class data in an external system: schedules, images, booking constraints, and descriptions.' tags: - Classes parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_image_height in: query required: true schema: type: integer description: 'The image height in pixels. Specify this value if you need the image to be returned in a specific size. If this value isn''t specified, the returned im' - name: i_image_width in: query required: true schema: type: integer description: 'The image width in pixels. Specify this value if you need the image to be returned in a specific size. If this value isn''t specified, the returned ima' - name: k_business in: query required: true schema: type: string description: The business key. - name: k_class in: query required: true schema: type: string description: 'The class key used to get information for a specific class. An empty value returns information for all classes of the business.' - name: show_cancelled in: query required: true schema: type: boolean description: 'Defines if canceled schedules should be included in the result. If `true`, canceled schedules will be shown. Otherwise, this will be `false`.' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_class_list: description: The `a_class_list` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Schedule/ClassList/ClassList.json: get: operationId: get_Wl_Schedule_ClassList_ClassList summary: Retrieves a list of classes and class information for the given business and date range. description: 'Returns upcoming class sessions for a business, with optional filtering by location, day of week, time of day, staff member, and virtual or in-person mode. The result includes per-session details such as staff, capacity, booking counts, and virtual locations, as well as a calendar map indicating which dates have at least one scheduled session.' tags: - Classes parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_class in: query required: true schema: type: array items: type: string description: 'The list of classes keys to filter. Return sessions with matching class IDs. If it''s empty, all classes/events will be returned.' - name: a_day in: query required: true schema: type: array items: type: string description: 'Class filter by day of the week. Array of number representing the days of the week. Return sessions matching the given weekdays. (7 = Sunday, 1 = Mond' - name: a_location in: query required: true schema: type: array items: type: string description: 'The list of location keys to filter results. If it''s empty, schedule for all locations will be returned. All given locations should be from the same b' - name: a_time in: query required: true schema: type: array items: type: string description: 'Class filter by time of day. List of arrays with start and end time in "HH:MM" format (24h). Include sessions that start between the specified time ra' - name: dt_date in: query required: true schema: type: string description: The list start date in UTC and in MySQL format. - name: dt_end in: query required: true schema: type: string description: The list end date in UTC and in MySQL format. - name: is_response_short in: query required: true schema: type: boolean description: '`true` means to not generate `a_session` result. Can be used, if you do not need full information about existing classes and result in `a_calendar` is' - name: is_tab_all in: query required: true schema: type: boolean description: 'If `true`, sessions from every class tab are returned. If `false`, use the `k_class_tab` value.' - name: is_virtual in: query required: false schema: type: boolean nullable: true description: 'Class filter by type. The class is virtual. `true`: Only virtual classes. `false`: Only in-person. `null` or not set: No filtering.' - name: k_business in: query required: true schema: type: string description: The business key. - name: k_class_tab in: query required: true schema: type: string description: 'The category tab key. This will be `null` if not set yet. This will be ignored if `is_tab_all` is `true`.' - name: s_staff in: query required: true schema: type: string description: 'The list of staff members to filter. A comma separated list of staff keys.' - name: s_staff_uid in: query required: true schema: type: string description: 'The list of staff user keys to filter. A comma separated list of staff user keys.' - name: show_cancel in: query required: true schema: type: boolean description: If `true`, canceled sessions will be returned. If `false`, canceled sessions won't be returned. - name: show_class in: query required: true schema: type: boolean description: If `true`, classes will be included in the response. `false` - otherwise. - name: show_event in: query required: true schema: type: boolean description: If `true`, events are also returned. If `false`, only classes are returned. - name: uid in: query required: true schema: type: string description: The user key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_calendar: description: The `a_calendar` field. nullable: true a_session: description: The `a_session` field. nullable: true is_timezone_different: description: The `is_timezone_different` field. nullable: true is_virtual_service: description: The `is_virtual_service` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Schedule/Cancel.json: post: operationId: post_Wl_Schedule_Cancel summary: 'Cancels session for the client. This method is an alias for partners using the API or SDK.' description: 'Identical in behavior to `get()`; exists as a POST alias for partner integrations that cannot issue GET requests.' tags: - Classes parameters: - $ref: '#/components/parameters/XErrorRules' - name: dt_date in: query required: true schema: type: string description: The date of the session in UTC. - name: is_backend in: query required: true schema: type: boolean description: 'This will be `true` if the API is being used from the back end. Otherwise, this will be `false`. Here, the back end refers to either a staff member or' - name: is_late_cancel in: query required: true schema: type: boolean description: '`true` is late cancel, `false` reservation is not late cancel. This is required to enable late cancel even if the user is staff.' - name: k_appointment in: query required: false schema: type: string nullable: true description: 'The appointment key. This will be `null` if not set yet or if a class or event is canceled.' - name: k_business in: query required: true schema: type: string description: Key of the business within which the action is performed. - name: k_class_period in: query required: false schema: type: string nullable: true description: 'The class period key. This will be `null` if not set yet or if an appointment is canceled.' - name: uid in: query required: true schema: type: string description: The user key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: status: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Appointment/Info/Info.json: get: operationId: get_Wl_Appointment_Info_Info summary: Gets information about appointment. description: "Returns detailed information about the specified appointment, including service details,\ \ staff member,\n date and time in the location's timezone, booking status, client information,\ \ and any associated\n assets or add-ons. Access is validated against the current user's permissions." tags: - Appointments parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_appointment in: query required: true schema: type: string description: Class identifier to get information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_next: description: The `a_next` field. nullable: true a_previous: description: The `a_previous` field. nullable: true a_question: description: The `a_question` field. nullable: true a_resource: description: The `a_resource` field. nullable: true a_shop_product_option: description: The `a_shop_product_option` field. nullable: true dt_date_local: description: The `dt_date_local` field. nullable: true i_duration: description: The `i_duration` field. nullable: true i_index: description: The `i_index` field. nullable: true id_appointment_pay: description: The `id_appointment_pay` field. nullable: true k_location: description: The `k_location` field. nullable: true k_login_promotion: description: The `k_login_promotion` field. nullable: true k_resource: description: The `k_resource` field. nullable: true k_resource_type: description: The `k_resource_type` field. nullable: true k_service: description: The `k_service` field. nullable: true k_service_category: description: The `k_service_category` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Appointment/Book/Schedule/Calendar.json: get: operationId: get_Wl_Appointment_Book_Schedule_Calendar summary: Retrieves a list with all calendar days in specified period with available and unavailable appointment booking schedule. description: "Returns each day in the requested month marked as available or unavailable for booking\ \ the given\n service at the given location. Availability is determined by the business schedule,\ \ holidays,\n and staff availability for the selected date range." tags: - Appointments parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_uid in: query required: true schema: type: array items: type: string description: 'List of user keys to book appointments. There may be empty values in this list, which means that this is a walk-in.' - name: dt_date in: query required: true schema: type: string description: The date to show the available appointment booking schedule. - name: i_duration in: query required: true schema: type: integer description: 'The duration of the asset booking or custom appointment duration in minutes. Zero in case of service predefined duration. In case of back-to-back book' - name: i_index in: query required: true schema: type: integer description: An index of the selected asset. `0` for booking of service or if asset is not on layout. - name: id_gender_staff in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: 'The ID of the staff member''s gender. In case of back-to-back booking - staff gender of first appointment. One of the [AGenderSid](#/components/schemas' - name: is_back_to_back in: query required: true schema: type: boolean description: Determines whether multiple appointments are booked in back-to-back mode. - name: is_month_view in: query required: true schema: type: boolean description: If calendar should be displayed in month view mode. - name: is_staff in: query required: true schema: type: boolean description: '`true` if the request is made by staff member; in this case booking policy restrictions are ignored. `false` if the request is made by client; booking' - name: is_tab_all in: query required: true schema: type: boolean description: '`true` - search in all tabs. `false` - search only for the selected bookable tab. Cannot be set simultaneously with {DayTimeApi::$k_class_tab}.' - name: is_unavailable in: query required: true schema: type: boolean description: '`true` - return service categories that have no staff members able to conduct them. `false` - return only service categories that have staff members a' - name: is_walk_in in: query required: true schema: type: boolean description: If `true`, the client is a walk-in. Otherwise, this will be `false`. - name: k_class_tab in: query required: false schema: type: string nullable: true description: 'Current booking tab. Only used for asset booking with "Allow clients to select a date and time, then the available asset" booking policy enabled. Can' - name: k_location in: query required: true schema: type: string description: Location to show available appointment booking schedule. - name: k_resource in: query required: true schema: type: string description: 'The resource key to show which days are available for booking. Should be `0` in case of back-to-back booking.' - name: k_service in: query required: true schema: type: string description: 'The service key used for showing the available appointment booking schedule. In case of back-to-back booking - service key of first appointment.' - name: k_staff in: query required: true schema: type: string description: 'The staff member key used for showing the available appointment booking schedule. In case of back-to-back booking - staff key of first appointment. `0' - name: k_timezone in: query required: false schema: type: string nullable: true description: 'Key of timezone. `null` if not set to use client''s profile timezone.' - name: s_appointment in: query required: true schema: type: string description: 'The staff key to show what days are available for booking. For back-to-back booking ([DayTimeApi](/Wl/Appointment/Book/Schedule/DayTime.json) == `tru' - name: s_product in: query required: true schema: type: string description: 'A list of service add-ons keys(encoded as JSON string). In case of back-to-back booking - add-ons of first appointment.' - name: uid in: query required: true schema: type: string description: 'The user key. This field is used if the client books for himself or for the relative. This field is incorrect to use for guest booking since in this' - name: uid_staff in: query required: true schema: type: string description: 'The staff user key used for showing the available appointment booking schedule. In case of back-to-back booking - staff user key of first appointment.' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_date: description: The `a_date` field. nullable: true a_time: description: The `a_time` field. nullable: true a_timezone_data: description: The `a_timezone_data` field. nullable: true a_week_name: description: The `a_week_name` field. nullable: true can_backwards: description: The `can_backwards` field. nullable: true dt_date: description: The `dt_date` field. nullable: true i_capacity: description: The `i_capacity` field. nullable: true i_capacity_waitlist: description: The `i_capacity_waitlist` field. nullable: true i_week_end: description: The `i_week_end` field. nullable: true i_week_start: description: The `i_week_start` field. nullable: true is_waitlist: description: The `is_waitlist` field. nullable: true k_location: description: The `k_location` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Appointment/Book/Staff/List.json: get: operationId: get_Wl_Appointment_Book_Staff_List summary: Retrieves an information about staff members for the current service. description: "Returns the list of staff members who can perform the specified service at the given\ \ location\n on the specified date and time. Each entry includes the staff member's name, image,\ \ gender,\n and availability. An 'any staff' option is included when the service allows random\ \ staff assignment." tags: - Appointments parameters: - $ref: '#/components/parameters/XErrorRules' - name: dt_date in: query required: true schema: type: string description: The date/time of the appointment selected by user, in the location's time zone. - name: i_duration_custom in: query required: false schema: type: integer nullable: true description: 'Custom appointment duration in minutes. `null` if not set.' - name: id_role in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: 'User role by whom this api called. For different roles different results might be generated.' - name: is_unavailable in: query required: true schema: type: boolean description: '`true` - returns service categories that have no staff members available to conduct them. `false` - returns only service categories that have staff me' - name: k_appointment_ignore in: query required: true schema: type: string description: Key of appointment which must be ignored when searches available staff. - name: k_location in: query required: true schema: type: string description: The key of the location. - name: k_service in: query required: true schema: type: string description: The key of a service for which to show information. - name: k_timezone in: query required: false schema: type: string nullable: true description: 'User''s timezone. `null` until initialized or to use location timezone.' - name: uid in: query required: false schema: type: string nullable: true description: 'The user key for whom the service is booking. `null` when not set.' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_staff: description: The `a_staff` field. nullable: true can_book_unavailable_staff: description: The `can_book_unavailable_staff` field. nullable: true has_gender: description: The `has_gender` field. nullable: true has_staff: description: The `has_staff` field. nullable: true is_gender_different: description: The `is_gender_different` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Appointment/Book/Finish/FinishMultiple.json: post: operationId: post_Wl_Appointment_Book_Finish_FinishMultiple summary: Completes the appointment booking for one or more providers, optionally creating a new client. description: "Accepts booking details for one or more providers in `a_book_data`,\n processes payment\ \ using the selected Purchase Option, creates appointment records, and sends\n booking confirmation\ \ notifications. A new client account can be created by supplying user\n details in `a_user` when\ \ no UID is provided." tags: - Appointments parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_pay in: query required: true schema: type: array items: type: string description: 'The payment type for the appointment. One of the [RsAppointmentPaySid](#/components/schemas/RsAppointmentPaySid) constants. Keys refer to provider in' - name: a_uid in: query required: true schema: type: array items: type: string description: 'List of user keys to book appointments. There may be empty values in this list, which means that this is a walk-in.' - name: a_user in: query required: true schema: type: object additionalProperties: true description: 'Data to create new users. Specify this if `$uid` is empty. The data must contain the next keys:' - name: is_walk_in in: query required: true schema: type: boolean description: If `true`, the client is a walk-in. Otherwise, this will be `false`. - name: k_appointment in: query required: true schema: type: string description: 'The appointment key. Specify this to reschedule a certain appointment.' - name: k_business in: query required: true schema: type: string description: The business key. - name: k_location in: query required: true schema: type: string description: Location to show available appointment booking schedule. - name: uid in: query required: true schema: type: string description: 'The user key. This field is used if the client books for himself or for the relative. This field is incorrect to use for guest booking since in this' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_answer: description: The `a_answer` field. See WellnessLiving developer portal for full field semantics. type: string a_book_data: description: The `a_book_data` field. See WellnessLiving developer portal for full field semantics. type: string a_notification: description: The `a_notification` field. See WellnessLiving developer portal for full field semantics. type: string a_paid: description: The `a_paid` field. See WellnessLiving developer portal for full field semantics. type: string a_pay_form: description: The `a_pay_form` field. See WellnessLiving developer portal for full field semantics. type: string a_payment_data: description: The `a_payment_data` field. See WellnessLiving developer portal for full field semantics. type: string a_purchase_item: description: The `a_purchase_item` field. See WellnessLiving developer portal for full field semantics. type: string a_quiz_response: description: The `a_quiz_response` field. See WellnessLiving developer portal for full field semantics. type: string id_mode: description: The `id_mode` field. See WellnessLiving developer portal for full field semantics. type: string is_back_to_back: description: The `is_back_to_back` field. See WellnessLiving developer portal for full field semantics. type: string is_try: description: The `is_try` field. See WellnessLiving developer portal for full field semantics. type: string s_id: description: The `s_id` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_answer - a_book_data - a_notification - a_paid - a_pay_form - a_payment_data - a_purchase_item - a_quiz_response - id_mode - is_back_to_back - is_try - s_id responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_appointment: description: The `a_appointment` field. nullable: true a_login_activity_visit: description: The `a_login_activity_visit` field. nullable: true a_visit: description: The `a_visit` field. nullable: true a_visit_provider: description: The `a_visit_provider` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Book/Process/Process.json: get: operationId: get_Wl_Book_Process_Process summary: Returns the ordered list of booking wizard steps for the given session and client. description: 'Evaluates the session, user profile, payment requirements, asset selection, and subscription state to build an ordered list of steps the client must complete to finish the booking. The first step in the list is marked as current, and additional flags about event type, wait-list availability, and payment options are returned.' tags: - Booking parameters: - $ref: '#/components/parameters/XErrorRules' - name: dt_date_gmt in: query required: true schema: type: string description: Date/time to which session is booked. - name: id_mode in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: The mode type. One of the [ModeSid](#/components/schemas/Wl.Mode.ModeSid) constants. - name: is_backend in: query required: true schema: type: boolean description: '`true` if action is performed as a staff member; `false` otherwise. If `true` is sent, access to the business and to the client will be checked. If `' - name: is_credit_card_check in: query required: true schema: type: boolean description: 'Checking whether the client has a credit card (if configured in the business) will be skipped if this flag is set to `false`. Use this field with cau' - name: k_class_period in: query required: true schema: type: string description: Key of session which is booked. - name: show_relation in: query required: true schema: type: boolean description: '`true` to show "book for" option in booking wizard. `false` for default behavior.' - name: uid in: query required: true schema: type: string description: The client key for which the booking is being made. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_family_relation_login_allow: description: The `a_family_relation_login_allow` field. nullable: true a_path: description: The `a_path` field. nullable: true id_pay_require: description: The `id_pay_require` field. nullable: true is_age_require: description: The `is_age_require` field. nullable: true is_card_authorize: description: The `is_card_authorize` field. nullable: true is_event: description: The `is_event` field. nullable: true is_family_relation_book: description: The `is_family_relation_book` field. nullable: true is_free: description: The `is_free` field. nullable: true is_have_ach: description: The `is_have_ach` field. nullable: true is_have_credit_card: description: The `is_have_credit_card` field. nullable: true is_session: description: The `is_session` field. nullable: true is_wait: description: The `is_wait` field. nullable: true is_wait_list_unpaid: description: The `is_wait_list_unpaid` field. nullable: true k_location: description: The `k_location` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Book/Process/Payment/Payment.json: post: operationId: post_Wl_Book_Process_Payment_Payment summary: Processes purchases and books sessions on the "Pay/Billing info" step of the booking wizard. description: 'Accepts the selected purchase items, payment form, optional discount code, and installment template, then collects payment, applies discounts and prizes, and creates the booking records. Returns visit keys, activity keys, and purchase activity key upon success.' tags: - Booking parameters: - $ref: '#/components/parameters/XErrorRules' - name: dt_date_gmt in: query required: true schema: type: string description: Date/time to which session is booked. - name: id_mode in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: The mode type. One of the [ModeSid](#/components/schemas/Wl.Mode.ModeSid) constants. - name: is_backend in: query required: true schema: type: boolean description: '`true` if action is performed as a staff member; `false` otherwise. If `true` is sent, access to the business and to the client will be checked. If `' - name: is_credit_card_check in: query required: true schema: type: boolean description: 'Checking whether the client has a credit card (if configured in the business) will be skipped if this flag is set to `false`. Use this field with cau' - name: k_class_period in: query required: true schema: type: string description: Key of session which is booked. - name: show_relation in: query required: true schema: type: boolean description: '`true` to show "book for" option in booking wizard. `false` for default behavior.' - name: uid in: query required: true schema: type: string description: The client key for which the booking is being made. requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_item: description: The `a_item` field. See WellnessLiving developer portal for full field semantics. type: string a_pay_form: description: The `a_pay_form` field. See WellnessLiving developer portal for full field semantics. type: string a_quiz_response: description: The `a_quiz_response` field. See WellnessLiving developer portal for full field semantics. type: string a_repeat: description: The `a_repeat` field. See WellnessLiving developer portal for full field semantics. type: string a_resource: description: The `a_resource` field. See WellnessLiving developer portal for full field semantics. type: string a_session: description: The `a_session` field. See WellnessLiving developer portal for full field semantics. type: string a_session_wait_list_unpaid: description: The `a_session_wait_list_unpaid` field. See WellnessLiving developer portal for full field semantics. type: string can_book: description: The `can_book` field. See WellnessLiving developer portal for full field semantics. type: string is_book_unpaid: description: The `is_book_unpaid` field. See WellnessLiving developer portal for full field semantics. type: string is_card_authorize: description: The `is_card_authorize` field. See WellnessLiving developer portal for full field semantics. type: string is_force_pay_later: description: The `is_force_pay_later` field. See WellnessLiving developer portal for full field semantics. type: string k_login_promotion: description: The `k_login_promotion` field. See WellnessLiving developer portal for full field semantics. type: string k_pay_installment_template: description: The `k_pay_installment_template` field. See WellnessLiving developer portal for full field semantics. type: string k_session_pass: description: The `k_session_pass` field. See WellnessLiving developer portal for full field semantics. type: string text_discount_code: description: The `text_discount_code` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_item - a_pay_form - a_quiz_response - a_resource - a_session - a_session_wait_list_unpaid - can_book - is_book_unpaid - is_card_authorize - is_force_pay_later - k_login_promotion - k_session_pass - text_discount_code responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_login_activity_book: description: The `a_login_activity_book` field. nullable: true a_visit: description: The `a_visit` field. nullable: true k_login_activity_purchase: description: The `k_login_activity_purchase` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Book/Process/Purchase/Purchase.json: get: operationId: get_Wl_Book_Process_Purchase_Purchase summary: Returns available purchase options, existing client promotions, session passes, and prizes for the specified session. description: 'Loads all purchase options that can be used to book the specified class period for the given user, including existing login promotions with remaining session counts, new purchasable options, reward prizes, and login prizes. Returns pricing, image, program category, and availability data for each option.' tags: - Booking parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_login_promotion_group in: query required: true schema: type: array items: type: string description: 'A list of existing purchase options that were selected for previous clients (group). Note: * It makes sense if for all clients the list is loaded wit' - name: a_session in: query required: true schema: type: array items: type: string description: 'The list of sessions being booked. Keys are class period keys. Values are index arrays of date/time strings when the session occurred, in MySQL forma' - name: a_session_wait_list_unpaid in: query required: true schema: type: array items: type: string description: 'The selected sessions on the wait list that are unpaid. Keys are class period keys. Values are index arrays of date/time strings when the session occ' - name: dt_date_gmt in: query required: true schema: type: string description: Date/time to which session is booked. - name: i_image_height in: query required: true schema: type: integer description: 'The image height in pixels. Specify this value if you need image to be returned in specific size. The returned image will have the default thumbnail s' - name: i_image_width in: query required: true schema: type: integer description: 'The image width in pixels. Specify this value if you need image to be returned in specific size. The returned image will have the default thumbnail si' - name: id_mode in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: The mode type. One of the [ModeSid](#/components/schemas/Wl.Mode.ModeSid) constants. - name: is_backend in: query required: true schema: type: boolean description: '`true` if action is performed as a staff member; `false` otherwise. If `true` is sent, access to the business and to the client will be checked. If `' - name: is_card_authorize in: query required: true schema: type: boolean description: Determines if the client must authorize the credit card. - name: is_credit_card_check in: query required: true schema: type: boolean description: 'Checking whether the client has a credit card (if configured in the business) will be skipped if this flag is set to `false`. Use this field with cau' - name: k_business in: query required: false schema: type: string nullable: true description: 'The business key. `null` if business key was not passed.' - name: k_class_period in: query required: true schema: type: string description: Key of session which is booked. - name: show_relation in: query required: true schema: type: boolean description: '`true` to show "book for" option in booking wizard. `false` for default behavior.' - name: uid in: query required: true schema: type: string description: The client key for which the booking is being made. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_login_prize: description: The `a_login_prize` field. nullable: true a_login_promotion: description: The `a_login_promotion` field. nullable: true a_purchase: description: The `a_purchase` field. nullable: true a_reward_prize: description: The `a_reward_prize` field. nullable: true a_session_pass: description: The `a_session_pass` field. nullable: true is_single_default: description: The `is_single_default` field. nullable: true k_promotion_default: description: The `k_promotion_default` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Book/Cancel/CancelCan.json: get: operationId: get_Wl_Book_Cancel_CancelCan summary: Returns information about whether the given user can cancel the booking and the expected consequences. description: 'Accepts a business key and a visit key, validates access, and performs a dry-run cancellation to determine whether the visit can be cancelled online, whether a late-cancel penalty applies, and whether the purchase option credit would be refunded.' tags: - Booking parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: Key of the business within which the action is performed. - name: k_visit in: query required: true schema: type: string description: Visit key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_penalty: description: The `a_penalty` field. nullable: true can_cancel: description: The `can_cancel` field. nullable: true is_flag: description: The `is_flag` field. nullable: true is_late: description: The `is_late` field. nullable: true is_refund: description: The `is_refund` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Promotion/Index/PromotionIndex.json: get: operationId: get_Wl_Promotion_Index_PromotionIndex summary: Gets a list of packages/passes/memberships. description: 'Returns introductory promotion offers available at the specified location, optionally filtered by program type, including pricing, duration, visit limits, and access information for each item.' tags: - Promotions parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_image_height in: query required: true schema: type: integer description: 'Image height in pixels. Please specify this value if you need image to be returned in specific size. In case this value is not specified returned imag' - name: i_image_width in: query required: true schema: type: integer description: 'Image width in pixels. Please specify this value if you need image to be returned in specific size. In case this value is not specified returned image' - name: id_program_type in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: 'The program type ID, which will be one of the [RsProgramTypeSid](#/components/schemas/RsProgramTypeSid) constants. `0` to not filter Purchase Options' - name: k_location in: query required: true schema: type: string description: The location key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_promotion: description: The `a_promotion` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Promotion/PromotionList.json: get: operationId: get_Wl_Promotion_PromotionList summary: Returns promotion list of the specified business. description: 'Returns all active promotions for the given business, with optional inclusion of Enterprise Location promotions when the business is a franchisor and `is_franchise` is set to `true`.' tags: - Promotions parameters: - $ref: '#/components/parameters/XErrorRules' - name: is_franchise in: query required: true schema: type: boolean description: 'Determines whether to return promotions created by Enterprise Locations (for Enterprise Cloud businesses only). If `true`, promotions created by Enter' - name: k_business in: query required: true schema: type: string description: The business key used to get the promotions. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_promotion: description: The `a_promotion` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Promotion/Promotion.json: post: operationId: post_Wl_Promotion_Promotion summary: Saves promotion data. description: 'Accepts the full promotion configuration including title, description, access rules, duration, tags, and guest pass settings, then validates and persists the changes.' tags: - Promotions parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: The key of the business. - name: k_promotion in: query required: true schema: type: string description: The key of the promotion. requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_promotion: description: The `a_promotion` field. See WellnessLiving developer portal for full field semantics. type: string o_guest_settings: description: The `o_guest_settings` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_promotion responses: '200': description: Successful response. content: application/json: schema: type: object properties: status: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Login/Promotion/GuestPass/GuestPassList.json: get: operationId: get_Wl_Login_Promotion_GuestPass_GuestPassList summary: Retrieves guest passes for a specific client. description: Returns all guest passes assigned to the given user, optionally filtered by class and location. tags: - Promotions parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: Business key. - name: k_class in: query required: false schema: type: string nullable: true description: 'Class key to filter guest passes by. `null` if guest passes should not be filtered by class.' - name: k_location in: query required: false schema: type: string nullable: true description: 'Location key to filter guest passes by. `null` if guest passes should not be filtered by location.' - name: uid in: query required: true schema: type: string description: User key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_list: description: The `a_list` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Staff/StaffList/StaffList.json: get: operationId: get_Wl_Staff_StaffList_StaffList summary: Returns the list of staff members for the given business. description: 'Returns all active (or optionally inactive) staff members for the business, including their name, role, assigned services, contact details, and location assignments. Can be filtered to only staff who have a specific privilege, and whether access-level checks should be applied when building the result.' tags: - Staff parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_privilege in: query required: true schema: type: array items: type: string description: 'A list of privileges to filter staff members by. This property acts as a filter. Only staff members possessing all the privileges specified in this l' - name: is_check_staff_access in: query required: true schema: type: boolean description: "Determines that only staff members which the current user has access to should be\ \ retrieved.\n\n `true` if only staff members which the current user has" - name: is_staff_inactive in: query required: true schema: type: boolean description: 'Whether inactive and removed staff members are available. If `true` inactive and removed staff members are available. `false` otherwise.' - name: k_business in: query required: true schema: type: string description: The key of the business to show information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_staff: description: The `a_staff` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Staff/StaffView/StaffView.json: get: operationId: get_Wl_Staff_StaffView_StaffView summary: Retrieves information about staff. description: 'This method can accept or one staff key `k_staff` or staff list `a_staff_list` but not both (exception would be thrown).' tags: - Staff parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_staff_list in: query required: false schema: type: array nullable: true items: type: string description: A list of staff keys. - name: a_uid_staff_list in: query required: false schema: type: array nullable: true items: type: string description: A list of staff user IDs. - name: i_image_height in: query required: true schema: type: integer description: 'Image height in pixels. Please specify this value if you need image to be returned in specific size. In case this value is not specified returned imag' - name: i_image_width in: query required: true schema: type: integer description: 'Image width in pixels. Please specify this value if you need image to be returned in specific size. In case this value is not specified returned image' - name: k_business in: query required: true schema: type: string description: The key of the business to show information for. - name: k_staff in: query required: true schema: type: string description: 'The staff member key. A staff member can work for more than one business. This key can be found using the [StaffListApi](/Wl/Staff/StaffList/StaffList' - name: uid_staff in: query required: true schema: type: string description: 'The staff member user ID. A staff member can work for more than one business. This key can be found using the [StaffListApi](/Wl/Staff/StaffList/Staff' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_class_day: description: The `a_class_day` field. nullable: true a_result_list: description: The `a_result_list` field. nullable: true a_staff: description: The `a_staff` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Staff/StaffElement.json: post: operationId: post_Wl_Staff_StaffElement summary: Update or create staff. description: 'Creates a new staff member or updates an existing one in the business. When creating, a new user account is provisioned if no matching email exists. When updating, the target staff member must already belong to the business. Role, location, contact details, employment dates, and custom profile fields can all be set in a single call.' tags: - Staff parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_staff in: query required: false schema: type: string nullable: true description: 'The key of the staff member resolved and used internally by this API. This property is populated from `uid_staff` in `post()` and returned in API res' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_location: description: The `a_location` field. See WellnessLiving developer portal for full field semantics. type: string dl_end: description: The `dl_end` field. See WellnessLiving developer portal for full field semantics. type: string dl_start: description: The `dl_start` field. See WellnessLiving developer portal for full field semantics. type: string id_gender: description: The `id_gender` field. See WellnessLiving developer portal for full field semantics. type: string id_role: description: The `id_role` field. See WellnessLiving developer portal for full field semantics. type: string is_employ: description: The `is_employ` field. See WellnessLiving developer portal for full field semantics. type: string is_microsite: description: The `is_microsite` field. See WellnessLiving developer portal for full field semantics. type: string is_password_set_disable: description: The `is_password_set_disable` field. See WellnessLiving developer portal for full field semantics. type: string is_uid: description: The `is_uid` field. See WellnessLiving developer portal for full field semantics. type: string k_business: description: The `k_business` field. See WellnessLiving developer portal for full field semantics. type: string k_business_role: description: The `k_business_role` field. See WellnessLiving developer portal for full field semantics. type: string k_city: description: The `k_city` field. See WellnessLiving developer portal for full field semantics. type: string k_location: description: The `k_location` field. See WellnessLiving developer portal for full field semantics. type: string text_address: description: The `text_address` field. See WellnessLiving developer portal for full field semantics. type: string text_biography: description: The `text_biography` field. See WellnessLiving developer portal for full field semantics. type: string required: - is_password_set_disable - is_uid - k_business responses: '200': description: Successful response. content: application/json: schema: type: object properties: k_staff: description: The `k_staff` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Staff/Privilege/PrivilegeList.json: get: operationId: get_Wl_Staff_Privilege_PrivilegeList summary: Returns the list of privileges for the current user in the given business. description: 'Returns the complete access profile of the signed-in user for the given business: staff privileges by ID, named admin privileges, and a flag indicating super-admin status. Can only be called for the currently authenticated user, not on behalf of another user.' tags: - Staff parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: Key of business to get privileges for. - name: uid in: query required: true schema: type: string description: User key to get privileges for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_privilege_passport: description: The `a_privilege_passport` field. nullable: true a_privilege_staff: description: The `a_privilege_staff` field. nullable: true is_admin: description: The `is_admin` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Location/List.json: get: operationId: get_Wl_Location_List summary: Retrieves a list of locations for the given business. description: 'Accepts a single business key, a JSON-encoded list of business keys, or an array of business keys, and returns location details including coordinates, address, timezone, directories, and logo URLs. For franchisor businesses, automatically expands to include all franchisee locations.' tags: - Locations parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_business in: query required: true schema: type: array items: type: string description: 'A list of business keys. You can specify this instead of `k_business` to load data for many businesses in one call.' - name: k_business in: query required: true schema: type: string description: 'The business key used internally by WellnessLiving. In case when passed regular or franchisee business returns only locations for requested business.' - name: s_business in: query required: true schema: type: string description: 'The primary keys of the selected businesses. You can specify this instead of `k_business` to load data for many businesses in one call. This is the s' - name: show_remove in: query required: true schema: type: boolean description: Determines whether removed locations should be returned. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_location: description: The `a_location` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Location/View/View.json: get: operationId: get_Wl_Location_View_View summary: Returns detailed information about the specified location. description: 'Returns the full profile of a location, including address, coordinates, timezone, contact information, business hours, logo, slide images, amenities, social media links, and a description.' tags: - Locations parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_logo_height in: query required: true schema: type: integer description: Maximum location image height. - name: i_logo_width in: query required: true schema: type: integer description: Maximum location image width. - name: k_location in: query required: true schema: type: string description: The location key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_age: description: The `a_age` field. nullable: true a_amenities: description: The `a_amenities` field. nullable: true a_level: description: The `a_level` field. nullable: true a_logo: description: The `a_logo` field. nullable: true a_slide: description: The `a_slide` field. nullable: true a_work: description: The `a_work` field. nullable: true f_latitude: description: The `f_latitude` field. nullable: true f_longitude: description: The `f_longitude` field. nullable: true html_description_full: description: The `html_description_full` field. nullable: true html_description_preview: description: The `html_description_preview` field. nullable: true id_industry: description: The `id_industry` field. nullable: true is_phone: description: The `is_phone` field. nullable: true is_top_choice: description: The `is_top_choice` field. nullable: true k_business: description: The `k_business` field. nullable: true k_business_type: description: The `k_business_type` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Location/Location.json: post: operationId: post_Wl_Location_Location summary: Creates new location or edits the existing location. description: "When `k_location` is omitted, creates a new location requiring `k_city`,\n `text_address`,\ \ and `text_title`.\nWhen `k_location` is provided, updates only the supplied fields of the existing\ \ location.\n Returns the key of the created or updated location." tags: - Locations parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: k_business: description: The `k_business` field. See WellnessLiving developer portal for full field semantics. type: string k_city: description: The `k_city` field. See WellnessLiving developer portal for full field semantics. type: string k_location: description: The `k_location` field. See WellnessLiving developer portal for full field semantics. type: string k_timezone: description: The `k_timezone` field. See WellnessLiving developer portal for full field semantics. type: string text_address: description: The `text_address` field. See WellnessLiving developer portal for full field semantics. type: string text_email: description: The `text_email` field. See WellnessLiving developer portal for full field semantics. type: string text_phone: description: The `text_phone` field. See WellnessLiving developer portal for full field semantics. type: string text_postal: description: The `text_postal` field. See WellnessLiving developer portal for full field semantics. type: string text_title: description: The `text_title` field. See WellnessLiving developer portal for full field semantics. type: string required: - k_business responses: '200': description: Successful response. content: application/json: schema: type: object properties: k_location: description: The `k_location` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Location/WorkTime/LocationWorkTime.json: post: operationId: post_Wl_Location_WorkTime_LocationWorkTime summary: Saves working hours of the location. description: 'Accepts a list of day-and-time-range entries representing the weekly schedule and replaces all existing working hours for the location. Days not present in the list are treated as non-working days.' tags: - Locations parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_work_time: description: The `a_work_time` field. See WellnessLiving developer portal for full field semantics. type: string k_business: description: The `k_business` field. See WellnessLiving developer portal for full field semantics. type: string k_location: description: The `k_location` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_work_time - k_business - k_location responses: '200': description: Successful response. content: application/json: schema: type: object properties: status: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Business/Data.json: get: operationId: get_Wl_Business_Data summary: Returns detailed information about the specified business, including locale, franchise status, services, tips, social URLs, and logo. description: 'Used to bootstrap client-facing pages and widgets that need to know the full business profile: which services are enabled, tip and progress log settings, franchise relationship, social media links, and deep links to the schedule, catalog, and sign-up pages. Accepts either a business key or a location request token for widget contexts where the key is not available.' tags: - Business parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_logo_height in: query required: true schema: type: integer description: The maximum height of the business image (in pixels). - name: i_logo_width in: query required: true schema: type: integer description: The maximum width of the business image (in pixels). - name: k_business in: query required: true schema: type: string description: The business key. - name: text_token in: query required: true schema: type: string description: 'The authorization token. This may be used instead of `k_business` to identify a business.' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_service_list: description: The `a_service_list` field. nullable: true a_tip_predefine: description: The `a_tip_predefine` field. nullable: true id_category: description: The `id_category` field. nullable: true id_claim_status: description: The `id_claim_status` field. nullable: true id_currency: description: The `id_currency` field. nullable: true id_locale: description: The `id_locale` field. nullable: true id_rank_type: description: The `id_rank_type` field. nullable: true id_region: description: The `id_region` field. nullable: true is_apply_surcharge: description: The `is_apply_surcharge` field. nullable: true is_franchise: description: The `is_franchise` field. nullable: true is_location_multiple: description: The `is_location_multiple` field. nullable: true is_profile_timezone: description: The `is_profile_timezone` field. nullable: true is_progress_client: description: The `is_progress_client` field. nullable: true is_progress_verify: description: The `is_progress_verify` field. nullable: true is_quiz_available: description: The `is_quiz_available` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Business/Config/BusinessConfig.json: get: operationId: get_Wl_Business_Config_BusinessConfig summary: Gets information about a business config. description: 'Used by the booking widget and checkout flow to know the rules governing client interactions: which family member relations are allowed, whether clients or staff must select a location at checkout, what cancellation penalties apply, and whether white-label mode is active.' tags: - Business parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: The business key. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_business_policy: description: The `a_business_policy` field. nullable: true a_penalty: description: The `a_penalty` field. nullable: true is_location_client_select: description: The `is_location_client_select` field. nullable: true is_location_select: description: The `is_location_select` field. nullable: true is_white_label: description: The `is_white_label` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Business/Account/Subscription/SubscriptionInfo.json: get: operationId: get_Wl_Business_Account_Subscription_SubscriptionInfo summary: Gets information about subscription. description: 'Used in the backend settings UI to read the current state of a business subscription (e.g., Achieve or another product). Returns whether the subscription is active, the current plan tier, and the business locale. Requires backend access to the business.' tags: - Business parameters: - $ref: '#/components/parameters/XErrorRules' - name: cid_subscription in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: CID of the subscription information of which is requested. - name: k_business in: query required: true schema: type: string description: Business key for which subscription information is requested. responses: '200': description: Successful response. content: application/json: schema: type: object properties: id_locale: description: The `id_locale` field. nullable: true id_plan: description: The `id_plan` field. nullable: true is_active: description: The `is_active` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Business/Business.json: post: operationId: post_Wl_Business_Business summary: Creates new business. description: 'Used during the self-onboarding flow when a new client signs up for WellnessLiving. Creates the business with its default integrations, optional first location, default service categories, and an optional owner staff account - all in a single transaction. Rate-limited per IP and globally to prevent abuse.' tags: - Business parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_staff_member: description: The `a_staff_member` field. See WellnessLiving developer portal for full field semantics. type: string id_locale: description: The `id_locale` field. See WellnessLiving developer portal for full field semantics. type: string is_location_create: description: The `is_location_create` field. See WellnessLiving developer portal for full field semantics. type: string is_mail_send: description: The `is_mail_send` field. See WellnessLiving developer portal for full field semantics. type: string k_business_type: description: The `k_business_type` field. See WellnessLiving developer portal for full field semantics. type: string k_office_city: description: The `k_office_city` field. See WellnessLiving developer portal for full field semantics. type: string s_clarity_session_id: description: The `s_clarity_session_id` field. See WellnessLiving developer portal for full field semantics. type: string text_mail: description: The `text_mail` field. See WellnessLiving developer portal for full field semantics. type: string text_office_address: description: The `text_office_address` field. See WellnessLiving developer portal for full field semantics. type: string text_office_postal: description: The `text_office_postal` field. See WellnessLiving developer portal for full field semantics. type: string text_phone: description: The `text_phone` field. See WellnessLiving developer portal for full field semantics. type: string text_title: description: The `text_title` field. See WellnessLiving developer portal for full field semantics. type: string url_site: description: The `url_site` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_staff_member - id_locale - is_location_create - is_mail_send - k_business_type - k_office_city - s_clarity_session_id - text_mail - text_office_address - text_office_postal - text_phone - text_title - url_site responses: '200': description: Successful response. content: application/json: schema: type: object properties: k_business: description: The `k_business` field. nullable: true k_location: description: The `k_location` field. nullable: true uid: description: The `uid` field. nullable: true url_password_change: description: The `url_password_change` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Catalog/CatalogList/List.json: get: operationId: get_Wl_Catalog_CatalogList_List summary: Retrieves a list of all sale items. description: 'Used to render the full client-facing store catalog for a business. Returns all purchasable items - promotions, products, events, and coupons - merged across the business''s categories. The separate de-duplicated list and category list support both the flat and category-tabbed views.' tags: - Catalog parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_direct_link in: query required: true schema: type: object additionalProperties: true description: "Arguments from direct purchase link, which can give additional access to products,\ \ which are available\n only by such link." - name: is_credit_card_check in: query required: true schema: type: boolean description: '`true` to consider the requirement to have a credit card for booking (this requirement can be set in business settings) `false` to ignore it.' - name: k_business in: query required: true schema: type: string description: The business key. - name: k_location in: query required: true schema: type: string description: The key of a location. If `0`, all products in the business are retrieved. - name: uid in: query required: true schema: type: string description: The key of user. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_product: description: The `a_product` field. nullable: true a_product_duplicate: description: The `a_product_duplicate` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Catalog/Cart/Cart.json: get: operationId: get_Wl_Catalog_Cart_Cart summary: Gets purchase cost data. description: 'Used in the client-facing checkout flow to show a live price summary before the client submits payment. Calculates the full breakdown - subtotal, taxes, applied discounts, reward redemptions, and tips - so the client can review the total before confirming.' tags: - Catalog parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_item in: query required: true schema: type: array items: type: string description: The list of items in the cart. - name: is_auto_apply_prize in: query required: true schema: type: boolean description: Whether selected login prize should be auto applied to first applicable item. - name: k_location in: query required: true schema: type: string description: The location key. - name: k_login_prize in: query required: true schema: type: string description: The login prize key. - name: text_discount_code in: query required: false schema: type: string nullable: true description: 'The discount code. If `null`, the discount code has been reset.' - name: uid in: query required: true schema: type: string description: 'The user key. This will be `0` for guests.' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_discount_item: description: The `a_discount_item` field. nullable: true a_item: description: The `a_item` field. nullable: true a_prize_propose: description: The `a_prize_propose` field. nullable: true a_reward_item: description: The `a_reward_item` field. nullable: true a_reward_propose: description: The `a_reward_propose` field. nullable: true a_tax_list: description: The `a_tax_list` field. nullable: true i_score: description: The `i_score` field. nullable: true m_discount: description: The `m_discount` field. nullable: true m_discount_total: description: The `m_discount_total` field. nullable: true m_subtotal: description: The `m_subtotal` field. nullable: true m_tax: description: The `m_tax` field. nullable: true m_tip_purchase: description: The `m_tip_purchase` field. nullable: true m_total: description: The `m_total` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Catalog/Payment/Payment.json: post: operationId: post_Wl_Catalog_Payment_Payment summary: Allows to pay items for the client. description: 'The checkout endpoint that finalizes a purchase in the client-facing store. Charges the client''s selected payment method, applies any discounts and tips, and creates the purchase record. Returns the resulting purchase key so the frontend can redirect to the confirmation page.' tags: - Catalog parameters: - $ref: '#/components/parameters/XErrorRules' - name: a_commission in: query required: true schema: type: object additionalProperties: true description: 'The staff commission earned for this purchase. If this isn''t empty, it has the next fields:' - name: id_mode in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: The WellnessLiving mode type (required). One of the [ModeSid](#/components/schemas/Wl.Mode.ModeSid) constants. - name: is_guest in: query required: true schema: type: boolean description: Determines if the payment owner is an anonymous user (optional). - name: is_staff in: query required: true schema: type: boolean description: Specify this if operations are performed by the staff member (optional). - name: k_business in: query required: true schema: type: string description: The business key (required). - name: k_location in: query required: true schema: type: string description: The location key (required). - name: uid in: query required: true schema: type: string description: The user's key (required). requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_item: description: The `a_item` field. See WellnessLiving developer portal for full field semantics. type: string a_pay_form: description: The `a_pay_form` field. See WellnessLiving developer portal for full field semantics. type: string a_quiz_response: description: The `a_quiz_response` field. See WellnessLiving developer portal for full field semantics. type: string f_discount_percent: description: The `f_discount_percent` field. See WellnessLiving developer portal for full field semantics. type: string k_pay_installment_template: description: The `k_pay_installment_template` field. See WellnessLiving developer portal for full field semantics. type: string k_visit: description: The `k_visit` field. See WellnessLiving developer portal for full field semantics. type: string m_discount_flat: description: The `m_discount_flat` field. See WellnessLiving developer portal for full field semantics. type: string m_surcharge: description: The `m_surcharge` field. See WellnessLiving developer portal for full field semantics. type: string m_tip: description: The `m_tip` field. See WellnessLiving developer portal for full field semantics. type: string text_discount_code: description: The `text_discount_code` field. See WellnessLiving developer portal for full field semantics. type: string text_receipt_note: description: The `text_receipt_note` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_item - a_pay_form - a_quiz_response - f_discount_percent - k_pay_installment_template - k_visit - m_discount_flat - m_surcharge - m_tip - text_discount_code - text_receipt_note responses: '200': description: Successful response. content: application/json: schema: type: object properties: k_login_activity: description: The `k_login_activity` field. nullable: true k_purchase: description: The `k_purchase` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Purchase/Receipt/PurchaseReceipt.json: get: operationId: get_Wl_Purchase_Receipt_PurchaseReceipt summary: Gets purchase information. description: 'Returns full receipt data for the specified purchase, including business details, customer information, itemized purchase items, payment methods, pricing summary, and print URLs.' tags: - Catalog parameters: - $ref: '#/components/parameters/XErrorRules' - name: is_url_public in: query required: true schema: type: boolean description: 'Whether `url_print` and `url_print_receipt` require authentication. If `true`, the URL contains a token that allows temporary access to the page with' - name: k_purchase in: query required: false schema: type: string nullable: true description: The key of the purchase. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_account_rest: description: The `a_account_rest` field. nullable: true a_business: description: The `a_business` field. nullable: true a_card: description: The `a_card` field. nullable: true a_customer: description: The `a_customer` field. nullable: true a_pay_method: description: The `a_pay_method` field. nullable: true a_price: description: The `a_price` field. nullable: true a_purchase_item: description: The `a_purchase_item` field. nullable: true dtl_purchase: description: The `dtl_purchase` field. nullable: true has_signature: description: The `has_signature` field. nullable: true html_receipt: description: The `html_receipt` field. nullable: true text_purchase_id: description: The `text_purchase_id` field. nullable: true text_receipt: description: The `text_receipt` field. nullable: true url_print: description: The `url_print` field. nullable: true url_print_receipt: description: The `url_print_receipt` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Thoth/WlPay/Account/Account.json: get: operationId: get_Thoth_WlPay_Account_Account summary: Retrieves information about accounts of given user in given business. description: Retrieves information about accounts of given user in given business. tags: - Payments parameters: - $ref: '#/components/parameters/XErrorRules' - name: is_owner in: query required: true schema: type: boolean description: 'If `true`, information for the account''s owner is returned. Clients can be configured to pay for a relative''s expenses. For example, a parent can pay' - name: k_business in: query required: true schema: type: string description: The key of the business to show information for. - name: uid in: query required: true schema: type: string description: The key of the user to show information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_account: description: The `a_account` field. nullable: true a_account_nx: description: The `a_account_nx` field. nullable: true is_debtor: description: The `is_debtor` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Thoth/WlPay/Bank/Card/List.json: get: operationId: get_Thoth_WlPay_Bank_Card_List summary: Retrieves information about user's bank cards. description: Retrieves information about user's bank cards. tags: - Payments parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: ID of current business. - name: k_location in: query required: true schema: type: string description: 'Location to show information for. Primary key in RsLocationSql table. `0` to use user''s home location.' - name: uid in: query required: true schema: type: string description: ID of a user to show information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_bank_card: description: The `a_bank_card` field. nullable: true a_list: description: The `a_list` field. nullable: true can_add: description: The `can_add` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Thoth/WlPay/Account/Charge/Charge.json: post: operationId: post_Thoth_WlPay_Account_Charge_Charge summary: Allows the user account to be filled with a specified payment, or to perform the reset change manually. description: Allows the user account to be filled with a specified payment, or to perform the reset change manually. tags: - Payments parameters: - $ref: '#/components/parameters/XErrorRules' - name: id_pay_account_charge in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: 'The account charge mode. One of the [RsPayAccountChargeSid](#/components/schemas/RsPayAccountChargeSid) constants.' - name: is_staff in: query required: true schema: type: boolean description: If `true`, the account is filled by a staff member in the backend. Otherwise, this will be `false`. - name: k_business in: query required: true schema: type: string description: 'The ID of the business the user account belongs to. This shouldn''t be passed if a user account has already been created. In such cases, `k_pay_accoun' - name: k_pay_account in: query required: true schema: type: string description: 'The ID of the user account to refill. This may be 0 if a user account hasn''t been created yet. In such cases, `k_business` and `uid` should be passed' - name: uid in: query required: true schema: type: string description: 'The ID of the user whose account is being refilled. This shouldn''t be passed if a user account has already been created. In such cases, `k_pay_accoun' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: a_pay_form: description: The `a_pay_form` field. See WellnessLiving developer portal for full field semantics. type: string id_mode: description: The `id_mode` field. See WellnessLiving developer portal for full field semantics. type: string m_amount: description: The `m_amount` field. See WellnessLiving developer portal for full field semantics. type: string s_comment: description: The `s_comment` field. See WellnessLiving developer portal for full field semantics. type: string required: - a_pay_form - id_mode - m_amount - s_comment responses: '200': description: Successful response. content: application/json: schema: type: object properties: status: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Thoth/WlPay/Transaction/Report/TransactionAllPayment.json: get: operationId: get_Thoth_WlPay_Transaction_Report_TransactionAllPayment summary: Gets the daily transaction data. description: Gets the daily transaction data. tags: - Payments parameters: - $ref: '#/components/parameters/XErrorRules' - name: dl_date_end in: query required: true schema: type: string description: The end date in local time to retrieve transactions for. - name: dl_date_start in: query required: true schema: type: string description: The end date in local time to retrieve transactions for. - name: i_page in: query required: true schema: type: integer description: 'The page of the report, starting from 0. Each page will contain a maximum of `LIMIT` rows.' - name: is_refresh in: query required: true schema: type: boolean description: 'Determines whether the report should be refreshed. If `true`, this report should be refreshed. A report refresh can''t be requested while the report i' - name: k_business in: query required: true schema: type: string description: The key of the business for which report should be generated. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_field: description: The `a_field` field. nullable: true a_row: description: The `a_row` field. nullable: true a_warning: description: The `a_warning` field. nullable: true dtu_complete: description: The `dtu_complete` field. nullable: true dtu_queue: description: The `dtu_queue` field. nullable: true dtu_start: description: The `dtu_start` field. nullable: true id_report_status: description: The `id_report_status` field. nullable: true is_more: description: The `is_more` field. nullable: true is_report_complete: description: The `is_report_complete` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Core/Passport/Login/Enter/Enter.json: post: operationId: post_Core_Passport_Login_Enter_Enter summary: Signs the user in using their login and hashed password. description: 'Accepts the user login, a password hash derived using the notepad obtained from [NotepadApi](/Core/Passport/Login/Enter/Notepad.json), and an optional remember preference. Validates credentials, enforces CAPTCHA when too many failed attempts have occurred, starts a session for the user, and returns a redirect URL if applicable.' tags: - Authentication parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: json_data: description: The `json_data` field. See WellnessLiving developer portal for full field semantics. type: string s_captcha: description: The `s_captcha` field. See WellnessLiving developer portal for full field semantics. type: string s_login: description: The `s_login` field. See WellnessLiving developer portal for full field semantics. type: string s_notepad: description: The `s_notepad` field. See WellnessLiving developer portal for full field semantics. type: string s_password: description: The `s_password` field. See WellnessLiving developer portal for full field semantics. type: string s_remember: description: The `s_remember` field. See WellnessLiving developer portal for full field semantics. type: string url_return: description: The `url_return` field. See WellnessLiving developer portal for full field semantics. type: string required: - json_data - s_captcha - s_login - s_notepad - s_password - s_remember - url_return responses: '200': description: Successful response. content: application/json: schema: type: object properties: url_redirect: description: The `url_redirect` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Core/Passport/Enter/Jwt/JwtToken.json: get: operationId: get_Core_Passport_Enter_Jwt_JwtToken summary: Returns a jwt token that can be used to log user. description: 'Requires the user to be signed in. Generates a signed JWT token tied to the current authorization header and user ID that can be passed to other services to authenticate the user without sharing session cookies.' tags: - Authentication parameters: - $ref: '#/components/parameters/XErrorRules' responses: '200': description: Successful response. content: application/json: schema: type: object properties: s_token: description: The `s_token` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Core/Passport/Login/SignOut/SignOut.json: post: operationId: post_Core_Passport_Login_SignOut_SignOut summary: Signs user out. description: 'Requires the user to be signed in, fires a before-logout event allowing listeners to intercept or handle the logout, then clears the current session. Throws an error if the user is authenticated via SAML SSO, as API-based logout is not supported in that case.' tags: - Authentication parameters: - $ref: '#/components/parameters/XErrorRules' responses: '200': description: Successful response. content: application/json: schema: type: object properties: status: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Login/Login.json: get: operationId: get_Wl_Login_Login summary: Retrieves information about user. description: 'Returns name, gender, photo URL, email, and staff details for the specified user within the given business. Public staff information is returned even without profile access; full client details require access to the user''s profile.' tags: - Authentication parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_photo_height in: query required: true schema: type: integer description: The height of the requested photo. - name: i_photo_width in: query required: true schema: type: integer description: The width of the requested photo. - name: k_business in: query required: true schema: type: string description: 'The key of the business. Users can be in multiple businesses. This can be left as `null` to retrieve system-wide information.' - name: uid in: query required: false schema: type: string nullable: true description: 'The key of the user. `null` on case when is walk-in client.' responses: '200': description: Successful response. content: application/json: schema: type: object properties: can_postcard: description: The `can_postcard` field. nullable: true can_send_message: description: The `can_send_message` field. nullable: true id_gender: description: The `id_gender` field. nullable: true is_photo_empty: description: The `is_photo_empty` field. nullable: true k_staff: description: The `k_staff` field. nullable: true s_first_name: description: The `s_first_name` field. nullable: true s_last_name: description: The `s_last_name` field. nullable: true text_mail_client: description: The `text_mail_client` field. nullable: true text_mail_staff: description: The `text_mail_staff` field. nullable: true text_name_first_staff: description: The `text_name_first_staff` field. nullable: true text_name_full_client: description: The `text_name_full_client` field. nullable: true text_name_full_staff: description: The `text_name_full_staff` field. nullable: true text_name_last_staff: description: The `text_name_last_staff` field. nullable: true uid: description: The `uid` field. nullable: true uid_staff: description: The `uid_staff` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Reward/Score/Current/Current.json: get: operationId: get_Wl_Reward_Score_Current_Current summary: Retrieves information about current score in wellnessliving points. description: 'Returns the user''s current reward point balance, their rank in the first available leaderboard, and the leaderboard title for the specified business.' tags: - Rewards parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: ID of a business to show information for. - name: uid in: query required: true schema: type: string description: UID to retrieve information about. responses: '200': description: Successful response. content: application/json: schema: type: object properties: i_board_rank: description: The `i_board_rank` field. nullable: true i_score: description: The `i_score` field. nullable: true s_board_title: description: The `s_board_title` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Reward/Prize/Prize.json: get: operationId: get_Wl_Reward_Prize_Prize summary: Retrieves a list of redeemable prizes. description: 'Returns all active redeemable prizes for the specified business, ordered by point cost, including the prize key and required score for each item.' tags: - Rewards parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: Key of current business. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_prize: description: The `a_prize` field. nullable: true a_score: description: The `a_score` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Reward/Action/Action.json: get: operationId: get_Wl_Reward_Action_Action summary: Retrieves a list of available reward actions. description: 'Returns all reward actions visible to the specified user in the given business, optionally filtered by category, including the score value and request status for each action.' tags: - Rewards parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: Key of current business. - name: k_reward_action_category in: query required: true schema: type: string description: Key of reward action category. - name: uid in: query required: true schema: type: string description: Key of a user to show information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_reward_action: description: The `a_reward_action` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Reward/Board/List.json: get: operationId: get_Wl_Reward_Board_List summary: Retrieves a list of reward board items to show. description: 'Returns an ordered list of user IDs ranked by points for the specified reward board, up to the configured maximum number of entries.' tags: - Rewards parameters: - $ref: '#/components/parameters/XErrorRules' - name: k_business in: query required: true schema: type: string description: ID of a business to show information for. - name: k_reward_board in: query required: true schema: type: string description: ID of reward board to show information for. responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_uid: description: The `a_uid` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Review/Review.json: post: operationId: post_Wl_Review_Review summary: Submits user's review. description: 'Validates the captcha, saves the review rating and text for the specified location, and returns reward score information if the business awards points for leaving a review.' tags: - Reviews parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: i_rate: description: The `i_rate` field. See WellnessLiving developer portal for full field semantics. type: string k_location: description: The `k_location` field. See WellnessLiving developer portal for full field semantics. type: string k_visit: description: The `k_visit` field. See WellnessLiving developer portal for full field semantics. type: string s_text: description: The `s_text` field. See WellnessLiving developer portal for full field semantics. type: string required: [] responses: '200': description: Successful response. content: application/json: schema: type: object properties: i_score: description: The `i_score` field. nullable: true i_score_facebook: description: The `i_score_facebook` field. nullable: true i_score_twitter: description: The `i_score_twitter` field. nullable: true is_score: description: The `is_score` field. nullable: true is_score_facebook: description: The `is_score_facebook` field. nullable: true is_score_twitter: description: The `is_score_twitter` field. nullable: true is_share_points: description: The `is_share_points` field. nullable: true is_share_points_none: description: The `is_share_points_none` field. nullable: true k_login_activity: description: The `k_login_activity` field. nullable: true k_review: description: The `k_review` field. nullable: true uid: description: The `uid` field. nullable: true url_share: description: The `url_share` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Review/ReviewList/ReviewList.json: get: operationId: get_Wl_Review_ReviewList_ReviewList summary: Retrieves a list of reviews. description: 'Returns reviews for the specified location, or all reviews for the business if no location is given, with support for filtering by user, ordering, and pagination.' tags: - Reviews parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_page in: query required: false schema: type: integer nullable: true description: 'If not specified, this request will return all review keys. If specified, this request will return detailed reviews (10 per page). This will be `null' - name: id_order in: query required: false schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: 'The order in which the review should be arranged. One of the [ReviewOrderSid](#/components/schemas/Wl.Review.ReviewList.ReviewOrderSid) constants. If' - name: k_business in: query required: true schema: type: string description: Business key. If not specified, location key needs to be specified. - name: k_location in: query required: true schema: type: string description: The key of the location to show reviews for. If not specified, business key should be specified. - name: uid in: query required: true schema: type: string description: 'The user''s key. WellnessLiving allows staff to check low-rated reviews before posting them. Staff members can see all reviews. Clients can only see ch' responses: '200': description: Successful response. content: application/json: schema: type: object properties: a_review: description: The `a_review` field. nullable: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Review/ReviewReply.json: post: operationId: post_Wl_Review_ReviewReply summary: Saves the reply text and optional status update for the given review. description: 'Validates edit access for the current user, persists the reply text and optional review status change, and records the replying staff or admin user.' tags: - Reviews parameters: - $ref: '#/components/parameters/XErrorRules' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: id_review_status: description: The `id_review_status` field. See WellnessLiving developer portal for full field semantics. type: string k_business: description: The `k_business` field. See WellnessLiving developer portal for full field semantics. type: string k_review: description: The `k_review` field. See WellnessLiving developer portal for full field semantics. type: string text_reply: description: The `text_reply` field. See WellnessLiving developer portal for full field semantics. type: string required: - k_business - k_review - text_reply responses: '200': description: Successful response. content: application/json: schema: type: object properties: status: type: string '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/ServerError' /Wl/Report/Data.json: get: operationId: get_Wl_Report_Data summary: Gets data of required report. description: 'Loads the specified report for the given business, applying filter, sort, and pagination parameters, and returns the report rows and totals.' tags: - Reports parameters: - $ref: '#/components/parameters/XErrorRules' - name: i_page in: query required: true schema: type: integer description: The page of results to show, starting at zero. The API will return 256 results per page. - name: id_report in: query required: true schema: type: string description: Enumerated/coded value (see WellnessLiving *Sid constant classes). description: "The report ID.\nThe following reports are currently available via the API:\n