openapi: 3.0.3
info:
  description: >-
    This is the documentation for the WellnessLiving API. To access the API, you'll need four pieces of identification:
    <ul>
    <li>A WellnessLiving staff member username</li>
    <li>A password</li>
    <li>An API authorization code</li>
    <li>An identifier</li>
  version: 3.0.3
  title: WellnessLiving API

servers:
  - url: staging.wellnessliving.com
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic

security:
  - BasicAuth: []

paths:
  /Core/Captcha/CaptchaRequireModel:
    get:
      tags:
      - Captcha
      summary: Checks if a CAPTCHA is required.
      description: >-
        Checks if a CAPTCHA is required.
      parameters:
        - name: a_arguments
          description: >-
            Arguments for creating CAPTCHA object.

          in: query
          schema:
            type: string
        - name: cid_captcha
          description: >-
            The CID of the CAPTCHA.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_require</i></b> - This will be `true` if a CAPTCHA is required. Otherwise, this will be `false`.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_require:
                    type: integer
                    example: 0

  /Core/Drive/ImageUpload/ImageUploadModel:
    post:
      tags:
      - Drive
      summary: Performs the final action to an uploaded image.
      description: >-
        Performs the final action to an uploaded image.
        Images are uploaded using [Core\Drive\ImageUpload\ImageUploadTemporaryModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadTemporaryModel.php).
      parameters:
        - name: s_class
          description: >-
            The name of the class that manages this image.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_id</i></b> -
          A list of image IDs set in [Core\Drive\ImageUpload\ImageUploadModel::$s_class](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadModel.php),
          serialised using JSON.
          
          This will be `null` if there's no data being sent by the client.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_id:
                  description: >- 
                    A list of image IDs set in [Core\Drive\ImageUpload\ImageUploadModel::$s_class](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadModel.php),
                    serialised using JSON.
                    
                    This will be `null` if there's no data being sent by the client.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_image</i></b> - Image information for every ID. Every element contains values such as the
            [Core\Drive\ImageUpload\ImageUploadModel::_get()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadModel.php) result.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_image:
                    type: object
                    example: []
    get:
      tags:
      - Drive
      summary: Performs the final action to an uploaded image.
      description: >-
        Performs the final action to an uploaded image.
        Images are uploaded using [Core\Drive\ImageUpload\ImageUploadTemporaryModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadTemporaryModel.php).
      parameters:
        - name: is_temporary
          description: >-
            If `true`, the temporary image will be retrieved. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The image ID set in [Core\Drive\ImageUpload\ImageUploadModel::$s_class](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadModel.php).

          in: query
          schema:
            type: string
        - name: s_class
          description: >-
            The name of the class that manages this image.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_text_empty</i></b> - Information about the text for an empty image upload. See the PHP side for more information.<br/>            <b><i>html_image_hint</i></b> - An HTML string to use for the image recommendation.<br/>            <b><i>i_height_max</i></b> - The maximum height of image.<br/>            <b><i>i_height_min</i></b> - The minimum height of image.<br/>            <b><i>i_thumbnail_height</i></b> - The height of the thumbnail image.
            This will be `null` until it's loaded from the server.<br/>            <b><i>i_thumbnail_width</i></b> - The width of the thumbnail image.
            This will be `null` until it's loaded from the server.<br/>            <b><i>i_width_max</i></b> - The maximum width of the image.<br/>            <b><i>i_width_min</i></b> - The minimum width of the image.<br/>            <b><i>is_circular</i></b> - If `true`, the image is treated as circular. Otherwise, this will be `false`.<br/>            <b><i>is_delete_allow</i></b> - If `true`, image deletion is permitted. Otherwise, this will be `false`.
            
            This will be `null` until it's loaded from the server.<br/>            <b><i>s_code</i></b> - The link protection code.<br/>            <b><i>s_link</i></b> - The image link.<br/>            <b><i>url_empty</i></b> - The image URL that should be displayed in cases where no image is uploaded.
            This will be `null` until it's loaded from the server.<br/>            <b><i>url_thumbnail</i></b> - The thumbnail URL of the image.
            This will be `null` until it's loaded from the server.<br/>            <b><i>url_upload</i></b> - The script URL where new image should be uploaded from.<br/>            <b><i>url_view</i></b> - The URL of the full image.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_text_empty:
                    type: object
                    example: []
                  html_image_hint:
                    type: string
                    example: ""
                  i_height_max:
                    type: integer
                    example: 0
                  i_height_min:
                    type: integer
                    example: 0
                  i_thumbnail_height:
                    type: integer
                    example: 0
                  i_thumbnail_width:
                    type: integer
                    example: 0
                  i_width_max:
                    type: integer
                    example: 0
                  i_width_min:
                    type: integer
                    example: 0
                  is_circular:
                    type: integer
                    example: 0
                  is_delete_allow:
                    type: integer
                    example: 0
                  s_code:
                    type: string
                    example: ""
                  s_link:
                    type: string
                    example: ""
                  url_empty:
                    type: string
                    example: ""
                  url_thumbnail:
                    type: string
                    example: ""
                  url_upload:
                    type: string
                    example: ""
                  url_view:
                    type: string
                    example: ""
    put:
      tags:
      - Drive
      summary: Performs the final action to an uploaded image.
      description: >-
        Performs the final action to an uploaded image.
        Images are uploaded using [Core\Drive\ImageUpload\ImageUploadTemporaryModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadTemporaryModel.php).
      parameters:
        - name: is_temporary
          description: >-
            If `true`, the temporary image will be retrieved. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The image ID set in [Core\Drive\ImageUpload\ImageUploadModel::$s_class](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadModel.php).

          in: query
          schema:
            type: string
        - name: s_class
          description: >-
            The name of the class that manages this image.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>s_command</i></b> -
          The action that must be performed to the image.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s_command:
                  description: >- 
                    The action that must be performed to the image.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_text_empty</i></b> - Information about the text for an empty image upload. See the PHP side for more information.<br/>            <b><i>html_image_hint</i></b> - An HTML string to use for the image recommendation.<br/>            <b><i>i_height_max</i></b> - The maximum height of image.<br/>            <b><i>i_height_min</i></b> - The minimum height of image.<br/>            <b><i>i_thumbnail_height</i></b> - The height of the thumbnail image.
            This will be `null` until it's loaded from the server.<br/>            <b><i>i_thumbnail_width</i></b> - The width of the thumbnail image.
            This will be `null` until it's loaded from the server.<br/>            <b><i>i_width_max</i></b> - The maximum width of the image.<br/>            <b><i>i_width_min</i></b> - The minimum width of the image.<br/>            <b><i>is_circular</i></b> - If `true`, the image is treated as circular. Otherwise, this will be `false`.<br/>            <b><i>is_delete_allow</i></b> - If `true`, image deletion is permitted. Otherwise, this will be `false`.
            
            This will be `null` until it's loaded from the server.<br/>            <b><i>s_code</i></b> - The link protection code.<br/>            <b><i>s_link</i></b> - The image link.<br/>            <b><i>url_empty</i></b> - The image URL that should be displayed in cases where no image is uploaded.
            This will be `null` until it's loaded from the server.<br/>            <b><i>url_thumbnail</i></b> - The thumbnail URL of the image.
            This will be `null` until it's loaded from the server.<br/>            <b><i>url_upload</i></b> - The script URL where new image should be uploaded from.<br/>            <b><i>url_view</i></b> - The URL of the full image.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_text_empty:
                    type: object
                    example: []
                  html_image_hint:
                    type: string
                    example: ""
                  i_height_max:
                    type: integer
                    example: 0
                  i_height_min:
                    type: integer
                    example: 0
                  i_thumbnail_height:
                    type: integer
                    example: 0
                  i_thumbnail_width:
                    type: integer
                    example: 0
                  i_width_max:
                    type: integer
                    example: 0
                  i_width_min:
                    type: integer
                    example: 0
                  is_circular:
                    type: integer
                    example: 0
                  is_delete_allow:
                    type: integer
                    example: 0
                  s_code:
                    type: string
                    example: ""
                  s_link:
                    type: string
                    example: ""
                  url_empty:
                    type: string
                    example: ""
                  url_thumbnail:
                    type: string
                    example: ""
                  url_upload:
                    type: string
                    example: ""
                  url_view:
                    type: string
                    example: ""

  /Core/Drive/ImageUpload/ImageUploadTemporaryModel:
    post:
      tags:
      - Drive
      summary: Uploads a raw image to a server.
      description: >-
        Uploads a raw image to a server.
        <br /><br />
        You must save an image by using [Core\Drive\ImageUpload\ImageUploadModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadModel.php).
      parameters:
        - name: k_id
          description: >-
            The key of the image within [Core\Drive\ImageUpload\ImageUploadTemporaryModel::$s_class](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/ImageUpload/ImageUploadTemporaryModel.php).
            
            For example, for a user's photo, specify the user's key here.

          in: query
          schema:
            type: string
        - name: s_class
          description: >-
            The name of the class that manages this image.
            
            For example, for a user's photo, specify the string `PassportLoginImage` here.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>f_image</i></b> -
          The image to be uploaded.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                f_image:
                  description: >- 
                    The image to be uploaded.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>has_crop</i></b> - If `true`, a crop is used. Otherwise, this will be `false` if a crop isn't used (the image is saved in its original size).<br/>            <b><i>i_height</i></b> - The actual height of the thumbnail image.<br/>            <b><i>i_height_src</i></b> - The height of the original image.<br/>            <b><i>i_rotate</i></b> - The angle of the image rotation compared to the original.<br/>            <b><i>i_width</i></b> - The actual width of the thumbnail image.<br/>            <b><i>i_width_src</i></b> - The width of the original image.<br/>            <b><i>id_type_src</i></b> - The image type ID. One of the [Core\Drive\DriveTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/DriveTypeSid.php) constants.<br/>            <b><i>is_resize</i></b> - If `true`, the thumbnail is a resized variant of the original image.<br/>            <b><i>url_thumbnail</i></b> - The URL to the resized and rotated image in file storage.<br/>            <b><i>url_view</i></b> - The URL to the original image in file storage.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  has_crop:
                    type: integer
                    example: 0
                  i_height:
                    type: integer
                    example: 0
                  i_height_src:
                    type: integer
                    example: 0
                  i_rotate:
                    type: integer
                    example: 0
                  i_width:
                    type: integer
                    example: 0
                  i_width_src:
                    type: integer
                    example: 0
                  id_type_src:
                    type: integer
                    example: 0
                  is_resize:
                    type: integer
                    example: 0
                  url_thumbnail:
                    type: string
                    example: ""
                  url_view:
                    type: string
                    example: ""

  /Core/Geo/ComboboxModel:
    get:
      tags:
      - Geo
      summary: Retrieves a list of cities matching the search string for a given location.
      description: >-
        Retrieves a list of cities matching the search string for a given location.
      parameters:
        - name: id_locale
          description: >-
            The locale ID used as a filter. The locale is generally a country.
            
            One of the [Core\Locale\LocaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Locale/LocaleSid.php) constants.
            
            This will be `0` if all locations are searched.

          in: query
          schema:
            type: string
        - name: s_value
          description: >-
            The city name (or a fragment of the city name) used for the search.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list</i></b> - A list of items to show in the combobox list.
            
            Each element of the array is a city matching the string with the following structure:
            <dl>
            <dt>string <var>s_value</var></dt>
            <dd>The human-readable name of the city, including the state/province and country.</dd>
            <dt>string <var>s_key</var></dt>
            <dd>The <var>k_city</var> value for the city.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list:
                    type: object
                    example: []

  /Core/Geo/Region/RegionModel:
    get:
      tags:
      - Geo
      summary: Gets a list of regions for a specified country or all countries.
      description: >-
        Gets a list of regions for a specified country or all countries.
        A region refers to a jurisdiction like a state, province, or territory.
      parameters:
        - name: id_locale
          description: >-
            The locale ID to find regions for. One of the [Core\Locale\LocaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Locale/LocaleSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_locale_all
          description: >-
            Determines whether to get regions for all locales.
            
            If `true`, this will get regions for all locales. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_region</i></b> - A list of regions grouped by their country.
            <dl>
            <dt>
            string[] <var>a_region</var>
            </dt>
            <dd>
            A list of regions in the country. Every element has the next keys: <dl>
            <dt>
            string <var>k_geo</var>
            </dt>
            <dd>
            The region key.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The name of the region.
            </dd>
            </dl>
            </dd>
            <dt>
            string <var>k_geo_country</var>
            </dt>
            <dd>
            The country key.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The name of the country.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_region:
                    type: object
                    example: []

  /Core/Google/GoogleCaptchaModel:
    put:
      tags:
      - Google
      summary: Stores the user token CAPTCHA.
      description: >-
        Stores the user token CAPTCHA.

      requestBody:
        description: >-
              <b><i>text_action</i></b> -
              The action name.
              
              Used to determine the place where the CAPTCHA is needed in documentation for endpoints that used
              the CAPTCHA.
              <br/>
              <b><i>text_token</i></b> -
              The user token CAPTCHA.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    text_action:
                      description: >- 
                        The action name.
                        
                        Used to determine the place where the CAPTCHA is needed in documentation for endpoints that used
                        the CAPTCHA.

                      type: string
                    text_token:
                      description: >- 
                        The user token CAPTCHA.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Core/Passport/ChangePassword/ChangePasswordApplyModel:
    post:
      tags:
      - Passport
      summary: Finishes the password change procedure for a user.
      description: >-
        Finishes the password change procedure for a user.
        <br /><br />
        This endpoint advances the [Core\Passport\ChangePassword\ChangePasswordBeginModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/ChangePassword/ChangePasswordBeginModel.php) endpoint.
        Set your desired password in the [Core\Passport\ChangePassword\ChangePasswordBeginModel::$url_reset](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/ChangePassword/ChangePasswordBeginModel.php)
        field, where you use the "reset password" link via email to get the user's new password for this endpoint.
        <br /><br />
        When the user goes to your page, get <tt>text_mail</tt> and <tt>text_code</tt> from the URL, then post this model to set a password for user.
        <br /><br />
        Use <tt>text_mail</tt> as the value for [Core\Passport\ChangePassword\ChangePasswordApplyModel::$text_login](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/ChangePassword/ChangePasswordApplyModel.php) and
        [Core\Passport\ChangePassword\ChangePasswordApplyModel::$text_mail](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/ChangePassword/ChangePasswordApplyModel.php),
        and <tt>text_code</tt> as the value for [Core\Passport\ChangePassword\ChangePasswordApplyModel::$text_code](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/ChangePassword/ChangePasswordApplyModel.php).
      parameters:
        - name: text_code
          description: >-
            The verification code, which can be obtained from the "reset password" email link. This is a required value.

          in: query
          schema:
            type: string
        - name: text_login
          description: >-
            The user's login, which can be obtained from the "reset password" email link. This is a required value.

          in: query
          schema:
            type: string
        - name: text_mail
          description: >-
            The user's email address, which can be obtained from the "reset password" email link. This is a required value.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_password</i></b> -
          The user's new password. This is a required value.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_password:
                  description: >- 
                    The user's new password. This is a required value.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Core/Passport/ChangePassword/ChangePasswordBeginModel:
    post:
      tags:
      - Passport
      summary: Starts the password change procedure for a user.
      description: >-
        Starts the password change procedure for a user.
        <br /><br />
        Post this to send the user the "reset password" email.

      requestBody:
        description: >-
              <b><i>text_captcha</i></b> -
              The characters to pass captcha test.
              
              Specify this only if server requires captcha.
              <br/>
              <b><i>text_mail</i></b> -
              The user's email. This is a required value.
              <br/>
              <b><i>url_reset</i></b> -
              The URL for the password reset page. This link will be used in a password reset email.
              
              Specify this only if you want to send the user to a custom password reset page.
              If empty, the default URL page will be used.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    text_captcha:
                      description: >- 
                        The characters to pass captcha test.
                        
                        Specify this only if server requires captcha.

                      type: string
                    text_mail:
                      description: >- 
                        The user's email. This is a required value.

                      type: string
                    url_reset:
                      description: >- 
                        The URL for the password reset page. This link will be used in a password reset email.
                        
                        Specify this only if you want to send the user to a custom password reset page.
                        If empty, the default URL page will be used.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>text_error</i></b> - The error code. This will be an empty string if the email has been sent successfully.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  text_error:
                    type: string
                    example: ""

  /Core/Passport/Login/Enter/EnterModel:
    post:
      tags:
      - Passport
      summary: Signs a user in.
      description: >-
        Signs a user in.

      requestBody:
        description: >-
              <b><i>json_data</i></b> -
              Additional data for user authorization.
              <br/>
              <b><i>s_captcha</i></b> -
              The answer to the captcha, if needed.
              <br/>
              <b><i>s_login</i></b> -
              The user's login.
              <br/>
              <b><i>s_notepad</i></b> -
              A copy of the notepad that was used to hash the user password.
              
              See [Core\Passport\Login\Enter\EnterModel::$s_password](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/Login/Enter/EnterModel.php) for details.
              <br/>
              <b><i>s_password</i></b> -
              The hash of the user password.
              
              Use `Core_Passport_Login_Enter_NotepadModel.hash()` to evaluate the password hash.
              <br/>
              <b><i>s_remember</i></b> -
              Determines whether the user login and password should be remembered, and how they should be remembered.
              
              The accepted values are:
              <ul>
              <li>`''` Empty line (default value) if you do not want to remember anything.</li>
              <li>`'login'` Remember only user login.</li>
              <li>`'password'` Remember user login and password.</li>
              </ul>
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    json_data:
                      description: >- 
                        Additional data for user authorization.

                      type: string
                    s_captcha:
                      description: >- 
                        The answer to the captcha, if needed.

                      type: string
                    s_login:
                      description: >- 
                        The user's login.

                      type: string
                    s_notepad:
                      description: >- 
                        A copy of the notepad that was used to hash the user password.
                        
                        See [Core\Passport\Login\Enter\EnterModel::$s_password](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/Login/Enter/EnterModel.php) for details.

                      type: string
                    s_password:
                      description: >- 
                        The hash of the user password.
                        
                        Use `Core_Passport_Login_Enter_NotepadModel.hash()` to evaluate the password hash.

                      type: string
                    s_remember:
                      description: >- 
                        Determines whether the user login and password should be remembered, and how they should be remembered.
                        
                        The accepted values are:
                        <ul>
                        <li>`''` Empty line (default value) if you do not want to remember anything.</li>
                        <li>`'login'` Remember only user login.</li>
                        <li>`'password'` Remember user login and password.</li>
                        </ul>

                      type: string
      responses:
        '200':
          description: >-
            <b><i>url_redirect</i></b> - An optional URL for redirection after the user has signed in to the web application.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  url_redirect:
                    type: string
                    example: ""

  /Core/Passport/Login/Enter/NotepadModel:
    get:
      tags:
      - Passport
      summary: Retrieves the notepad value from the server that is used to sign someone in to the SDK.
      description: >-
        Retrieves the notepad value from the server that is used to sign someone in to the SDK.
      parameters:
        - name: s_type
          description: >-
            The session type to store the notepad in.
            
            This will be an empty string for a temporary session. Otherwise, you can use `system` for a system session.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>s_hash</i></b> - The hash type.<br/>            <b><i>s_notepad</i></b> - The notepad value, which is used to hash the user's password. The password length is
            [Core\Passport\Login\Enter\NotepadModel::NONCE_LENGTH](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Passport/Login/Enter/NotepadModel.php) characters.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  s_hash:
                    type: string
                    example: ""
                  s_notepad:
                    type: string
                    example: ""

  /Core/Passport/Login/InfoModel:
    get:
      tags:
      - Passport
      summary: Gets the user ID for the current user and a password reset URL.
      description: >-
        Gets the user ID for the current user and a password reset URL.
      responses:
        '200':
          description: >-
            <b><i>uid</i></b> - The current user key.
            
            This will be `null` if the user isn't signed in.<br/>            <b><i>url_password_change</i></b> - A URL that a user can visit to reset their password.<br/>            <b><i>url_register</i></b> - The URL to the registration page.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  uid:
                    type: string
                    example: ""
                  url_password_change:
                    type: string
                    example: ""
                  url_register:
                    type: string
                    example: ""

  /Core/Passport/Login/Register/RegisterConfirmModel:
    post:
      tags:
      - Passport
      summary: Confirm the user's email and completes the registration process.
      description: >-
        Confirm the user's email and completes the registration process.
      parameters:
        - name: text_code
          description: >-
            The unique registration code.

          in: query
          schema:
            type: string
        - name: text_login
          description: >-
            The user's login.

          in: query
          schema:
            type: string
        - name: text_mail
          description: >-
            The user's email.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>uid</i></b> - The key of the new registered user.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  uid:
                    type: string
                    example: ""

  /Core/Passport/Login/Register/RegisterModel:
    post:
      tags:
      - Passport
      summary: Allows new clients to be registered.
      description: >-
        Allows new clients to be registered.
        <br /><br />
        The [Wl\Lead\LeadModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Lead/LeadModel.php) endpoint is recommended for registering new users. However, this RegisterModel
        endpoint isn't enabled by default. To enable this endpoint, use the contact form in the developer portal.

      requestBody:
        description: >-
              <b><i>a_data</i></b> -
              The additional data about new users.
              
              <dl>
              <dt>string <var>[k_business]</var></dt>
              <dd>
              The key of the business for the WellnessLiving project to register the user in.
              
              The behavior may vary for different applications. If the application is connected to a given business, this
              property can always be empty (all clients will be registered in the connected business). If the business is set
              for such an application and is different from the business from the application settings, an error will occur.
              
              If the application isn't connected to the business, any business key can be set. This doesn't require any special
              privileges, as registration is a publicly available action.
              </dd>
              </dl>
              <br/>
              <b><i>s_application</i></b> -
              The application ID. This is a business specific ID required to register clients.
              <br/>
              <b><i>s_mail</i></b> -
              The new client email address.
              <br/>
              <b><i>s_name_first</i></b> -
              The new client given name.
              <br/>
              <b><i>s_name_last</i></b> -
              The new client surname.
              <br/>
              <b><i>s_password</i></b> -
              The new client password.
              <br/>
              <b><i>url_confirm</i></b> -
              The URL to the confirmation page. This link is used in a confirmation email.
              
              If empty, URL to default page is used.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    a_data:
                      description: >- 
                        The additional data about new users.
                        
                        <dl>
                        <dt>string <var>[k_business]</var></dt>
                        <dd>
                        The key of the business for the WellnessLiving project to register the user in.
                        
                        The behavior may vary for different applications. If the application is connected to a given business, this
                        property can always be empty (all clients will be registered in the connected business). If the business is set
                        for such an application and is different from the business from the application settings, an error will occur.
                        
                        If the application isn't connected to the business, any business key can be set. This doesn't require any special
                        privileges, as registration is a publicly available action.
                        </dd>
                        </dl>

                      type: object
                    s_application:
                      description: >- 
                        The application ID. This is a business specific ID required to register clients.

                      type: string
                    s_mail:
                      description: >- 
                        The new client email address.

                      type: string
                    s_name_first:
                      description: >- 
                        The new client given name.

                      type: string
                    s_name_last:
                      description: >- 
                        The new client surname.

                      type: string
                    s_password:
                      description: >- 
                        The new client password.

                      type: string
                    url_confirm:
                      description: >- 
                        The URL to the confirmation page. This link is used in a confirmation email.
                        
                        If empty, URL to default page is used.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Core/Passport/User/Email/EmailExistModel:
    get:
      tags:
      - Passport
      summary: Checks if the email address exists in the system.
      description: >-
        Checks if the email address exists in the system.
      parameters:
        - name: text_email
          description: >-
            The email address.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_exist</i></b> - Determines whether the email address exists.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_exist:
                    type: integer
                    example: 0

  /Core/Request/Api/Application/Credential/CredentialModel:
    delete:
      tags:
      - Request
      summary: Manages credentials for the application.
      description: >-
        Manages credentials for the application.
      parameters:
        - name: cid_credential
          description: >-
            The CID of the credential.
            Accepted values: <ul>
            <li>
            <tt>972</tt> - The Google credential.
            Use the {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredentialData} object to send the credential.
            </li>
            <li>
            <tt>973</tt> - The Facebook credential.
            Use the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredentialData} object to send the credential.
            </li>
            </ul>

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Request
      summary: Manages credentials for the application.
      description: >-
        Manages credentials for the application.
      parameters:
        - name: cid_credential
          description: >-
            The CID of the credential.
            Accepted values: <ul>
            <li>
            <tt>972</tt> - The Google credential.
            Use the {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredentialData} object to send the credential.
            </li>
            <li>
            <tt>973</tt> - The Facebook credential.
            Use the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredentialData} object to send the credential.
            </li>
            </ul>

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>json_credential</i></b> - An array with the credential.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  json_credential:
                    type: string
                    example: ""
    put:
      tags:
      - Request
      summary: Manages credentials for the application.
      description: >-
        Manages credentials for the application.
      parameters:
        - name: cid_credential
          description: >-
            The CID of the credential.
            Accepted values: <ul>
            <li>
            <tt>972</tt> - The Google credential.
            Use the {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredentialData} object to send the credential.
            </li>
            <li>
            <tt>973</tt> - The Facebook credential.
            Use the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredentialData} object to send the credential.
            </li>
            </ul>

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>json_credential</i></b> -
          An array with the credential.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                json_credential:
                  description: >- 
                    An array with the credential.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Core/Request/Api/Application/OriginModel:
    delete:
      tags:
      - Request
      summary: Gets, deletes, and adds origins for the application.
      description: >-
        Due to the limitiations of OpenApi 3.0.3 the parameters of the DELETE method are not listed correctly.<br/>
        They are appended to this description.<br/>
        Gets, deletes, and adds origins for the application.
        <br /><br />
        Origins are links on the sites where the API can be used sign CORS authorizations from a client's browser.
        If the site isn't in the list, you can only use the API for requests between two servers. Requests directly from
        a client's browser are restricted.
        <br /><br />
        Origins should appear as a full link in the same manner they appear on the site.
        <br /><br />
        It's important to understand that the application can add allowed sites only for itself and can't add sites for another application.
        This means that you need to call this endpoint using only the application that you're using on the sites.
        <br /><br />
        a_list - 
           A list of origins.
          
           The key is the URL on the site where API calls can be made.
          
           The value is a domain used to make API requests.
           This will be `null` in cases where the API requests are made directly to the WellnessLiving web server or if
           it isn't initialized yet.
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Request
      summary: Gets, deletes, and adds origins for the application.
      description: >-
        Gets, deletes, and adds origins for the application.
        <br /><br />
        Origins are links on the sites where the API can be used sign CORS authorizations from a client's browser.
        If the site isn't in the list, you can only use the API for requests between two servers. Requests directly from
        a client's browser are restricted.
        <br /><br />
        Origins should appear as a full link in the same manner they appear on the site.
        <br /><br />
        It's important to understand that the application can add allowed sites only for itself and can't add sites for another application.
        This means that you need to call this endpoint using only the application that you're using on the sites.
      responses:
        '200':
          description: >-
            <b><i>a_list</i></b> - A list of origins.
            
            The key is the URL on the site where API calls can be made.
            
            The value is a domain used to make API requests.
            This will be `null` in cases where the API requests are made directly to the WellnessLiving web server or if
            it isn't initialized yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list:
                    type: object
                    example: []
    put:
      tags:
      - Request
      summary: Gets, deletes, and adds origins for the application.
      description: >-
        Gets, deletes, and adds origins for the application.
        <br /><br />
        Origins are links on the sites where the API can be used sign CORS authorizations from a client's browser.
        If the site isn't in the list, you can only use the API for requests between two servers. Requests directly from
        a client's browser are restricted.
        <br /><br />
        Origins should appear as a full link in the same manner they appear on the site.
        <br /><br />
        It's important to understand that the application can add allowed sites only for itself and can't add sites for another application.
        This means that you need to call this endpoint using only the application that you're using on the sites.

      requestBody:
        description: >-
              <b><i>a_list</i></b> -
              A list of origins.
              
              The key is the URL on the site where API calls can be made.
              
              The value is a domain used to make API requests.
              This will be `null` in cases where the API requests are made directly to the WellnessLiving web server or if
              it isn't initialized yet.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    a_list:
                      description: >- 
                        A list of origins.
                        
                        The key is the URL on the site where API calls can be made.
                        
                        The value is a domain used to make API requests.
                        This will be `null` in cases where the API requests are made directly to the WellnessLiving web server or if
                        it isn't initialized yet.

                      type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Core/Request/Api/KeySecretModel:
    get:
      tags:
      - Request
      summary: Gets a secret key for request signing.
      description: >-
        Gets a secret key for request signing.
        This is required for a CORS request.
        <br /><br />
        A request to this point must be signed as an ordinary request from the SDK using transient and persistent cookies.
        There must be no CORS (don't send from a browser).
      parameters:
        - name: s_csrf
          description: >-
            The CSRF code from the client side.

          in: query
          schema:
            type: string
        - name: s_key_session
          description: >-
            The session key.

          in: query
          schema:
            type: string
        - name: url_domain
          description: >-
            Alias of [Core\Request\Api\KeySecretModel::$url_origin](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Request/Api/KeySecretModel.php).

          in: query
          schema:
            type: string
        - name: url_origin
          description: >-
            Origin for client requests.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>s_key_secret</i></b> - The secret key for the request signing.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  s_key_secret:
                    type: string
                    example: ""

  /Core/Request/Token/TokenPinModel:
    get:
      tags:
      - Request
      summary: Creates a one-time PIN code.
      description: >-
        Creates a one-time PIN code.
        <br /><br />
        This code must be used for generating a security token.
      parameters:
        - name: text_push
          description: >-
            The ID to use to send a security code via a push notification.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>dtu_expire</i></b> - The expiration date/time of the PIN code.<br/>            <b><i>text_pin</i></b> - The PIN code.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  dtu_expire:
                    type: string
                    example: ""
                  text_pin:
                    type: string
                    example: ""

  /Social/Apple/Login/AppleLoginModel:
    post:
      tags:
      - WellnessLiving
      summary: Authorizes a user with Apple.
      description: >-
        Authorizes a user with Apple.

      requestBody:
        description: >-
              <b><i>text_application</i></b> -
              The application ID.
              <br/>
              <b><i>text_authorization</i></b> -
              The authorization code.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    text_application:
                      description: >- 
                        The application ID.

                      type: string
                    text_authorization:
                      description: >- 
                        The authorization code.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Social/Facebook/Login/LoginModel:
    post:
      tags:
      - WellnessLiving
      summary: Authorizes Facebook users.
      description: >-
        Authorizes Facebook users.

      requestBody:
        description: >-
              <b><i>s_application</i></b> -
              The application ID.
              
              This will be `null` if the application is being used to make the request.
              Use the application credential from the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredential} class for user authorization.
              <br/>
              <b><i>s_token</i></b> -
              The Facebook token.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    s_application:
                      description: >- 
                        The application ID.
                        
                        This will be `null` if the application is being used to make the request.
                        Use the application credential from the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredential} class for user authorization.

                      type: string
                    s_token:
                      description: >- 
                        The Facebook token.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Social/Google/Plus/LoginModel:
    post:
      tags:
      - WellnessLiving
      summary: Authorizes a user with Google.
      description: >-
        Authorizes a user with Google.

      requestBody:
        description: >-
              <b><i>s_application</i></b> -
              The application ID.
              
              This will be `null` for application use, which makes the request. Use the application credential from
              {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredential} for user authorization.
              <br/>
              <b><i>s_code</i></b> -
              The Google server authorization code.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    s_application:
                      description: >- 
                        The application ID.
                        
                        This will be `null` for application use, which makes the request. Use the application credential from
                        {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredential} for user authorization.

                      type: string
                    s_code:
                      description: >- 
                        The Google server authorization code.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Social/Microsoft/LoginModel:
    get:
      tags:
      - WellnessLiving
      summary: Performs preliminary authorization actions with Microsoft.
      description: >-
        Performs preliminary authorization actions with Microsoft.
      parameters:
        - name: uid
          description: >-
            The client for whom the Microsoft account will be unlinked.

          in: query
          schema:
            type: string
        - name: url_redirect
          description: >-
            The Redirect URI for external applications.
            The link to the page on which Microsoft will return the result after authorization.
            
            * All possible links must be registered in the Microsoft application used for authorization.
            * WARNING: Do not use this link for a direct redirect. This will present a vulnerability.
            
            * A [LoginModel::$url_login](https://github.com/wellnessliving/wl-sdk/blob/masterLoginModel.php) link will be generated along with this redirect URI.
            * When checking the received [LoginModel::$s_code](https://github.com/wellnessliving/wl-sdk/blob/masterLoginModel.php) from Microsoft, the link must be sent along with it
            to the [LoginModel::post()](https://github.com/wellnessliving/wl-sdk/blob/masterLoginModel.php) method.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_exists</i></b> - If `true`, the user has a bound Microsoft account. Otherwise, this will be `false`.<br/>            <b><i>url_login</i></b> - The Microsoft OAuth 2.0 authorization link.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_exists:
                    type: integer
                    example: 0
                  url_login:
                    type: string
                    example: ""
    post:
      tags:
      - WellnessLiving
      summary: Performs preliminary authorization actions with Microsoft.
      description: >-
        Performs preliminary authorization actions with Microsoft.
      parameters:
        - name: is_external
          description: >-
            If authorization is performed in a third-party application, set this flag in case of authorization errors.

          in: query
          schema:
            type: string
        - name: url_redirect
          description: >-
            The Redirect URI for external applications.
            The link to the page on which Microsoft will return the result after authorization.
            
            * All possible links must be registered in the Microsoft application used for authorization.
            * WARNING: Do not use this link for a direct redirect. This will present a vulnerability.
            
            * A [LoginModel::$url_login](https://github.com/wellnessliving/wl-sdk/blob/masterLoginModel.php) link will be generated along with this redirect URI.
            * When checking the received [LoginModel::$s_code](https://github.com/wellnessliving/wl-sdk/blob/masterLoginModel.php) from Microsoft, the link must be sent along with it
            to the [LoginModel::post()](https://github.com/wellnessliving/wl-sdk/blob/masterLoginModel.php) method.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>s_code</i></b> -
          The authorization code that the app requested.
          <br/>
          <b><i>s_state</i></b> -
          If a state parameter is included in the request, the same value should appear in the response.
          The app should verify that the state values in the request and response are identical.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s_code:
                  description: >- 
                    The authorization code that the app requested.

                  type: string
                s_state:
                  description: >- 
                    If a state parameter is included in the request, the same value should appear in the response.
                    The app should verify that the state values in the request and response are identical.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    delete:
      tags:
      - WellnessLiving
      summary: Performs preliminary authorization actions with Microsoft.
      description: >-
        Performs preliminary authorization actions with Microsoft.
      parameters:
        - name: uid
          description: >-
            The client for whom the Microsoft account will be unlinked.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Asset/AssetListModel:
    get:
      tags:
      - Appointment
      summary: Retrieves information about assets in the current asset category.
      description: >-
        Retrieves information about assets in the current asset category.
      parameters:
        - name: dtl_date
          description: >-
            The selected date and time of the asset booking. It is used in cases when the business booking policy allows
            clients to select a date and time, and then the available asset.

          in: query
          schema:
            type: string
        - name: i_image_height
          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 image will have default size.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 will have default size.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type, one of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            This is `true` if asset categories are loaded for back-end mode. Otherwise, this will be `false` for front-end mode.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key.
            
            If not set, location's business will be used.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The class tab key used to filter assets.
            
            This will be `null` if not set yet or if elements with no specified class tab are selected.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: k_resource_category
          description: >-
            The asset category key to show information for.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            Timezone of date and time of asset booking.
            
            Empty if [Wl\Appointment\Book\Asset\AssetListModel::$dtl_date](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Asset/AssetListModel.php) not set or client can't change in which timezone dates should be shown.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Client to get information for.
            
            If client not set, returns full asset list without client restrictions.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_asset</i></b> - A list of information about assets:
            
            <dl>
            <dt>array <var>a_age_restrictions</var></dt>
            <dd>
            Information about age restrictions for this event.
            
            This will be an empty array if there aren't any age restrictions.
            
            <dl>
            <dt>int|null <var>i_age_from</var></dt>
            <dd>The minimum age permitted for the event. This will be `null` if a minimum age isn't set or available.</dd>
            <dt>int|null <var>i_age_to</var></dt>
            <dd>The maximum age permitted for the event. This will be `null` if a maximum age isn't set or available.</dd>
            <dt>bool <var>is_age_public</var></dt>
            <dd>This will be `true` if age restrictions are public and available. Otherwise, this will be `false` if they're hidden.
            When restrictions are hidden and current user isn't a staff member, the age range will be empty.</dd>
            </dl>
            </dd>
            <dt>array <var>a_class_tab</var></dt>
            <dd>Keys are primary key in {@link \RsClassSql} table, values are primary key in {@link \Wl\Classes\Tab\Sql\ClassTab\Sql}.</dd>
            <dt>
            array[] <var>a_direct_link</var>
            </dt>
            <dd>
            A list of links to create a booking from a direct link (direct booking URL).
            The system needs to know what tab is associated with the booking. Therefore, there needs to be one link
            per tab.
            Each element has two values:
            <dl>
            <dt>string <var>k_class_tab</var></dt>
            <dd>The key of the book now tab.</dd>
            <dt>string <var>url_tab</var></dt>
            <dd>The direct booking URL. This will open the booking wizard under the related booking tab.</dd>
            </dl>
            </dd>
            <dt>array[] <var>a_image</var></dt>
            <dd>Information about the asset logo:
            <dl>
            <dt>int <var>i_angle</var></dt>
            <dd>The angle of the shape rotation. This is set only if the image is one of the default shapes.</dd>
            <dt>bool <var>is_empty</var></dt>
            <dd>Determines if the asset logo is empty.</dd>
            <dt>string <var>sid_image_icon</var></dt>
            <dd>The icon name. String representation of one of the [Wl\Resource\Image\ImageIconSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Image/ImageIconSid.php) constants. This is only set if the image kind equals to `image`.</dd>
            <dt>string <var>sid_image_shape</var></dt>
            <dd>The shape name. String representation of one of the [Wl\Resource\Image\ImageShapeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Image/ImageShapeSid.php) constants. This is set only if the image kind equals to `shape`.</dd>
            <dt>string <var>url</var></dt>
            <dd>The asset logo URL.</dd>
            </dl>
            </dd>
            <dt>array[] <var>a_period</var></dt>
            <dd>A list of asset periods with the following information:
            <dl>
            <dt>string <var>html_duration</var></dt>
            <dd>The HTML code used to display the asset duration.</dd>
            <dt>string <var>html_price</var></dt>
            <dd>The HTML code used to display the formatted price.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The asset duration in minutes.</dd>
            <dt>int <var>id_price</var></dt>
            <dd>The asset period price type. One of [RsServicePriceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServicePriceSid.php) constants.</dd>
            <dt>sting <var>m_price</var></dt>
            <dd>The asset period price.</dd>
            </dl>
            </dd>
            <dt>array <var>a_search_tag</var></dt>
            <dd>QUICK Search tag keys.</dd>
            <dt>bool <var>hide_application</var></dt>
            <dd>
            Determines whether the asset will be hidden in the White Label mobile apps.
            If `true`, the asset won't be displayed. Otherwise, this will be `false`.
            </dd>
            <dt>string <var>html_age_restriction</var></dt>
            <dd>The resource age restriction</dd>
            <dt>string <var>html_title</var></dt>
            <dd>The resource name.</dd>
            <dt>int <var>id_service_require</var></dt>
            <dd>The purchase rule. One of the [RsServiceRequireSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServiceRequireSid.php) constants.</dd>
            <dt>bool <var>is_age_restricted</var></dt>
            <dd>Determines whether this service can't be booked due to age restrictions.</dd>
            <dt>string <var>k_class_tab</var></dt>
            <dd>Quick book tab key.</dd>
            <dt>string <var>k_resource</var></dt>
            <dd>The resource key.</dd>
            <dt>string <var>k_resource_category</var></dt>
            <dd>The resource category key.</dd>
            </dl><br/>            <b><i>k_resource_layout</i></b> - The asset layout key.
            May be empty if asset category has no layout.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_asset:
                    type: object
                    example: []
                  k_resource_layout:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Asset/CategoryModel:
    get:
      tags:
      - Appointment
      summary: Retrieves information about asset categories.
      description: >-
        Retrieves information about asset categories.
      parameters:
        - name: is_backend
          description: >-
            If `true`, asset categories are loaded for backend mode. Otherwise, this will be `false` if asset categories
            are loaded for frontend mode.

          in: query
          schema:
            type: string
        - name: is_tab_all
          description: >-
            `true` - search in all tabs.
            `false` - search only for the selected book tab.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The class tab key to use for filtering services.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_category</i></b> - A list of information about asset categories.
            <dl>
            <dt>
            boolean <var>hide_application</var>
            </dt>
            <dd>
            <tt>true</tt> - all resources are hidden in this category for White Label mobile application. <tt>false</tt> - otherwise.
            </dd>
            <dt>
            string <var>k_resource_type</var>
            </dt>
            <dd>
            Resource type ID.
            </dd>
            <dt>
            string <var>html_title</var>
            </dt>
            <dd>
            Title of resource type.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            Title of resource type as text.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_category:
                    type: object
                    example: []

  /Wl/Appointment/Book/Asset/Service/ServiceModel:
    get:
      tags:
      - Appointment
      summary: Retrieves assets that are required for a service booking.
      description: >-
        Retrieves assets that are required for a service booking.
      parameters:
        - name: dt_start
          description: >-
            The appointment booking date selected by the user.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type, one of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            If `true`, back-end mode is selected.
            In this mode, the list of asset categories must be returned even if asset selection is disabled for clients.
            
            If `false` for a case of front-end mode.
            In this mode, the list of asset categories won't be returned if asset selection is disabled for clients.

          in: query
          schema:
            type: string
        - name: is_grid_any
          description: >-
            Whether to show both grid layouts and custom layouts.
            
            `true` if custom layout should be included in the result.
            `false` if only grid layout can be used.

          in: query
          schema:
            type: string
        - name: is_show_unavailable_assets
          description: >-
            Whether unavailable assets should be included.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The selected location key.

          in: query
          schema:
            type: string
        - name: k_service
          description: >-
            The selected service's key.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            Timezone of date and time of service start.
            
            Empty if client can't change in which timezone dates should be shown.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_resource_busy</i></b> - A list of reserved assets.
            
            1st level keys refer to asset keys.
            2nd level keys refer to asset numbers.
            Values refer to keys of appointment bookings that reserve the asset(s).
            
            For example, if you want to check if the 10th asset with the key of '15' is reserved,
            you can check if `a_resource_busy['15']['10']` is free.
            
            If you're rebooking an appointment, check the value of `a_resource_busy['15']['10']`.
            If it's equal to the key of your current appointment booking, you can assume the asset is available.<br/>            <b><i>a_resource_type</i></b> - A list of assets required for the service booking.
            Keys refer the asset category key(s).
            Values refer to sub-arrays with next key(s).
            <dl>
            <dt>
            array[] <var>a_resource</var>
            </dt>
            <dd>
            A list of resources. Every element has the following keys:
            <dl>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            The asset's image data.
            </dd>
            <dt>
            bool <var>is_available</var>
            </dt>
            <dd>
            If `true`, then this asset has at least one free unit.
            If `false`, then this asset has no free units.
            </dd>
            <dt>
            string <var>k_resource</var>
            </dt>
            <dd>
            The asset key.
            </dd>
            <dt>
            string <var>s_resource</var>
            </dt>
            <dd>
            The asset title.
            </dd>
            </dl>
            </dd>
            <dt>
            string|null <var>k_resource_layout</var>
            </dt>
            <dd>
            The asset's layout key.
            This will be `null` if the asset category has no layout.
            </dd>
            <dt>
            string <var>s_resource_type</var>
            </dt>
            <dd>
            The title of asset category.
            </dd>
            </dl><br/>            <b><i>can_book_unavailable_assets</i></b> - Can the staff members book reserved assets.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_resource_busy:
                    type: object
                    example: []
                  a_resource_type:
                    type: object
                    example: []
                  can_book_unavailable_assets:
                    type: integer
                    example: 0

  /Wl/Appointment/Book/Finish/Finish47Model:
    post:
      tags:
      - Appointment
      summary: Completes an appointment booking.
      description: >-
        Completes an appointment booking.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: a_user
          description: >-
            Data to create new user.
            Specify if <var>$uid</var> is empty.
            Must contain the following keys:
            <dl>
            <dt>string[] <var>a_note</var></dt>
            <dd>List of notes to add to user.</dd>
            <dt>string <var>text_mail</var></dt>
            <dd>Mail.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>First name.</dd>
            <dt>string <var>text_name_last</var></dt>
            <dd>Last name.</dd>
            <dt>string <var>text_phone</var></dt>
            <dd>Phone.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: id_pay
          description: >-
            The payment type ID for the appointment. One of the [Wl\Appointment\WlAppointmentPaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/WlAppointmentPaySid.php) constants.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key.
            This should be set if you are rebooking an existing appointment.
            
            Otherwise use `0` to book a new appointment.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            Key of timezone.
            
            `null` if not set then use default timezone client {@link Wl\Profile\Timezone\ProfileTimezone::createInBusiness()}.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_answer</i></b> -
          A list of answers for the questions from [Wl\Appointment\Book\Question\QuestionModel::$a_question](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Question/QuestionModel.php).
          Key - hash of the question, value - answer for the question.
          <br/>
          <b><i>a_book_data</i></b> -
          All data from the appointment booking provider model.
          <br/>
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          
          Structure of this array corresponds structure of {@link RsPayForm::$a_pay_source}.
          <br/>
          <b><i>a_payment_data</i></b> -
          Data required for payment. Has next structure:<dl>
          <dt>int <var>id_purchase_item</var></dt>
          <dd>Type of the purchase item. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
          <dt>string <var>k_id</var></dt>
          <dd>Promotion key or appointment key. Depends on <var>id_purchase_item</var> of this array.</dd>
          <dt>string <var>k_login_promotion</var></dt>
          <dd>Login promotion key.</dd>
          <dt>string <var>k_session_pass</var></dt>
          <dd>Session pass key.</dd>
          <dt>string <var>text_discount_code</var></dt>
          <dd>Discount code.</dd>
          </dl>
          <br/>
          <b><i>a_purchase_item</i></b> -
          The purchase item keys.
          Empty if no purchases are made for appointment booking.
          <br/>
          <b><i>a_quiz_response</i></b> -
          List of quiz response keys.
          Key is quiz key from {@link \Core\Quiz\QuizSql} table.
          Value is response key from {@link \Core\Quiz\Response\ResponseSql} table.
          <br/>
          <b><i>id_mode</i></b> -
          The booking mode ID. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
          <br/>
          <b><i>is_back_to_back</i></b> -
          Whether multiple appointments booked in back-to-back mode.
          <br/>
          <b><i>is_unpaid_force</i></b> -
          `true` to book appointment unpaid; `false` to try to select available purchase option.
          <br/>
          <b><i>m_pay</i></b> -
          The sum paid for a deposit.
          <br/>
          <b><i>s_id</i></b> -
          Unique identifier of the wizard.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_answer:
                  description: >- 
                    A list of answers for the questions from [Wl\Appointment\Book\Question\QuestionModel::$a_question](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Question/QuestionModel.php).
                    Key - hash of the question, value - answer for the question.

                  type: object
                a_book_data:
                  description: >- 
                    All data from the appointment booking provider model.

                  type: object
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.
                    
                    Structure of this array corresponds structure of {@link RsPayForm::$a_pay_source}.

                  type: object
                a_payment_data:
                  description: >- 
                    Data required for payment. Has next structure:<dl>
                    <dt>int <var>id_purchase_item</var></dt>
                    <dd>Type of the purchase item. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
                    <dt>string <var>k_id</var></dt>
                    <dd>Promotion key or appointment key. Depends on <var>id_purchase_item</var> of this array.</dd>
                    <dt>string <var>k_login_promotion</var></dt>
                    <dd>Login promotion key.</dd>
                    <dt>string <var>k_session_pass</var></dt>
                    <dd>Session pass key.</dd>
                    <dt>string <var>text_discount_code</var></dt>
                    <dd>Discount code.</dd>
                    </dl>

                  type: object
                a_purchase_item:
                  description: >- 
                    The purchase item keys.
                    Empty if no purchases are made for appointment booking.

                  type: object
                a_quiz_response:
                  description: >- 
                    List of quiz response keys.
                    Key is quiz key from {@link \Core\Quiz\QuizSql} table.
                    Value is response key from {@link \Core\Quiz\Response\ResponseSql} table.

                  type: object
                id_mode:
                  description: >- 
                    The booking mode ID. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

                  type: integer
                is_back_to_back:
                  description: >- 
                    Whether multiple appointments booked in back-to-back mode.

                  type: integer
                is_unpaid_force:
                  description: >- 
                    `true` to book appointment unpaid; `false` to try to select available purchase option.

                  type: integer
                m_pay:
                  description: >- 
                    The sum paid for a deposit.

                  type: string
                s_id:
                  description: >- 
                    Unique identifier of the wizard.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_appointment</i></b> - The keys of the booked appointments.
            Every element has key:
            <dl>
            <dt>
            string <var>k_appointment</var>
            </dt>
            <dd>
            The appointment key.
            </dd>
            </dl><br/>            <b><i>a_login_activity_visit</i></b> - The activity keys of the bookings that were made.<br/>            <b><i>a_visit</i></b> - The keys of visits.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_appointment:
                    type: object
                    example: []
                  a_login_activity_visit:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
    get:
      tags:
      - Appointment
      summary: Completes an appointment booking.
      description: >-
        Completes an appointment booking.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_location:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Finish/FinishModel:
    post:
      tags:
      - Appointment
      summary: Completes the booking process for a service.
      description: >-
        Completes the booking process for a service.
        <br /><br />
        This endpoint can be used with an existing client by specifying their UID. It can also be used to create a new
        client by specifying user details in [Wl\Appointment\Book\Finish\FinishModel::$a_user](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Finish/FinishModel.php) and omitting any UID.
        This endpoint can be accessed anonymously without authentication, but only when creating clients.
        <br /><br />
        @deprecated Use [Wl\Appointment\Book\Finish\Finish47Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Finish/Finish47Model.php) instead.
      parameters:
        - name: a_book_data
          description: >-
            All data from the provider model <tt>Wl_Appointment_Book_ProviderModel</tt>:
            <dl>
            <dt>
            array [<var>a_product</var>]
            </dt>
            <dd>
            Add-ons to the appointment. Specify this for appointment bookings only.
            Old format: array keys refer to primary keys.
            New format: each element is an array:
            <dt>int <var>i_count</var></dt><dd>The add-on count</dd>
            <dt>string <var>k_shop_product_option</var></dt><dd>The key of add-on.</dd>
            </dd>
            <dt>
            array [<var>a_repeat</var>]
            </dt>
            <dd>
            Recurring booking information:
            <dl>
            <dt>
            int[] [<var>a_week</var>]
            </dt>
            <dd>
            The days of week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
            This will be empty if the appointment doesn't repeat weekly.
            </dd>
            <dt>
            string [<var>dl_end</var>]
            </dt>
            <dd>
            The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
            </dd>
            <dt>
            int [<var>i_occurrence</var>]
            </dt>
            <dd>
            The number of occurrences after which the appointment's repeat cycle must stop.
            This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
            </dd>
            <dt>
            int <var>i_period</var>
            </dt>
            <dd>
            The frequency of the appointment's repeat cycle.
            </dd>
            <dt>
            int <var>id_period</var>
            </dt>
            <dd>
            The measurement unit of <tt>i_period</tt>. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
            </dd>
            <dt>
            bool [<var>is_month</var>]
            </dt>
            <dd>
            <tt>true</tt> if the appointment repeats monthly on the same date.
            <tt>false</tt> if the appointment repeats monthly on the same day of the week.
            <tt>null</tt> if the appointment doesn't repeat monthly.
            </dd>
            </dl>
            This will be empty if the appointment isn't recurring.
            </dd>
            <dt>
            array [<var>a_resource</var>]
            </dt>
            <dd>
            A list of assets for the appointment booking.
            Keys refer to asset categories. Values refer to arrays with the next keys:
            <dl>
            <dt>int [<var>i_index</var>]</dt>
            <dd>The asset index on the layout. Specify this only if the asset category has a layout.</dd>
            <dt>string <var>k_resource</var></dt>
            <dd>The asset.</dd>
            </dl>
            Specify this only for the appointment booking.
            </dd>
            <dt>
            string <var>dt_date</var>
            </dt>
            <dd>
            The date/time for the booking in MySQL format in the location's time zone.
            </dd>
            <dt>
            int [<var>i_duration</var>]
            </dt>
            <dd>
            The duration of asset booking in minutes. Specify this for separate asset bookings only.
            </dd>
            <dt>
            int [<var>i_index</var>]
            </dt>
            <dd>
            The asset index on the layout.
            Specify this for separate asset bookings only and for cases when the asset category only has a layout.
            </dd>
            <dt>
            int <var>id_class_tab</var>
            </dt>
            <dd>
            The booking service type. One of the [Wl\Classes\Tab\TabSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/Tab/TabSid.php) constants.
            </dd>
            <dt>
            int [<var>id_gender_staff</var>]
            </dt>
            <dd>
            The gender of the staff member conducting the appointment. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
            Specify this for appointment bookings only.
            </dd>
            <dt>
            string [<var>k_login_promotion</var>]
            </dt>
            <dd>
            The user's pass (for example, a membership or a package).
            Specify this if you want to set the pass to use to pay for the booking.
            </dd>
            <dt>
            string [<var>k_resource</var>]
            </dt>
            <dd>
            The asset booking. Specify this for separate asset bookings only.
            </dd>
            <dt>
            string [<var>k_service</var>]
            </dt>
            <dd>
            The appointment booking. Specify this for appointment bookings only.
            </dd>
            <dt>
            string [<var>k_staff</var>]
            </dt>
            <dd>
            The staff member conducting the appointment.
            Specify this for appointment bookings only.
            </dd>
            <dt>
            string [<var>k_staff_date</var>]
            </dt>
            <dd>
            The staff member conducting the appointment.
            The difference between this an <var>k_staff</var> is that this value must be set only in cases
            when you want to add a customer to an appointment that already exists.
            Specify this for appointment bookings only.
            </dd>
            <dt>string [<var>m_tip_appointment</var>]</dt>
            <dd>The amount of selected tips.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            A list of user keys to book appointments with.
            Empty values represent walk-ins.

          in: query
          schema:
            type: string
        - name: a_user
          description: >-
            Data used to create a new user.
            Specify this if <var>$uid</var> is empty.
            This must contain the following keys:
            <dl>
            <dt>string[] <var>a_note</var></dt>
            <dd>A list of notes to add for the user.</dd>
            <dt>string <var>text_mail</var></dt>
            <dd>The user's email address.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>The user's first name.</dd>
            <dt>string <var>text_name_last</var></dt>
            <dd>The user's last name.</dd>
            <dt>string <var>text_phone</var></dt>
            <dd>The user's phone number.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: id_pay
          description: >-
            The payment type ID for the appointment. One of the [Wl\Appointment\WlAppointmentPaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/WlAppointmentPaySid.php) constants.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            If `true`, the client is a walk-in. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key.
            This should be set if you're rebooking an existing appointment.
            
            Otherwise, use `0` to book a new appointment.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            Key of time zone.
            
            This will be `null` if not set yet. In these cases, the client's default time zone from {@link Wl\Profile\Timezone\ProfileTimezone::createInBusiness()}
            will be used.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_answer</i></b> -
          A list of answers for the questions from [Wl\Appointment\Book\Question\QuestionModel::$a_question](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Question/QuestionModel.php).
          Keys refer to hashes of the questions. Values refer to answers for the questions.
          <br/>
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          <br/>
          <b><i>a_payment_data</i></b> -
          Data required for payment with the following structure:<dl>
          <dt>int <var>id_purchase_item</var></dt>
          <dd>The type of the purchase item. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
          <dt>string <var>k_id</var></dt>
          <dd>The promotion key or appointment key, which depends on <var>id_purchase_item</var> of this array.</dd>
          <dt>string <var>k_login_promotion</var></dt>
          <dd>The login promotion key.</dd>
          <dt>string <var>k_session_pass</var></dt>
          <dd>The session pass key.</dd>
          <dt>string <var>text_discount_code</var></dt>
          <dd>The discount code.</dd>
          </dl>
          <br/>
          <b><i>a_purchase_item</i></b> -
          The purchase item keys.
          This will be empty if no purchases are made for the appointment booking.
          <br/>
          <b><i>a_quiz_response</i></b> -
          A list of quiz response keys.
          Keys refer to quiz keys.
          Values refer to response keys.
          <br/>
          <b><i>id_mode</i></b> -
          The booking mode ID. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
          <br/>
          <b><i>is_back_to_back</i></b> -
          Determines whether multiple appointments are booked in back-to-back mode.
          <br/>
          <b><i>is_unpaid_force</i></b> -
          If `true`, the appointment is booked as unpaid. Otherwise, this will be `false` to select an available Purchase Option.
          <br/>
          <b><i>m_pay</i></b> -
          The sum paid for a deposit.
          <br/>
          <b><i>s_id</i></b> -
          The wizard's unique identifier.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_answer:
                  description: >- 
                    A list of answers for the questions from [Wl\Appointment\Book\Question\QuestionModel::$a_question](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Question/QuestionModel.php).
                    Keys refer to hashes of the questions. Values refer to answers for the questions.

                  type: object
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.

                  type: object
                a_payment_data:
                  description: >- 
                    Data required for payment with the following structure:<dl>
                    <dt>int <var>id_purchase_item</var></dt>
                    <dd>The type of the purchase item. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
                    <dt>string <var>k_id</var></dt>
                    <dd>The promotion key or appointment key, which depends on <var>id_purchase_item</var> of this array.</dd>
                    <dt>string <var>k_login_promotion</var></dt>
                    <dd>The login promotion key.</dd>
                    <dt>string <var>k_session_pass</var></dt>
                    <dd>The session pass key.</dd>
                    <dt>string <var>text_discount_code</var></dt>
                    <dd>The discount code.</dd>
                    </dl>

                  type: object
                a_purchase_item:
                  description: >- 
                    The purchase item keys.
                    This will be empty if no purchases are made for the appointment booking.

                  type: object
                a_quiz_response:
                  description: >- 
                    A list of quiz response keys.
                    Keys refer to quiz keys.
                    Values refer to response keys.

                  type: object
                id_mode:
                  description: >- 
                    The booking mode ID. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

                  type: integer
                is_back_to_back:
                  description: >- 
                    Determines whether multiple appointments are booked in back-to-back mode.

                  type: integer
                is_unpaid_force:
                  description: >- 
                    If `true`, the appointment is booked as unpaid. Otherwise, this will be `false` to select an available Purchase Option.

                  type: integer
                m_pay:
                  description: >- 
                    The sum paid for a deposit.

                  type: string
                s_id:
                  description: >- 
                    The wizard's unique identifier.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_appointment</i></b> - The keys of the booked appointments.
            Every element has the next key:
            <dl>
            <dt>
            string <var>k_appointment</var>
            </dt>
            <dd>
            The appointment key.
            </dd>
            </dl><br/>            <b><i>a_login_activity_visit</i></b> - The activity keys of the bookings that were made.<br/>            <b><i>a_visit</i></b> - The keys of visits.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_appointment:
                    type: object
                    example: []
                  a_login_activity_visit:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
    get:
      tags:
      - Appointment
      summary: Completes the booking process for a service.
      description: >-
        Completes the booking process for a service.
        <br /><br />
        This endpoint can be used with an existing client by specifying their UID. It can also be used to create a new
        client by specifying user details in [Wl\Appointment\Book\Finish\FinishModel::$a_user](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Finish/FinishModel.php) and omitting any UID.
        This endpoint can be accessed anonymously without authentication, but only when creating clients.
        <br /><br />
        @deprecated Use [Wl\Appointment\Book\Finish\Finish47Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Finish/Finish47Model.php) instead.
      parameters:
        - name: a_uid
          description: >-
            A list of user keys to book appointments with.
            Empty values represent walk-ins.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            If `true`, the client is a walk-in. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>k_location</i></b> - The location key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_location:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Finish/FinishMultipleModel:
    post:
      tags:
      - Appointment
      summary: Pays for an appointment or appointment Purchase Option for a client.
      description: >-
        Pays for an appointment or appointment Purchase Option for a client.
      parameters:
        - name: a_pay
          description: >-
            The payment type for the appointment. One of the [Wl\Appointment\WlAppointmentPaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/WlAppointmentPaySid.php) constants.

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            The list of user keys to book appointments with.
            Empty values in this list signify walk-ins.

          in: query
          schema:
            type: string
        - name: a_user
          description: >-
            Data to create new users.
            Specify this if <var>$uid</var> is empty.
            The data must contain the next keys:
            <dl><dt>string[] <var>a_note</var></dt><dd>The list of notes to add to the new user's profile.</dd>
            <dt>string <var>text_mail</var></dt><dd>The new user's email address.</dd>
            <dt>string <var>text_name_first</var></dt><dd>The new user's first name.</dd>
            <dt>string <var>text_name_last</var></dt><dd>The new user's last name.</dd>
            <dt>string <var>text_phone</var></dt><dd>The new user's mobile phone number.</dd></dl>

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            This will be `true` if the client is walk-in. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key.
            Specify this to reschedule a certain appointment.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location to show the available appointment booking schedule for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user to get information for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_answer</i></b> -
          A list of answers for the questions.
          <br/>
          <b><i>a_book_data</i></b> -
          All data from the provider model `Wl_Appointment_Book_ProviderModel`:
          <dl>
          <dt>
          array [<var>a_product</var>]
          </dt>
          <dd>
          Add-ons to the appointment. Specified for appointment bookings only.
          The old format used array keys, while the new new format has each element as an array:
          <dl><dt>int <var>i_count</var></dt><dd>The add-on count.</dd>
          <dt>string <var>k_shop_product_option</var></dt><dd>The add-on key.</dd></dl>
          </dd>
          <dt>
          array [<var>a_repeat</var>]
          </dt>
          <dd>
          Information for the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of the week when the appointment repeats. One of the constants of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency at which the appointment repeats.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          <tt>true</tt> if the appointment repeats monthly on the same date.
          <tt>false</tt> if the appointment repeats monthly on the same day of the week.
          <tt>null</tt> if the appointment doesn't repeat monthly.
          </dd>
          </dl>
          This will be empty if the appointment isn't booked recurringly.
          </dd>
          <dt>
          array [<var>a_resource</var>]
          </dt>
          <dd>
          The list of assets for the appointment booking.
          Keys refer to asset categories. Values are arrays with the next keys:
          <dl>
          <dt>int [<var>i_index</var>]</dt>
          <dd>The asset index on the layout. This is only specified if the asset category has a layout.</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The asset.</dd>
          </dl>
          Specify this only for an appointment booking.
          </dd>
          <dt>
          string <var>dt_date</var>
          </dt>
          <dd>
          The date/time for the booking in MySQL format in the location's time zone.
          </dd>
          <dt>
          int [<var>i_duration</var>]
          </dt>
          <dd>
          The duration for the asset booking in minutes. Specify this for separate asset bookings only.
          </dd>
          <dt>
          int [<var>i_index</var>]
          </dt>
          <dd>
          The asset index on the layout.
          Specify this for separate asset bookings only and for cases when the asset category only has the layout.
          </dd>
          <dt>
          int <var>id_class_tab</var>
          </dt>
          <dd>
          The booking service type. One of the [Wl\Classes\Tab\TabSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/Tab/TabSid.php) constants.
          </dd>
          <dt>
          int [<var>id_gender_staff</var>]
          </dt>
          <dd>
          The gender of the staff member conducting the appointment. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
          Specify this for appointment bookings only.
          </dd>
          <dt>
          string [<var>k_login_promotion</var>]
          </dt>
          <dd>
          The user's Purchase Option.
          Specify this if you want to use a specific Purchase Option to pay for the booking.
          </dd>
          <dt>
          string [<var>k_resource</var>]
          </dt>
          <dd>
          The asset booking. Specify this for separate asset bookings only.
          </dd>
          <dt>
          string [<var>k_service</var>]
          </dt>
          <dd>
          The appointment booking. Specify this for appointment bookings only.
          </dd>
          <dt>
          string [<var>k_staff</var>]
          </dt>
          <dd>
          The staff member conducting the appointment.
          Specify this for appointment bookings only.
          </dd>
          <dt>
          string [<var>k_staff_date</var>]
          </dt>
          <dd>
          The staff member conducting the appointment.
          The difference between this and <var>k_staff</var> is that this value must be set only in cases
          when you want to add customer to an appointment that already exists.
          Specify this for appointment bookings only.
          </dd>
          <dt>string [<var>m_tip_appointment</var>]</dt>
          <dd>The amount of selected tips.</dd>
          <dt>sting <var>k_timezone</var></dt>
          <dd>The time zone key. This will be 'null' if the time zone used matches the time zone of the location.</dd>
          </dl>
          <br/>
          <b><i>a_paid</i></b> -
          The sum paid.
          <br/>
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          
          The structure of this array corresponds with the structure of {@link RsPayForm::$a_pay_source}.
          <br/>
          <b><i>a_payment_data</i></b> -
          Data required for payment with the next structure:<dl>
          <dt>int <var>id_purchase_item</var></dt>
          <dd>The purchase item type. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
          <dt>string <var>k_id</var></dt>
          <dd>The promotion or appointment key, depending on <var>id_purchase_item</var> in this array.</dd>
          <dt>string <var>k_login_promotion</var></dt>
          <dd>The login promotion key.</dd>
          <dt>string <var>text_discount_code</var></dt>
          <dd>The discount code.</dd>
          </dl>
          <br/>
          <b><i>a_purchase_item</i></b> -
          The purchase items keys.
          This will be empty if no purchases have been made for the appointment booking.
          <br/>
          <b><i>a_quiz_response</i></b> -
          The list of quiz response keys.
          Keys refer to quiz keys, and values refer to response keys.
          <br/>
          <b><i>id_mode</i></b> -
          The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
          <br/>
          <b><i>is_back_to_back</i></b> -
          Determines whether multiple appointments have been booked in back-to-back mode.
          <br/>
          <b><i>is_try</i></b> -
          This will be `true` when trying to make a test booking and rollback should be applied. Otherwise, this will be `false`.
          <br/>
          <b><i>s_id</i></b> -
          The unique identifier of the wizard.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_answer:
                  description: >- 
                    A list of answers for the questions.

                  type: object
                a_book_data:
                  description: >- 
                    All data from the provider model `Wl_Appointment_Book_ProviderModel`:
                    <dl>
                    <dt>
                    array [<var>a_product</var>]
                    </dt>
                    <dd>
                    Add-ons to the appointment. Specified for appointment bookings only.
                    The old format used array keys, while the new new format has each element as an array:
                    <dl><dt>int <var>i_count</var></dt><dd>The add-on count.</dd>
                    <dt>string <var>k_shop_product_option</var></dt><dd>The add-on key.</dd></dl>
                    </dd>
                    <dt>
                    array [<var>a_repeat</var>]
                    </dt>
                    <dd>
                    Information for the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of the week when the appointment repeats. One of the constants of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency at which the appointment repeats.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    <tt>true</tt> if the appointment repeats monthly on the same date.
                    <tt>false</tt> if the appointment repeats monthly on the same day of the week.
                    <tt>null</tt> if the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    This will be empty if the appointment isn't booked recurringly.
                    </dd>
                    <dt>
                    array [<var>a_resource</var>]
                    </dt>
                    <dd>
                    The list of assets for the appointment booking.
                    Keys refer to asset categories. Values are arrays with the next keys:
                    <dl>
                    <dt>int [<var>i_index</var>]</dt>
                    <dd>The asset index on the layout. This is only specified if the asset category has a layout.</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The asset.</dd>
                    </dl>
                    Specify this only for an appointment booking.
                    </dd>
                    <dt>
                    string <var>dt_date</var>
                    </dt>
                    <dd>
                    The date/time for the booking in MySQL format in the location's time zone.
                    </dd>
                    <dt>
                    int [<var>i_duration</var>]
                    </dt>
                    <dd>
                    The duration for the asset booking in minutes. Specify this for separate asset bookings only.
                    </dd>
                    <dt>
                    int [<var>i_index</var>]
                    </dt>
                    <dd>
                    The asset index on the layout.
                    Specify this for separate asset bookings only and for cases when the asset category only has the layout.
                    </dd>
                    <dt>
                    int <var>id_class_tab</var>
                    </dt>
                    <dd>
                    The booking service type. One of the [Wl\Classes\Tab\TabSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/Tab/TabSid.php) constants.
                    </dd>
                    <dt>
                    int [<var>id_gender_staff</var>]
                    </dt>
                    <dd>
                    The gender of the staff member conducting the appointment. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
                    Specify this for appointment bookings only.
                    </dd>
                    <dt>
                    string [<var>k_login_promotion</var>]
                    </dt>
                    <dd>
                    The user's Purchase Option.
                    Specify this if you want to use a specific Purchase Option to pay for the booking.
                    </dd>
                    <dt>
                    string [<var>k_resource</var>]
                    </dt>
                    <dd>
                    The asset booking. Specify this for separate asset bookings only.
                    </dd>
                    <dt>
                    string [<var>k_service</var>]
                    </dt>
                    <dd>
                    The appointment booking. Specify this for appointment bookings only.
                    </dd>
                    <dt>
                    string [<var>k_staff</var>]
                    </dt>
                    <dd>
                    The staff member conducting the appointment.
                    Specify this for appointment bookings only.
                    </dd>
                    <dt>
                    string [<var>k_staff_date</var>]
                    </dt>
                    <dd>
                    The staff member conducting the appointment.
                    The difference between this and <var>k_staff</var> is that this value must be set only in cases
                    when you want to add customer to an appointment that already exists.
                    Specify this for appointment bookings only.
                    </dd>
                    <dt>string [<var>m_tip_appointment</var>]</dt>
                    <dd>The amount of selected tips.</dd>
                    <dt>sting <var>k_timezone</var></dt>
                    <dd>The time zone key. This will be 'null' if the time zone used matches the time zone of the location.</dd>
                    </dl>

                  type: object
                a_paid:
                  description: >- 
                    The sum paid.

                  type: object
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.
                    
                    The structure of this array corresponds with the structure of {@link RsPayForm::$a_pay_source}.

                  type: object
                a_payment_data:
                  description: >- 
                    Data required for payment with the next structure:<dl>
                    <dt>int <var>id_purchase_item</var></dt>
                    <dd>The purchase item type. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
                    <dt>string <var>k_id</var></dt>
                    <dd>The promotion or appointment key, depending on <var>id_purchase_item</var> in this array.</dd>
                    <dt>string <var>k_login_promotion</var></dt>
                    <dd>The login promotion key.</dd>
                    <dt>string <var>text_discount_code</var></dt>
                    <dd>The discount code.</dd>
                    </dl>

                  type: object
                a_purchase_item:
                  description: >- 
                    The purchase items keys.
                    This will be empty if no purchases have been made for the appointment booking.

                  type: object
                a_quiz_response:
                  description: >- 
                    The list of quiz response keys.
                    Keys refer to quiz keys, and values refer to response keys.

                  type: object
                id_mode:
                  description: >- 
                    The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

                  type: integer
                is_back_to_back:
                  description: >- 
                    Determines whether multiple appointments have been booked in back-to-back mode.

                  type: integer
                is_try:
                  description: >- 
                    This will be `true` when trying to make a test booking and rollback should be applied. Otherwise, this will be `false`.

                  type: integer
                s_id:
                  description: >- 
                    The unique identifier of the wizard.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_appointment</i></b> - The booked appointments. Every element has the key:
            <dl>
            <dt>
            string <var>k_appointment</var>
            </dt>
            <dd>
            The appointment key.
            </dd>
            </dl><br/>            <b><i>a_login_activity_visit</i></b> - The activity IDs of bookings that have been made.<br/>            <b><i>a_visit</i></b> - The visit IDs.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_appointment:
                    type: object
                    example: []
                  a_login_activity_visit:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
    get:
      tags:
      - Appointment
      summary: Pays for an appointment or appointment Purchase Option for a client.
      description: >-
        Pays for an appointment or appointment Purchase Option for a client.
      parameters:
        - name: a_uid
          description: >-
            The list of user keys to book appointments with.
            Empty values in this list signify walk-ins.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            This will be `true` if the client is walk-in. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location to show the available appointment booking schedule for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>k_location</i></b> - The location to show the available appointment booking schedule for.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_location:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Payment/PaymentModel:
    get:
      tags:
      - Appointment
      summary: Displays information about payments for an appointment.
      description: >-
        Displays information about payments for an appointment.
        The POST method for this endpoint is implemented as a separate endpoint (see
        [Wl\Appointment\Book\Payment\PaymentPostModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentPostModel.php)).
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
        <br /><br />
        @deprecated Use [Wl\Appointment\Book\Payment\PaymentPostModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentPostModel.php) instead.
      parameters:
        - name: a_book_data
          description: >-
            Information detailing an appointment booking.

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The key of source mode. A constant of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php).

          in: query
          schema:
            type: string
        - name: id_purchase_item
          description: >-
            The purchase item ID. A constant of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The item key. Depends of [Wl\Appointment\Book\Payment\PaymentModel::$id_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php) property.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The login promotion key.

          in: query
          schema:
            type: string
        - name: k_session_pass
          description: >-
            Session pass key.

          in: query
          schema:
            type: string
        - name: m_variable_price
          description: >-
            Variable price. Is set only during booking an appointment with variable type of the price
            [RsServicePriceSid::VARIES from spa backend  Wl\Mode\ModeSid::SPA_BACKEND](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServicePriceSid.php) from spa backend {@link \WellnessLiving\Wl\Mode\ModeSid::SPA_BACKEND}.

          in: query
          schema:
            type: string
        - name: s_unique_key
          description: >-
            Service unique key.
            Used for model cache.

          in: query
          schema:
            type: string
        - name: text_coupon_code
          description: >-
            Gift card code.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code to be applied to the purchase.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion_data</i></b> - Information about selected Purchase Options.
            <dl>
            <dt>string <var>i_limit</var></dt>
            <dd>The limit of total visits.</dd>
            
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits.</dd>
            
            <dt>string <var>s_expire</var></dt>
            <dd>The expiration date.</dd>
            
            <dt>string <var>s_title</var></dt>
            <dd>The title of the Purchase Option.</dd>
            </dl><br/>            <b><i>a_purchase</i></b> - Information about selected purchase items.
            
            Indexes are strings in the format `id_purchase_item-k_id`.
            
            Values are an array with the following structure:
            
            <dl>
            <dt>array <var>a_tax</var></dt>
            <dd>
            Contains information about taxes in the following format. A list of taxes to apply.
            The array keys are `k_tax` keys. Each element contains the following fields: <dl>
            <dt>float <var>m_tax</var></dt>
            <dd>The tax rate.</dd>
            
            <dt>string <var>text_title</var></dt>
            <dd>The name of the tax.</dd>
            </dl>
            </dd>
            
            <dt>string <var>id_purchase_item</var></dt>
            <dd>The purchase item ID. A constant of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).</dd>
            
            <dt>string <var>k_id</var></dt>
            <dd>The value of the discount used for the purchase.</dd>
            
            <dt>string <var>m_discount</var></dt>
            <dd>The value of the discount used for the purchase.</dd>
            
            <dt>string <var>m_pay</var></dt>
            <dd>The payment for the Purchase Option or single visit without taxes.</dd>
            
            <dt>string <var>m_price</var></dt>
            <dd>The price of the Purchase Option or single visit.</dd>
            </dl><br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>            <b><i>m_coupon</i></b> - Gift card amount.<br/>            <b><i>m_discount</i></b> - Discount amount.<br/>            <b><i>m_surcharge</i></b> - Surcharge amount.<br/>            <b><i>m_tax</i></b> - The tax of service.<br/>            <b><i>m_total</i></b> - The total cost of the purchase.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion_data:
                    type: object
                    example: []
                  a_purchase:
                    type: object
                    example: []
                  k_location:
                    type: string
                    example: ""
                  m_coupon:
                    type: string
                    example: ""
                  m_discount:
                    type: string
                    example: ""
                  m_surcharge:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  m_total:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Displays information about payments for an appointment.
      description: >-
        Displays information about payments for an appointment.
        The POST method for this endpoint is implemented as a separate endpoint (see
        [Wl\Appointment\Book\Payment\PaymentPostModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentPostModel.php)).
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
        <br /><br />
        @deprecated Use [Wl\Appointment\Book\Payment\PaymentPostModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentPostModel.php) instead.
      parameters:
        - name: a_book_data
          description: >-
            Information detailing an appointment booking.

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The key of source mode. A constant of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php).

          in: query
          schema:
            type: string
        - name: id_purchase_item
          description: >-
            The purchase item ID. A constant of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The item key. Depends of [Wl\Appointment\Book\Payment\PaymentModel::$id_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php) property.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: text_coupon_code
          description: >-
            Gift card code.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code to be applied to the purchase.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          
          Each element has next keys:
          <dl>
          <dt>
          array [<var>a_pay_card</var>]
          </dt>
          <dd>
          The payment card information:
          <dl>
          <dt>
          array <var>a_pay_address</var>
          </dt>
          <dd>
          The payment address:
          <dl>
          <dt>boolean <var>is_new</var></dt>
          <dd>Set this value is <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
          <dt>string [<var>k_geo_country</var>]</dt>
          <dd>The key of the country used for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>k_geo_region</var>]</dt>
          <dd>The key of the region for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>k_pay_address</var>]</dt>
          <dd>The key of the saved payment address. Specify to use a saved address.</dd>
          <dt>string [<var>s_city</var>]</dt>
          <dd>The city used for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_name</var>]</dt>
          <dd>The card name. Specify to add a new address.</dd>
          <dt>string [<var>s_phone</var>]</dt>
          <dd>The payment phone. Specify to add a new address.</dd>
          <dt>string [<var>s_postal</var>]</dt>
          <dd>The postal code for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_street1</var>]</dt>
          <dd>The payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_street2</var>]</dt>
          <dd>The optional payment address. Specify to add a new address.</dd>
          </dl>
          </dd>
          <dt>
          int [<var>i_csc</var>]
          </dt>
          <dd>
          The credit card CSC. Specify to add a new card.
          </dd>
          <dt>
          int [<var>i_month</var>]
          </dt>
          <dd>
          The credit card expiration month. Specify to add a new card.
          </dd>
          <dt>
          int [<var>i_year</var>]
          </dt>
          <dd>
          The credit card expiration year. Specify to add a new card.
          </dd>
          <dt>
          boolean <var>is_new</var>
          </dt>
          <dd>
          <tt>1</tt> to add a new card; <tt>0</tt> to use a saved card.
          </dd>
          <dt>
          string [<var>k_pay_bank</var>]
          </dt>
          <dd>
          The key of a credit card. Specify to use saved card.
          </dd>
          <dt>
          string [<var>s_comment</var>]
          </dt>
          <dd>
          Optional comment(s). Specify to add a new card.
          </dd>
          <dt>
          string [<var>s_number</var>]
          </dt>
          <dd>
          The card number. Specify to add a new card.
          </dd>
          </dl>
          </dd>
          <dt>
          string <var>f_amount</var>
          </dt>
          <dd>
          The amount of money to withdraw with this payment source.
          </dd>
          <dt>
          boolean [<var>is_hide</var>]
          </dt>
          <dd>
          Whether this payment method is hidden.
          </dd>
          <dt>
          boolean [<var>is_success</var>=<tt>false</tt>]
          </dt>
          <dd>
          Identifies whether this source was successfully charged.
          </dd>
          <dt>
          string [<var>m_surcharge</var>]
          </dt>
          <dd>
          The client-side calculated surcharge.
          </dd>
          <dt>
          string [<var>s_index</var>]
          </dt>
          <dd>
          The index of this form (optional).
          </dd>
          <dt>
          string <var>sid_pay_method</var>
          </dt>
          <dd>
          The payment method ID.
          </dd>
          </dl>
          <br/>
          <b><i>a_quiz_response</i></b> -
          List of quiz response keys.
          Key is quiz key from {@link \Core\Quiz\QuizSql} table.
          Value is response key from {@link \Core\Quiz\Response\ResponseSql} table.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.
                    
                    Each element has next keys:
                    <dl>
                    <dt>
                    array [<var>a_pay_card</var>]
                    </dt>
                    <dd>
                    The payment card information:
                    <dl>
                    <dt>
                    array <var>a_pay_address</var>
                    </dt>
                    <dd>
                    The payment address:
                    <dl>
                    <dt>boolean <var>is_new</var></dt>
                    <dd>Set this value is <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
                    <dt>string [<var>k_geo_country</var>]</dt>
                    <dd>The key of the country used for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>k_geo_region</var>]</dt>
                    <dd>The key of the region for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>k_pay_address</var>]</dt>
                    <dd>The key of the saved payment address. Specify to use a saved address.</dd>
                    <dt>string [<var>s_city</var>]</dt>
                    <dd>The city used for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_name</var>]</dt>
                    <dd>The card name. Specify to add a new address.</dd>
                    <dt>string [<var>s_phone</var>]</dt>
                    <dd>The payment phone. Specify to add a new address.</dd>
                    <dt>string [<var>s_postal</var>]</dt>
                    <dd>The postal code for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_street1</var>]</dt>
                    <dd>The payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_street2</var>]</dt>
                    <dd>The optional payment address. Specify to add a new address.</dd>
                    </dl>
                    </dd>
                    <dt>
                    int [<var>i_csc</var>]
                    </dt>
                    <dd>
                    The credit card CSC. Specify to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_month</var>]
                    </dt>
                    <dd>
                    The credit card expiration month. Specify to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_year</var>]
                    </dt>
                    <dd>
                    The credit card expiration year. Specify to add a new card.
                    </dd>
                    <dt>
                    boolean <var>is_new</var>
                    </dt>
                    <dd>
                    <tt>1</tt> to add a new card; <tt>0</tt> to use a saved card.
                    </dd>
                    <dt>
                    string [<var>k_pay_bank</var>]
                    </dt>
                    <dd>
                    The key of a credit card. Specify to use saved card.
                    </dd>
                    <dt>
                    string [<var>s_comment</var>]
                    </dt>
                    <dd>
                    Optional comment(s). Specify to add a new card.
                    </dd>
                    <dt>
                    string [<var>s_number</var>]
                    </dt>
                    <dd>
                    The card number. Specify to add a new card.
                    </dd>
                    </dl>
                    </dd>
                    <dt>
                    string <var>f_amount</var>
                    </dt>
                    <dd>
                    The amount of money to withdraw with this payment source.
                    </dd>
                    <dt>
                    boolean [<var>is_hide</var>]
                    </dt>
                    <dd>
                    Whether this payment method is hidden.
                    </dd>
                    <dt>
                    boolean [<var>is_success</var>=<tt>false</tt>]
                    </dt>
                    <dd>
                    Identifies whether this source was successfully charged.
                    </dd>
                    <dt>
                    string [<var>m_surcharge</var>]
                    </dt>
                    <dd>
                    The client-side calculated surcharge.
                    </dd>
                    <dt>
                    string [<var>s_index</var>]
                    </dt>
                    <dd>
                    The index of this form (optional).
                    </dd>
                    <dt>
                    string <var>sid_pay_method</var>
                    </dt>
                    <dd>
                    The payment method ID.
                    </dd>
                    </dl>

                  type: object
                a_quiz_response:
                  description: >- 
                    List of quiz response keys.
                    Key is quiz key from {@link \Core\Quiz\QuizSql} table.
                    Value is response key from {@link \Core\Quiz\Response\ResponseSql} table.

                  type: object
      responses:
        '200':
          description: >-
            <b><i>a_purchase_item</i></b> - The purchase item keys from the database.
            
            This will be `null` if not set yet.<br/>            <b><i>id_pay</i></b> - The payment type for the appointment. A constant of [Wl\Appointment\WlAppointmentPaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/WlAppointmentPaySid.php).<br/>            <b><i>k_login_activity_purchase</i></b> - The key of activity of the purchase made.
            Empty if no purchase has been made.<br/>            <b><i>k_login_prize</i></b> - Login prize key. In case when appointment paid by reward prize, there is the key of redeemed login prize. Empty otherwise.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_purchase_item:
                    type: object
                    example: []
                  id_pay:
                    type: integer
                    example: 0
                  k_login_activity_purchase:
                    type: string
                    example: ""
                  k_login_prize:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Payment/PaymentMultipleModel:
    get:
      tags:
      - Appointment
      summary: Completes the payment for an appointment or appointment Purchase Option for a client.
      description: >-
        Completes the payment for an appointment or appointment Purchase Option for a client.
        <br /><br />
        The only difference between this endpoint and [Wl\Appointment\Book\Payment\PaymentModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php) is
        that this endpoint is capable of paying for multiple appointments at the same time.
        <br /><br />
        This endpoint uses a CAPTCHA check.
        To pass the CAPTCHA, you'll need to study the documentation of the CAPTCHA base class. In the documentation, you'll
        find that you need to send a CAPTCHA for a specific action. For this API, the action is `1064`.
      parameters:
        - name: a_book_data
          description: >-
            The booking process information:
            <dl>
            <dt>
            array[] <var>a_provider</var>
            </dt>
            <dd>
            The batch of appointments to be booked. Each element has the next values:
            <dl>
            <dt>
            array <var>a_product</var>
            </dt>
            <dd>
            The add-on list.
            Keys refer to add-on keys, and values refer to the add-on quantities.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The asset duration in minutes. This won't be empty for asset bookings.
            </dd>
            <dt>
            int <var>id_purchase_item</var>
            </dt>
            <dd>
            The ID of the purchase item. One of the the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
            This won't be empty for new options purchased.
            </dd>
            <dt>
            bool <var>is_pay_later</var>
            </dt>
            <dd>
            This will be <tt>true</tt> if the customer wants to pay upon their visit. Otherwise, this will be <tt>false</tt>
            if the user wants to pay now.
            </dd>
            <dt>
            bool <var>is_purchase_previous</var>
            </dt>
            <dd>
            This will be <tt>true</tt> if the Purchase Option that was selected for another appointment from the batch
            must be used for this appointment. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool <var>is_wait_list_unpaid</var>
            </dt>
            <dd>
            This will be <tt>true</tt> if the customer is booked into the wait list and doesn't have to pay.
            Otherwise, this will be <tt>false</tt> if the customer is booking to an active list (or if the wait list booking
            should be paid now).
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The key of the purchase item.
            This won't be empty for new options purchased.
            </dd>
            <dt>
            string <var>k_login_prize</var>
            </dt>
            <dd>
            The key of the customer's prize used to pay for the booking. This won't be empty for bookings made using prizes.
            </dd>
            <dt>
            string <var>k_login_promotion</var>
            </dt>
            <dd>
            The key of the Purchase Option. This won't be empty when using a Purchase Option that's already been purchased.
            </dd>
            <dt>
            string <var>k_resource</var>
            </dt>
            <dd>
            The key of the asset booking.
            This is only used for asset bookings.
            </dd>
            <dt>
            string <var>k_service</var>
            </dt>
            <dd>
            The key of the appointment booking service.
            This is only used for appointment bookings.
            </dd>
            <dt>
            string <var>s_signature</var>
            </dt>
            <dd>
            The signature for the Purchase Option contract.
            The data is returned from the canvas HTML element or the signature pad.
            This won't be empty if the Purchase Option requires contract signing.
            </dd>
            </dl>
            </dd>
            <dt>
            int <var>id_class_tab</var>
            </dt>
            <dd>
            The "Book now" tab. One of the [Wl\Classes\Tab\TabSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/Tab/TabSid.php) constants.
            </dd>
            <dt>
            string <var>m_tip_appointment</var>
            </dt>
            <dd>
            The tips amount.
            </dd>
            </dl>
            
            Set this field value for GET requests.

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            The list of user keys to book appointments with.
            Empty values signify walk-ins.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The ID of the source mode. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            This will be `true` if the client is a walk-in. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location to show the available appointment booking schedule for.

          in: query
          schema:
            type: string
        - name: text_coupon_code
          description: >-
            The gift card code.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion_data</i></b> - Information about the selected login promotion.
            
            <dl>
            <dt>
            int <var>i_limit</var>
            </dt>
            <dd>
            The visit count limit of the promotion.
            </dd>
            <dt>
            int <var>i_remain</var>
            </dt>
            <dd>
            The count of remaining visits.
            </dd>
            <dt>
            string <var>s_expire</var>
            </dt>
            <dd>
            The expiration date.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The title of the promotion.
            </dd>
            </dl><br/>            <b><i>a_purchase</i></b> - Fields refer to strings in the format <tt>id_purchase_item-k_id</tt>. Values refer to an array with the next stricture:
            <dl>
            <dt>
            array <var>a_tax</var>
            </dt>
            <dd>
            A list of taxes to apply containing information about taxes.
            The array keys are <tt>k_tax</tt> keys. Each element contains the following fields:
            <dl>
            <dt>
            float <var>m_tax</var>
            </dt>
            <dd>
            The tax rate.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The name of the tax.
            </dd>
            </dl>
            </dd>
            <dt>
            string <var>id_purchase_item</var>
            </dt>
            <dd>
            The purchase item ID. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The value of the discount used for the purchase.
            </dd>
            <dt>
            string <var>m_discount</var>
            </dt>
            <dd>
            The value of the discount used for the purchase.
            </dd>
            <dt>
            string <var>m_pay</var>
            </dt>
            <dd>
            The payment for the promotion (or single visit) without taxes.
            </dd>
            <dt>
            string <var>m_price</var>
            </dt>
            <dd>
            The price of the promotion (or single visit).
            </dd>
            </dl><br/>            <b><i>a_total</i></b> - The list of amounts to pay for appointments from the batch, with taxes and without surcharges.<br/>            <b><i>k_location</i></b> - The location to show the available appointment booking schedule for.<br/>            <b><i>m_coupon</i></b> - The gift card amount.<br/>            <b><i>m_discount</i></b> - The discount amount.<br/>            <b><i>m_surcharge</i></b> - The surcharge amount.<br/>            <b><i>m_tax</i></b> - The amount of tax to pay.<br/>            <b><i>m_total</i></b> - The price of the service, with taxes and without surcharges.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion_data:
                    type: object
                    example: []
                  a_purchase:
                    type: object
                    example: []
                  a_total:
                    type: object
                    example: []
                  k_location:
                    type: string
                    example: ""
                  m_coupon:
                    type: string
                    example: ""
                  m_discount:
                    type: string
                    example: ""
                  m_surcharge:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  m_total:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Completes the payment for an appointment or appointment Purchase Option for a client.
      description: >-
        Completes the payment for an appointment or appointment Purchase Option for a client.
        <br /><br />
        The only difference between this endpoint and [Wl\Appointment\Book\Payment\PaymentModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php) is
        that this endpoint is capable of paying for multiple appointments at the same time.
        <br /><br />
        This endpoint uses a CAPTCHA check.
        To pass the CAPTCHA, you'll need to study the documentation of the CAPTCHA base class. In the documentation, you'll
        find that you need to send a CAPTCHA for a specific action. For this API, the action is `1064`.
      parameters:
        - name: a_uid
          description: >-
            The list of user keys to book appointments with.
            Empty values signify walk-ins.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The ID of the source mode. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            This will be `true` if the client is a walk-in. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location to show the available appointment booking schedule for.

          in: query
          schema:
            type: string
        - name: text_coupon_code
          description: >-
            The gift card code.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user to get information for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_book_data_post</i></b> -
          A copy of [Wl\Appointment\Book\Payment\PaymentMultipleModel::$a_book_data](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentMultipleModel.php).
          
          Set this field value for POST requests.
          <br/>
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          
          Each element has the next keys:
          <dl>
          <dt>
          array [<var>a_pay_card</var>]
          </dt>
          <dd>
          The payment card information:
          <dl>
          <dt>
          array <var>a_pay_address</var>
          </dt>
          <dd>
          The payment address:
          <dl>
          <dt>boolean <var>is_new</var></dt>
          <dd>Set this value to <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
          <dt>string [<var>k_geo_country</var>]</dt>
          <dd>The key of the country used for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>k_geo_region</var>]</dt>
          <dd>The key of the region for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>k_pay_address</var>]</dt>
          <dd>The key of the saved payment address. Specify this to use a saved address.</dd>
          <dt>string [<var>s_city</var>]</dt>
          <dd>The city used for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>s_name</var>]</dt>
          <dd>The card name. Specify this to add a new address.</dd>
          <dt>string [<var>s_phone</var>]</dt>
          <dd>The payment phone. Specify this to add a new address.</dd>
          <dt>string [<var>s_postal</var>]</dt>
          <dd>The postal code for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>s_street1</var>]</dt>
          <dd>The payment address. Specify this to add a new address.</dd>
          <dt>string [<var>s_street2</var>]</dt>
          <dd>The optional payment address. Specify this to add a new address.</dd>
          </dl>
          </dd>
          <dt>
          int [<var>i_csc</var>]
          </dt>
          <dd>
          The credit card CSC. Specify this to add a new card.
          </dd>
          <dt>
          int [<var>i_month</var>]
          </dt>
          <dd>
          The credit card expiration month. Specify this to add a new card.
          </dd>
          <dt>
          int [<var>i_year</var>]
          </dt>
          <dd>
          The credit card expiration year. Specify this to add a new card.
          </dd>
          <dt>
          boolean <var>is_new</var>
          </dt>
          <dd>
          Specify <tt>1</tt> to add a new card, or <tt>0</tt> to use a saved card.
          </dd>
          <dt>
          string [<var>k_pay_bank</var>]
          </dt>
          <dd>
          The key of the credit card. Specify this to use saved card.
          </dd>
          <dt>
          string [<var>s_comment</var>]
          </dt>
          <dd>
          Optional comment(s). Specify this to add a new card.
          </dd>
          <dt>
          string [<var>s_number</var>]
          </dt>
          <dd>
          The card number. Specify this to add a new card.
          </dd>
          </dl>
          </dd>
          <dt>
          string <var>f_amount</var>
          </dt>
          <dd>
          The amount of money to withdraw with this payment source.
          </dd>
          <dt>
          boolean [<var>is_hide</var>]
          </dt>
          <dd>
          Determines whether this payment method is hidden.
          </dd>
          <dt>
          boolean [<var>is_success</var>=<tt>false</tt>]
          </dt>
          <dd>
          Identifies whether this source was successfully charged.
          </dd>
          <dt>
          string [<var>m_surcharge</var>]
          </dt>
          <dd>
          The client-side calculated surcharge.
          </dd>
          <dt>
          string [<var>s_index</var>]
          </dt>
          <dd>
          The index of this form (optional).
          </dd>
          <dt>
          string <var>sid_pay_method</var>
          </dt>
          <dd>
          The payment method ID.
          </dd>
          </dl>
          <br/>
          <b><i>a_quiz_response</i></b> -
          The list of quiz response keys.
          Keys refer to quiz keys, and values refer to response keys.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_book_data_post:
                  description: >- 
                    A copy of [Wl\Appointment\Book\Payment\PaymentMultipleModel::$a_book_data](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentMultipleModel.php).
                    
                    Set this field value for POST requests.

                  type: object
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.
                    
                    Each element has the next keys:
                    <dl>
                    <dt>
                    array [<var>a_pay_card</var>]
                    </dt>
                    <dd>
                    The payment card information:
                    <dl>
                    <dt>
                    array <var>a_pay_address</var>
                    </dt>
                    <dd>
                    The payment address:
                    <dl>
                    <dt>boolean <var>is_new</var></dt>
                    <dd>Set this value to <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
                    <dt>string [<var>k_geo_country</var>]</dt>
                    <dd>The key of the country used for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>k_geo_region</var>]</dt>
                    <dd>The key of the region for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>k_pay_address</var>]</dt>
                    <dd>The key of the saved payment address. Specify this to use a saved address.</dd>
                    <dt>string [<var>s_city</var>]</dt>
                    <dd>The city used for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>s_name</var>]</dt>
                    <dd>The card name. Specify this to add a new address.</dd>
                    <dt>string [<var>s_phone</var>]</dt>
                    <dd>The payment phone. Specify this to add a new address.</dd>
                    <dt>string [<var>s_postal</var>]</dt>
                    <dd>The postal code for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>s_street1</var>]</dt>
                    <dd>The payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>s_street2</var>]</dt>
                    <dd>The optional payment address. Specify this to add a new address.</dd>
                    </dl>
                    </dd>
                    <dt>
                    int [<var>i_csc</var>]
                    </dt>
                    <dd>
                    The credit card CSC. Specify this to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_month</var>]
                    </dt>
                    <dd>
                    The credit card expiration month. Specify this to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_year</var>]
                    </dt>
                    <dd>
                    The credit card expiration year. Specify this to add a new card.
                    </dd>
                    <dt>
                    boolean <var>is_new</var>
                    </dt>
                    <dd>
                    Specify <tt>1</tt> to add a new card, or <tt>0</tt> to use a saved card.
                    </dd>
                    <dt>
                    string [<var>k_pay_bank</var>]
                    </dt>
                    <dd>
                    The key of the credit card. Specify this to use saved card.
                    </dd>
                    <dt>
                    string [<var>s_comment</var>]
                    </dt>
                    <dd>
                    Optional comment(s). Specify this to add a new card.
                    </dd>
                    <dt>
                    string [<var>s_number</var>]
                    </dt>
                    <dd>
                    The card number. Specify this to add a new card.
                    </dd>
                    </dl>
                    </dd>
                    <dt>
                    string <var>f_amount</var>
                    </dt>
                    <dd>
                    The amount of money to withdraw with this payment source.
                    </dd>
                    <dt>
                    boolean [<var>is_hide</var>]
                    </dt>
                    <dd>
                    Determines whether this payment method is hidden.
                    </dd>
                    <dt>
                    boolean [<var>is_success</var>=<tt>false</tt>]
                    </dt>
                    <dd>
                    Identifies whether this source was successfully charged.
                    </dd>
                    <dt>
                    string [<var>m_surcharge</var>]
                    </dt>
                    <dd>
                    The client-side calculated surcharge.
                    </dd>
                    <dt>
                    string [<var>s_index</var>]
                    </dt>
                    <dd>
                    The index of this form (optional).
                    </dd>
                    <dt>
                    string <var>sid_pay_method</var>
                    </dt>
                    <dd>
                    The payment method ID.
                    </dd>
                    </dl>

                  type: object
                a_quiz_response:
                  description: >- 
                    The list of quiz response keys.
                    Keys refer to quiz keys, and values refer to response keys.

                  type: object
      responses:
        '200':
          description: >-
            <b><i>a_login_prize</i></b> - The list of redeemed prizes.<br/>            <b><i>a_pay</i></b> - The payment type for the appointment. One of the [Wl\Appointment\WlAppointmentPaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/WlAppointmentPaySid.php) constants.<br/>            <b><i>a_purchase_item</i></b> - The keys of purchased items.
            
            The first level of the array is the list of appointments from the batch.
            The second level of the array is the list of items purchased for this appointment.<br/>            <b><i>k_login_activity_purchase</i></b> - Key of the activity for the purchase made. This will be empty if no purchase has been made.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_prize:
                    type: object
                    example: []
                  a_pay:
                    type: object
                    example: []
                  a_purchase_item:
                    type: object
                    example: []
                  k_login_activity_purchase:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Payment/PaymentPostModel:
    post:
      tags:
      - Appointment
      summary: Sends payments for an appointment booking.
      description: >-
        Sends payments for an appointment booking.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The key of source mode. A constant of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php).

          in: query
          schema:
            type: string
        - name: id_purchase_item
          description: >-
            The purchase item ID. A constant of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The item key. Depends of [Wl\Appointment\Book\Payment\PaymentModel::$id_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php) property.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: text_coupon_code
          description: >-
            Gift card code.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code to be applied to the purchase.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_book_data</i></b> -
          Information detailing an appointment booking.
          Same as [Wl\Appointment\Book\Payment\PaymentModel::$a_book_data](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php).
          <br/>
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          
          Each element has next keys:
          <dl>
          <dt>
          array [<var>a_pay_card</var>]
          </dt>
          <dd>
          The payment card information:
          <dl>
          <dt>
          array <var>a_pay_address</var>
          </dt>
          <dd>
          The payment address:
          <dl>
          <dt>boolean <var>is_new</var></dt>
          <dd>Set this value is <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
          <dt>string [<var>k_geo_country</var>]</dt>
          <dd>The key of the country used for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>k_geo_region</var>]</dt>
          <dd>The key of the region for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>k_pay_address</var>]</dt>
          <dd>The key of the saved payment address. Specify to use a saved address.</dd>
          <dt>string [<var>s_city</var>]</dt>
          <dd>The city used for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_name</var>]</dt>
          <dd>The card name. Specify to add a new address.</dd>
          <dt>string [<var>s_phone</var>]</dt>
          <dd>The payment phone. Specify to add a new address.</dd>
          <dt>string [<var>s_postal</var>]</dt>
          <dd>The postal code for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_street1</var>]</dt>
          <dd>The payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_street2</var>]</dt>
          <dd>The optional payment address. Specify to add a new address.</dd>
          </dl>
          </dd>
          <dt>
          int [<var>i_csc</var>]
          </dt>
          <dd>
          The credit card CSC. Specify to add a new card.
          </dd>
          <dt>
          int [<var>i_month</var>]
          </dt>
          <dd>
          The credit card expiration month. Specify to add a new card.
          </dd>
          <dt>
          int [<var>i_year</var>]
          </dt>
          <dd>
          The credit card expiration year. Specify to add a new card.
          </dd>
          <dt>
          boolean <var>is_new</var>
          </dt>
          <dd>
          <tt>1</tt> to add a new card; <tt>0</tt> to use a saved card.
          </dd>
          <dt>
          string [<var>k_pay_bank</var>]
          </dt>
          <dd>
          The key of a credit card. Specify to use saved card.
          </dd>
          <dt>
          string [<var>s_comment</var>]
          </dt>
          <dd>
          Optional comment(s). Specify to add a new card.
          </dd>
          <dt>
          string [<var>s_number</var>]
          </dt>
          <dd>
          The card number. Specify to add a new card.
          </dd>
          </dl>
          </dd>
          <dt>
          string <var>f_amount</var>
          </dt>
          <dd>
          The amount of money to withdraw with this payment source.
          </dd>
          <dt>
          boolean [<var>is_hide</var>]
          </dt>
          <dd>
          Whether this payment method is hidden.
          </dd>
          <dt>
          boolean [<var>is_success</var>=<tt>false</tt>]
          </dt>
          <dd>
          Identifies whether this source was successfully charged.
          </dd>
          <dt>
          string [<var>m_surcharge</var>]
          </dt>
          <dd>
          The client-side calculated surcharge.
          </dd>
          <dt>
          string [<var>s_index</var>]
          </dt>
          <dd>
          The index of this form (optional).
          </dd>
          <dt>
          string <var>sid_pay_method</var>
          </dt>
          <dd>
          The payment method ID.
          </dd>
          </dl>
          <br/>
          <b><i>a_quiz_response</i></b> -
          List of quiz response keys.
          Key is quiz key from {@link \Core\Quiz\QuizSql} table.
          Value is response key from {@link \Core\Quiz\Response\ResponseSql} table.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_book_data:
                  description: >- 
                    Information detailing an appointment booking.
                    Same as [Wl\Appointment\Book\Payment\PaymentModel::$a_book_data](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php).

                  type: object
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.
                    
                    Each element has next keys:
                    <dl>
                    <dt>
                    array [<var>a_pay_card</var>]
                    </dt>
                    <dd>
                    The payment card information:
                    <dl>
                    <dt>
                    array <var>a_pay_address</var>
                    </dt>
                    <dd>
                    The payment address:
                    <dl>
                    <dt>boolean <var>is_new</var></dt>
                    <dd>Set this value is <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
                    <dt>string [<var>k_geo_country</var>]</dt>
                    <dd>The key of the country used for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>k_geo_region</var>]</dt>
                    <dd>The key of the region for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>k_pay_address</var>]</dt>
                    <dd>The key of the saved payment address. Specify to use a saved address.</dd>
                    <dt>string [<var>s_city</var>]</dt>
                    <dd>The city used for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_name</var>]</dt>
                    <dd>The card name. Specify to add a new address.</dd>
                    <dt>string [<var>s_phone</var>]</dt>
                    <dd>The payment phone. Specify to add a new address.</dd>
                    <dt>string [<var>s_postal</var>]</dt>
                    <dd>The postal code for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_street1</var>]</dt>
                    <dd>The payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_street2</var>]</dt>
                    <dd>The optional payment address. Specify to add a new address.</dd>
                    </dl>
                    </dd>
                    <dt>
                    int [<var>i_csc</var>]
                    </dt>
                    <dd>
                    The credit card CSC. Specify to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_month</var>]
                    </dt>
                    <dd>
                    The credit card expiration month. Specify to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_year</var>]
                    </dt>
                    <dd>
                    The credit card expiration year. Specify to add a new card.
                    </dd>
                    <dt>
                    boolean <var>is_new</var>
                    </dt>
                    <dd>
                    <tt>1</tt> to add a new card; <tt>0</tt> to use a saved card.
                    </dd>
                    <dt>
                    string [<var>k_pay_bank</var>]
                    </dt>
                    <dd>
                    The key of a credit card. Specify to use saved card.
                    </dd>
                    <dt>
                    string [<var>s_comment</var>]
                    </dt>
                    <dd>
                    Optional comment(s). Specify to add a new card.
                    </dd>
                    <dt>
                    string [<var>s_number</var>]
                    </dt>
                    <dd>
                    The card number. Specify to add a new card.
                    </dd>
                    </dl>
                    </dd>
                    <dt>
                    string <var>f_amount</var>
                    </dt>
                    <dd>
                    The amount of money to withdraw with this payment source.
                    </dd>
                    <dt>
                    boolean [<var>is_hide</var>]
                    </dt>
                    <dd>
                    Whether this payment method is hidden.
                    </dd>
                    <dt>
                    boolean [<var>is_success</var>=<tt>false</tt>]
                    </dt>
                    <dd>
                    Identifies whether this source was successfully charged.
                    </dd>
                    <dt>
                    string [<var>m_surcharge</var>]
                    </dt>
                    <dd>
                    The client-side calculated surcharge.
                    </dd>
                    <dt>
                    string [<var>s_index</var>]
                    </dt>
                    <dd>
                    The index of this form (optional).
                    </dd>
                    <dt>
                    string <var>sid_pay_method</var>
                    </dt>
                    <dd>
                    The payment method ID.
                    </dd>
                    </dl>

                  type: object
                a_quiz_response:
                  description: >- 
                    List of quiz response keys.
                    Key is quiz key from {@link \Core\Quiz\QuizSql} table.
                    Value is response key from {@link \Core\Quiz\Response\ResponseSql} table.

                  type: object
      responses:
        '200':
          description: >-
            <b><i>a_purchase_item</i></b> - The purchase item keys from the database.
            
            This will be `null` if not set yet.<br/>            <b><i>id_pay</i></b> - The payment type for the appointment. A constant of [Wl\Appointment\WlAppointmentPaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/WlAppointmentPaySid.php).<br/>            <b><i>k_login_activity_purchase</i></b> - The key of activity of the purchase made.
            Empty if no purchase has been made.<br/>            <b><i>k_login_prize</i></b> - Login prize key. In case when appointment paid by reward prize, there is the key of redeemed login prize. Empty otherwise.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_purchase_item:
                    type: object
                    example: []
                  id_pay:
                    type: integer
                    example: 0
                  k_login_activity_purchase:
                    type: string
                    example: ""
                  k_login_prize:
                    type: string
                    example: ""
    get:
      tags:
      - Appointment
      summary: Sends payments for an appointment booking.
      description: >-
        Sends payments for an appointment booking.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The key of source mode. A constant of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php).

          in: query
          schema:
            type: string
        - name: id_purchase_item
          description: >-
            The purchase item ID. A constant of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The item key. Depends of [Wl\Appointment\Book\Payment\PaymentModel::$id_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Payment/PaymentModel.php) property.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The login promotion key.

          in: query
          schema:
            type: string
        - name: k_session_pass
          description: >-
            Session pass key.

          in: query
          schema:
            type: string
        - name: m_variable_price
          description: >-
            Variable price. Is set only during booking an appointment with variable type of the price
            [RsServicePriceSid::VARIES from spa backend  Wl\Mode\ModeSid::SPA_BACKEND](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServicePriceSid.php) from spa backend {@link \WellnessLiving\Wl\Mode\ModeSid::SPA_BACKEND}.

          in: query
          schema:
            type: string
        - name: s_unique_key
          description: >-
            Service unique key.
            Used for model cache.

          in: query
          schema:
            type: string
        - name: text_coupon_code
          description: >-
            Gift card code.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code to be applied to the purchase.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion_data</i></b> - Information about selected Purchase Options.
            <dl>
            <dt>string <var>i_limit</var></dt>
            <dd>The limit of total visits.</dd>
            
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits.</dd>
            
            <dt>string <var>s_expire</var></dt>
            <dd>The expiration date.</dd>
            
            <dt>string <var>s_title</var></dt>
            <dd>The title of the Purchase Option.</dd>
            </dl><br/>            <b><i>a_purchase</i></b> - Information about selected purchase items.
            
            Indexes are strings in the format `id_purchase_item-k_id`.
            
            Values are an array with the following structure:
            
            <dl>
            <dt>array <var>a_tax</var></dt>
            <dd>
            Contains information about taxes in the following format. A list of taxes to apply.
            The array keys are `k_tax` keys. Each element contains the following fields: <dl>
            <dt>float <var>m_tax</var></dt>
            <dd>The tax rate.</dd>
            
            <dt>string <var>text_title</var></dt>
            <dd>The name of the tax.</dd>
            </dl>
            </dd>
            
            <dt>string <var>id_purchase_item</var></dt>
            <dd>The purchase item ID. A constant of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).</dd>
            
            <dt>string <var>k_id</var></dt>
            <dd>The value of the discount used for the purchase.</dd>
            
            <dt>string <var>m_discount</var></dt>
            <dd>The value of the discount used for the purchase.</dd>
            
            <dt>string <var>m_pay</var></dt>
            <dd>The payment for the Purchase Option or single visit without taxes.</dd>
            
            <dt>string <var>m_price</var></dt>
            <dd>The price of the Purchase Option or single visit.</dd>
            </dl><br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>            <b><i>m_coupon</i></b> - Gift card amount.<br/>            <b><i>m_discount</i></b> - Discount amount.<br/>            <b><i>m_surcharge</i></b> - Surcharge amount.<br/>            <b><i>m_tax</i></b> - The tax of service.<br/>            <b><i>m_total</i></b> - The total cost of the purchase.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion_data:
                    type: object
                    example: []
                  a_purchase:
                    type: object
                    example: []
                  k_location:
                    type: string
                    example: ""
                  m_coupon:
                    type: string
                    example: ""
                  m_discount:
                    type: string
                    example: ""
                  m_surcharge:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  m_total:
                    type: string
                    example: ""

  /Wl/Appointment/Book/Product/ProductModel:
    get:
      tags:
      - Appointment
      summary: Returns information about service add-ons.
      description: >-
        Returns information about service add-ons.
      parameters:
        - name: k_service
          description: >-
            The key of a service to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_product</i></b> - A list service add-ons.
            
            This will be `null` if not set yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_product:
                    type: object
                    example: []

  /Wl/Appointment/Book/Purchase/PurchaseModel:
    get:
      tags:
      - Appointment
      summary: Retrieves information about Purchase Options that can be used to pay for an appointment.
      description: >-
        Retrieves information about Purchase Options that can be used to pay for an appointment.
      parameters:
        - name: a_service
          description: >-
            List of selected services without current [Wl\Appointment\Book\Purchase\PurchaseModel::$k_service](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Purchase/PurchaseModel.php).
            
            The list of these services directly affects the list of selected promotions.
            Depending on the number and order of services, there may be different results.
            
            The current [Wl\Appointment\Book\Purchase\PurchaseModel::$k_service](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Purchase/PurchaseModel.php) will be added to the end of this list.
            It is worth considering this list as a list of previously selected services.
            
            Each element has the following structure:
            <dl>
            <dt>array <var>a_purchase</var></dt>
            <dd>
            List of purchase options selected for the service.
            Should be set if a new purchase option is selected for this service.
            <dl>
            <dt>int <var>id_purchase_item</var></dt>
            <dd>Purchase item ID. Constant from [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).</dd>
            <dt>string <var>k_id</var></dt>
            <dd>Purchase item key.</dd>
            </dl>
            </dd>
            <dt>string <var>dt_date</var></dt>
            <dd>Local date/time to check purchase options expiration.</dd>
            <dt>string|null <var>k_login_prize</var></dt>
            <dd>
            Login prize key.
            `null` if no login prize used to pay for this service.
            </dd>
            <dt>string|null <var>k_login_promotion</var></dt>
            <dd>
            Login promotion key.
            Should be set if login promotion selected for this service.
            </dd>
            <dt>string <var>k_service</var></dt>
            <dd>Service key from {@link \RsServiceSql}.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date to use to check for expiration of Purchase Options.

          in: query
          schema:
            type: string
        - name: i_duration
          description: >-
            The asset booking duration.

          in: query
          schema:
            type: string
        - name: i_height
          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 image will have default thumbnail size {@link RsLoginLogo::THUMBNAIL_HEIGHT}.

          in: query
          schema:
            type: string
        - name: i_width
          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 will have default thumbnail size {@link RsLoginLogo::THUMBNAIL_WIDTH}.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            `true` - get all Purchase Options suitable for appointment.
            `false` - get only Purchase Options available for the client.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The Purchase Option ID used to pay for the appointment.
            
            This will be `null` if the client doesn't have a suitable Purchase Option.

          in: query
          schema:
            type: string
        - name: k_resource
          description: >-
            The resource key.

          in: query
          schema:
            type: string
        - name: k_service
          description: >-
            The service key used to select available Purchase Options.
            If multiple services are selected, they should be specified in [Wl\Appointment\Book\Purchase\PurchaseModel::$a_service](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Purchase/PurchaseModel.php) array.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            The timezone key.
            
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_prize</i></b> - Data about the login prize which can be used to pay for service.
            <dl>
            <dt>int <var>i_count</var></dt><dd>Login prize remaining quantity.</dd>
            <dt>string <var>k_login_prize</var></dt><dd>Key of login prize.</dd>
            <dt>string <var>text_description</var></dt><dd>User friendly login prize description.</dd>
            </dl><br/>            <b><i>a_login_promotion</i></b> - A list of the client`s login promotions that can be applied to a given service.
            <dl>
            <dt>array <var>a_login_promotion_info</var></dt>
            <dd>
            Information about the Purchase Option. It contains the following information:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The count of visits that the Purchase Option allows the client to make.</dd>
            <dt>int|null <var>i_limit_duration</var></dt>
            <dd>The maximum number of minutes that current Purchase Option can be used for.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The count of the remaining visits.</dd>
            <dt>int|null <var>i_remain_duration</var></dt>
            <dd>The number of minutes left in this Purchase Option.</dd>
            </dl>
            </dd>
            <dt>string[] <var>a_visit_limit</var></dt>
            <dd>The list of calendar restrictions of the Purchase Option. For example, four per week.</dd>
            <dt>array <var>a_restrict</var></dt>
            <dd>Data about the shortest restriction period:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The limit of visits for the shortest restriction period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits for the shortest restriction period.</dd>
            <dt>string <var>text_restriction</var></dt>
            <dd>The description of the shortest restriction period. For example "this week" or "for a four-day period".</dd>
            </dl>
            </dd>
            <dt>array[] <var>a_restrict_data</var></dt>
            <dd>Data about all restriction periods. Given as an array, where each record has the following structure:
            <dl>
            <dt>int <var>i_book</var></dt>
            <dd>The count of future sessions that are paid with this Purchase Option.</dd>
            <dt>int <var>i_limit</var></dt>
            <dd>The limit of visits for the restriction period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits for the restriction period.</dd>
            <dt>int <var>i_use</var></dt>
            <dd>The usage count of the Purchase Option.</dd>
            <dt>int <var>i_visit_past</var></dt>
            <dd>
            The count of attended sessions before the last renewal.
            This will be `0` if no sessions before the last renewal or if the Purchase Option doesn't auto-renew.
            </dd>
            <dt>string <var>text_restriction</var></dt>
            <dd>The description of restriction period. For example, "this week" or "for a four-day period".</dd>
            </dl>
            </dd>
            <dt>int <var>i_limit</var></dt>
            <dd>The count of visits that the Purchase Option allows the client to make.</dd>
            <dt>int|null <var>i_limit_duration</var></dt>
            <dd>The maximum number of minutes that current Purchase Option can be used for.</dd>
            <dt>int <var>id_program</var></dt>
            <dd>The program ID for promotions. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.</dd>
            <dt>string <var>k_login_promotion</var></dt>
            <dd>The Purchase Option login key.</dd>
            <dt>string <var>s_class_include</var></dt>
            <dd>The list of services provided by this Purchase Option.</dd>
            <dt>string <var>s_description</var></dt>
            <dd>The Purchase Option description.</dd>
            <dt>string <var>s_duration</var></dt>
            <dd>The Purchase Option duration.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The Purchase Option name.</dd>
            <dt>string <var>text_package_item</var></dt>
            <dd>If this Purchase Option is a package, then this field contains a list of Purchase Options contained in the package.</dd>
            </dl><br/>            <b><i>a_purchase</i></b> - An array with information about available Purchase Options.
            <dl>
            <dt>
            array|bool <var>a_image</var>
            </dt>
            <dd>
            Information describing the logo of the purchase option. This value can be false if there is no logo described.
            Image information will have the following fields:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            Actual height of thumbnail image.
            </dd>
            <dt>
            int <var>i_height_src</var>
            </dt>
            <dd>
            Height of original image.
            </dd>
            <dt>
            int <var>i_rotate</var>
            </dt>
            <dd>
            Angle on which image was rotated compared to the original.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            Actual width of thumbnail image.
            </dd>
            <dt>
            int <var>i_width_src</var>
            </dt>
            <dd>
            Width of original image.
            </dd>
            <dt>
            bool <var>is-resize</var>
            </dt>
            <dd>
            Whether thumbnail is a resized variant of original image. If set to <tt>false</tt>
            value returned in <var>url-thumbnail</var> equals value in <var>url-view</var>.
            </dd>
            <dt>
            string <var>url-view</var>
            </dt>
            <dd>
            Url to original image in file storage.
            </dd>
            <dt>
            string <var>url-thumbnail</var>
            </dt>
            <dd>
            Url to resized and rotated image in file storage. If size of original image is larger then specified by
            arguments, image thumbnail as created, and a link to this thumbnail is returned. Otherwise link to
            original image is returned here.
            </dd>
            </dl>
            </dd>
            <dt>
            array <var>a_payment</var>
            </dt>
            <dd>
            The set of calculated values for payment:
            <dl>
            <dt>
            string <var>m_discount</var>
            </dt>
            <dd>
            The amount of the whole discount of one purchase item.
            </dd>
            <dt>
            string <var>m_discount_login</var>
            </dt>
            <dd>
            The discount amount for the client type of one purchase item.
            </dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_visit_limit</var>
            </dt>
            <dd>
            A list of calendar restrictions of the Purchase Option in a human readable format, for example: '4 per week'.
            </dd>
            <dt>
            string <var>dt_expire</var>
            </dt>
            <dd>
            Date, when promotion expires.
            </dd>
            <dt>
            string <var>dt_start</var>
            </dt>
            <dd>
            Date, when promotion starts.
            </dd>
            <dt>
            string <var>f_price</var>
            </dt>
            <dd>
            The price of the Purchase Option.
            </dd>
            <dt>
            int <var>i</var>
            </dt>
            <dd>
            Order number of the purchase option in the list.
            </dd>
            <dt>
            int <var>i_limit</var>
            </dt>
            <dd>
            Count of visits that purchase option allows to make.
            </dd>
            <dt>
            int|null <var>i_limit_duration</var>
            </dt>
            <dd>
            Maximum number of minutes that current promotion can be used.
            </dd>
            <dt>
            int <var>i_payment_period</var>
            </dt>
            <dd>
            Count of calendar periods (weeks, months, years) between payment for membership.
            </dd>
            <dt>
            int <var>id_duration</var>
            </dt>
            <dd>
            Duration ID. Constant from [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).
            </dd>
            <dt>
            int <var>id_program</var>
            </dt>
            <dd>
            Program ID for promotions from [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php).
            </dd>
            <dt>
            int <var>id_program_type</var>
            </dt>
            <dd>
            Program type ID. Constant from [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php).
            </dd>
            <dt>
            int <var>id_promotion_price</var>
            </dt>
            <dd>
            How the Purchase Item price is specified. One of the [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php) constants.
            </dd>
            <dt>
            int <var>id_purchase_item</var>
            </dt>
            <dd>
            ID of the purchase item from [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php)
            </dd>
            <dt>
            bool <var>is_contract</var>
            </dt>
            <dd>
            This will be `true` if the Purchase Option is a contract. It will `false` otherwise.
            </dd>
            <dt>
            bool <var>is_description</var>
            </dt>
            <dd>
            `true` if purchase option has description.
            </dd>
            <dt>
            bool <var>is_introductory</var>
            </dt>
            <dd>
            `true` if promotion is introductory offer, `false` otherwise.
            </dd>
            <dt>
            bool <var>is_renew</var>
            </dt>
            <dd>
            This will be `true` if the Purchase Option will auto-renew. It will be `false` otherwise.
            </dd>
            <dt>
            bool <var>is_renew_check</var>
            </dt>
            <dd>
            If `true` - the Purchase Option is renewable and the "auto-renew" option should be turned on by default.
            `This will be `false` otherwise.
            </dd>
            <dt>
            bool <var>is_start</var>
            </dt>
            <dd>
            This will be `true` if the Purchase Option has a duration that begins on purchase. It will be `false` otherwise.
            </dd>
            <dt>
            int <var>k_id</var>
            </dt>
            <dd>
            Primary ID of the element in it's table.
            </dd>
            <dt>
            string|null [<var>m_price_old</var>]
            </dt>
            <dd>
            Price of single session purchase before online discount. `null` if service does not have online discount.
            Is set only if this purchase option is purchase of single visit.
            </dd>
            <dt>
            string <var>s_activation</var>
            </dt>
            <dd>
            Activation settings of the promotion.
            </dd>
            <dt>
            string <var>s_class</var>
            </dt>
            <dd>
            Class for designer to mark purchase options with different icons.
            </dd>
            <dt>
            string <var>s_class_include</var>
            </dt>
            <dd>
            List of included in the promotion services.
            </dd>
            <dt>
            string <var>s_description</var>
            </dt>
            <dd>
            Description of the purchase option.
            </dd>
            <dt>
            string <var>s_duration</var>
            </dt>
            <dd>
            Duration of the promotion.
            </dd>
            <dt>
            string <var>s_payment_duration</var>
            </dt>
            <dd>
            Period between payments for memberships.
            </dd>
            <dt>
            string <var>sid_program_category</var>
            </dt>
            <dd>
            Category of the program for promotions from [WlProgramCategorySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramCategorySid.php).
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            Name of the purchase option.
            </dd>
            <dt>
            string <var>s_value</var>
            </dt>
            <dd>
            Key of the purchase option in the format [<var>purchase_item_id</var>]::[<var>k_id</var>]
            </dd>
            <dt>
            string <var>text_package_item</var>
            </dt>
            <dd>
            If this promotion is a package. This field contains list of promotions contained in the package.
            </dd>
            </dl><br/>            <b><i>a_reward_prize</i></b> - List of redeemable prizes which can be used to pay for service.
            <dl>
            <dt>int <var>i_score</var></dt><dd>Prize price in points.</dd>
            <dt>string <var>k_reward_prize</var></dt><dd>Key of redeemable prize..</dd>
            <dt>string <var>text_description</var></dt><dd>User friendly prize description.</dd>
            </dl><br/>            <b><i>a_session_pass</i></b> - Session pass information in a case if user books same appointment second time and already has Drop-in.<br/>            <b><i>is_single_default</i></b> - Indicates if drop-in rate should be the default purchase option.<br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>            <b><i>k_login_promotion</i></b> - The Purchase Option ID used to pay for the appointment.
            
            This will be `null` if the client doesn't have a suitable Purchase Option.<br/>            <b><i>k_promotion_default</i></b> - Default promotion key.
            Empty if the appointment has no default promotion.<br/>            <b><i>text_login_promotion</i></b> - Login promotion title suitable to pay for the services.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_prize:
                    type: object
                    example: []
                  a_login_promotion:
                    type: object
                    example: []
                  a_purchase:
                    type: object
                    example: []
                  a_reward_prize:
                    type: object
                    example: []
                  a_session_pass:
                    type: object
                    example: []
                  is_single_default:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
                  k_login_promotion:
                    type: string
                    example: ""
                  k_promotion_default:
                    type: string
                    example: ""
                  text_login_promotion:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Retrieves information about Purchase Options that can be used to pay for an appointment.
      description: >-
        Retrieves information about Purchase Options that can be used to pay for an appointment.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Question/QuestionModel:
    get:
      tags:
      - Appointment
      summary: Retrieves questions for a selected service.
      description: >-
        Retrieves questions for a selected service.
      parameters:
        - name: k_service
          description: >-
            The service key used for retrieving questions.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_question</i></b> - A list of questions for the service.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_question:
                    type: object
                    example: []

  /Wl/Appointment/Book/Schedule/CalendarModel:
    get:
      tags:
      - Appointment
      summary: Retrieves a list of all calendar days in a specified month with
      description: >-
        Retrieves a list of all calendar days in a specified month with
        available and unavailable appointment bookings in the schedule.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date to show the available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: i_duration
          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 booking - custom duration of first appointment.

          in: query
          schema:
            type: string
        - name: i_index
          description: >-
            An index of the selected asset. `0` for booking of service or if asset is not on layout.

          in: query
          schema:
            type: string
        - name: id_gender_staff
          description: >-
            The ID of the staff member's gender.
            In case of back-to-back booking - staff gender of first appointment.
            One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants. `0` means no limitations on staff gender.

          in: query
          schema:
            type: string
        - name: is_back_to_back
          description: >-
            Whether multiple appointments booked in back-to-back mode.

          in: query
          schema:
            type: string
        - name: is_month_view
          description: >-
            If calendar should be displayed in month view mode.

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            <tt>true</tt> if the request is made by staff member; in this case booking policy restrictions are ignored.
            <tt>false</tt> if the request is made by client; booking policy restrictions are applied.

          in: query
          schema:
            type: string
        - name: is_unavailable
          description: >-
            `true` - return service categories that have no staff members able to conduct them.
            `false` - return only service categories that have staff members able to conduct them.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_resource
          description: >-
            The resource key to show which days are available for booking.
            Should be `0` in case of back-to-back booking.

          in: query
          schema:
            type: string
        - name: k_service
          description: >-
            The service key used for showing the available appointment booking schedule.
            In case of back-to-back booking - service key of first appointment.

          in: query
          schema:
            type: string
        - name: k_staff
          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` means any available staff.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            Key of timezone.
            
            `null` if not set to use client's profile timezone.

          in: query
          schema:
            type: string
        - name: s_appointment
          description: >-
            The staff key to show what days are available for booking.
            
            For back-to-back booking ([Wl\Appointment\Book\Schedule\DayTimeModel::$is_back_to_back](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Schedule/DayTimeModel.php) == `true`): array of appointments for back-to-back booking.
            Converted to JSON string to be usable as model key. Each item is an array with next structure:
            <dl>
            <dt>array <var>a_addon</var></dt><dd>Array of appointment addons. Each value is primary key in {@link \RsShopProductSql} table.</dd>
            <dt>int <var>i_duration</var></dt><dd>Custom duration of the appointment in minutes. Zero in case of service predefined duration.</dd>
            <dt>int <var>id_gender_staff</var></dt><dd>Staff gender. One of [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants. Zero mean no limitations on staff gender.</dd>
            <dt>string <var>k_service</var></dt><dd>Service key.</dd>
            <dt>string <var>k_staff</var></dt><dd>Staff key. Zero means any available staff.</dd>
            </dl>
            
            For multiple appointment booking ([Wl\Appointment\Book\Schedule\DayTimeModel::$is_back_to_back](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Schedule/DayTimeModel.php) == `false`): array of previously booked appointments.
            Converted to JSON string to be usable as model key. Each item is an array with next structure:
            <dl>
            <dt>string <var>dtl_date</var></dt><dd>Local date and time of appointment start in MySQL format.</dd>
            <dt>int <var>i_duration</var></dt><dd>Duration of the appointment in minutes.</dd>
            <dt>string <var>k_service</var></dt><dd>Service key.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: s_product
          description: >-
            A list of service add-ons keys(encoded as JSON string).
            In case of back-to-back booking - add-ons of first appointment.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_date</i></b> - A list with all calendar days in the specified month with
            available and unavailable appointment bookings in the schedule.
            <dl>
            <dt>string <var>dt_date</var></dt>
            <dd>Date item of the calendar.</dd>
            <dt>int <var>i_week</var></dt>
            <dd>Number of day in week.</dd>
            <dt>bool <var>is_available</var></dt>
            <dd>Whether booking is available for this day.</dd>
            <dt>bool <var>is_current</var></dt>
            <dd>Whether date is current.</dd>
            <dt>bool <var>is_out</var></dt>
            <dd>Whether date is out of current month or it's business/location closed date.</dd>
            <dt>bool <var>is_waitlist_only</var></dt>
            <dd>Whether booking for this day available only in wait list.</dd>
            <dt>bool <var>is_week_end</var></dt>
            <dd>Whether date is last day of the week.</dd>
            <dt>bool <var>is_week_start</var></dt>
            <dd>Whether date is first day of the week.</dd>
            <dt>string <var>s_day</var></dt>
            <dd>String representation of day number with leading zeroes.</dd>
            <dt>string <var>s_week</var></dt>
            <dd>String representation of week day (one letter, i.e. "F").</dd>
            </dl><br/>            <b><i>a_time</i></b> - An array with a schedule of available appointment booking times.
            <dl>
            <dt>string <var>dt_date</var></dt>
            <dd>Date of the calendar.</dd>
            <dt>int <var>i_count</var></dt>
            <dd>Amount of clients that have already booked this appointment.</dd>
            <dt>int <var>i_time</var></dt>
            <dd>Integer representation of appointment schedule time.</dd>
            <dt>bool <var>is_waitlist</var></dt>
            <dd>Whether the appointment can be booked only in a wait list.</dd>
            <dt>string <var>k_staff</var></dt>
            <dd>If this time is already occupied by any client and staff member (but service capacity is not exhausted),
            this key contains key of staff member (primary key in {@link \RsStaffSql} table). Otherwise `0`.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>String representation of appointment schedule time.</dd>
            </dl><br/>            <b><i>a_timezone_data</i></b> - Information about timezone.
            <dl>
            <dt>array|null <var>a_timezone</var></dt>
            <dd>
            `null` if business settings doesn't allow client to adjust timezone, otherwise list of timezones:
            <dl>
            <dt>int <var>i_order</var></dt>
            <dd>Timezone order.</dd>
            <dt>int <var>i_shift</var></dt>
            <dd>Timezone shift from UTC in hours.</dd>
            <dt>bool <var>is_select</var></dt>
            <dd>`true` for selected timezone - from [Wl\Appointment\Book\Schedule\CalendarModel::$k_timezone](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Schedule/CalendarModel.php) param or client's default timezone when param not set.</dd>
            <dt>string <var>k_timezone</var></dt>
            <dd>Timezone key.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>Timezone name.</dd>
            <dt>string <var>text_abbr</var></dt>
            <dd>Timezone abbreviation.</dd>
            </dl>
            </dd>
            <dt>string|null <var>name</var></dt>
            <dd>`null` if business settings doesn't allow client to adjust timezone, otherwise timezone input name.</dd>
            </dl><br/>            <b><i>a_week_name</i></b> - Array with short week day's names (2 letters, i.e. 'Fr') for calendar month view. Week days order according to business's settings.
            
            <dl>
            <dt>int <var>i_day</var></dt>
            <dd>Week day, one of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.</dd>
            <dt>string <var>html_week_day</var></dt>
            <dd>Short week day's name (2 letters, i.e. 'Fr').</dd>
            </dl><br/>            <b><i>can_backwards</i></b> - Whether previous calendar period can be shown (start of shown period later than current date).<br/>            <b><i>dt_date</i></b> - The date to show the available appointment booking schedule.<br/>            <b><i>i_week_end</i></b> - Last day of the week. One of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.<br/>            <b><i>i_week_start</i></b> - First day of the week. One of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.<br/>            <b><i>is_waitlist</i></b> - Whether list of available times contains slots with only waitlist booking available.<br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_date:
                    type: object
                    example: []
                  a_time:
                    type: object
                    example: []
                  a_timezone_data:
                    type: object
                    example: []
                  a_week_name:
                    type: object
                    example: []
                  can_backwards:
                    type: integer
                    example: 0
                  dt_date:
                    type: string
                    example: ""
                  i_week_end:
                    type: integer
                    example: 0
                  i_week_start:
                    type: integer
                    example: 0
                  is_waitlist:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Retrieves a list of all calendar days in a specified month with
      description: >-
        Retrieves a list of all calendar days in a specified month with
        available and unavailable appointment bookings in the schedule.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Schedule/DayTimeModel:
    get:
      tags:
      - Appointment
      summary: Retrieves a list of information about the booking schedule for available appointments.
      description: >-
        Retrieves a list of information about the booking schedule for available appointments.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date to show the available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: i_duration
          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 booking - custom duration of first appointment.

          in: query
          schema:
            type: string
        - name: i_index
          description: >-
            An index of the selected asset. `0` for booking of service or if asset is not on layout.

          in: query
          schema:
            type: string
        - name: id_gender_staff
          description: >-
            The ID of the staff member's gender.
            In case of back-to-back booking - staff gender of first appointment.
            One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants. `0` means no limitations on staff gender.

          in: query
          schema:
            type: string
        - name: is_back_to_back
          description: >-
            Whether multiple appointments booked in back-to-back mode.

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            <tt>true</tt> if the request is made by staff member; in this case booking policy restrictions are ignored.
            <tt>false</tt> if the request is made by client; booking policy restrictions are applied.

          in: query
          schema:
            type: string
        - name: is_unavailable
          description: >-
            `true` - return service categories that have no staff members able to conduct them.
            `false` - return only service categories that have staff members able to conduct them.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key used for showing the available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_resource
          description: >-
            The resource key to show which days are available for booking.
            Should be `0` in case of back-to-back booking.

          in: query
          schema:
            type: string
        - name: k_service
          description: >-
            The service key used for showing the available appointment booking schedule.
            In case of back-to-back booking - service key of first appointment.

          in: query
          schema:
            type: string
        - name: k_staff
          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` means any available staff.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            Key of timezone.
            
            `null` if not set then use default timezone client {@link Wl\Profile\Timezone\ProfileTimezone::createInBusiness()}.

          in: query
          schema:
            type: string
        - name: s_appointment
          description: >-
            Empty string for single appointment/asset booking.
            
            For back-to-back booking ([Wl\Appointment\Book\Schedule\DayTimeModel::$is_back_to_back](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Schedule/DayTimeModel.php) == `true`): array of appointments for back-to-back booking.
            Converted to JSON string to be usable as model key. Each item is an array with next structure:
            <dl>
            <dt>array <var>a_addon</var></dt><dd>Array of appointment addons. Each value is primary key in {@link \RsShopProductSql} table.</dd>
            <dt>int <var>i_duration</var></dt><dd>Custom duration of the appointment in minutes. Zero in case of service predefined duration.</dd>
            <dt>int <var>id_gender_staff</var></dt><dd>Staff gender. One of [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants. Zero mean no limitations on staff gender.</dd>
            <dt>string <var>k_service</var></dt><dd>Service key.</dd>
            <dt>string <var>k_staff</var></dt><dd>Staff key. Zero means any available staff.</dd>
            </dl>
            
            For multiple appointment booking ([Wl\Appointment\Book\Schedule\DayTimeModel::$is_back_to_back](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Schedule/DayTimeModel.php) == `false`): array of previously booked appointments.
            Converted to JSON string to be usable as model key. Each item is an array with next structure:
            <dl>
            <dt>string <var>dtl_date</var></dt><dd>Local date and time of appointment start in MySQL format.</dd>
            <dt>int <var>i_duration</var></dt><dd>Duration of the appointment in minutes.</dd>
            <dt>string <var>k_service</var></dt><dd>Service key.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: s_product
          description: >-
            A list of service add-ons keys(encoded as JSON string).
            In case of back-to-back booking - add-ons of first appointment.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_time</i></b> - An array with a schedule of available appointment booking times.
            <dl>
            <dt>string <var>dt_date</var></dt>
            <dd>Date of the calendar.</dd>
            <dt>int <var>i_count</var></dt>
            <dd>Amount of clients that have already booked this appointment.</dd>
            <dt>int <var>i_time</var></dt>
            <dd>Integer representation of appointment schedule time.</dd>
            <dt>bool <var>is_waitlist</var></dt>
            <dd>Whether the appointment can be booked only in a wait list.</dd>
            <dt>string <var>k_staff</var></dt>
            <dd>If this time is already occupied by any client and staff member (but service capacity is not exhausted),
            this key contains key of staff member (primary key in {@link \RsStaffSql} table). Otherwise `0`.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>String representation of appointment schedule time.</dd>
            </dl><br/>            <b><i>dt_date</i></b> - The date to show the available appointment booking schedule.<br/>            <b><i>is_waitlist</i></b> - Whether list of available times contains slots with only waitlist booking available.<br/>            <b><i>k_location</i></b> - The location key used for showing the available appointment booking schedule.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_time:
                    type: object
                    example: []
                  dt_date:
                    type: string
                    example: ""
                  is_waitlist:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Retrieves a list of information about the booking schedule for available appointments.
      description: >-
        Retrieves a list of information about the booking schedule for available appointments.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key used for showing the available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Service/CategoryModel:
    get:
      tags:
      - Appointment
      summary: Retrieves information about service categories.
      description: >-
        Retrieves information about service categories.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            `true` - return all service categories for a certain location.
            `false` - return only service categories that are associated with a book tab and with staff members
            able to conduct them.

          in: query
          schema:
            type: string
        - name: is_tab_all
          description: >-
            `true` - search in all tabs.
            `false` - search only for the selected book tab.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The class tab key used to filter services.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_category</i></b> - A list of information about service categories.
            <dl>
            <dt>
            bool <var>hide_application</var>
            </dt>
            <dd>
            <tt>true</tt> - all services are hidden in this category for White Label mobile application. <tt>false</tt> - otherwise.
            </dd>
            <dt>
            bool <var>i_sort</var>
            </dt>
            <dd>
            Sort key for category. Used to sort categories on category list page.
            </dd>
            <dt>
            string <var>k_service_category</var>
            </dt>
            <dd>
            Service category key.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            Service category title.
            </dd>
            </dl><br/>            <b><i>is_client_flag</i></b> - <tt>true</tt> - if client has a flag, <tt>false</tt> - otherwise.<br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_category:
                    type: object
                    example: []
                  is_client_flag:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Retrieves information about service categories.
      description: >-
        Retrieves information about service categories.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Service/ServiceList52Model:
    get:
      tags:
      - Appointment
      summary: Retrieves information about services in the current service category.
      description: >-
        Retrieves information about services in the current service category.
        <br /><br />
        This is a new version of the [Wl\Appointment\Book\Service\ServiceListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Service/ServiceListModel.php) endpoint.
        It allows for filtering a list of services by multiple book now tabs.
      parameters:
        - name: a_class_tab
          description: >-
            The class tab key to use to filter services. If empty, this can be found on the standard book tab.
            
            If multiple tabs are sent, appointment types, which are in at least in one of the tabs, will be in the result.

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: i_height
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_width
          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 will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            `true` - return all active services for a certain location.
            `false` - return only services that are associated with a book now tab.

          in: query
          schema:
            type: string
        - name: is_tab_all
          description: >-
            `true` - search in all tabs.
            `false` - search only on the selected book now tab.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_service_category
          description: >-
            The key of a service category to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_service</i></b> - A list of services with information about them.
            
            <b>Key</b> - the service key.
            <b>Value</b> - an array, with every element consisting of the next keys:
            <dl>
            <dt>
            array <var>a_class_tab</var>
            </dt>
            <dd>
            The list of tab keys for the service.
            </dd>
            <dt>
            array[] <var>a_direct_link</var>
            </dt>
            <dd>
            A list of links to start booking from a direct link.
            This can't be one link, as the same appointment can be available in several booking tabs.
            Therefore, each booking tab has its own direct booking link.
            Each element has two values:
            <dl>
            <dt>string <var>k_class_tab</var></dt>
            <dd>The key of the book now tab.</dd>
            <dt>string <var>url_tab</var></dt>
            <dd>The booking URL. This will open the booking wizard under the related booking tab.</dd>
            </dl>
            </dd>
            <dt>
            array <var>a_config</var>
            </dt>
            <dd>
            Appointment-specific business policies. This will be `null` when using the general business policy.
            </dd>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            Information about the appointment image. An array with the following values:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The height of the image.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The width of the image.</dd>
            <dt>bool <var>is_empty</var></dt>
            <dd>This will be `true` if the image is not set.</dd>
            <dt>string <var>k_service</var></dt>
            <dd>The service key.</dd>
            <dt>string <var>s_service</var></dt>
            <dd>The name of the service.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL to the image.</dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_login_type_restriction</var>
            </dt>
            <dd>
            List of login type titles for current service.
            Clients that have one of these types can book service.
            </dd>
            <dt>
            string[] <var>a_member_group_restriction</var>
            </dt>
            <dd>
            List of member groups titles for current service.
            Clients that belongs to these groups can book service.
            </dd>
            <dt>
            string <var>f_deposit</var>
            </dt>
            <dd>
            The amount of deposit required.
            </dd>
            <dt>
            string <var>f_offline_max</var>
            </dt>
            <dd>
            The maximum offline price.
            </dd>
            <dt>
            string <var>f_offline_min</var>
            </dt>
            <dd>
            The minimum offline price.
            </dd>
            <dt>
            string <var>f_online</var>
            </dt>
            <dd>
            The online price.
            </dd>
            <dt>
            bool <var>hide_application</var>
            </dt>
            <dd>
            Determines whether the service will be hidden in the White Label mobile application.
            `true` means that service won't be displayed. Otherwise, this will be `false`.
            </dd>
            <dt>
            int <var>i_age_from</var>
            </dt>
            <dd>
            The required minimum client age to book an appointment.
            </dd>
            <dt>
            int <var>i_age_to</var>
            </dt>
            <dd>
            The required maximum client age to book an appointment.
            </dd>
            <dt>
            int <var>i_price</var>
            </dt>
            <dd>
            The price type ID. One of [RsServicePriceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServicePriceSid.php) constants.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The appointment duration in minutes.
            </dd>
            <dt>
            int <var>id_book_flow</var>
            </dt>
            <dd>
            The type of client booking flow. One of [Wl\Service\ServiceBookFlowSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Service/ServiceBookFlowSid.php) constants.
            </dd>
            <dt>
            int <var>id_service_require</var>
            </dt>
            <dd>
            The required payment type ID. One of [RsServiceRequireSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServiceRequireSid.php) constants.
            </dd>
            <dt>
            bool <var>is_age_public</var>
            </dt>
            <dd>
            `true` if age restrictions are public. Otherwise, `false` if they should be hidden from clients.
            </dd>
            <dt>
            bool <var>is_age_restricted</var>
            </dt>
            <dd>
            Determines whether this service can't be booked due to age restrictions.
            </dd>
            <dt>
            bool <var>is_back_to_back</var>
            </dt>
            <dd>
            Determines whether this service supports back-to-back booking.
            </dd>
            <dt>
            bool <var>is_bookable</var>
            </dt>
            <dd>
            Whether this appointment can be booked online.
            </dd>
            <dt>
            bool <var>is_book_repeat_client</var>
            </dt>
            <dd>
            `true` if clients can book classes and appointments on a recurring basis. Otherwise, this `false`.
            </dd>
            <dt>
            bool <var>is_deposit_percent</var>
            </dt>
            <dd>
            `true` if <var>f_deposit</var> is a percentage. Otherwise, this will be `false` if <var>f_deposit</var> is an amount of
            money.
            </dd>
            <dt>
            bool <var>is_gender_select</var>
            </dt>
            <dd>
            `true` if clients can select the staff member's gender. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_online_sell</var>
            </dt>
            <dd>
            `true` if clients can buy this appointment. Otherwise, this will be `false` if only staff members can sell it.
            </dd>
            <dt>
            bool <var>is_resource_type</var>
            </dt>
            <dd>
            `true` if the service requires assets. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_single_buy</var>
            </dt>
            <dd>
            `true` if the appointment can be booked without a Purchase Option. Otherwise, this will be `false` if it's necessary to
            buy a Purchase Option.
            </dd>
            <dt>
            bool <var>is_staff_confirm</var>
            </dt>
            <dd>
            `true` if the appointment must be confirmed by a staff member after booking. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_staff_skip</var>
            </dt>
            <dd>
            `true` if clients can select a staff member for the appointment. Otherwise, this will be `false` if otherwise.
            </dd>
            <dt>
            bool <var>is_question</var>
            </dt>
            <dd>
            Determines whether the service will ask for questions or not.
            </dd>
            <dt>
            bool <var>is_virtual</var>
            </dt>
            <dd>
            `true` if the service is virtual. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_service</var>
            </dt>
            <dd>
            The appointment primary key.
            </dd>
            <dt>
            string <var>k_service_category</var>
            </dt>
            <dd>
            The service category primary key.
            </dd>
            <dt>
            string <var>s_duration</var>
            </dt>
            <dd>
            The appointment duration in a human-readable format.
            </dd>
            <dt>
            string <var>s_service</var>
            </dt>
            <dd>
            The appointment title.
            </dd>
            <dt>
            string <var>text_age_restriction</var>
            </dt>
            <dd>
            Age restriction header.
            </dd>
            <dt>
            string <var>xml_description</var>
            </dt>
            <dd>
            Appointment description.
            </dd>
            <dt>
            string <var>xml_description_short</var>
            </dt>
            <dd>
            Appointment short description.
            </dd>
            <dt>
            string <var>xml_special</var>
            </dt>
            <dd>
            Special instructions.
            </dd>
            </dl><br/>            <b><i>is_multiple_booking</i></b> - Whether services allow multiple appointment booking.<br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_service:
                    type: object
                    example: []
                  is_multiple_booking:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Retrieves information about services in the current service category.
      description: >-
        Retrieves information about services in the current service category.
        <br /><br />
        This is a new version of the [Wl\Appointment\Book\Service\ServiceListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Service/ServiceListModel.php) endpoint.
        It allows for filtering a list of services by multiple book now tabs.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Service/ServiceListModel:
    get:
      tags:
      - Appointment
      summary: Retrieves information about services in the current service category.
      description: >-
        Retrieves information about services in the current service category.
        <br /><br />
        @deprecated New version [Wl\Appointment\Book\Service\ServiceList52Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Service/ServiceList52Model.php) should be used instead.
      parameters:
        - name: a_class_tab
          description: >-
            The class tab key to use to filter services. If empty, this can be found on the standard book tab.
            
            If multiple tabs are sent, appointment types, which are in at least in one of the tabs, will be in the result.

          in: query
          schema:
            type: string
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: i_height
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_width
          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 will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            `true` - return all active services for a certain location.
            `false` - return only services that are associated with a book now tab.

          in: query
          schema:
            type: string
        - name: is_tab_all
          description: >-
            `true` - search in all tabs.
            `false` - search only on the selected book now tab.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The class tab key to filter services. If empty or `0`, this can be found on the standard book now tab.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: k_service_category
          description: >-
            The key of a service category to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_service</i></b> - A list of services with information about them.
            
            <b>Key</b> - the service key.
            <b>Value</b> - an array, with every element consisting of the next keys:
            <dl>
            <dt>
            array <var>a_class_tab</var>
            </dt>
            <dd>
            The list of tab keys for the service.
            </dd>
            <dt>
            array[] <var>a_direct_link</var>
            </dt>
            <dd>
            A list of links to start booking from a direct link.
            This can't be one link, as the same appointment can be available in several booking tabs.
            Therefore, each booking tab has its own direct booking link.
            Each element has two values:
            <dl>
            <dt>string <var>k_class_tab</var></dt>
            <dd>The key of the book now tab.</dd>
            <dt>string <var>url_tab</var></dt>
            <dd>The booking URL. This will open the booking wizard under the related booking tab.</dd>
            </dl>
            </dd>
            <dt>
            array <var>a_config</var>
            </dt>
            <dd>
            Appointment-specific business policies. This will be `null` when using the general business policy.
            </dd>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            The appointment image. See {@link RsServiceLogo::data()} for details.
            </dd>
            <dt>
            string[] <var>a_login_type_restriction</var>
            </dt>
            <dd>
            List of login type titles for current service.
            Clients that have one of these types can book service.
            </dd>
            <dt>
            string[] <var>a_member_group_restriction</var>
            </dt>
            <dd>
            List of member groups titles for current service.
            Clients that belongs to these groups can book service.
            </dd>
            <dt>
            string <var>f_deposit</var>
            </dt>
            <dd>
            The amount of deposit required.
            </dd>
            <dt>
            string <var>f_offline_max</var>
            </dt>
            <dd>
            The maximum offline price.
            </dd>
            <dt>
            string <var>f_offline_min</var>
            </dt>
            <dd>
            The minimum offline price.
            </dd>
            <dt>
            string <var>f_online</var>
            </dt>
            <dd>
            The online price.
            </dd>
            <dt>
            bool <var>hide_application</var>
            </dt>
            <dd>
            Determines whether the service will be hidden in the White Label mobile application.
            `true` means that service won't be displayed. Otherwise, this will be `false`.
            </dd>
            <dt>
            int <var>i_age_from</var>
            </dt>
            <dd>
            The required minimum client age to book an appointment.
            </dd>
            <dt>
            int <var>i_age_to</var>
            </dt>
            <dd>
            The required maximum client age to book an appointment.
            </dd>
            <dt>
            int <var>i_price</var>
            </dt>
            <dd>
            The price type ID. One of [RsServicePriceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServicePriceSid.php) constants.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The appointment duration in minutes.
            </dd>
            <dt>
            int <var>id_book_flow</var>
            </dt>
            <dd>
            The type of client booking flow. One of [Wl\Service\ServiceBookFlowSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Service/ServiceBookFlowSid.php) constants.
            </dd>
            <dt>
            int <var>id_service_require</var>
            </dt>
            <dd>
            The required payment type ID. One of [RsServiceRequireSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsServiceRequireSid.php) constants.
            </dd>
            <dt>
            bool <var>is_age_public</var>
            </dt>
            <dd>
            `true` if age restrictions are public. Otherwise, `false` if they should be hidden from clients.
            </dd>
            <dt>
            bool <var>is_age_restricted</var>
            </dt>
            <dd>
            Determines whether this service can't be booked due to age restrictions.
            </dd>
            <dt>
            bool <var>is_back_to_back</var>
            </dt>
            <dd>
            Determines whether this service supports back-to-back booking.
            </dd>
            <dt>
            bool <var>is_bookable</var>
            </dt>
            <dd>
            Whether this appointment can be booked online.
            </dd>
            <dt>
            bool <var>is_book_repeat_client</var>
            </dt>
            <dd>
            `true` if clients can book classes and appointments on a recurring basis. Otherwise, this `false`.
            </dd>
            <dt>
            bool <var>is_deposit_percent</var>
            </dt>
            <dd>
            `true` if <var>f_deposit</var> is a percentage. Otherwise, this will be `false` if <var>f_deposit</var> is an amount of
            money.
            </dd>
            <dt>
            bool <var>is_gender_select</var>
            </dt>
            <dd>
            `true` if clients can select the staff member's gender. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_online_sell</var>
            </dt>
            <dd>
            `true` if clients can buy this appointment. Otherwise, this will be `false` if only staff members can sell it.
            </dd>
            <dt>
            bool <var>is_resource_type</var>
            </dt>
            <dd>
            `true` if the service requires assets. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_single_buy</var>
            </dt>
            <dd>
            `true` if the appointment can be booked without a Purchase Option. Otherwise, this will be `false` if it's necessary to
            buy a Purchase Option.
            </dd>
            <dt>
            bool <var>is_staff_confirm</var>
            </dt>
            <dd>
            `true` if the appointment must be confirmed by a staff member after booking. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_staff_skip</var>
            </dt>
            <dd>
            `true` if clients can select a staff member for the appointment. Otherwise, this will be `false` if otherwise.
            </dd>
            <dt>
            bool <var>is_question</var>
            </dt>
            <dd>
            Determines whether the service will ask for questions or not.
            </dd>
            <dt>
            bool <var>is_virtual</var>
            </dt>
            <dd>
            `true` if the service is virtual. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_service</var>
            </dt>
            <dd>
            The appointment primary key.
            </dd>
            <dt>
            string <var>k_service_category</var>
            </dt>
            <dd>
            The service category primary key.
            </dd>
            <dt>
            string <var>s_duration</var>
            </dt>
            <dd>
            The appointment duration in a human-readable format.
            </dd>
            <dt>
            string <var>s_service</var>
            </dt>
            <dd>
            The appointment title.
            </dd>
            <dt>
            string <var>text_age_restriction</var>
            </dt>
            <dd>
            Age restriction header.
            </dd>
            <dt>
            string <var>xml_description</var>
            </dt>
            <dd>
            Appointment description.
            </dd>
            <dt>
            string <var>xml_description_short</var>
            </dt>
            <dd>
            Appointment short description.
            </dd>
            <dt>
            string <var>xml_special</var>
            </dt>
            <dd>
            Special instructions.
            </dd>
            </dl><br/>            <b><i>is_multiple_booking</i></b> - Whether services allow multiple appointment booking.<br/>            <b><i>k_location</i></b> - Location to show available appointment booking schedule.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_service:
                    type: object
                    example: []
                  is_multiple_booking:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Appointment
      summary: Retrieves information about services in the current service category.
      description: >-
        Retrieves information about services in the current service category.
        <br /><br />
        @deprecated New version [Wl\Appointment\Book\Service\ServiceList52Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Appointment/Book/Service/ServiceList52Model.php) should be used instead.
      parameters:
        - name: a_uid
          description: >-
            List of user keys to book appointments - primary keys in {@link \PassportLoginSql}.
            There may be empty values in this list, which means that this is a walk-in.

          in: query
          schema:
            type: string
        - name: is_walk_in
          description: >-
            `true` if client is walk-in, otherwise `false`.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show available appointment booking schedule.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Appointment/Book/Staff/ListModel:
    get:
      tags:
      - Appointment
      summary: Retrieves information about staff members for the current service.
      description: >-
        Retrieves information about staff members for the current service.
      parameters:
        - name: dt_date
          description: >-
            The date/time of the appointment selected by user, in the location's time zone.

          in: query
          schema:
            type: string
        - name: id_role
          description: >-
            User role by whom this api called.
            For different roles different results might be generated.

          in: query
          schema:
            type: string
        - name: is_unavailable
          description: >-
            `true` - returns service categories that have no staff members available to conduct them.
            `false` - returns only service categories that have staff members available to conduct them.

          in: query
          schema:
            type: string
        - name: k_appointment_ignore
          description: >-
            Key of appointment which must be ignored when searches available staff.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location.

          in: query
          schema:
            type: string
        - name: k_service
          description: >-
            The key of a service for which to show information.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            User's timezone primary key in {@link \AGeoTimezoneSql} table.
            
            <tt>null</tt> until initialized or to use location timezone.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of user for whom the service is booking, primary key in {@link \PassportLoginSql} table.
            
            `null` when not set.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_staff</i></b> - A list of staff members with information about them.
            
            <dl>
            <dt>int <var>id_gender</var></dt>
            <dd>Staff member's gender.</dd>
            <dt>bool <var>is_available</var></dt>
            <dd>Whether staff member is available for booking. Note, if staff member reached daily limits, this field
            will be different for client and staff booking flows. If client books, such staff member is not available and
            this field is `false`. If staff member books, such staff member is available.</dd>
            <dt>bool <var>is_daily_limit</var></dt>
            <dd>Whether staff member reached daily limits on number or total duration of the appointments for one day.</dd>
            <dt>bool <var>is_wait_list</var></dt>
            <dd>Whether staff member available only for wait list booking.</dd>
            <dt>string <var>k_staff</var></dt>
            <dd>Primary key of the staff member.</dd>
            <dt>string <var>s_position</var></dt>
            <dd>Position of the staff member in the business.</dd>
            <dt>int <var>s_staff</var></dt>
            <dd>Name of the staff member.</dd>
            <dt>string <var>uid</var></dt>
            <dd>UID of the staff member.</dd>
            <dt>string <var>xml_biography</var></dt>
            <dd>Biography of the staff member.</dd>
            </dl><br/>            <b><i>can_book_unavailable_staff</i></b> - Can staff booked unavailable staff.<br/>            <b><i>has_gender</i></b> - Determines whether to select the staff member's gender for the appointment.<br/>            <b><i>has_staff</i></b> - Determines whether to select staff member(s) for the appointment.<br/>            <b><i>is_gender_different</i></b> - Determines if the staff list has male and female members.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_staff:
                    type: object
                    example: []
                  can_book_unavailable_staff:
                    type: integer
                    example: 0
                  has_gender:
                    type: integer
                    example: 0
                  has_staff:
                    type: integer
                    example: 0
                  is_gender_different:
                    type: integer
                    example: 0

  /Wl/Appointment/Edit/AddonUpdateModel:
    put:
      tags:
      - Appointment
      summary: Updates add-ons for an appointment.
      description: >-
        Updates add-ons for an appointment.
        <br /><br />
        This endpoint can be used to update add-ons for existing appointments.

      requestBody:
        description: >-
              <b><i>a_addon</i></b> -
              The appointment addon-ons.
              
              Old format - an array where each value is key of the add-on.
              New format - each element is an array: <dl>
              <dt>int <var>i_product</var></dt><dd> The add-on count. Max value is 255.</dd>
              <dt>string <var>k_shop_product_option</var></dt><dd>The add-on key.</dd>
              </dl>
              <br/>
              <b><i>is_duration_update</i></b> -
              Determines whether the appointment duration needs to be updated.
              <br/>
              <b><i>k_appointment</i></b> -
              The appointment key.
              <br/>
              <b><i>k_business</i></b> -
              The business key. This will be an empty string if not set yet.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    a_addon:
                      description: >- 
                        The appointment addon-ons.
                        
                        Old format - an array where each value is key of the add-on.
                        New format - each element is an array: <dl>
                        <dt>int <var>i_product</var></dt><dd> The add-on count. Max value is 255.</dd>
                        <dt>string <var>k_shop_product_option</var></dt><dd>The add-on key.</dd>
                        </dl>

                      type: object
                    is_duration_update:
                      description: >- 
                        Determines whether the appointment duration needs to be updated.

                      type: integer
                    k_appointment:
                      description: >- 
                        The appointment key.

                      type: string
                    k_business:
                      description: >- 
                        The business key. This will be an empty string if not set yet.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Appointment
      summary: Updates add-ons for an appointment.
      description: >-
        Updates add-ons for an appointment.
        <br /><br />
        This endpoint can be used to update add-ons for existing appointments.
      parameters:
        - name: k_appointment
          description: >-
            The appointment key.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key. This will be an empty string if not set yet.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_addon_data</i></b> - Data to show appointment add-ons:<dl>
            <dt>array[] <var>a_addon</var></dt>
            <dd>Data about appointment add-ons. Each element contains data about a single add-on: <dl>
            <dt>int <var>i_product</var></dt><dd>The add-on's quantity.</dd>
            <dt>string <var>html_amount</var></dt><dd>The add-on's additional amount. This will be an empty string if the add-on doesn't have an additional amount.</dd>
            <dt>string <var>html_duration</var></dt><dd>The add-on's additional duration. This will be an empty string if the add-on doesn't add duration.</dd>
            <dt>string <var>html_title</var></dt><dd>The add-on's name.</dd>
            <dt>int <var>i_count_paid</var></dt><dd>The quantity paid for the add-on.</dd>
            <dt>int <var>i_inventory_current</var></dt><dd>The add-ons inventory count.</dd>
            <dt>bool <var>is_select</var></dt><dd>Determines whether the add-on is added to appointment.</dd>
            <dt>string <var>k_shop_product_option</var></dt><dd>The add-on product key.</dd>
            <dt>string <var>url</var></dt><dd>The URL for the add-on picture. This will be an empty string if the add-on doesn't have a picture.</dd>
            </dl></dd>
            <dt>bool <var>is_search</var></dt><dd>Determines whether the add-on search field needs to be shown.</dd></dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_addon_data:
                    type: object
                    example: []

  /Wl/Book/Process/Info/Info54Model:
    get:
      tags:
      - Book
      summary: Offers functionality for the class booking wizard on the "Class and Location" page.
      description: >-
        Offers functionality for the class booking wizard on the "Class and Location" page.
        <br /><br />
        When using this endpoint, take into account the [Wl\Book\Process\ProcessSpaSid::QUIZ](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) step.
      parameters:
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_day_available</i></b> - Week days available for recurring booking. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
            
            `null` if recurring booking is not available.<br/>            <b><i>a_session_all</i></b> - A list of all class sessions that can be booked together. Every element has the next structure:
            <dl>
            <dt>
            string[] <var>a_staff</var>
            </dt>
            <dd>
            List of staff names that are leading this session.
            </dd>
            <dt>
            string[] <var>a_virtual_location</var>
            </dt>
            <dd>
            List of virtual locations.
            </dd>
            <dt>
            string <var>dt_date</var>
            </dt>
            <dd>
            The date/time when session starts in MySQL format and in GMT.
            </dd>
            <dt>
            boolean <var>is_select</var>
            </dt>
            <dd>
            <tt>true</tt> if this session should be selected when page is initialized;
            <tt>false</tt> if otherwise.
            </dd>
            <dt>
            bool <var>is_wait</var>
            </dt>
            <dd>
            `true` if client is added to a wait list, `false` - to an active list.
            </dd>
            <dt>
            bool <var>is_wait_list_unpaid</var>
            </dt>
            <dd>
            Allow clients to join the wait list unpaid.
            </dd>
            <dt>
            string <var>k_class_period</var>
            </dt>
            <dd>
            The key of the session.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            Location key.
            </dd>
            <dt>
            bool <var>m_price</var>
            </dt>
            <dd>
            Price of the session.
            </dd>
            <dt>
            string <var>s_location</var>
            </dt>
            <dd>
            The name of the location where the session occurred.
            </dd>
            <dt>
            string <var>s_start</var>
            </dt>
            <dd>
            The date/time when the session starts in human-readable format.
            Returned in the time zone of the location.
            </dd>
            <dt>
            string <var>text_duration</var>
            </dt>
            <dd>
            String representation of session duration.
            Duration formatting method [Wl\Book\Process\Info\InfoModel::_classDurationFormat()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoModel.php).
            </dd>
            </dl><br/>            <b><i>a_staff</i></b> - The staff member conducting the session. Every element has the next structure:
            <dl>
            <dt>
            array <var>a_logo</var>
            </dt>
            <dd>
            The staff member photo:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The image height.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The image width.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The image URL.</dd>
            </dl>
            </dd>
            <dt>string <var>s_family</var></dt>
            <dd>The first letter of staff member surname.</dd>
            <dt>string <var>s_staff</var></dt>
            <dd>The staff member's name.</dd>
            <dt>string <var>uid</var></dt>
            <dd>UID of the staff member.</dd>
            </dl><br/>            <b><i>dl_end</i></b> - Date when this class session occurrences stop.<br/>            <b><i>dt_date_local</i></b> - The date/time of the session the user is booking in MySQL format in the location's timezone.<br/>            <b><i>hide_price</i></b> - `true` if price for the individual session should be hidden, if client has applicable pricing option to pay for this
            booking.
            `false` if price should be shown always.<br/>            <b><i>html_contract</i></b> - The text of the contract to which the user must agree before book this session.
            Not empty if business has contract and if user did not agree to this contract.<br/>            <b><i>html_duration</i></b> - Class duration in human-readable format.<br/>            <b><i>html_special</i></b> - The special instructions for the class.<br/>            <b><i>html_special_preview</i></b> - Special instructions preview for class.<br/>            <b><i>i_available</i></b> - Number of available spots.
            
            `null` if this information is not available.<br/>            <b><i>i_book</i></b> - Number of booked spots.
            
            `null` if this information is not available.<br/>            <b><i>i_duration</i></b> - The duration of the session in minutes.<br/>            <b><i>i_wait_spot</i></b> - Estimated place of reservation on the waiting list.<br/>            <b><i>is_book_repeat_client</i></b> - `true` if recurring booking is available, `false` otherwise.<br/>            <b><i>is_book_repeat_no_end_date</i></b> - `true` if the setting for frequency during class recurring booking will be `never end` by default, `false` otherwise.<br/>            <b><i>is_promotion_only</i></b> - `true` if event can be paid with pricing option only.
            `false` if full event purchase or single session purchase are allowed.
            
            Copy of {@link \RsClassSql}.<tt>is_promotion_only</tt>.<br/>            <b><i>is_single_buy</i></b> - Whether the class can be paid with single session.<br/>            <b><i>is_special_preview</i></b> - Whether the full text of the special instructions fits within the preview length or not.<br/>            <b><i>is_virtual</i></b> - `true` if class is virtual, `false` otherwise.<br/>            <b><i>k_location</i></b> - Class period location key.<br/>            <b><i>m_price</i></b> - Price of the session.<br/>            <b><i>m_price_total</i></b> - Whole event cost.<br/>            <b><i>m_price_total_early</i></b> - Event price at an early discount.
            
            An empty string if there is no discount.<br/>            <b><i>s_class</i></b> - The class title.<br/>            <b><i>s_location_address</i></b> - The location address.<br/>            <b><i>s_location_title</i></b> - The location title.<br/>            <b><i>s_time</i></b> - The time when the session takes place in the location's time zone. In format `hh:mm`.<br/>            <b><i>text_room</i></b> - Room where session takes place.<br/>            <b><i>text_staff</i></b> - Text representation of the list of staffs.
            List of staff see [Wl\Book\Process\Info\InfoModel::$a_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoModel.php).<br/>            <b><i>text_timezone</i></b> - Timezone abbreviation.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_day_available:
                    type: object
                    example: []
                  a_session_all:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  dl_end:
                    type: string
                    example: ""
                  dt_date_local:
                    type: string
                    example: ""
                  hide_price:
                    type: integer
                    example: 0
                  html_contract:
                    type: string
                    example: ""
                  html_duration:
                    type: string
                    example: ""
                  html_special:
                    type: string
                    example: ""
                  html_special_preview:
                    type: string
                    example: ""
                  i_available:
                    type: integer
                    example: 0
                  i_book:
                    type: integer
                    example: 0
                  i_duration:
                    type: integer
                    example: 0
                  i_wait_spot:
                    type: integer
                    example: 0
                  is_book_repeat_client:
                    type: integer
                    example: 0
                  is_book_repeat_no_end_date:
                    type: integer
                    example: 0
                  is_promotion_only:
                    type: integer
                    example: 0
                  is_single_buy:
                    type: integer
                    example: 0
                  is_special_preview:
                    type: integer
                    example: 0
                  is_virtual:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_price_total:
                    type: string
                    example: ""
                  m_price_total_early:
                    type: string
                    example: ""
                  s_class:
                    type: string
                    example: ""
                  s_location_address:
                    type: string
                    example: ""
                  s_location_title:
                    type: string
                    example: ""
                  s_time:
                    type: string
                    example: ""
                  text_room:
                    type: string
                    example: ""
                  text_staff:
                    type: string
                    example: ""
                  text_timezone:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Offers functionality for the class booking wizard on the "Class and Location" page.
      description: >-
        Offers functionality for the class booking wizard on the "Class and Location" page.
        <br /><br />
        When using this endpoint, take into account the [Wl\Book\Process\ProcessSpaSid::QUIZ](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) step.
      parameters:
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
          Empty if appointment must not repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          Number of occurrences after that appointment repeat must stop.
          Empty if repeat must not stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          Frequency of appointment repeating.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` if appointment must repeat monthly at the same date.
          `false` if appointment must repeat monthly at the same week day.
          `null` if appointment must not repeat monthly.
          </dd>
          </dl>
          
          `null` if booking must be not recurring.
          <br/>
          <b><i>a_resource</i></b> -
          A list of assets being booked. Every element has the next structure:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>Order number of the asset (maybe from 1 to asset quantity).</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The key of asset.</dd>
          </dl>
          <br/>
          <b><i>a_session_select</i></b> -
          The selected sessions.
          
          <b>Keys</b> - The class period keys.
          <b>Values</b> - List of date/time when the session occurred in MySQL format and in GMT.
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          Selected sessions on the waiting list without pay.
          
          Keys - session IDs.
          
          Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.
          <br/>
          <b><i>can_book</i></b> -
          Whether the class/event can be booked at this step or not.
          External process control flag.
          <br/>
          <b><i>is_agree</i></b> -
          Determines if the user has agreed to the liability release.
          `true` - if  the user has agreed. Otherwise, this will be.
          `false` - if the user hasn't agreed or the agreement isn't required.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` if user pressed 'Pay later'.
          `false` if user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          Login promotion to be used to book a class.
          
          Primary key from {@link  \RsLoginProductSql}.
          <br/>
          <b><i>k_session_pass</i></b> -
          Session pass to be used to book a class.
          
          Primary key from {@link  \Wl\Session\Pass\Sql}.
          <br/>
          <b><i>s_signature</i></b> -
          User signature.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
                    Empty if appointment must not repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    Number of occurrences after that appointment repeat must stop.
                    Empty if repeat must not stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    Frequency of appointment repeating.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` if appointment must repeat monthly at the same date.
                    `false` if appointment must repeat monthly at the same week day.
                    `null` if appointment must not repeat monthly.
                    </dd>
                    </dl>
                    
                    `null` if booking must be not recurring.

                  type: object
                a_resource:
                  description: >- 
                    A list of assets being booked. Every element has the next structure:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>Order number of the asset (maybe from 1 to asset quantity).</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The key of asset.</dd>
                    </dl>

                  type: object
                a_session_select:
                  description: >- 
                    The selected sessions.
                    
                    <b>Keys</b> - The class period keys.
                    <b>Values</b> - List of date/time when the session occurred in MySQL format and in GMT.

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    Selected sessions on the waiting list without pay.
                    
                    Keys - session IDs.
                    
                    Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.

                  type: object
                can_book:
                  description: >- 
                    Whether the class/event can be booked at this step or not.
                    External process control flag.

                  type: integer
                is_agree:
                  description: >- 
                    Determines if the user has agreed to the liability release.
                    `true` - if  the user has agreed. Otherwise, this will be.
                    `false` - if the user hasn't agreed or the agreement isn't required.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` if user pressed 'Pay later'.
                    `false` if user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    Login promotion to be used to book a class.
                    
                    Primary key from {@link  \RsLoginProductSql}.

                  type: string
                k_session_pass:
                  description: >- 
                    Session pass to be used to book a class.
                    
                    Primary key from {@link  \Wl\Session\Pass\Sql}.

                  type: string
                s_signature:
                  description: >- 
                    User signature.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity</i></b> - The keys of users' activity.<br/>            <b><i>a_visit</i></b> - The keys of the bookings made.<br/>            <b><i>is_card_authorize</i></b> - If client must authorize credit card.<br/>            <b><i>is_force_book</i></b> - Can the class/event be booked immediately or not.
            
            The verification is based on the search for client's promotions and other features of the class/event.
            But it does not take into account the presence of other mandatory steps.
            Their presence will be indicated by the [Wl\Book\Process\Info\InfoModel::$is_next](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoModel.php) flag.<br/>            <b><i>is_next</i></b> - `true` - next steps of the wizard are needed (for example, to purchase something to book the selected session).
            `false` - no need for next steps (all that's needed has already been purchased).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  is_card_authorize:
                    type: integer
                    example: 0
                  is_force_book:
                    type: integer
                    example: 0
                  is_next:
                    type: integer
                    example: 0

  /Wl/Book/Process/Info/InfoCanCompleteModel:
    get:
      tags:
      - Book
      summary: Checks for `next` and `complete` buttons in the booking process.
      description: >-
        Checks for `next` and `complete` buttons in the booking process.
      parameters:
        - name: a_session_select
          description: >-
            A list of sessions of an event that can be booked together.
            
            This is the same as [Wl\Book\Process\Info\InfoCanCompleteModel::$a_session_select_post](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoCanCompleteModel.php), but limited by query string
            length and might fail if the user is booking more than 50 sessions at once. Therefore, using the POST method is preferable.

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            The date and time of the session that the user is booking, returned in MySQL format and in GMT.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period ID that the user started to book.

          in: query
          schema:
            type: string
        - name: s_id
          description: >-
            The unique booking process key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of a user who is making the booking.
            Empty if user is a guest.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>can_complete</i></b> - Determines whether users can complete the booking process from the info step.<br/>            <b><i>hide_price</i></b> - `true` if price for the individual session should be hidden, if client has applicable pricing option to pay for this
            booking.
            `false` if price should be shown always.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  can_complete:
                    type: integer
                    example: 0
                  hide_price:
                    type: integer
                    example: 0
    post:
      tags:
      - Book
      summary: Checks for `next` and `complete` buttons in the booking process.
      description: >-
        Checks for `next` and `complete` buttons in the booking process.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date and time of the session that the user is booking, returned in MySQL format and in GMT.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period ID that the user started to book.

          in: query
          schema:
            type: string
        - name: s_id
          description: >-
            The unique booking process key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of a user who is making the booking.
            Empty if user is a guest.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_session_select_post</i></b> -
          A list of sessions of an event that can be booked together.
          
          Every element has the next structure:
          <dl>
          <dt>string <var>dt_date</var></dt>
          <dd>The date and time in MySQL format in GMT when the session starts.</dd>
          <dt>bool <var>is_select</var></dt>
          <dd>`true` if this session should be booked, `false` otherwise.</dd>
          <dt>string <var>k_class_period</var></dt>
          <dd>The class period key.</dd>
          </dl>
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_session_select_post:
                  description: >- 
                    A list of sessions of an event that can be booked together.
                    
                    Every element has the next structure:
                    <dl>
                    <dt>string <var>dt_date</var></dt>
                    <dd>The date and time in MySQL format in GMT when the session starts.</dd>
                    <dt>bool <var>is_select</var></dt>
                    <dd>`true` if this session should be booked, `false` otherwise.</dd>
                    <dt>string <var>k_class_period</var></dt>
                    <dd>The class period key.</dd>
                    </dl>

                  type: object
      responses:
        '200':
          description: >-
            <b><i>can_complete</i></b> - Determines whether users can complete the booking process from the info step.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  can_complete:
                    type: integer
                    example: 0

  /Wl/Book/Process/Info/InfoModel:
    get:
      tags:
      - Book
      summary: Offers functionality for the class booking wizard on the "Class and Location" page.
      description: >-
        Offers functionality for the class booking wizard on the "Class and Location" page.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Info\Info54Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/Info54Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_day_available</i></b> - Week days available for recurring booking. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
            
            `null` if recurring booking is not available.<br/>            <b><i>a_session_all</i></b> - A list of all class sessions that can be booked together. Every element has the next structure:
            <dl>
            <dt>
            string[] <var>a_staff</var>
            </dt>
            <dd>
            List of staff names that are leading this session.
            </dd>
            <dt>
            string[] <var>a_virtual_location</var>
            </dt>
            <dd>
            List of virtual locations.
            </dd>
            <dt>
            string <var>dt_date</var>
            </dt>
            <dd>
            The date/time when session starts in MySQL format and in GMT.
            </dd>
            <dt>
            boolean <var>is_select</var>
            </dt>
            <dd>
            <tt>true</tt> if this session should be selected when page is initialized;
            <tt>false</tt> if otherwise.
            </dd>
            <dt>
            bool <var>is_wait</var>
            </dt>
            <dd>
            `true` if client is added to a wait list, `false` - to an active list.
            </dd>
            <dt>
            bool <var>is_wait_list_unpaid</var>
            </dt>
            <dd>
            Allow clients to join the wait list unpaid.
            </dd>
            <dt>
            string <var>k_class_period</var>
            </dt>
            <dd>
            The key of the session.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            Location key.
            </dd>
            <dt>
            bool <var>m_price</var>
            </dt>
            <dd>
            Price of the session.
            </dd>
            <dt>
            string <var>s_location</var>
            </dt>
            <dd>
            The name of the location where the session occurred.
            </dd>
            <dt>
            string <var>s_start</var>
            </dt>
            <dd>
            The date/time when the session starts in human-readable format.
            Returned in the time zone of the location.
            </dd>
            <dt>
            string <var>text_duration</var>
            </dt>
            <dd>
            String representation of session duration.
            Duration formatting method [Wl\Book\Process\Info\InfoModel::_classDurationFormat()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoModel.php).
            </dd>
            </dl><br/>            <b><i>a_staff</i></b> - The staff member conducting the session. Every element has the next structure:
            <dl>
            <dt>
            array <var>a_logo</var>
            </dt>
            <dd>
            The staff member photo:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The image height.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The image width.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The image URL.</dd>
            </dl>
            </dd>
            <dt>string <var>s_family</var></dt>
            <dd>The first letter of staff member surname.</dd>
            <dt>string <var>s_staff</var></dt>
            <dd>The staff member's name.</dd>
            <dt>string <var>uid</var></dt>
            <dd>UID of the staff member.</dd>
            </dl><br/>            <b><i>dl_end</i></b> - Date when this class session occurrences stop.<br/>            <b><i>dt_date_local</i></b> - The date/time of the session the user is booking in MySQL format in the location's timezone.<br/>            <b><i>hide_price</i></b> - `true` if price for the individual session should be hidden, if client has applicable pricing option to pay for this
            booking.
            `false` if price should be shown always.<br/>            <b><i>html_contract</i></b> - The text of the contract to which the user must agree before book this session.
            Not empty if business has contract and if user did not agree to this contract.<br/>            <b><i>html_duration</i></b> - Class duration in human-readable format.<br/>            <b><i>html_special</i></b> - The special instructions for the class.<br/>            <b><i>html_special_preview</i></b> - Special instructions preview for class.<br/>            <b><i>i_available</i></b> - Number of available spots.
            
            `null` if this information is not available.<br/>            <b><i>i_book</i></b> - Number of booked spots.
            
            `null` if this information is not available.<br/>            <b><i>i_duration</i></b> - The duration of the session in minutes.<br/>            <b><i>i_wait_spot</i></b> - Estimated place of reservation on the waiting list.<br/>            <b><i>is_book_repeat_client</i></b> - `true` if recurring booking is available, `false` otherwise.<br/>            <b><i>is_book_repeat_no_end_date</i></b> - `true` if the setting for frequency during class recurring booking will be `never end` by default, `false` otherwise.<br/>            <b><i>is_promotion_only</i></b> - `true` if event can be paid with pricing option only.
            `false` if full event purchase or single session purchase are allowed.
            
            Copy of {@link \RsClassSql}.<tt>is_promotion_only</tt>.<br/>            <b><i>is_single_buy</i></b> - Whether the class can be paid with single session.<br/>            <b><i>is_special_preview</i></b> - Whether the full text of the special instructions fits within the preview length or not.<br/>            <b><i>is_virtual</i></b> - `true` if class is virtual, `false` otherwise.<br/>            <b><i>k_location</i></b> - Class period location key.<br/>            <b><i>m_price</i></b> - Price of the session.<br/>            <b><i>m_price_total</i></b> - Whole event cost.<br/>            <b><i>m_price_total_early</i></b> - Event price at an early discount.
            
            An empty string if there is no discount.<br/>            <b><i>s_class</i></b> - The class title.<br/>            <b><i>s_location_address</i></b> - The location address.<br/>            <b><i>s_location_title</i></b> - The location title.<br/>            <b><i>s_time</i></b> - The time when the session takes place in the location's time zone. In format `hh:mm`.<br/>            <b><i>text_room</i></b> - Room where session takes place.<br/>            <b><i>text_staff</i></b> - Text representation of the list of staffs.
            List of staff see [Wl\Book\Process\Info\InfoModel::$a_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoModel.php).<br/>            <b><i>text_timezone</i></b> - Timezone abbreviation.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_day_available:
                    type: object
                    example: []
                  a_session_all:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  dl_end:
                    type: string
                    example: ""
                  dt_date_local:
                    type: string
                    example: ""
                  hide_price:
                    type: integer
                    example: 0
                  html_contract:
                    type: string
                    example: ""
                  html_duration:
                    type: string
                    example: ""
                  html_special:
                    type: string
                    example: ""
                  html_special_preview:
                    type: string
                    example: ""
                  i_available:
                    type: integer
                    example: 0
                  i_book:
                    type: integer
                    example: 0
                  i_duration:
                    type: integer
                    example: 0
                  i_wait_spot:
                    type: integer
                    example: 0
                  is_book_repeat_client:
                    type: integer
                    example: 0
                  is_book_repeat_no_end_date:
                    type: integer
                    example: 0
                  is_promotion_only:
                    type: integer
                    example: 0
                  is_single_buy:
                    type: integer
                    example: 0
                  is_special_preview:
                    type: integer
                    example: 0
                  is_virtual:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_price_total:
                    type: string
                    example: ""
                  m_price_total_early:
                    type: string
                    example: ""
                  s_class:
                    type: string
                    example: ""
                  s_location_address:
                    type: string
                    example: ""
                  s_location_title:
                    type: string
                    example: ""
                  s_time:
                    type: string
                    example: ""
                  text_room:
                    type: string
                    example: ""
                  text_staff:
                    type: string
                    example: ""
                  text_timezone:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Offers functionality for the class booking wizard on the "Class and Location" page.
      description: >-
        Offers functionality for the class booking wizard on the "Class and Location" page.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Info\Info54Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/Info54Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
          Empty if appointment must not repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          Number of occurrences after that appointment repeat must stop.
          Empty if repeat must not stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          Frequency of appointment repeating.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` if appointment must repeat monthly at the same date.
          `false` if appointment must repeat monthly at the same week day.
          `null` if appointment must not repeat monthly.
          </dd>
          </dl>
          
          `null` if booking must be not recurring.
          <br/>
          <b><i>a_resource</i></b> -
          A list of assets being booked. Every element has the next structure:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>Order number of the asset (maybe from 1 to asset quantity).</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The key of asset.</dd>
          </dl>
          <br/>
          <b><i>a_session_select</i></b> -
          The selected sessions.
          
          <b>Keys</b> - The class period keys.
          <b>Values</b> - List of date/time when the session occurred in MySQL format and in GMT.
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          Selected sessions on the waiting list without pay.
          
          Keys - session IDs.
          
          Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.
          <br/>
          <b><i>can_book</i></b> -
          Whether the class/event can be booked at this step or not.
          External process control flag.
          <br/>
          <b><i>is_agree</i></b> -
          Determines if the user has agreed to the liability release.
          `true` - if  the user has agreed. Otherwise, this will be.
          `false` - if the user hasn't agreed or the agreement isn't required.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` if user pressed 'Pay later'.
          `false` if user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          Login promotion to be used to book a class.
          
          Primary key from {@link  \RsLoginProductSql}.
          <br/>
          <b><i>k_session_pass</i></b> -
          Session pass to be used to book a class.
          
          Primary key from {@link  \Wl\Session\Pass\Sql}.
          <br/>
          <b><i>s_signature</i></b> -
          User signature.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
                    Empty if appointment must not repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    Number of occurrences after that appointment repeat must stop.
                    Empty if repeat must not stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    Frequency of appointment repeating.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` if appointment must repeat monthly at the same date.
                    `false` if appointment must repeat monthly at the same week day.
                    `null` if appointment must not repeat monthly.
                    </dd>
                    </dl>
                    
                    `null` if booking must be not recurring.

                  type: object
                a_resource:
                  description: >- 
                    A list of assets being booked. Every element has the next structure:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>Order number of the asset (maybe from 1 to asset quantity).</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The key of asset.</dd>
                    </dl>

                  type: object
                a_session_select:
                  description: >- 
                    The selected sessions.
                    
                    <b>Keys</b> - The class period keys.
                    <b>Values</b> - List of date/time when the session occurred in MySQL format and in GMT.

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    Selected sessions on the waiting list without pay.
                    
                    Keys - session IDs.
                    
                    Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.

                  type: object
                can_book:
                  description: >- 
                    Whether the class/event can be booked at this step or not.
                    External process control flag.

                  type: integer
                is_agree:
                  description: >- 
                    Determines if the user has agreed to the liability release.
                    `true` - if  the user has agreed. Otherwise, this will be.
                    `false` - if the user hasn't agreed or the agreement isn't required.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` if user pressed 'Pay later'.
                    `false` if user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    Login promotion to be used to book a class.
                    
                    Primary key from {@link  \RsLoginProductSql}.

                  type: string
                k_session_pass:
                  description: >- 
                    Session pass to be used to book a class.
                    
                    Primary key from {@link  \Wl\Session\Pass\Sql}.

                  type: string
                s_signature:
                  description: >- 
                    User signature.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity</i></b> - The keys of users' activity.<br/>            <b><i>a_visit</i></b> - The keys of the bookings made.<br/>            <b><i>is_card_authorize</i></b> - If client must authorize credit card.<br/>            <b><i>is_force_book</i></b> - Can the class/event be booked immediately or not.
            
            The verification is based on the search for client's promotions and other features of the class/event.
            But it does not take into account the presence of other mandatory steps.
            Their presence will be indicated by the [Wl\Book\Process\Info\InfoModel::$is_next](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Info/InfoModel.php) flag.<br/>            <b><i>is_next</i></b> - `true` - next steps of the wizard are needed (for example, to purchase something to book the selected session).
            `false` - no need for next steps (all that's needed has already been purchased).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  is_card_authorize:
                    type: integer
                    example: 0
                  is_force_book:
                    type: integer
                    example: 0
                  is_next:
                    type: integer
                    example: 0

  /Wl/Book/Process/Payment/PaymentModel:
    post:
      tags:
      - Book
      summary: Acts as the booking wizard for the "Pay/Billing info" page.
      description: >-
        Acts as the booking wizard for the "Pay/Billing info" page.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_item</i></b> -
          A list of items to be bought. Every element has the next keys:
          <dl>
          <dt>
          int <var>id_purchase_item</var>
          </dt>
          <dd>
          The ID of purchase item type. One of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
          </dd>
          <dt>
          boolean [<var>is_renew</var>]
          </dt>
          <dd>
          <tt>true</tt> if the item should be set to auto-renew; <tt>false</tt> if otherwise.
          If not set yet, use the default option for this item.
          </dd>
          <dt>
          string <var>k_id</var>
          </dt>
          <dd>
          The key of the purchase item in the database.
          </dd>
          <dt>
          string <var>k_login_prize</var>
          </dt>
          <dd>
          ID of user's prize.
          Not <tt>0</tt> only if user is paying book by prize.
          </dd>
          <dt>
          string [<var>s_signature</var>]
          </dt>
          <dd>
          The signature of the Purchase Option contract.
          This won't be set if the Purchase Option doesn't require a contract assignment.
          </dd>
          </dl>
          <br/>
          <b><i>a_pay_form</i></b> -
          A list of payment sources to pay with.
          
          Each element has next keys:
          <dl>
          <dt>
          array [<var>a_pay_card</var>]
          </dt>
          <dd>
          The payment card information:
          <dl>
          <dt>
          array <var>a_pay_address</var>
          </dt>
          <dd>
          The payment address:
          <dl>
          <dt>boolean <var>is_new</var></dt>
          <dd>Set this value is <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
          <dt>string [<var>k_geo_country</var>]</dt>
          <dd>The key of the country used for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>k_geo_region</var>]</dt>
          <dd>The key of the region for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>k_pay_address</var>]</dt>
          <dd>The key of the saved payment address. Specify to use a saved address.</dd>
          <dt>string [<var>s_city</var>]</dt>
          <dd>The city used for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_name</var>]</dt>
          <dd>The card name. Specify to add a new address.</dd>
          <dt>string [<var>s_phone</var>]</dt>
          <dd>The payment phone. Specify to add a new address.</dd>
          <dt>string [<var>s_postal</var>]</dt>
          <dd>The postal code for the payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_street1</var>]</dt>
          <dd>The payment address. Specify to add a new address.</dd>
          <dt>string [<var>s_street2</var>]</dt>
          <dd>The optional payment address. Specify to add a new address.</dd>
          </dl>
          </dd>
          <dt>
          int [<var>i_csc</var>]
          </dt>
          <dd>
          The credit card CSC. Specify to add a new card.
          </dd>
          <dt>
          int [<var>i_month</var>]
          </dt>
          <dd>
          The credit card expiration month. Specify to add a new card.
          </dd>
          <dt>
          int [<var>i_year</var>]
          </dt>
          <dd>
          The credit card expiration year. Specify to add a new card.
          </dd>
          <dt>
          boolean <var>is_new</var>
          </dt>
          <dd>
          <tt>1</tt> to add a new card; <tt>0</tt> to use a saved card.
          </dd>
          <dt>
          string [<var>k_pay_bank</var>]
          </dt>
          <dd>
          The key of a credit card. Specify to use saved card.
          </dd>
          <dt>
          string [<var>s_comment</var>]
          </dt>
          <dd>
          Optional comment(s). Specify to add a new card.
          </dd>
          <dt>
          string [<var>s_number</var>]
          </dt>
          <dd>
          The card number. Specify to add a new card.
          </dd>
          </dl>
          </dd>
          <dt>
          string <var>f_amount</var>
          </dt>
          <dd>
          The amount of money to withdraw with this payment source.
          </dd>
          <dt>
          boolean [<var>is_hide</var>]
          </dt>
          <dd>
          Whether this payment method is hidden.
          </dd>
          <dt>
          boolean [<var>is_success</var>=<tt>false</tt>]
          </dt>
          <dd>
          Identifies whether this source was successfully charged.
          </dd>
          <dt>
          string [<var>m_surcharge</var>]
          </dt>
          <dd>
          The client-side calculated surcharge.
          </dd>
          <dt>
          string [<var>s_index</var>]
          </dt>
          <dd>
          The index of this form (optional).
          </dd>
          <dt>
          string <var>sid_pay_method</var>
          </dt>
          <dd>
          The payment method ID.
          </dd>
          </dl>
          <br/>
          <b><i>a_quiz_response</i></b> -
          List of quiz response keys.
          Key is quiz key from {@link \Core\Quiz\QuizSql} table.
          Value is response key from {@link \Core\Quiz\Response\ResponseSql} table or
          special value from {@link Wl\Quiz\Response\QuizResponse::RESPONSE_SKIP} constant.
          <br/>
          <b><i>a_repeat</i></b> -
          Information about recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
          Empty if appointment must not repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          Number of occurrences after that appointment repeat must stop.
          Empty if repeat must not stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          Frequency of appointment repeating.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` if appointment must repeat monthly at the same date.
          `false` if appointment must repeat monthly at the same week day.
          `null` if appointment must not repeat monthly.
          </dd>
          </dl>
          
          `null` if booking must be not recurring.
          <br/>
          <b><i>a_resource</i></b> -
          A list of assets being booked. Every element has the next keys:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>The number of asset(s). The actual number is returned for assets with a quantity greater than <tt>1</tt>.</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The key of the asset.</dd>
          </dl>
          <br/>
          <b><i>a_session</i></b> -
          A list of sessions being booked.
          <b>Keys</b> - The class period keys.
          <b>Values</b> - List of date/time when the session occurred.
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          Selected sessions on the waiting list without pay.
          
          Keys - session IDs.
          
          Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.
          <br/>
          <b><i>can_book</i></b> -
          Whether the class/event can be booked at this step or not.
          External process control flag.
          <br/>
          <b><i>is_card_authorize</i></b> -
          If client must authorize credit card.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` if user pressed 'Pay later'.
          `false` if user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          Login promotion to be used to book a class.
          
          Primary key from {@link  \RsLoginProductSql}.
          <br/>
          <b><i>k_pay_installment_template</i></b> -
          The installment template key.
          This property is optional and it will be `null` if an installment plan doesn't exist for the purchased item.
          This will be `0` if an installment plan isn't selected for the purchased item from the list of installment plans.
          <br/>
          <b><i>k_session_pass</i></b> -
          Session pass to be used to book a class.
          <br/>
          <b><i>text_discount_code</i></b> -
          The discount code to be applied to the purchase.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_item:
                  description: >- 
                    A list of items to be bought. Every element has the next keys:
                    <dl>
                    <dt>
                    int <var>id_purchase_item</var>
                    </dt>
                    <dd>
                    The ID of purchase item type. One of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
                    </dd>
                    <dt>
                    boolean [<var>is_renew</var>]
                    </dt>
                    <dd>
                    <tt>true</tt> if the item should be set to auto-renew; <tt>false</tt> if otherwise.
                    If not set yet, use the default option for this item.
                    </dd>
                    <dt>
                    string <var>k_id</var>
                    </dt>
                    <dd>
                    The key of the purchase item in the database.
                    </dd>
                    <dt>
                    string <var>k_login_prize</var>
                    </dt>
                    <dd>
                    ID of user's prize.
                    Not <tt>0</tt> only if user is paying book by prize.
                    </dd>
                    <dt>
                    string [<var>s_signature</var>]
                    </dt>
                    <dd>
                    The signature of the Purchase Option contract.
                    This won't be set if the Purchase Option doesn't require a contract assignment.
                    </dd>
                    </dl>

                  type: object
                a_pay_form:
                  description: >- 
                    A list of payment sources to pay with.
                    
                    Each element has next keys:
                    <dl>
                    <dt>
                    array [<var>a_pay_card</var>]
                    </dt>
                    <dd>
                    The payment card information:
                    <dl>
                    <dt>
                    array <var>a_pay_address</var>
                    </dt>
                    <dd>
                    The payment address:
                    <dl>
                    <dt>boolean <var>is_new</var></dt>
                    <dd>Set this value is <tt>1</tt> to add a new payment address or to <tt>0</tt> to use a saved payment address.</dd>
                    <dt>string [<var>k_geo_country</var>]</dt>
                    <dd>The key of the country used for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>k_geo_region</var>]</dt>
                    <dd>The key of the region for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>k_pay_address</var>]</dt>
                    <dd>The key of the saved payment address. Specify to use a saved address.</dd>
                    <dt>string [<var>s_city</var>]</dt>
                    <dd>The city used for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_name</var>]</dt>
                    <dd>The card name. Specify to add a new address.</dd>
                    <dt>string [<var>s_phone</var>]</dt>
                    <dd>The payment phone. Specify to add a new address.</dd>
                    <dt>string [<var>s_postal</var>]</dt>
                    <dd>The postal code for the payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_street1</var>]</dt>
                    <dd>The payment address. Specify to add a new address.</dd>
                    <dt>string [<var>s_street2</var>]</dt>
                    <dd>The optional payment address. Specify to add a new address.</dd>
                    </dl>
                    </dd>
                    <dt>
                    int [<var>i_csc</var>]
                    </dt>
                    <dd>
                    The credit card CSC. Specify to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_month</var>]
                    </dt>
                    <dd>
                    The credit card expiration month. Specify to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_year</var>]
                    </dt>
                    <dd>
                    The credit card expiration year. Specify to add a new card.
                    </dd>
                    <dt>
                    boolean <var>is_new</var>
                    </dt>
                    <dd>
                    <tt>1</tt> to add a new card; <tt>0</tt> to use a saved card.
                    </dd>
                    <dt>
                    string [<var>k_pay_bank</var>]
                    </dt>
                    <dd>
                    The key of a credit card. Specify to use saved card.
                    </dd>
                    <dt>
                    string [<var>s_comment</var>]
                    </dt>
                    <dd>
                    Optional comment(s). Specify to add a new card.
                    </dd>
                    <dt>
                    string [<var>s_number</var>]
                    </dt>
                    <dd>
                    The card number. Specify to add a new card.
                    </dd>
                    </dl>
                    </dd>
                    <dt>
                    string <var>f_amount</var>
                    </dt>
                    <dd>
                    The amount of money to withdraw with this payment source.
                    </dd>
                    <dt>
                    boolean [<var>is_hide</var>]
                    </dt>
                    <dd>
                    Whether this payment method is hidden.
                    </dd>
                    <dt>
                    boolean [<var>is_success</var>=<tt>false</tt>]
                    </dt>
                    <dd>
                    Identifies whether this source was successfully charged.
                    </dd>
                    <dt>
                    string [<var>m_surcharge</var>]
                    </dt>
                    <dd>
                    The client-side calculated surcharge.
                    </dd>
                    <dt>
                    string [<var>s_index</var>]
                    </dt>
                    <dd>
                    The index of this form (optional).
                    </dd>
                    <dt>
                    string <var>sid_pay_method</var>
                    </dt>
                    <dd>
                    The payment method ID.
                    </dd>
                    </dl>

                  type: object
                a_quiz_response:
                  description: >- 
                    List of quiz response keys.
                    Key is quiz key from {@link \Core\Quiz\QuizSql} table.
                    Value is response key from {@link \Core\Quiz\Response\ResponseSql} table or
                    special value from {@link Wl\Quiz\Response\QuizResponse::RESPONSE_SKIP} constant.

                  type: object
                a_repeat:
                  description: >- 
                    Information about recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
                    Empty if appointment must not repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    Number of occurrences after that appointment repeat must stop.
                    Empty if repeat must not stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    Frequency of appointment repeating.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` if appointment must repeat monthly at the same date.
                    `false` if appointment must repeat monthly at the same week day.
                    `null` if appointment must not repeat monthly.
                    </dd>
                    </dl>
                    
                    `null` if booking must be not recurring.

                  type: object
                a_resource:
                  description: >- 
                    A list of assets being booked. Every element has the next keys:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>The number of asset(s). The actual number is returned for assets with a quantity greater than <tt>1</tt>.</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The key of the asset.</dd>
                    </dl>

                  type: object
                a_session:
                  description: >- 
                    A list of sessions being booked.
                    <b>Keys</b> - The class period keys.
                    <b>Values</b> - List of date/time when the session occurred.

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    Selected sessions on the waiting list without pay.
                    
                    Keys - session IDs.
                    
                    Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.

                  type: object
                can_book:
                  description: >- 
                    Whether the class/event can be booked at this step or not.
                    External process control flag.

                  type: integer
                is_card_authorize:
                  description: >- 
                    If client must authorize credit card.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` if user pressed 'Pay later'.
                    `false` if user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    Login promotion to be used to book a class.
                    
                    Primary key from {@link  \RsLoginProductSql}.

                  type: string
                k_pay_installment_template:
                  description: >- 
                    The installment template key.
                    This property is optional and it will be `null` if an installment plan doesn't exist for the purchased item.
                    This will be `0` if an installment plan isn't selected for the purchased item from the list of installment plans.

                  type: string
                k_session_pass:
                  description: >- 
                    Session pass to be used to book a class.

                  type: string
                text_discount_code:
                  description: >- 
                    The discount code to be applied to the purchase.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity_book</i></b> - Keys of the user's activity which correspond to bookings made.
            Not empty when the booking process is finished.<br/>            <b><i>a_visit</i></b> - The keys of bookings made.<br/>            <b><i>k_login_activity_purchase</i></b> - The keys of the user's activity corresponding to the purchase made. This won't be empty when the booking process is finished.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity_book:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  k_login_activity_purchase:
                    type: string
                    example: ""
    get:
      tags:
      - Book
      summary: Acts as the booking wizard for the "Pay/Billing info" page.
      description: >-
        Acts as the booking wizard for the "Pay/Billing info" page.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Book/Process/Process54Model:
    get:
      tags:
      - Book
      summary: Performs the booking wizard steps.
      description: >-
        Performs the booking wizard steps.
        <br /><br />
        Include the [Wl\Book\Process\ProcessSpaSid::QUIZ](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) step, if needed.
        <br /><br />
        @deprecated Use [\Wl\Book\Process\Process59Model](https://github.com/wellnessliving/wl-sdk/blob/master/Wl/Book/Process/Process59Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_family_relation_login_allow</i></b> - Relationships who clients are allowed to book for.
            One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.
            
            This will be `null` if clients aren't allowed to book for their relationships.<br/>            <b><i>a_path</i></b> - All the steps to be performed to make a booking. Every element has the next keys:
            <dl>
            <dt>
            int <var>id_book_process</var>
            </dt>
            <dd>
            The step ID. One of the [Wl\Book\Process\ProcessSpaSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) constants.
            </dd>
            <dt>
            bool [<var>is_current</var>]
            </dt>
            <dd>
            <tt>true</tt> — this item is current.
            <tt>false</tt> — this item isn't current or not set yet.
            </dd>
            </dl><br/>            <b><i>id_pay_require</i></b> - The purchase rule ID.
            One of the [Wl\Classes\RequirePaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/RequirePaySid.php) constants.<br/>            <b><i>is_card_authorize</i></b> - Determines if the client must authorize the credit card.<br/>            <b><i>is_event</i></b> - If `true`, the session being booked is an event. Otherwise, this will be `false`.<br/>            <b><i>is_family_relation_book</i></b> - Determines whether clients are allowed to book for their relationships without switching profiles.<br/>            <b><i>is_free</i></b> - Determines whether the class/event is free (price).<br/>            <b><i>is_have_credit_card</i></b> - If `true`, the client has a credit card. Otherwise, this will be `false`.<br/>            <b><i>is_session</i></b> - `true` — the client can select several sessions per booking.
            
            `false` — the client can't select several sessions.<br/>            <b><i>is_wait</i></b> - If `true`, the user can be placed on a wait list. Otherwise, this will be `false`.<br/>            <b><i>k_location</i></b> - The key of the location where the session is booked.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_family_relation_login_allow:
                    type: object
                    example: []
                  a_path:
                    type: object
                    example: []
                  id_pay_require:
                    type: integer
                    example: 0
                  is_card_authorize:
                    type: integer
                    example: 0
                  is_event:
                    type: integer
                    example: 0
                  is_family_relation_book:
                    type: integer
                    example: 0
                  is_free:
                    type: integer
                    example: 0
                  is_have_credit_card:
                    type: integer
                    example: 0
                  is_session:
                    type: integer
                    example: 0
                  is_wait:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Performs the booking wizard steps.
      description: >-
        Performs the booking wizard steps.
        <br /><br />
        Include the [Wl\Book\Process\ProcessSpaSid::QUIZ](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) step, if needed.
        <br /><br />
        @deprecated Use [\Wl\Book\Process\Process59Model](https://github.com/wellnessliving/wl-sdk/blob/master/Wl/Book/Process/Process59Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of week when the appointment repeat. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          <tt>true</tt> — the appointment repeats monthly on the same date.
          <tt>false</tt> — the appointment repeats monthly on the same day of the week.
          <tt>null</tt> — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user pressed 'Pay later'.
          
          `false` — the user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book the class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book the class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of week when the appointment repeat. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    <tt>true</tt> — the appointment repeats monthly on the same date.
                    <tt>false</tt> — the appointment repeats monthly on the same day of the week.
                    <tt>null</tt> — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user pressed 'Pay later'.
                    
                    `false` — the user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book the class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book the class.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Book/Process/Process59Model:
    get:
      tags:
      - Book
      summary: Performs the booking wizard steps.
      description: >-
        Performs the booking wizard steps.
        <br /><br />
        This endpoint includes changes to the list of steps if the service is already booked for the currently selected client,
        and if [Process59Model::$is_family_relation_book](https://github.com/wellnessliving/wl-sdk/blob/masterProcess59Model.php) is set to `true`.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_family_relation_login_allow</i></b> - Relationships who clients are allowed to book for.
            One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.
            
            This will be `null` if clients aren't allowed to book for their relationships.<br/>            <b><i>a_path</i></b> - All the steps to be performed to make a booking. Every element has the next keys:
            <dl>
            <dt>
            int <var>id_book_process</var>
            </dt>
            <dd>
            The step ID. One of the [Wl\Book\Process\ProcessSpaSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) constants.
            </dd>
            <dt>
            bool [<var>is_current</var>]
            </dt>
            <dd>
            <tt>true</tt> — this item is current.
            <tt>false</tt> — this item isn't current or not set yet.
            </dd>
            </dl><br/>            <b><i>id_pay_require</i></b> - The purchase rule ID.
            One of the [Wl\Classes\RequirePaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/RequirePaySid.php) constants.<br/>            <b><i>is_card_authorize</i></b> - Determines if the client must authorize the credit card.<br/>            <b><i>is_event</i></b> - If `true`, the session being booked is an event. Otherwise, this will be `false`.<br/>            <b><i>is_family_relation_book</i></b> - Determines whether clients are allowed to book for their relationships without switching profiles.<br/>            <b><i>is_free</i></b> - Determines whether the class/event is free (price).<br/>            <b><i>is_have_credit_card</i></b> - If `true`, the client has a credit card. Otherwise, this will be `false`.<br/>            <b><i>is_session</i></b> - `true` — the client can select several sessions per booking.
            
            `false` — the client can't select several sessions.<br/>            <b><i>is_wait</i></b> - If `true`, the user can be placed on a wait list. Otherwise, this will be `false`.<br/>            <b><i>k_location</i></b> - The key of the location where the session is booked.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_family_relation_login_allow:
                    type: object
                    example: []
                  a_path:
                    type: object
                    example: []
                  id_pay_require:
                    type: integer
                    example: 0
                  is_card_authorize:
                    type: integer
                    example: 0
                  is_event:
                    type: integer
                    example: 0
                  is_family_relation_book:
                    type: integer
                    example: 0
                  is_free:
                    type: integer
                    example: 0
                  is_have_credit_card:
                    type: integer
                    example: 0
                  is_session:
                    type: integer
                    example: 0
                  is_wait:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Performs the booking wizard steps.
      description: >-
        Performs the booking wizard steps.
        <br /><br />
        This endpoint includes changes to the list of steps if the service is already booked for the currently selected client,
        and if [Process59Model::$is_family_relation_book](https://github.com/wellnessliving/wl-sdk/blob/masterProcess59Model.php) is set to `true`.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of week when the appointment repeat. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          <tt>true</tt> — the appointment repeats monthly on the same date.
          <tt>false</tt> — the appointment repeats monthly on the same day of the week.
          <tt>null</tt> — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user pressed 'Pay later'.
          
          `false` — the user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book the class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book the class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of week when the appointment repeat. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    <tt>true</tt> — the appointment repeats monthly on the same date.
                    <tt>false</tt> — the appointment repeats monthly on the same day of the week.
                    <tt>null</tt> — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user pressed 'Pay later'.
                    
                    `false` — the user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book the class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book the class.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Book/Process/ProcessModel:
    get:
      tags:
      - Book
      summary: Performs the booking wizard steps.
      description: >-
        Performs the booking wizard steps.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Process54Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Process54Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_family_relation_login_allow</i></b> - Relationships who clients are allowed to book for.
            One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.
            
            This will be `null` if clients aren't allowed to book for their relationships.<br/>            <b><i>a_path</i></b> - All the steps to be performed to make a booking. Every element has the next keys:
            <dl>
            <dt>
            int <var>id_book_process</var>
            </dt>
            <dd>
            The step ID. One of the [Wl\Book\Process\ProcessSpaSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) constants.
            </dd>
            <dt>
            bool [<var>is_current</var>]
            </dt>
            <dd>
            <tt>true</tt> — this item is current.
            <tt>false</tt> — this item isn't current or not set yet.
            </dd>
            </dl><br/>            <b><i>id_pay_require</i></b> - The purchase rule ID.
            One of the [Wl\Classes\RequirePaySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/RequirePaySid.php) constants.<br/>            <b><i>is_card_authorize</i></b> - Determines if the client must authorize the credit card.<br/>            <b><i>is_event</i></b> - If `true`, the session being booked is an event. Otherwise, this will be `false`.<br/>            <b><i>is_family_relation_book</i></b> - Determines whether clients are allowed to book for their relationships without switching profiles.<br/>            <b><i>is_free</i></b> - Determines whether the class/event is free (price).<br/>            <b><i>is_have_credit_card</i></b> - If `true`, the client has a credit card. Otherwise, this will be `false`.<br/>            <b><i>is_session</i></b> - `true` — the client can select several sessions per booking.
            
            `false` — the client can't select several sessions.<br/>            <b><i>is_wait</i></b> - If `true`, the user can be placed on a wait list. Otherwise, this will be `false`.<br/>            <b><i>k_location</i></b> - The key of the location where the session is booked.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_family_relation_login_allow:
                    type: object
                    example: []
                  a_path:
                    type: object
                    example: []
                  id_pay_require:
                    type: integer
                    example: 0
                  is_card_authorize:
                    type: integer
                    example: 0
                  is_event:
                    type: integer
                    example: 0
                  is_family_relation_book:
                    type: integer
                    example: 0
                  is_free:
                    type: integer
                    example: 0
                  is_have_credit_card:
                    type: integer
                    example: 0
                  is_session:
                    type: integer
                    example: 0
                  is_wait:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Performs the booking wizard steps.
      description: >-
        Performs the booking wizard steps.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Process54Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Process54Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of week when the appointment repeat. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          <tt>true</tt> — the appointment repeats monthly on the same date.
          <tt>false</tt> — the appointment repeats monthly on the same day of the week.
          <tt>null</tt> — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user pressed 'Pay later'.
          
          `false` — the user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book the class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book the class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of week when the appointment repeat. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    <tt>true</tt> — the appointment repeats monthly on the same date.
                    <tt>false</tt> — the appointment repeats monthly on the same day of the week.
                    <tt>null</tt> — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user pressed 'Pay later'.
                    
                    `false` — the user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book the class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book the class.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Book/Process/Purchase/Purchase56Model:
    get:
      tags:
      - Book
      summary: Displays information about Purchase Options that can book specified session(s).
      description: >-
        Displays information about Purchase Options that can book specified session(s).
        <br /><br />
        Note that the terms "Purchase Option" and "promotion" are used interchangeably.
      parameters:
        - name: a_session
          description: >-
            A list of sessions being booked.
            Keys refer to class period keys, and values refer to a list of dates/times when the session occurred.

          in: query
          schema:
            type: string
        - name: a_session_wait_list_unpaid
          description: >-
            The selected sessions on the waiting list that are unpaid.
            Keys refer to session IDs, and values refer to index arrays of dates/times when session occurred, returned in MySQL format and in GMT.

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: i_image_height
          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 size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_card_authorize
          description: >-
            Determines if the client must authorize the credit card.

          in: query
          schema:
            type: string
        - name: json_session
          description: >-
            The selected sessions.
            This won't be empty for session mode only.
            
            Fields refer to IDs of sessions in the database. Values refer to arrays of dates/times when session occurred, returned in MySQL format and in GMT.
            
            Serialized with JSON.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the session being booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_promotion</i></b> - A list of the client`s login promotions that can be applied to a given service.
            <dl>
            <dt>array <var>a_login_promotion_info</var></dt>
            <dd>
            Information about the promotion. It contains the following information:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The count of visits that the promotion allows the client to make.</dd>
            <dt>int|null <var>i_limit_duration</var></dt>
            <dd>The maximum number of minutes that the current promotion can be used for.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The count of the remaining visits.</dd>
            <dt>int|null <var>i_remain_duration</var></dt>
            <dd>The number of minutes left in this promotion.</dd>
            </dl>
            </dd>
            <dt>string[] <var>a_visit_limit</var></dt>
            <dd>The list of calendar restrictions of the promotion (for example, 4 per week).</dd>
            <dt>array <var>a_restrict</var></dt>
            <dd>The data about the shortest restriction period:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The limit of visits for the shortest restriction period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits for the shortest restriction period.</dd>
            <dt>string <var>text_restriction</var></dt>
            <dd>The description of the shortest restriction period. For example, "this week" or "for a 4-day period".</dd>
            </dl>
            </dd>
            <dt>array[] <var>a_restrict_data</var></dt>
            <dd>Data for all restriction periods given as an array, where each record has the following structure:
            <dl>
            <dt>int <var>i_book</var></dt>
            <dd>The count of future sessions paid with this promotion.</dd>
            <dt>int <var>i_limit</var></dt>
            <dd>The limit of visits for the restriction period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits for the restriction period.</dd>
            <dt>int <var>i_use</var></dt>
            <dd>The promotion's usage count.</dd>
            <dt>int <var>i_visit_past</var></dt>
            <dd>
            The count of attended sessions before the last renewal.
            If `0`, there weren't any sessions before the last renewal or the promotion doesn't auto-renew.
            </dd>
            <dt>string <var>text_restriction</var></dt>
            <dd>The description of the restriction period. For example, "this week" or "for a 4-day period".</dd>
            </dl>
            </dd>
            <dt>int <var>i_limit</var></dt>
            <dd>The number of visits the promotion allows the client to make.</dd>
            <dt>int|null <var>i_limit_duration</var></dt>
            <dd>The maximum number of minutes the current promotion can be used for.</dd>
            <dt>int <var>id_program</var></dt>
            <dd>The program ID for promotions. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.</dd>
            <dt>string <var>k_login_promotion</var></dt>
            <dd>The login promotion key.</dd>
            <dt>string <var>s_class_include</var></dt>
            <dd>The list of services provided by this promotion.</dd>
            <dt>string <var>s_description</var></dt>
            <dd>The promotion's description.</dd>
            <dt>string <var>s_duration</var></dt>
            <dd>The promotion's duration.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The promotion's name.</dd>
            <dt>string <var>text_package_item</var></dt>
            <dd>A list of promotions contained in the package (only applicable for promotions that are packages).</dd>
            </dl><br/>            <b><i>a_purchase</i></b> - A list of promotions available for the session(s) being booked. Keys refer to unique string IDs. Values are arrays with the next keys:
            <dl>
            <dt>
            array[] <var>a_installment_template</var>.
            </dt>
            <dd>
            A list of installment plans. Every element has the next keys:
            <dl>
            <dt>
            int <var>i_count</var>
            </dt>
            <dd>
            The number of payments.
            </dd>
            <dt>
            int <var>id_duration</var>
            </dt>
            <dd>
            The duration of a single period. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
            </dd>
            <dt>
            int <var>i_period</var>
            </dt>
            <dd>
            The number of periods specified by <var>id_period</var> between individual payments.
            </dd>
            <dt>
            string <var>k_currency</var>
            </dt>
            <dd>
            The payment currency key.
            </dd>
            <dt>
            string <var>k_pay_installment_template</var>
            </dt>
            <dd>
            The key of the installment plan template.
            </dd>
            <dt>
            string <var>m_amount</var>
            </dt>
            <dd>
            The amount of the installment plan.
            </dd>
            <dt>
            string <var>s_duration</var>
            </dt>
            <dd>
            The title of the installment plan.
            </dd>
            </dl>
            </dd>
            <dt>
            array[] [<var>a_visit_limit</var>]
            </dt>
            <dd>
            A list of booking limitations for the promotion. Every element has the next keys:
            <dl>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The limit description.
            </dd>
            </dl>
            </dd>
            <dt>
            string <var>f_price</var>
            </dt>
            <dd>
            The price.
            </dd>
            <dt>
            string [<var>f_price_early</var>]
            </dt>
            <dd>
            The price for early bookings.
            </dd>
            <dt>
            string <var>html_payment_period</var>
            </dt>
            <dd>
            The measurement unit of <var>i_payment_period</var> in short form (only for promotions with 'membership' program.).
            </dd>
            <dt>
            string <var>html_description</var>
            </dt>
            <dd>
            The description, ready to paste in a browser.
            </dd>
            <dt>
            int [<var>i_limit</var>]
            </dt>
            <dd>
            The limit of sessions that can be booked by promotions.
            </dd>
            <dt>
            int [<var>i_payment_period</var>]
            </dt>
            <dd>
            The duration of the regular payment interval (only for promotions with 'membership' program).
            </dd>
            <dt>
            int [<var>i_session</var>]
            </dt>
            <dd>
            The number of sessions which are booked simultaneously (only for purchases of single sessions).
            </dd>
            <dt>
            int [<var>id_program_category</var>]
            </dt>
            <dd>
            The ID of the promotion program category (only for promotions). One of the [WlProgramCategorySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramCategorySid.php) constants.
            </dd>
            <dt>
            int [<var>id_program_type</var>]
            </dt>
            <dd>
            The ID of the promotion program type (only for promotions). One of the [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php) constants.
            </dd>
            <dt>
            int <var>id_purchase_item</var>
            </dt>
            <dd>
            The ID of the promotion type. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
            </dd>
            <dt>
            bool [<var>is_contract</var>]
            </dt>
            <dd>
            <tt>true</tt> — the promotion requires a contract assignment. <tt>false</tt> — the promotion doesn't require assignment.
            </dd>
            <dt>
            bool [<var>is_convert</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the promotion should be converted to another instance upon expiration. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool [<var>is_renew</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the promotion is renewable. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool [<var>is_renew_check</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the promotion is renewable and the "auto-renew" option is turned on by default. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The key of the promotion in the database. The table depends on <var>id_purchase_item</var>.
            </dd>
            <dt>
            string [<var>k_login_prize</var>]
            </dt>
            <dd>
            The key of the user's prize that can be used instead a promotion to book the session.
            </dd>
            <dt>
            string [<var>s_contract</var>]
            </dt>
            <dd>
            The contract of the promotion. This is only set if <var>is_contract</var> is <tt>true</tt>.
            </dd>
            <dt>
            string [<var>s_payment_duration</var>]
            </dt>
            <dd>
            The measurement unit of <var>i_payment_period</var> (only for promotions with 'membership' program).
            </dd>
            <dt>
            string [<var>s_promotion_convert</var>]
            </dt>
            <dd>
            The new title of the promotion to use upon conversion after expiration (only if <var>is_convert</var> is <tt>true</tt>.).
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The title.
            </dd>
            <dt>
            string <var>s_value</var>
            </dt>
            <dd>
            The unique identifier.
            </dd>
            </dl><br/>            <b><i>a_session_pass</i></b> - The list of session passes that might be used in booking process.<br/>            <b><i>is_single_default</i></b> - Indicates if the drop-in rate should be the default promotion.<br/>            <b><i>k_promotion_default</i></b> - The default promotion key.
            This will be empty if the class has no default promotion.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_promotion:
                    type: object
                    example: []
                  a_purchase:
                    type: object
                    example: []
                  a_session_pass:
                    type: object
                    example: []
                  is_single_default:
                    type: integer
                    example: 0
                  k_promotion_default:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Displays information about Purchase Options that can book specified session(s).
      description: >-
        Displays information about Purchase Options that can book specified session(s).
        <br /><br />
        Note that the terms "Purchase Option" and "promotion" are used interchangeably.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the session being booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` — the appointment repeats monthly on the same date.
          `false` — the appointment repeats monthly on the same day of the week.
          `null` — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user pressed 'Pay later'.
          
          `false` — the user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion to be used to book a class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass to be used to book a class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` — the appointment repeats monthly on the same date.
                    `false` — the appointment repeats monthly on the same day of the week.
                    `null` — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user pressed 'Pay later'.
                    
                    `false` — the user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion to be used to book a class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass to be used to book a class.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Book/Process/Purchase/PurchaseElementListModel:
    get:
      tags:
      - Book
      summary: Displays a list of purchase items.
      description: >-
        Displays a list of purchase items.
      parameters:
        - name: a_purchase_item_request
          description: >-
            A list of purchase items to get information for. Every element has the next keys:
            <dl>
            <dt>int [<var>i_session</var>]</dt>
            <dd>The number of sessions booked simultaneously.</dd>
            <dt>int <var>id_purchase_item</var></dt>
            <dd>The ID of the purchase item type. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The key of the purchase item in the database. The name of the table in the database depends on <var>id_purchase_item</var></dd>
            <dt>string [<var>k_login_prize</var>]</dt>
            <dd>The key of the user's prize.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business in which the purchase is made.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location in which the purchase is made.
            This is also the booking process location.
            
            This will be `null` if not set yet or if the location can't be defined for some reason.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the purchase.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_purchase_item_result</i></b> - Detailed information about the amounts for the purchase item list.
            Every element has the next keys:
            <dl>
            <dt>
            array <var>a_tax</var>
            </dt>
            <dd>
            Information about taxes. The key refers to the tax key, and the value refers to the tax amount.
            </dd>
            <dt>
            string <var>id_purchase_item</var></dt>
            <dd>
            The ID of purchase item type.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The key of the purchase item in the database.
            </dd>
            <dt>
            string <var>m_cost</var></dt>
            <dd>
            The cost of the purchase item (with taxes).
            </dd>
            <dt>
            string <var>m_discount</var></dt>
            <dd>
            The amount of the whole discount.
            </dd>
            <dt>
            string <var>m_discount_login</var></dt>
            <dd>
            The amount of the discount for the client type.
            </dd>
            <dt>
            string <var>m_price</var></dt>
            <dd>
            The price of the purchase item (with or without taxes, depending on regional standards).</dd>
            <dt>
            string <var>m_tax</var></dt>
            <dd>
            The amount of taxes for the purchase item.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_purchase_item_result:
                    type: object
                    example: []

  /Wl/Book/Process/Purchase/PurchaseElementModel:
    get:
      tags:
      - Book
      summary: A model of the purchase item.
      description: >-
        A model of the purchase item.
      parameters:
        - name: i_session
          description: >-
            The number of sessions which are booked simultaneously.

          in: query
          schema:
            type: string
        - name: id_purchase_item
          description: >-
            The ID of the purchase item type. One of [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The key of the purchase item in the database.
            The name of the table in the database depends on [Wl\Book\Process\ProcessPurchaseElementModel::$id_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessPurchaseElementModel.php).

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location in which the purchase is made.
            This is also the booking process location.

          in: query
          schema:
            type: string
        - name: k_login_prize
          description: >-
            The key of the user's prize.
            Not empty only if the user wants to make a free visit from the prize.

          in: query
          schema:
            type: string
        - name: k_pay_installment_template
          description: >-
            Installment template key.
            This property is optional. `null` if installment plan doesn't exist for bought item.
            `0` if installment plan doesn't selected for bought item from the list of installment plans.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the current user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_tax</i></b> - A list of taxes for one purchase item. Keys - tax keys (primary key in {@link \RsTaxSql} table); values - tax amount.<br/>            <b><i>m_cost</i></b> - The cost of one purchase item (with taxes).<br/>            <b><i>m_discount</i></b> - The amount of the whole discount of one purchase item.<br/>            <b><i>m_discount_code</i></b> - Amount of discount for discount code of 1 purchase item.<br/>            <b><i>m_discount_login</i></b> - The discount amount for the client type of one purchase item.<br/>            <b><i>m_price</i></b> - The price of the purchase item (with or without taxes, depending on regional standards).<br/>            <b><i>m_price_remaining</i></b> - Remaining price of 1 purchase item. (With or without taxes. It depends on regional standards.)<br/>            <b><i>m_subtotal</i></b> - Amount of subtotal for 1 purchase item.<br/>            <b><i>m_tax</i></b> - The amount of taxes for the one purchase item.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_tax:
                    type: object
                    example: []
                  m_cost:
                    type: string
                    example: ""
                  m_discount:
                    type: string
                    example: ""
                  m_discount_code:
                    type: string
                    example: ""
                  m_discount_login:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_price_remaining:
                    type: string
                    example: ""
                  m_subtotal:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""

  /Wl/Book/Process/Purchase/PurchaseModel:
    get:
      tags:
      - Book
      summary: Displays information about Purchase Options that can book specified session(s).
      description: >-
        Displays information about Purchase Options that can book specified session(s).
        <br /><br />
        Note that the terms "Purchase Option" and "promotion" represent the same thing (promotion was the previous term
        used in WellnessLiving). Both these terms have been used for various variable names.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Purchase\Purchase56Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Purchase/Purchase56Model.php) instead.
      parameters:
        - name: a_session
          description: >-
            The list of sessions being booked.
            
            Keys refer to class period keys, and values refer to the List of dates/times when the session occurred.

          in: query
          schema:
            type: string
        - name: a_session_wait_list_unpaid
          description: >-
            The selected sessions on the wait list that are unpaid.
            
            Keys refer to session IDs, and values refer to the index arrays of dates/times when the session occurred
            (returned in MySQL format and GMT).

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: i_image_height
          description: >-
            The image height in pixels. Specify this value if you need the image to be returned in a specific size.
            The returned image will have the default thumbnail size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: i_image_width
          description: >-
            The image width in pixels. Specify this value if you need the image to be returned in a specific size.
            The returned image will have the default thumbnail size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_card_authorize
          description: >-
            Determines if the client must authorize the credit card.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_promotion</i></b> - A list of the client`s login promotions that can be applied to a given service.
            <dl>
            <dt>array <var>a_login_promotion_info</var></dt>
            <dd>
            Information about the Purchase Option with the following information:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The number of visits the Purchase Option allows the client to make.</dd>
            <dt>int|null <var>i_limit_duration</var></dt>
            <dd>The maximum number of minutes the Purchase Option can be used for.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of the remaining visits the Purchase Option has left.</dd>
            <dt>int|null <var>i_remain_duration</var></dt>
            <dd>The number of minutes left in the Purchase Option.</dd>
            </dl>
            </dd>
            <dt>string[] <var>a_visit_limit</var></dt>
            <dd>The list of calendar restrictions of the promotion (for example, 4 per week).</dd>
            <dt>array <var>a_restrict</var></dt>
            <dd>Data about the shortest restriction period:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The limit of visits for the shortest restriction period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits for the shortest restriction period.</dd>
            <dt>string <var>text_restriction</var></dt>
            <dd>The description of the shortest restriction period (for example "this week" or "for a 4 day period").</dd>
            </dl>
            </dd>
            <dt>array[] <var>a_restrict_data</var></dt>
            <dd>Data about all restriction periods given as an array, where each record has the following structure:
            <dl>
            <dt>int <var>i_book</var></dt>
            <dd>The number of future sessions paid using this Purchase Option.</dd>
            <dt>int <var>i_limit</var></dt>
            <dd>The limit of visits for the restriction period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of remaining visits for the restriction period.</dd>
            <dt>int <var>i_use</var></dt>
            <dd>The Purchase Option's usage count.</dd>
            <dt>int <var>i_visit_past</var></dt>
            <dd>
            The number of attended sessions before the last renewal.
            This will be `0` if there aren't any sessions before the last renewal or the Purchase Option doesn't auto-renew.
            </dd>
            <dt>string <var>text_restriction</var></dt>
            <dd>The description of restriction period (for example "this week" or "for a 4 day period").</dd>
            </dl>
            </dd>
            <dt>int <var>i_limit</var></dt>
            <dd>The number of visits the Purchase Option allows the client to make.</dd>
            <dt>int|null <var>i_limit_duration</var></dt>
            <dd>The maximum number of minutes the Purchase Option can be used for.</dd>
            <dt>int <var>id_program</var></dt>
            <dd>The program ID for Purchase Options. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.</dd>
            <dt>string <var>k_login_promotion</var></dt>
            <dd>The login promotion key.</dd>
            <dt>string <var>s_class_include</var></dt>
            <dd>The list of services provided by this Purchase Option.</dd>
            <dt>string <var>s_description</var></dt>
            <dd>The Purchase Option description.</dd>
            <dt>string <var>s_duration</var></dt>
            <dd>The Purchase Option duration.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The Purchase Option name.</dd>
            <dt>string <var>text_package_item</var></dt>
            <dd>If this promotion is a package, this field will contain a list of Purchase Options contained in the package.</dd>
            </dl><br/>            <b><i>a_purchase</i></b> - A list of Purchase Options that are available for the session(s) being booked. Keys refer to unique string IDs, and
            values refer arrays with the next keys:
            <dl>
            <dt>
            array[] <var>a_installment_template</var>.
            </dt>
            <dd>
            A list of installment plans. Every element has the next keys:
            <dl>
            <dt>
            int <var>i_count</var>
            </dt>
            <dd>
            The number of payments.
            </dd>
            <dt>
            int <var>id_duration</var>
            </dt>
            <dd>
            The duration of a single period. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
            </dd>
            <dt>
            int <var>i_period</var>
            </dt>
            <dd>
            The number of periods specified by <var>id_period</var> between individual payments.
            </dd>
            <dt>
            string <var>k_currency</var>
            </dt>
            <dd>
            The payment currency key.
            </dd>
            <dt>
            string <var>k_pay_installment_template</var>
            </dt>
            <dd>
            The key of the installment plan template.
            </dd>
            <dt>
            string <var>m_amount</var>
            </dt>
            <dd>
            The amount of the installment plan.
            </dd>
            <dt>
            string <var>s_duration</var>
            </dt>
            <dd>
            The title of the installment plan.
            </dd>
            </dl>
            </dd>
            <dt>
            array[] [<var>a_visit_limit</var>]
            </dt>
            <dd>
            This is only set for Purchase Options. A list of limits on booking by the Purchase Option. Every element has the next keys:
            <dl>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The limit description.
            </dd>
            </dl>
            </dd>
            <dt>
            string <var>f_price</var>
            </dt>
            <dd>
            The price.
            </dd>
            <dt>
            string [<var>f_price_early</var>]
            </dt>
            <dd>
            The price for early bookings.
            </dd>
            <dt>
            string <var>html_payment_period</var>
            </dt>
            <dd>
            This is only set for Purchase Options with the 'membership' program type. The measurement unit of <var>i_payment_period</var> in short form.
            </dd>
            <dt>
            string <var>html_description</var>
            </dt>
            <dd>
            The description, ready to paste in a browser.
            </dd>
            <dt>
            int [<var>i_limit</var>]
            </dt>
            <dd>
            The limit of sessions that can be booked by Purchase Options.
            </dd>
            <dt>
            int [<var>i_payment_period</var>]
            </dt>
            <dd>
            This is only set for Purchase Options with the 'membership' program type. The duration of the regular payment interval.
            </dd>
            <dt>
            int [<var>i_session</var>]
            </dt>
            <dd>
            This is only set for purchases of single sessions. The number of sessions booked simultaneously.
            </dd>
            <dt>
            int [<var>id_program_category</var>]
            </dt>
            <dd>
            This is only set for promotions. The ID of the promotion program category. One of the [WlProgramCategorySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramCategorySid.php) constants.
            </dd>
            <dt>
            int [<var>id_program_type</var>]
            </dt>
            <dd>
            This is only set for promotions. The ID of the promotion program type. One of the [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php) constants.
            </dd>
            <dt>
            int <var>id_purchase_item</var>
            </dt>
            <dd>
            The ID of Purchase Option type. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
            </dd>
            <dt>
            bool [<var>is_contract</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the Purchase Option requires a contract assignment. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool [<var>is_convert</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the Purchase Option converts to another instance upon expiration. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool [<var>is_renew</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the Purchase Option is renewable. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool [<var>is_renew_check</var>]
            </dt>
            <dd>
            If <tt>true</tt>, the Purchase Option is renewable and the "auto-renew" option is turned on by default. Otherwise,
            this will be <tt>false</tt>.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The key of the Purchase Option in the database. The table depends on <var>id_purchase_item</var>.
            </dd>
            <dt>
            string [<var>k_login_prize</var>]
            </dt>
            <dd>
            The key of the user's prize that can be used instead a Purchase Option to book the session.
            </dd>
            <dt>
            string [<var>s_contract</var>]
            </dt>
            <dd>
            The contract of the Purchase Option. This is only set if <var>is_contract</var> is <tt>true</tt>.
            </dd>
            <dt>
            string [<var>s_payment_duration</var>]
            </dt>
            <dd>
            This is only set for Purchase Options with the 'membership' program type. The measurement unit of <var>i_payment_period</var>.
            </dd>
            <dt>
            string [<var>s_promotion_convert</var>]
            </dt>
            <dd>
            This is only set if <var>is_convert</var> is <tt>true</tt>. The title to use for the new Purchase Option instance upon auto-renewal.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The title.
            </dd>
            <dt>
            string <var>s_value</var>
            </dt>
            <dd>
            The unique identifier.
            </dd>
            </dl><br/>            <b><i>a_session_pass</i></b> - The list of session passes that could be used in the booking process.<br/>            <b><i>is_single_default</i></b> - Indicates whether the drop-in rate should be the default Purchase Option.<br/>            <b><i>k_promotion_default</i></b> - The default Purchase Option key.
            This will be empty if the class has no default Purchase Option.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_promotion:
                    type: object
                    example: []
                  a_purchase:
                    type: object
                    example: []
                  a_session_pass:
                    type: object
                    example: []
                  is_single_default:
                    type: integer
                    example: 0
                  k_promotion_default:
                    type: string
                    example: ""
    post:
      tags:
      - Book
      summary: Displays information about Purchase Options that can book specified session(s).
      description: >-
        Displays information about Purchase Options that can book specified session(s).
        <br /><br />
        Note that the terms "Purchase Option" and "promotion" represent the same thing (promotion was the previous term
        used in WellnessLiving). Both these terms have been used for various variable names.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Purchase\Purchase56Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Purchase/Purchase56Model.php) instead.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of week when the appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          <tt>true</tt> — the appointment repeats monthly on the same date.<br>
          
          <tt>false</tt> — the appointment repeats monthly on the same day of the week.<br>
          
          <tt>null</tt> — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user selected 'Pay later'.
          
          `false` — the user selected 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book the class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book the class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of week when the appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    <tt>true</tt> — the appointment repeats monthly on the same date.<br>
                    
                    <tt>false</tt> — the appointment repeats monthly on the same day of the week.<br>
                    
                    <tt>null</tt> — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user selected 'Pay later'.
                    
                    `false` — the user selected 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book the class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book the class.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Book/Process/Quiz/QuizModel:
    post:
      tags:
      - Book
      summary: Manages quizzes and a selected Purchase Option for a class or event during the booking process.
      description: >-
        Manages quizzes and a selected Purchase Option for a class or event during the booking process.
        <br /><br />
        Note that the terms "Purchase Option" and "promotion" are used interchangeably.
      parameters:
        - name: dt_date_gmt
          description: >-
            The dates/times the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_quiz_response</i></b> -
          The list of quiz response keys.
          
          Keys refer to quiz keys, and values refer to response keys or special values from the
          {@link Wl\Quiz\Response\QuizResponse::RESPONSE_SKIP} constant.
          <br/>
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of the week when the appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` — the appointment repeats monthly on the same date.<br>
          `false` — the appointment repeats monthly on the same week day.<br>
          `null` — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>a_resource</i></b> -
          The selected assets.
          
          Every element has the next keys:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>The order number of the asset (could be from 1 to the asset quantity).</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The asset key.</dd>
          </dl>
          <br/>
          <b><i>a_session_select</i></b> -
          The selected sessions.
          
          Keys refer to class period keys, and values refer to the list of dates/times when the session occurred.
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          The selected sessions on the wait list that are unpaid.
          
          Keys refer to session IDs, and values refer to index arrays of dates/times when session occurred (n MySQL format and in GMT).
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user selected 'Pay later'.
          
          `false` — the user selected 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book a class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book a class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_quiz_response:
                  description: >- 
                    The list of quiz response keys.
                    
                    Keys refer to quiz keys, and values refer to response keys or special values from the
                    {@link Wl\Quiz\Response\QuizResponse::RESPONSE_SKIP} constant.

                  type: object
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of the week when the appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` — the appointment repeats monthly on the same date.<br>
                    `false` — the appointment repeats monthly on the same week day.<br>
                    `null` — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                a_resource:
                  description: >- 
                    The selected assets.
                    
                    Every element has the next keys:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>The order number of the asset (could be from 1 to the asset quantity).</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The asset key.</dd>
                    </dl>

                  type: object
                a_session_select:
                  description: >- 
                    The selected sessions.
                    
                    Keys refer to class period keys, and values refer to the list of dates/times when the session occurred.

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    The selected sessions on the wait list that are unpaid.
                    
                    Keys refer to session IDs, and values refer to index arrays of dates/times when session occurred (n MySQL format and in GMT).

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user selected 'Pay later'.
                    
                    `false` — the user selected 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book a class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book a class.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity</i></b> - The user's activity keys.<br/>            <b><i>a_visit</i></b> - The keys the bookings that have been made.<br/>            <b><i>is_next</i></b> - If `true`, the next steps of the booking wizard are required for the purchase or booking. Otherwise, this will be `false`.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  is_next:
                    type: integer
                    example: 0
    get:
      tags:
      - Book
      summary: Manages quizzes and a selected Purchase Option for a class or event during the booking process.
      description: >-
        Manages quizzes and a selected Purchase Option for a class or event during the booking process.
        <br /><br />
        Note that the terms "Purchase Option" and "promotion" are used interchangeably.
      parameters:
        - name: a_purchase_item
          description: >-
            The list of purchase items. Each element has the format <tt>[id_purchase_item]::[k_id]</tt>, where: <dl>
            <dt>int <var>id_purchase_item</var></dt>
            <dd>The ID of the purchase item. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The item key. This depends on <var>id_purchase_item</var> of this array.</dd>
            </dl>
            
            This will be empty if no purchases are made for the booking.

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            The dates/times the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_quiz</i></b> - The list of quizzes. Each element has the next structure:<dl>
            <dt>bool <var>is_require</var></dt>
            <dd>Determines whether the quiz is required.</dd>
            <dt>string <var>k_quiz</var></dt>
            <dd>The quiz key.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_quiz:
                    type: object
                    example: []

  /Wl/Book/Process/Relation/RelationModel:
    get:
      tags:
      - Book
      summary: Adds a relative during the booking process.
      description: >-
        Adds a relative during the booking process.
      parameters:
        - name: dtu_date
          description: >-
            The date/time of the session to check for booking availability.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business where <var>uid_from</var> creates the new relative.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the session to check for booking availability.

          in: query
          schema:
            type: string
        - name: uid_from
          description: >-
            The user who's adding the new relative.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Book
      summary: Adds a relative during the booking process.
      description: >-
        Adds a relative during the booking process.
      parameters:
        - name: k_business
          description: >-
            The business where <var>uid_from</var> creates the new relative.

          in: query
          schema:
            type: string
        - name: uid_from
          description: >-
            The user who's adding the new relative.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>id_relation</i></b> -
          The relation type.
          One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.
          <br/>
          <b><i>is_mail_inherit</i></b> -
          `true` — the new relative uses the email from <var>uid_from</var>.
          
          `false` — the new relative has their own email.
          <br/>
          <b><i>is_pay_self</i></b> -
          `true` — the new relative pays for themself.
          
          `false` — <var>uid_from</var> pays for the new relative.
          <br/>
          <b><i>text_mail</i></b> -
          The new relative's email.
          <br/>
          <b><i>text_name_first</i></b> -
          The new relative's first name.
          <br/>
          <b><i>text_name_last</i></b> -
          The new relative's last name.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id_relation:
                  description: >- 
                    The relation type.
                    One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.

                  type: integer
                is_mail_inherit:
                  description: >- 
                    `true` — the new relative uses the email from <var>uid_from</var>.
                    
                    `false` — the new relative has their own email.

                  type: integer
                is_pay_self:
                  description: >- 
                    `true` — the new relative pays for themself.
                    
                    `false` — <var>uid_from</var> pays for the new relative.

                  type: integer
                text_mail:
                  description: >- 
                    The new relative's email.

                  type: string
                text_name_first:
                  description: >- 
                    The new relative's first name.

                  type: string
                text_name_last:
                  description: >- 
                    The new relative's last name.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>uid_create</i></b> - The newly added relative.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  uid_create:
                    type: string
                    example: ""

  /Wl/Book/Process/Resource/Resource54Model:
    post:
      tags:
      - Book
      summary: Selects assets when making a booking.
      description: >-
        Selects assets when making a booking.
        <br /><br />
        Take note of the [Wl\Book\Process\ProcessSpaSid::QUIZ](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) step.
      parameters:
        - name: a_session
          description: >-
            The selected sessions.
            Not empty only for session mode.
            
            <b>Keys</b> - The class period keys.
            <b>Values</b> - List of date/time when the session occurred in MySQL format and in GMT.

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: json_session
          description: >-
            Selected sessions.
            Not empty only for session mode.
            
            Fields - IDs of sessions in database.
            Values - arrays of date/time when session is occurred. In MySQL format. In GMT.
            
            Serialized with JSON.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
          Empty if appointment must not repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          Number of occurrences after that appointment repeat must stop.
          Empty if repeat must not stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          Frequency of appointment repeating.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` if appointment must repeat monthly at the same date.
          `false` if appointment must repeat monthly at the same week day.
          `null` if appointment must not repeat monthly.
          </dd>
          </dl>
          
          `null` if booking must be not recurring.
          <br/>
          <b><i>a_resource_select</i></b> -
          The selected assets. Every element has the next keys:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>The asset number. Actual for assets with quantity greater <tt>1</tt>.</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The key of the asset.</dd>
          </dl>
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          Selected sessions on the waiting list without pay.
          
          Keys - session IDs.
          
          Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.
          <br/>
          <b><i>can_book</i></b> -
          Whether the class/event can be booked at this step or not.
          External process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` if user pressed 'Pay later'.
          `false` if user pressed 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          Login promotion to be used to book a class.
          
          Primary key from {@link  \RsLoginProductSql}.
          <br/>
          <b><i>k_session_pass</i></b> -
          Session pass to be used to book a class.
          
          Primary key from {@link  \Wl\Session\Pass\Sql}.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    Days of week when appointment must repeat. Constants of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) class.
                    Empty if appointment must not repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    Date when appointment repeat must stop. Empty if repeat must not stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    Number of occurrences after that appointment repeat must stop.
                    Empty if repeat must not stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    Frequency of appointment repeating.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    Measurement unit of `i_period`. One of [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` if appointment must repeat monthly at the same date.
                    `false` if appointment must repeat monthly at the same week day.
                    `null` if appointment must not repeat monthly.
                    </dd>
                    </dl>
                    
                    `null` if booking must be not recurring.

                  type: object
                a_resource_select:
                  description: >- 
                    The selected assets. Every element has the next keys:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>The asset number. Actual for assets with quantity greater <tt>1</tt>.</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The key of the asset.</dd>
                    </dl>

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    Selected sessions on the waiting list without pay.
                    
                    Keys - session IDs.
                    
                    Values - index arrays of dates/time when session is occurred. In MySQL format. In GMT.

                  type: object
                can_book:
                  description: >- 
                    Whether the class/event can be booked at this step or not.
                    External process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` if user pressed 'Pay later'.
                    `false` if user pressed 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    Login promotion to be used to book a class.
                    
                    Primary key from {@link  \RsLoginProductSql}.

                  type: string
                k_session_pass:
                  description: >- 
                    Session pass to be used to book a class.
                    
                    Primary key from {@link  \Wl\Session\Pass\Sql}.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity</i></b> - The keys of a user's activity.
            This won't be if the session(s) was booked at this step.<br/>            <b><i>a_visit</i></b> - The keys of the bookings that have been made.
            Not empty only if session(s) was booked on this step.<br/>            <b><i>is_next</i></b> - <tt>true</tt> if next steps of wizard are needed (for example. to purchase something to book the selected session);
            <tt>false</tt> if no next steps are needed (all that was needed was already bought).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  is_next:
                    type: integer
                    example: 0
    get:
      tags:
      - Book
      summary: Selects assets when making a booking.
      description: >-
        Selects assets when making a booking.
        <br /><br />
        Take note of the [Wl\Book\Process\ProcessSpaSid::QUIZ](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/ProcessSpaSid.php) step.
      parameters:
        - name: a_session
          description: >-
            The selected sessions.
            Not empty only for session mode.
            
            <b>Keys</b> - The class period keys.
            <b>Values</b> - List of date/time when the session occurred in MySQL format and in GMT.

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            Date/time to which session is booked.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            Mode type. One of [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: json_session
          description: >-
            Selected sessions.
            Not empty only for session mode.
            
            Fields - IDs of sessions in database.
            Values - arrays of date/time when session is occurred. In MySQL format. In GMT.
            
            Serialized with JSON.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            Key of session which is booked.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user who is making a book.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_resource_all</i></b> - A list of asset categories which are available for specified session. Every element has next keys:
            <dl>
            <dt>
            array <var>a_client</var>
            </dt>
            <dd>
            A list of clients who have already occupied assets for this session.
            1st level keys - asset keys; 2nd level keys - asset number.
            For example, if you want to check if 10th asset with key '125' is free,
            you have to check if <tt>a_client['125']['10']</tt> is empty.
            </dd>
            <dt>
            array[] <var>a_resource_list</var>
            </dt>
            <dd>
            A list of available assets. Every element has next keys:
            <dl>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            Asset image data. See {@link RsResourceImage::data()} for details.
            </dd>
            <dt>
            int <var>i_index</var>
            </dt>
            <dd>
            The asset number. Actual for assets with a quantity more than <tt>1</tt>.
            </dd>
            <dt>
            bool <var>is_current</var>
            </dt>
            <dd>
            <tt>true</tt> means that this asset is selected by client, <tt>false</tt> - otherwise.
            </dd>
            <dt>
            string <var>k_resource</var>
            </dt>
            <dd>
            The key of the asset in database.
            </dd>
            <dt>
            string <var>s_resource</var>
            </dt>
            <dd>
            The title of the asset.
            </dd>
            </dl>
            </dd>
            <dt>
            bool <var>has_current</var>
            </dt>
            <dd>
            <tt>true</tt> - has current resource in the list of available assets; <tt>false</tt> - otherwise.
            </dd>
            <dt>
            bool <var>is_client_select</var>
            </dt>
            <dd>
            <tt>true</tt> - the client selected the resource from the current group; <tt>false</tt> otherwise.
            </dd>
            <dt>
            bool <var>is_select</var>
            </dt>
            <dd>
            <tt>true</tt> - has selected resources; <tt>false</tt> - otherwise.
            </dd>
            <dt>
            bool <var>is_share</var>
            </dt>
            <dd>
            <tt>true</tt> resources in this category don't belong to certain users, but to the entire session.
            <tt>false</tt> belong to specific users.
            </dd>
            <dt>
            string <var>k_resource_layout</var>
            </dt>
            <dd>
            The key of the asset layout.
            </dd>
            <dt>
            string <var>k_resource_type</var>
            </dt>
            <dd>
            The key of the asset category.
            </dd>
            <dt>
            string <var>s_resource_type</var>
            </dt>
            <dd>
            The title of the asset category.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_resource_all:
                    type: object
                    example: []

  /Wl/Book/Process/Resource/ResourceModel:
    post:
      tags:
      - Book
      summary: Selects assets for making a booking.
      description: >-
        Selects assets for making a booking.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Resource\Resource54Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Resource/Resource54Model.php) instead.
      parameters:
        - name: a_session
          description: >-
            The selected sessions.
            This won't be empty only for session mode.
            
            Keys refer to class period keys, and values refer to a list of the dates/times when the session occurred (returned in MySQL format and in GMT).

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of the week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This won't be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This won't be empty if repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This won't be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` — the appointment repeats monthly on the same date.<br>
          `false` — the appointment repeats monthly on the same day of the week.<br>
          `null` — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if booking isn't recurring.
          <br/>
          <b><i>a_resource_select</i></b> -
          The selected assets. Every element has the next keys:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>The asset number. Applies only for assets with a quantity greater than <tt>1</tt>.</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The asset key.</dd>
          </dl>
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          The selected sessions on the wait list that are unpaid.
          
          Keys refer to session IDs, and values refer to index arrays of dates/times when the session occurred (returned in MySQL format and in GMT).
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user selected 'Pay later'.
          
          `false` — the user selected 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book the class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book the class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of the week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This won't be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This won't be empty if repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This won't be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` — the appointment repeats monthly on the same date.<br>
                    `false` — the appointment repeats monthly on the same day of the week.<br>
                    `null` — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if booking isn't recurring.

                  type: object
                a_resource_select:
                  description: >- 
                    The selected assets. Every element has the next keys:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>The asset number. Applies only for assets with a quantity greater than <tt>1</tt>.</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The asset key.</dd>
                    </dl>

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    The selected sessions on the wait list that are unpaid.
                    
                    Keys refer to session IDs, and values refer to index arrays of dates/times when the session occurred (returned in MySQL format and in GMT).

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user selected 'Pay later'.
                    
                    `false` — the user selected 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book the class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book the class.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity</i></b> - The keys of a user's activity.
            This won't be empty only if the session(s) was booked at this step.<br/>            <b><i>a_visit</i></b> - The keys of the bookings that have been made.
            This won't be empty only if the session(s) was booked at this step.<br/>            <b><i>is_next</i></b> - `true` — the next steps of the booking wizard are required (for example, to purchase something to book the selected session).
            
            `false` — no further booking steps are required.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  is_next:
                    type: integer
                    example: 0
    get:
      tags:
      - Book
      summary: Selects assets for making a booking.
      description: >-
        Selects assets for making a booking.
        <br /><br />
        @deprecated Use [Wl\Book\Process\Resource\Resource54Model](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Book/Process/Resource/Resource54Model.php) instead.
      parameters:
        - name: a_session
          description: >-
            The selected sessions.
            This won't be empty only for session mode.
            
            Keys refer to class period keys, and values refer to a list of the dates/times when the session occurred (returned in MySQL format and in GMT).

          in: query
          schema:
            type: string
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_resource_all</i></b> - A list of asset categories that are available for the specified session. Every element has the next keys:
            <dl>
            <dt>
            array <var>a_client</var>
            </dt>
            <dd>
            A list of clients who have booked assets for this session.
            1st level keys refer to asset keys. 2nd level keys refer to asset numbers.
            For example, if you want to check if 10th asset with the key '125' is free,
            you have to check if <tt>a_client['125']['10']</tt> is empty.
            </dd>
            <dt>
            array[] <var>a_resource_list</var>
            </dt>
            <dd>
            A list of available assets. Every element has the next keys:
            <dl>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            The asset image data. See {@link RsResourceImage::data()} for details.
            </dd>
            <dt>
            int <var>i_index</var>
            </dt>
            <dd>
            The asset number. This applies for assets with a quantity more than <tt>1</tt>.
            </dd>
            <dt>
            bool <var>is_current</var>
            </dt>
            <dd>
            If <tt>true</tt>, this asset is selected by a client. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            string <var>k_resource</var>
            </dt>
            <dd>
            The asset key in the database.
            </dd>
            <dt>
            string <var>s_resource</var>
            </dt>
            <dd>
            The asset title.
            </dd>
            </dl>
            </dd>
            <dt>
            bool <var>has_current</var>
            </dt>
            <dd>
            If <tt>true</tt>, this resource is in the list of available assets. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool <var>is_client_select</var>
            </dt>
            <dd>
            If <tt>true</tt>, the client selected the resource from the current group. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool <var>is_select</var>
            </dt>
            <dd>
            If <tt>true</tt>, the asset category has selected resources. Otherwise, this will be <tt>false</tt>.
            </dd>
            <dt>
            bool <var>is_share</var>
            </dt>
            <dd>
            <tt>true</tt> — resources in this category don't belong to certain users, but to the entire session.<br>
            <tt>false</tt> — resources belong to specific users.
            </dd>
            <dt>
            string <var>k_resource_layout</var>
            </dt>
            <dd>
            The asset layout key.
            </dd>
            <dt>
            string <var>k_resource_type</var>
            </dt>
            <dd>
            The asset category key.
            </dd>
            <dt>
            string <var>s_resource_type</var>
            </dt>
            <dd>
            The asset category title.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_resource_all:
                    type: object
                    example: []

  /Wl/Book/Process/Store/StoreModel:
    post:
      tags:
      - Book
      summary: Manages the booking wizard for the "Purchase Options" page.
      description: >-
        Manages the booking wizard for the "Purchase Options" page.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_repeat</i></b> -
          Information about the recurring booking:
          <dl>
          <dt>
          int[] [<var>a_week</var>]
          </dt>
          <dd>
          The days of the week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
          This will be empty if the appointment doesn't repeat weekly.
          </dd>
          <dt>
          string [<var>dl_end</var>]
          </dt>
          <dd>
          The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
          </dd>
          <dt>
          int [<var>i_occurrence</var>]
          </dt>
          <dd>
          The number of occurrences after which the appointment's repeat cycle stops.
          This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
          </dd>
          <dt>
          int <var>i_period</var>
          </dt>
          <dd>
          The frequency of the appointment's repeat cycle.
          </dd>
          <dt>
          int <var>id_period</var>
          </dt>
          <dd>
          The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
          </dd>
          <dt>
          bool [<var>is_month</var>]
          </dt>
          <dd>
          `true` — the appointment repeats monthly on the same date.<br>
          `false` — the appointment repeats monthly on the same week day.<br>
          `null` — the appointment doesn't repeat monthly.
          </dd>
          </dl>
          
          This will be `null` if the booking isn't recurring.
          <br/>
          <b><i>a_resource</i></b> -
          A list of assets being booked. Every element has the next keys:
          <dl>
          <dt>int <var>i_index</var></dt>
          <dd>The order number of the asset (from 1 to the asset quantity).</dd>
          <dt>string <var>k_resource</var></dt>
          <dd>The asset key.</dd>
          </dl>
          <br/>
          <b><i>a_session_select</i></b> -
          The selected sessions.
          
          Keys refer to class period keys, and values refer to the list of dates/times when the session occurred (returned in MySQL format and in GMT).
          <br/>
          <b><i>a_session_wait_list_unpaid</i></b> -
          The selected sessions on the wait list that are unpaid.
          
          Keys refer to session IDs, and values refer to index arrays of dates/times when the session occurred (returned in MySQL format and in GMT).
          <br/>
          <b><i>can_book</i></b> -
          Determines whether the class/event can be booked at this step or not.
          This is an external process control flag.
          <br/>
          <b><i>is_force_pay_later</i></b> -
          `true` — the user selected 'Pay later'.
          
          `false` — the user selected 'Pay now'.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The login promotion used to book a class.
          <br/>
          <b><i>k_session_pass</i></b> -
          The session pass used to book a class.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_repeat:
                  description: >- 
                    Information about the recurring booking:
                    <dl>
                    <dt>
                    int[] [<var>a_week</var>]
                    </dt>
                    <dd>
                    The days of the week when appointment repeats. One of the [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.
                    This will be empty if the appointment doesn't repeat weekly.
                    </dd>
                    <dt>
                    string [<var>dl_end</var>]
                    </dt>
                    <dd>
                    The date when the appointment's repeat cycle stops. This will be empty if the repeat cycle doesn't stop at a certain date.
                    </dd>
                    <dt>
                    int [<var>i_occurrence</var>]
                    </dt>
                    <dd>
                    The number of occurrences after which the appointment's repeat cycle stops.
                    This will be empty if the repeat cycle doesn't stop after a certain number of occurrences.
                    </dd>
                    <dt>
                    int <var>i_period</var>
                    </dt>
                    <dd>
                    The frequency of the appointment's repeat cycle.
                    </dd>
                    <dt>
                    int <var>id_period</var>
                    </dt>
                    <dd>
                    The measurement unit of `i_period`. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
                    </dd>
                    <dt>
                    bool [<var>is_month</var>]
                    </dt>
                    <dd>
                    `true` — the appointment repeats monthly on the same date.<br>
                    `false` — the appointment repeats monthly on the same week day.<br>
                    `null` — the appointment doesn't repeat monthly.
                    </dd>
                    </dl>
                    
                    This will be `null` if the booking isn't recurring.

                  type: object
                a_resource:
                  description: >- 
                    A list of assets being booked. Every element has the next keys:
                    <dl>
                    <dt>int <var>i_index</var></dt>
                    <dd>The order number of the asset (from 1 to the asset quantity).</dd>
                    <dt>string <var>k_resource</var></dt>
                    <dd>The asset key.</dd>
                    </dl>

                  type: object
                a_session_select:
                  description: >- 
                    The selected sessions.
                    
                    Keys refer to class period keys, and values refer to the list of dates/times when the session occurred (returned in MySQL format and in GMT).

                  type: object
                a_session_wait_list_unpaid:
                  description: >- 
                    The selected sessions on the wait list that are unpaid.
                    
                    Keys refer to session IDs, and values refer to index arrays of dates/times when the session occurred (returned in MySQL format and in GMT).

                  type: object
                can_book:
                  description: >- 
                    Determines whether the class/event can be booked at this step or not.
                    This is an external process control flag.

                  type: integer
                is_force_pay_later:
                  description: >- 
                    `true` — the user selected 'Pay later'.
                    
                    `false` — the user selected 'Pay now'.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The login promotion used to book a class.

                  type: string
                k_session_pass:
                  description: >- 
                    The session pass used to book a class.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_activity</i></b> - The user's activity keys. This won't be empty when the booking process is finished.<br/>            <b><i>a_visit</i></b> - The keys of bookings that have been made.<br/>            <b><i>is_next</i></b> - `true` — the next steps of booking wizard are required to purchase something or to book the selected session.
            
            `false` — no further steps in the booking wizard are required.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_activity:
                    type: object
                    example: []
                  a_visit:
                    type: object
                    example: []
                  is_next:
                    type: integer
                    example: 0
    get:
      tags:
      - Book
      summary: Manages the booking wizard for the "Purchase Options" page.
      description: >-
        Manages the booking wizard for the "Purchase Options" page.
      parameters:
        - name: dt_date_gmt
          description: >-
            The date/time the session is booked for.

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The mode type. One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The key of the booked session.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the booking.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Business/Account/BusinessAccountModel:
    get:
      tags:
      - Business
      summary: Gets a list of active businesses.
      description: >-
        Gets a list of active businesses.
        <br /><br />
        To run this endpoint, a user must be authorized with the `rs.business.view` privilege.
      parameters:
        - name: is_prospects
          description: >-
            `true` returns WellnesLiving customers.
            
            `false` returns prospects.
            
            Test and churned businesses are never returned.

          in: query
          schema:
            type: string
        - name: is_published
          description: >-
            Specifies if only businesses having published locations should be returned.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business_keys</i></b> - A list of business keys.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business_keys:
                    type: object
                    example: []

  /Wl/Business/AmazonRegion/AmazonRegionModel:
    get:
      tags:
      - Business
      summary: Retrieves the region ID for businesses.
      description: >-
        Retrieves the region ID for businesses.
      parameters:
        - name: a_business
          description: >-
            A list of business keys.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business_region</i></b> - A list of region IDs for [AmazonRegionModel::$a_business](https://github.com/wellnessliving/wl-sdk/blob/masterAmazonRegionModel.php).
            
            Keys refer to business keys, and values refer to region IDs (one of the [WlRegionSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlRegionSid.php) constants).
            
            If `0`, this business is from an unknown region.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business_region:
                    type: object
                    example: []

  /Wl/Business/AmazonRegion/BusinessRegionEdge:
    get:
      tags:
      - Business
      summary: An Edge Cache for business data center.
      description: >-
        An Edge Cache for business data center.
      parameters:
        - name: i_block
          description: >-
            ID of the data block.
            
            In current implementation, this property is not used an is always set to 0.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_block</i></b> - A list of blocks.
            
            Format of this array is discussed in
            `namespace.Wl/Business/AmazonRegion/doc/business-region-edge-format.en.md`.
            
            Only businesses that reside in {@link BusinessRegionEdge::$a_region} are added here.<br/>            <b><i>a_region</i></b> - A list of non-default regions mentioned in {@link BusinessRegionEdge::$a_block}.
            
            Effectively, this is a list of all regions that have at least one business except default region.
            
            Value is one of [AmazonRegionSid](https://github.com/wellnessliving/wl-sdk/blob/masterAmazonRegionSid.php) constants.<br/>            <b><i>id_region</i></b> - ID of the default region.
            
            One of [AmazonRegionSid](https://github.com/wellnessliving/wl-sdk/blob/masterAmazonRegionSid.php) constants.
            
            The most popular region is selected as default region, and its data is not stored in
            {@link BusinessRegionEdge::$a_block}. Thus, all non-existent businesses are deemed as placed in this default
            region.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_block:
                    type: object
                    example: []
                  a_region:
                    type: object
                    example: []
                  id_region:
                    type: integer
                    example: 0

  /Wl/Business/AuthorizePartner/AuthorizePartnerModel:
    get:
      tags:
      - Business
      summary: Gives members of a franchisor access to a franchisee.
      description: >-
        Gives members of a franchisor access to a franchisee.
        <br /><br />
        To grant a user access, the "Manage Franchise Location" staff permission is required.
        Access will be granted for 24 hours.
      parameters:
        - name: is_grant
          description: >-
            Determines whether the user will be granted access or if access will be revoked.
            If `true`, access will be granted. If `false`, access will be revoked.
            Revoking access is a scheduled task set to be run within the next 15 minutes.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the franchisee location to enter.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user who will be granted access.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Business/AuthorizeSupport/Response/ResponseModel:
    get:
      tags:
      - Business
      summary: An endpoint to request entrance into a business location.
      description: >-
        An endpoint to request entrance into a business location.
        <br /><br />
        This endpoint is similar to [Wl\Business\AuthorizePartner\AuthorizePartnerModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/AuthorizePartner/AuthorizePartnerModel.php) but not identical. To grant a user
        access the SDK sign-in account, the Manage Business permission is required. The associated accounts will receive an
        email regarding when they are given access and when that access expires. Access will be granted for 24 hours.
      parameters:
        - name: is_grant
          description: >-
            Determines whether the user will be granted access or if access will be revoked.
            If <tt>true</tt> - then grant access; If <tt>false</tt> - then revoke access.
            Revoking access is a scheduled task set to be run within the next 15 minutes.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location to access.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user who will be granted access.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Business/BusinessAccessModel:
    get:
      tags:
      - Business
      summary: Returns information about a given staff member's business.
      description: >-
        Returns information about a given staff member's business.
      parameters:
        - name: is_backend
          description: >-
            This will be `true` if the API is being used from the backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: s_facebook_id
          description: >-
            The staff member's Facebook ID. This won't be empty if the staff member is logging in with Facebook.
            This will be empty if the UID is already known or the staff member is logging in another way.

          in: query
          schema:
            type: string
        - name: s_microsoft_id
          description: >-
            The staff member's Microsoft key.
            This won't be empty if the staff member is logging in with Microsoft.

          in: query
          schema:
            type: string
        - name: text_authorization_apple
          description: >-
            The staff member's Apple authorization code. This won't be empty if the staff member is logging in with Apple.
            This will be empty if the UID is already known or the staff member is logging in another way.

          in: query
          schema:
            type: string
        - name: text_google_plus
          description: >-
            The Google Plus user ID. This won't be empty if the staff member is logging in with Google.
            This will be empty if the UID is already known or the staff member is logging in another way.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key. Empty if user is not logged in, but their authorization data is known.

          in: query
          schema:
            type: string
        - name: text_mail
          description: >-
            The staff member's email to determine their UID. This won't be empty if the staff member is logging in with email or with Google.
            This will be empty if the UID is already known or the staff member is logging in another way.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business</i></b> - The businesses the staff member belongs to.
            Note that this field is here for backwards compatibility.<br/>            <b><i>a_business_data</i></b> - The list of accessible businesses with their corresponding data. Each value is an array with the next structure:
            <dl>
            <dt>int <var>id_region</var></dt>
            <dd>The business region. One of the [WlRegionSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlRegionSid.php) constants. This will be `null` if no regions are currently set.</dd>
            <dt>string <var>k_business</var></dt>
            <dd>The business key.</dd>
            <dt>string <var>text_office_address</var></dt>
            <dd>The business address.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The business title.</dd>
            <dt>string <var>url_logo</var></dt>
            <dd>The business logo URL. This will be empty if the business hasn't added a logo.</dd>
            </dl><br/>            <b><i>uid_mail</i></b> - The staff member key, determined by their email. This will be empty if the UID isn't empty.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business:
                    type: object
                    example: []
                  a_business_data:
                    type: object
                    example: []
                  uid_mail:
                    type: string
                    example: ""

  /Wl/Business/BusinessModel:
    post:
      tags:
      - Business
      summary: Creates a new business.
      description: >-
        Creates a new business.

      requestBody:
        description: >-
              <b><i>id_locale</i></b> -
              The business locale.
              <br/>
              <b><i>k_business_type</i></b> -
              The key of the business type.
              <br/>
              <b><i>k_office_city</i></b> -
              The city key of the business.
              <br/>
              <b><i>text_office_address</i></b> -
              The address of the business.
              <br/>
              <b><i>text_office_postal</i></b> -
              The postal code of the business.
              <br/>
              <b><i>text_phone</i></b> -
              The phone number of the business.
              <br/>
              <b><i>text_title</i></b> -
              The title of the business.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    id_locale:
                      description: >- 
                        The business locale.

                      type: integer
                    k_business_type:
                      description: >- 
                        The key of the business type.

                      type: string
                    k_office_city:
                      description: >- 
                        The city key of the business.

                      type: string
                    text_office_address:
                      description: >- 
                        The address of the business.

                      type: string
                    text_office_postal:
                      description: >- 
                        The postal code of the business.

                      type: string
                    text_phone:
                      description: >- 
                        The phone number of the business.

                      type: string
                    text_title:
                      description: >- 
                        The title of the business.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>k_business</i></b> - The key of the created business.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_business:
                    type: string
                    example: ""

  /Wl/Business/Config/BusinessConfigModel:
    get:
      tags:
      - Business
      summary: Manages business configurations for clients, bookings, payments, and related things.
      description: >-
        Manages business configurations for clients, bookings, payments, and related things.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business_policy</i></b> - All business policies connected to clients and bookings.
            
            <dl>
            <dt>int <var>a_wait_service</var></dt>
            <dd>The keys are listed as IDs from [WlServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlServiceSid.php), and values are flags outlining whether wait listing is allowed.</dd>
            <dt>int <var>i_book_before</var></dt>
            <dd>The minimum hours|days|months before a class can be booked.</dd>
            <dt>int <var>i_book_future</var></dt>
            <dd>The maximum hours|days|months after a class can be booked.</dd>
            <dt>int <var>i_cancel</var></dt>
            <dd>The minimum hours|days|months before a class can be canceled without penalty.</dd>
            <dt>int <var>i_promote</var></dt>
            <dd>The minimum hours|days|months before a class can be promoted from a wait list.</dd>
            <dt>int <var>i_reattempt_count</var></dt>
            <dd>The number of failed auto-payment reattempts.</dd>
            <dt>int <var>id_book_before</var></dt>
            <dd>The hours|days|months from [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).</dd>
            <dt>int <var>id_book_future</var></dt>
            <dd>The hours|days|months from [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).</dd>
            <dt>int <var>id_cancel</var></dt>
            <dd>The hours|days|months from [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).</dd>
            <dt>int <var>id_promote</var></dt>
            <dd>The hours|days|months from [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).</dd>
            <dt>bool <var>is_book_inside_active_pay_period</var></dt>
            <dd>
            `true` — clients with Purchase Options are only allowed to book sessions within their current paid period.<br>
            `false` — clients with Purchase Options are only allowed to book sessions during the Purchase Option's duration.
            </dd>
            <dt>int <var>is_disable_promotion</var></dt>
            <dd>
            If `true`, a client's automatic payment fails, their account shouldn't be debited, and their Purchase Option becomes inactive.
            Otherwise, this will be `false` (the default value).
            </dd>
            <dt>bool <var>is_enable_payment_penalty</var></dt>
            <dd>Determines whether to charge a penalty after the final auto-payment attempt.</dd>
            <dt>bool <var>is_enable_payment_reattempt</var></dt>
            <dd>Determines whether to reattempt failed auto-payments.</dd>
            <dt>bool <var>is_enable_staff_ip_restriction</var></dt>
            <dd>Determines whether to restrict which IP addresses staff can login from.</dd>
            <dt>int <var>is_prevent_booking</var></dt>
            <dd>If `true`, booking for a client with negative balance is disabled. Otherwise, this will be `false` (the default value).</dd>
            <dt>bool <var>is_staff_restrict</var></dt>
            <dd>If true, clients can't choose a provider in the appointment wizard. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_wait</var></dt>
            <dd>Determines whether to enable or disable the wait list.</dd>
            <dt>int <var>k_currency</var></dt>
            <dd>The currency.</dd>
            <dt>int <var>k_timezone</var></dt>
            <dd>The time zone.</dd>
            <dt>string <var>m_payment_penalty</var></dt>
            <dd>The penalty amount to charge after the final auto-payment attempt.</dd>
            <dt>string <var>url_custom</var></dt>
            <dd>The custom URL from Business URLs.</dd>
            </dl><br/>            <b><i>is_location_select</i></b> - Determines whether staff members should select a location at checkout.
            
            If `true`, staff members should select a location at checkout. Otherwise, this will be `false`.<br/>            <b><i>is_white_label</i></b> - Determines whether the business has white label setting enabled in the admin settings.
            
            If `true`, admin settings are enabled. Otherwise, this will be `false`.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business_policy:
                    type: object
                    example: []
                  is_location_select:
                    type: integer
                    example: 0
                  is_white_label:
                    type: integer
                    example: 0

  /Wl/Business/DataModel:
    get:
      tags:
      - Business
      summary: Displays information for a specified business.
      description: >-
        Displays information for a specified business.
      parameters:
        - name: i_logo_height
          description: >-
            The maximum height of the business image (in pixels).

          in: query
          schema:
            type: string
        - name: i_logo_width
          description: >-
            The maximum width of the business image (in pixels).

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: text_token
          description: >-
            The authorization token.
            This may be used instead of [Wl\Business\DataModel::$k_business](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/DataModel.php) to
            identify a business.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_service_list</i></b> - A list of all business services and their availability data.
            This is presented as an array, where keys are SIDs from [Wl\Service\ServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Service/ServiceSid.php) and values are Boolean.
            If `true`, at least one service is enabled in the business. Otherwise, this will be `false`.<br/>            <b><i>a_tip_predefine</i></b> - The list of predefined tips in percentages.<br/>            <b><i>id_category</i></b> - The business category ID of the business.
            
            One of the [BusinessCategorySid](https://github.com/wellnessliving/wl-sdk/blob/masterBusinessCategorySid.php) constants.<br/>            <b><i>id_currency</i></b> - The currency ID of the given business (or the system currency ID if the business didn't pass).<br/>            <b><i>id_locale</i></b> - The Locale ID, used to search geo items.<br/>            <b><i>id_rank_type</i></b> - The rank type ID of the business.
            
            One of the [RsRankTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsRankTypeSid.php) constants.
            
            This will be `null` if the business doesn't have a rank type.<br/>            <b><i>id_region</i></b> - The region ID. This indicates the data center where the information about the business is stored.
            One of the [WlRegionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlRegionSid.php) constants.
            
            Requests made to different regions can lead to known issues such as responses indicating that the
            business (or its elements) doesn't exist. This is because databases on different data centers are
            independent. For example, performing a request to the US cluster for a list of classes for an AU
            cluster business will return an empty list.<br/>            <b><i>is_apply_surcharge</i></b> - Determines whether surcharges to client payments are enabled in the business.<br/>            <b><i>is_franchise</i></b> - `true` if business is a franchisor or franchisee.<br/>            <b><i>is_location_multiple</i></b> - Determines whether the business has multiple locations (including inactive locations).<br/>            <b><i>is_profile_timezone</i></b> - `true` — clients of the business can select a custom time zone in their profile.
            
            `false` — the location or business time zone is used.<br/>            <b><i>is_progress_client</i></b> - If `true`, clients can enter the progress log. Otherwise, this will be `false`.<br/>            <b><i>is_progress_verify</i></b> - If `true`, verification of the progress log by a staff member is required. Otherwise, this will be `false`.<br/>            <b><i>is_quiz_available</i></b> - Determines whether quizzes are available in the business.<br/>            <b><i>is_tip</i></b> - If `true`, tips are available in the business. Otherwise, this will be `false`.<br/>            <b><i>is_tip_deny</i></b> - If `true`, the business has the "No tip" option displayed. Otherwise, this will be `false`.<br/>            <b><i>is_tip_sign</i></b> - If `true`, the client must sign after selecting the tip. Otherwise, this will be `false`.<br/>            <b><i>k_business_franchisor</i></b> - The franchisor business key. This will be empty if this business is the franchisor or not in a franchise.<br/>            <b><i>k_business_token</i></b> - The business key obtained by the security token [Wl\Business\DataModel::$text_token](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/DataModel.php).
            This can be used on the client side if authorization token should be used instead of the business key
            (the business key isn't available).<br/>            <b><i>k_currency</i></b> - The currency key of the given business, or the system currency if the business didn't pass.<br/>            <b><i>s_reply_mail</i></b> - The reply-to email address.<br/>            <b><i>s_reply_name</i></b> - The reply-to business name.<br/>            <b><i>text_office_address</i></b> - The business address.<br/>            <b><i>text_title</i></b> - The business title.<br/>            <b><i>url_facebook</i></b> - The Facebook page.<br/>            <b><i>url_google</i></b> - The Google+ page.<br/>            <b><i>url_instagram</i></b> - The Instagram page.<br/>            <b><i>url_linkedin</i></b> - The LinkedIn profile.<br/>            <b><i>url_logo</i></b> - The logo URL.<br/>            <b><i>url_logo_empty</i></b> - The image stub (in cases where the business logo isn't loaded).<br/>            <b><i>url_twitter</i></b> - The Twitter page.<br/>            <b><i>url_website</i></b> - The business website.<br/>            <b><i>url_youtube</i></b> - The YouTube website.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_service_list:
                    type: object
                    example: []
                  a_tip_predefine:
                    type: object
                    example: []
                  id_category:
                    type: integer
                    example: 0
                  id_currency:
                    type: integer
                    example: 0
                  id_locale:
                    type: integer
                    example: 0
                  id_rank_type:
                    type: integer
                    example: 0
                  id_region:
                    type: integer
                    example: 0
                  is_apply_surcharge:
                    type: integer
                    example: 0
                  is_franchise:
                    type: integer
                    example: 0
                  is_location_multiple:
                    type: integer
                    example: 0
                  is_profile_timezone:
                    type: integer
                    example: 0
                  is_progress_client:
                    type: integer
                    example: 0
                  is_progress_verify:
                    type: integer
                    example: 0
                  is_quiz_available:
                    type: integer
                    example: 0
                  is_tip:
                    type: integer
                    example: 0
                  is_tip_deny:
                    type: integer
                    example: 0
                  is_tip_sign:
                    type: integer
                    example: 0
                  k_business_franchisor:
                    type: string
                    example: ""
                  k_business_token:
                    type: string
                    example: ""
                  k_currency:
                    type: string
                    example: ""
                  s_reply_mail:
                    type: string
                    example: ""
                  s_reply_name:
                    type: string
                    example: ""
                  text_office_address:
                    type: string
                    example: ""
                  text_title:
                    type: string
                    example: ""
                  url_facebook:
                    type: string
                    example: ""
                  url_google:
                    type: string
                    example: ""
                  url_instagram:
                    type: string
                    example: ""
                  url_linkedin:
                    type: string
                    example: ""
                  url_logo:
                    type: string
                    example: ""
                  url_logo_empty:
                    type: string
                    example: ""
                  url_twitter:
                    type: string
                    example: ""
                  url_website:
                    type: string
                    example: ""
                  url_youtube:
                    type: string
                    example: ""

  /Wl/Business/Design/BusinessDesignModel:
    get:
      tags:
      - Business
      summary: Provides business design information.
      description: >-
        Provides business design information.
      parameters:
        - name: k_business
          description: >-
            The business key used to get design data.
            
            If `null`, the default business design data is returned.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_data</i></b> - Design data for the business containing the following keys:
            <dl>
            <dt>int <var>id_layout</var></dt>
            <dd>The layout ID. For more details, see [Wl\Business\Design\RsPageFrontendHeaderLayoutSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Design/RsPageFrontendHeaderLayoutSid.php).</dd>
            <dt>int <var>id_logo_position</var></dt>
            <dd>The logo position ID. For more details, see [Wl\Business\Design\RsBusinessDesignLogoPositionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Design/RsBusinessDesignLogoPositionSid.php).</dd>
            <dt>int <var>id_logo_style</var></dt>
            <dd>The logo style ID. For more details, see [Wl\Business\Design\RsBusinessDesignLogoStyleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Design/RsBusinessDesignLogoStyleSid.php).</dd>
            <dt>bool <var>is_attend_self</var></dt>
            <dd>If <tt>true</tt>, clients can check in using the Client Web App and Achieve Web App.</dd>
            <dt>bool <var>is_class_capacity</var></dt>
            <dd>If <tt>true</tt>, the capacity and number of clients signed up will be shown.</dd>
            <dt>bool <var>is_class_quick</var></dt>
            <dd>If <tt>true</tt>, the quick class filter will be shown.</dd>
            <dt>bool <var>is_show_name</var></dt>
            <dd>If <tt>true</tt>, the business name will be shown.</dd>
            <dt>string <var>s_color_background</var></dt>
            <dd>the frontend background color.</dd>
            <dt>string <var>s_color_header</var></dt>
            <dd>The frontend menu header color.</dd>
            <dt>string <var>s_color_menu_border</var></dt>
            <dd>The frontend menu border color.</dd>
            <dt>string <var>s_color_menu_element</var></dt>
            <dd>The menu element color.</dd>
            <dt>string <var>s_color_menu_hover</var></dt>
            <dd>The frontend menu hover color.</dd>
            <dt>string <var>s_color_menu_hover_background</var></dt>
            <dd>The background color of the frontend menu hover.</dd>
            <dt>string <var>s_color_menu_press</var></dt>
            <dd>The frontend menu press color.</dd>
            <dt>string <var>s_color_submenu</var></dt>
            <dd>The frontend submenu color.</dd>
            <dt>string <var>s_color_submenu_element</var></dt>
            <dd>The frontend submenu element color.</dd>
            <dt>string <var>s_color_submenu_hover</var></dt>
            <dd>The frontend submenu hover color.</dd>
            <dt>string <var>s_color_submenu_press</var></dt>
            <dd>The frontend submenu press color.</dd>
            <dt>string <var>s_fb_pixel_id</var></dt>
            <dd>The Facebook Pixel ID, used for Facebook Analytics tracking. This will be an empty string if tracking is disabled.</dd>
            <dt>string <var>s_ga_tracking_id</var></dt>
            <dd>The Google Analytics Tracking ID, used for Google Analytics tracking. This will be an empty string if tracking is disabled.</dd>
            <dt>string <var>s_gtm_container_id</var></dt>
            <dd>The Google Tag Manager Container ID, used for Google Analytics tracking. This will be an empty string if tracking is disabled.</dd>
            <dt>string <var>s_url_background</var></dt>
            <dd>The path to the background image.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_data:
                    type: object
                    example: []

  /Wl/Business/Franchise/Location/BusinessFranchiseLocationModel:
    get:
      tags:
      - Business
      summary: Manages franchisor locations.
      description: >-
        Manages franchisor locations.
      parameters:
        - name: id_business_franchise_location
          description: >-
            Determines which locations should be returned.
            
            One of the [Wl\Business\Franchise\Location\BusinessFranchiseLocationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Franchise/Location/BusinessFranchiseLocationSid.php) constants.
            
            If `null`, [Wl\Business\Franchise\Location\BusinessFranchiseLocationSid::ALL](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Franchise/Location/BusinessFranchiseLocationSid.php) is used.

          in: query
          schema:
            type: string
        - name: id_report
          description: >-
            Determines the report for which data should be returned.
            
            One of the [RsReportSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsReportSid.php) constants.
            
            If `null`, the report isn't set.

          in: query
          schema:
            type: string
        - name: is_include_churn
          description: >-
            Determines whether to include churned/removed locations.
            
            If `true`, all locations are listed (regardless of their status).

          in: query
          schema:
            type: string
        - name: is_include_non_api
          description: >-
            Determines whether to include locations marked to not be displayed on franchisor website.
            
            If `true`, all locations are listed (regardless of this setting).

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_city_list</i></b> - The city list. Each element has the next structure:
            <dl>
            <dt>
            string <var>k_city</var>
            </dt>
            <dd>
            The city key.
            </dd>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            The country key.
            </dd>
            <dt>
            string <var>k_state</var>
            </dt>
            <dd>
            The state key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The city title.
            </dd>
            </dl><br/>            <b><i>a_country_list</i></b> - The country list. Each element has the next structure:
            <dl>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            The country key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The country title.
            </dd>
            </dl><br/>            <b><i>a_location_list</i></b> - The location list. Each element has the next structure:
            <dl>
            <dt>
            string <var>k_city</var>
            </dt>
            <dd>
            The city key.
            </dd>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            The country key.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The location key.
            </dd>
            <dt>
            string <var>k_region</var>
            </dt>
            <dd>
            The franchise region key.
            </dd>
            <dt>
            string <var>k_state</var>
            </dt>
            <dd>
            The state key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The location title.
            </dd>
            </dl><br/>            <b><i>a_region_list</i></b> - The region list. Each element has the next structure:
            <dl>
            <dt>
            string <var>k_region</var>
            </dt>
            <dd>
            The franchise region key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The franchise region title.
            </dd>
            </dl><br/>            <b><i>a_state_list</i></b> - The state list. Each element has the next structure:
            <dl>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            The country key.
            </dd>
            <dt>
            string <var>k_state</var>
            </dt>
            <dd>
            The state key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The state title.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_city_list:
                    type: object
                    example: []
                  a_country_list:
                    type: object
                    example: []
                  a_location_list:
                    type: object
                    example: []
                  a_region_list:
                    type: object
                    example: []
                  a_state_list:
                    type: object
                    example: []

  /Wl/Business/Lead/BusinessLeadModel:
    post:
      tags:
      - Business
      summary: Creates a new business lead request within the Partner Program.
      description: >-
        Creates a new business lead request within the Partner Program.

      requestBody:
        description: >-
              <b><i>k_business_partner</i></b> -
              The business's partner key.
              <br/>
              <b><i>text_business_name</i></b> -
              The business's name.
              <br/>
              <b><i>text_client_name</i></b> -
              The client's full name.
              <br/>
              <b><i>text_email</i></b> -
              The client's email.
              <br/>
              <b><i>text_phone</i></b> -
              The client's phone number.
              <br/>
              <b><i>text_promo_code</i></b> -
              The business's partner promo code.
              <br/>
              <b><i>url_website</i></b> -
              The website URL.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_business_partner:
                      description: >- 
                        The business's partner key.

                      type: string
                    text_business_name:
                      description: >- 
                        The business's name.

                      type: string
                    text_client_name:
                      description: >- 
                        The client's full name.

                      type: string
                    text_email:
                      description: >- 
                        The client's email.

                      type: string
                    text_phone:
                      description: >- 
                        The client's phone number.

                      type: string
                    text_promo_code:
                      description: >- 
                        The business's partner promo code.

                      type: string
                    url_website:
                      description: >- 
                        The website URL.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Business/Partner/PartnerSettingsModel:
    get:
      tags:
      - Business
      summary: Works with partner settings of the business.
      description: >-
        Works with partner settings of the business.
        This information is entered by a staff member when a client enrolls into Partner Program and uses a custom landing page, which
        is available by special business URL.
      parameters:
        - name: text_code
          description: >-
            The unique code that a business can provide other businesses to tell them about system.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>id_business_tour</i></b> - The homepage tour of the business, which depends on the type.<br/>            <b><i>k_business</i></b> - The business key.<br/>            <b><i>text_name_first</i></b> - The first name of the business representative.<br/>            <b><i>text_name_last</i></b> - The last name of the business representative.<br/>            <b><i>text_position</i></b> - The job title of the business representative.<br/>            <b><i>text_review</i></b> - The text of the review about the WellnessLiving system.<br/>            <b><i>url_photo</i></b> - A link to the photo of the business representative.
            
            `null` in case when image is not uploaded.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  id_business_tour:
                    type: integer
                    example: 0
                  k_business:
                    type: string
                    example: ""
                  text_name_first:
                    type: string
                    example: ""
                  text_name_last:
                    type: string
                    example: ""
                  text_position:
                    type: string
                    example: ""
                  text_review:
                    type: string
                    example: ""
                  url_photo:
                    type: string
                    example: ""

  /Wl/Business/Select/BusinessSelectModel:
    get:
      tags:
      - Business
      summary: Provides the list of business that a staff member may access.
      description: >-
        Provides the list of business that a staff member may access.
      parameters:
        - name: a_config
          description: >-
            Configuration data used to determine the list of businesses returned. This array has the following keys:
            <dl>
            <dt>bool <var>is_role</var></dt>
            <dd>This will be `true` if we are checking for businesses where the user is a staff member.
            This will be `false` if we are checking for businesses where the user is a client.</dd>
            <dt>string <var>[k_business]</var></dt>
            <dd>The business key.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business in which a list of business is requested.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User who is requesting the list of businesses.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_select</i></b> - Business list with additional parameters for a business select HTML component.
            This array contains the following keys and values.
            <dl>
            <dt>array <var>a_business<var></dt>
            <dd>List of businesses the user can access. It is an array, each value is an array with the following keys:<dl>
            <dt>string <var>k_business<var></dt>
            <dd>The key of the business.</dd>
            <dt>string <var>s_title<var></dt>
            <dd>The name of the business.</dd>
            <dt>bool <var>selected<var></dt>
            <dd>This will be true for the current business.</dd>
            </dl></dd>
            <dt>string <var>is_select<var></dt>
            <dd>This will be `true` if one of the listed businesses is selected.</dd>
            <dt>string <var>name<var></dt>
            <dd>Information for the widget, the name of the key in the list. This should always be `k_business`.</dd>
            <dt>string <var>onchange<var></dt>
            <dd>Information for the widget, what the widget will do on selection.</dd>
            <dt>string <var>s_id<var></dt>
            <dd>Information for the widget, the widget instance ID.</dd>
            <dt>string <var>s_style<var></dt>
            <dd>Information for the widget, any additional CSS to apply.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_select:
                    type: object
                    example: []

  /Wl/Business/Type/BusinessTypeListModel:
    get:
      tags:
      - Business
      summary: Retrieves a list of business types.
      description: >-
        Retrieves a list of business types.
      responses:
        '200':
          description: >-
            <b><i>a_business_type</i></b> - A list of business types. Each element has the next structure: <dl>
            <dt>string <var>k_business_type</var></dt>
            <dd>The key of business type.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The title of business type.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business_type:
                    type: object
                    example: []

  /Wl/Business/User/Subscribe/SubscribeModel:
    get:
      tags:
      - Business
      summary: Manages a user`s subscription in a business.
      description: >-
        Manages a user`s subscription in a business.
      parameters:
        - name: k_business
          description: >-
            The business key used for users to subscribe, unsubscribe, and receive information about the status of the subscription.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user whose subscription status needs to be checked or switched to subscribed/unsubscribed.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_subscribe</i></b> - Information about the user`s subscription.
            
            When getting information, `true` indicates the user has an email subscription in the business (`false` otherwise).
            
            When changing a subscription, `true` subscribes the user in the business. `false` unsubscribes the user in the business.
            
            This will be `null` if not set yet.<br/>            <b><i>is_subscribe_sms</i></b> - Information about the user`s subscription.
            
            When getting information, `true` indicates the user has an SMS subscription in the business (`false` otherwise).
            
            When changing a subscription, `true` subscribes the user in the business. `false1 unsubscribes the user in the business.
            
            This will be `null` if not set yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_subscribe:
                    type: integer
                    example: 0
                  is_subscribe_sms:
                    type: integer
                    example: 0
    put:
      tags:
      - Business
      summary: Manages a user`s subscription in a business.
      description: >-
        Manages a user`s subscription in a business.
      parameters:
        - name: is_subscribe
          description: >-
            Information about the user`s subscription.
            
            When getting information, `true` indicates the user has an email subscription in the business (`false` otherwise).
            
            When changing a subscription, `true` subscribes the user in the business. `false` unsubscribes the user in the business.
            
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: is_subscribe_sms
          description: >-
            Information about the user`s subscription.
            
            When getting information, `true` indicates the user has an SMS subscription in the business (`false` otherwise).
            
            When changing a subscription, `true` subscribes the user in the business. `false1 unsubscribes the user in the business.
            
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key used for users to subscribe, unsubscribe, and receive information about the status of the subscription.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user whose subscription status needs to be checked or switched to subscribed/unsubscribed.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Catalog/Cart/CartModel:
    get:
      tags:
      - Catalog
      summary: Displays information about the cart in the catalog.
      description: >-
        Displays information about the cart in the catalog.
      parameters:
        - name: a_item
          description: >-
            the list of items in the cart.
            <dl>
            <dt>int <var>i_quantity</var></dt>
            <dd>The quantity of sale items.</dd>
            <dt>int <var>id_sale</var></dt>
            <dd>The sale item type, one of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The sale item key.</dd>
            <dt>string <var>k_shop_product_option</var></dt>
            <dd>The shop product option. If <tt>null</tt>, the sale item has no options.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code.
            
            If `null`, the discount code has been reset.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.
            
            This will be `0` for guests.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_discount_item</i></b> - The list of discounts for each item.
            
            Keys refer to unique item keys, and values refer to discount amounts for the item.<br/>            <b><i>a_tax_list</i></b> - Values derived for individual tax rates.
            
            Keys refer to tax keys, and values refer to the amount of tax in the cart.<br/>            <b><i>m_discount</i></b> - The full discount of the cart.
            
            If `null`, the discount isn't calculated yet.<br/>            <b><i>m_discount_total</i></b> - The total discount amount.<br/>            <b><i>m_subtotal</i></b> - The total amount in the catalog cart without tax.
            
            If `null`, the total amount isn't set yet.<br/>            <b><i>m_tax</i></b> - The tax amount.
            
            If `null`, the tax amount isn't set yet.<br/>            <b><i>m_tip_purchase</i></b> - The amount of appointment tips.<br/>            <b><i>m_total</i></b> - The total amount in the catalog cart.
            
            If `null`, the total amount isn't set yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_discount_item:
                    type: object
                    example: []
                  a_tax_list:
                    type: object
                    example: []
                  m_discount:
                    type: string
                    example: ""
                  m_discount_total:
                    type: string
                    example: ""
                  m_subtotal:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  m_tip_purchase:
                    type: string
                    example: ""
                  m_total:
                    type: string
                    example: ""

  /Wl/Catalog/Cart/LimitQuantityModel:
    get:
      tags:
      - Catalog
      summary: Displays information about the quantity limit when a promotion (Purchase Option) is added to the cart.
      description: >-
        Displays information about the quantity limit when a promotion (Purchase Option) is added to the cart.
      parameters:
        - name: a_item
          description: >-
            The cart items list with the next structure: <dl>
            <dt>int <var>i_quantity</var></dt>
            <dd>The quantity of sale items.</dd>
            <dt>int <var>id_sale</var></dt>
            <dd>The sale item type. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The sale item ID.</dd>
            <dt>string <var>k_shop_product_option</var></dt>
            <dd>The shop product option. <tt>null</tt> if the sale item has no options.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business in which the purchase will be made.

          in: query
          schema:
            type: string
        - name: k_promotion
          description: >-
            The promotion key to add to the cart.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>i_purchase_already</i></b> - The quantity if promotions have already been purchased by the current user.
            
            If `true`, the quantity exceeded. Otherwise, this will be `false`.
            
            This will be `null` if not set yet, there's no limit quantity, or the limit quantity isn't exceeded.<br/>            <b><i>i_purchase_current</i></b> - The current quantity of a promotion with the quantity limit in the cart.
            
            This will be `null` if not set yet, there's no limit quantity, or the limit quantity isn't exceeded.<br/>            <b><i>i_quantity_limit</i></b> - The quantity limit of the promotion.
            
            This will be `null` if not set yet or if there's no limit quantity.<br/>            <b><i>is_limit_exceeded</i></b> - Determines whether the limit quantity has been exceeded.
            
            If `true`, the limit quantity has been exceeded. Otherwise, this will be `false`.
            
            This will be `null` if not set yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  i_purchase_already:
                    type: integer
                    example: 0
                  i_purchase_current:
                    type: integer
                    example: 0
                  i_quantity_limit:
                    type: integer
                    example: 0
                  is_limit_exceeded:
                    type: integer
                    example: 0

  /Wl/Catalog/CatalogList/ElementModel:
    get:
      tags:
      - Catalog
      summary: Displays information about a certain item in the store.
      description: >-
        Displays information about a certain item in the store.
        <br /><br />
        When using this endpoint, note that the terms "promotion" and "Purchase Option" refer to the same thing.
      parameters:
        - name: a_discount_code
          description: >-
            Information about the discount code:
            <dl>
            <dt>string <var>f_amount</var></dt>
            <dd>The fixed amount of the discount.</dd>
            <dt>float <var>f_percent</var></dt>
            <dd>The percentage amount of the discount.</dd>
            <dt>int <var>i_limit</var></dt>
            <dd></dd>
            <dt>string <var>k_discount_code</var></dt>
            <dd>The discount code key.</dd>
            <dt>string <var>s_discount_code</var></dt>
            <dd>The discount code value.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: a_sale_id_group
          description: >-
            The list of items grouped by sale categories on the store page.
            Keys refer to sale IDs from [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php), and values refer to data to identify an item:<dl>
            <dt>int <var>id_sale</var></dt>
            <dd>The item category ID. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The primary key of item.</dd>
            <dt>string <var>k_shop_product_option</var></dt>
            <dd>The product option or <tt>0</tt> for any other cases.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: dl_client_prorate
          description: >-
            The client prorate date.
            
            This will be `null` in cases where the client prorate date hasn't passed.

          in: query
          schema:
            type: string
        - name: i_image_height
          description: >-
            The image height in pixels. Specify this value if you need the image to be returned in a specific size.
            The returned image will have default thumbnail size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: i_image_width
          description: >-
            The image width in pixels. Specify this value if you need the image to be returned in a specific size.
            The returned image will have default thumbnail size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: i_promotion_image_height
          description: >-
            The promotion image height in pixels. Specify this value if you need the image to be returned in a specific size.
            The returned image will have default thumbnail size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: i_promotion_image_width
          description: >-
            The promotion image width in pixels. Specify this value if you need the image to be returned in a specific size.
            The returned image will have default thumbnail size if this value isn't specified.

          in: query
          schema:
            type: string
        - name: id_sale
          description: >-
            The ID of item category.
            One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            Determines whether the API is called in the backend mode.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The item key.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: k_shop_product_option
          description: >-
            The product option key.
            
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: text_item
          description: >-
            A list of goods to get information for. Every element must contain the next keys:
            <dl>
            <dt>int <var>id_sale</var></dt>
            <dd>The ID of the item category. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The item key.</dd>
            <dt>string <var>k_shop_product_option</var></dt>
            <dd>The product option key. This will be <tt>0</tt> if the item isn't a product.</dd>
            </dl>
            Note that this must be serialized via JSON.
            
            If this field is specified, don't specify any of the following fields:
            * [Wl\Catalog\CatalogList\ElementModel::$id_sale](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/CatalogList/ElementModel.php)
            * [Wl\Catalog\CatalogList\ElementModel::$k_id](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/CatalogList/ElementModel.php)
            * [Wl\Catalog\CatalogList\ElementModel::$k_shop_product_option](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/CatalogList/ElementModel.php)
            
            This will be `null` to get information for only one item.

          in: query
          schema:
            type: string
        - name: uid_customer
          description: >-
            The UID of a customer (user) for whom the purchase is made. This is used in the backend to calculate discounts.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_age_restriction</i></b> - The age restriction configuration.
            
            Age restrictions for an item apply when they're configured for a specific item and the API is requested from the backend
            or when age restriction are public.
            
            <dl>
            <dt>int|null <var>i_age_from</var></dt>
            <dd>The minimum age permitted for the event. This will be `null` if a minimum age isn't set or available.</dd>
            <dt>int|null <var>i_age_to</var></dt>
            <dd>The maximum age permitted for the event. This will be `null` if a maximum age isn't set or available.</dd>
            <dt>bool <var>is_age_public</var></dt>
            <dd>If `true`, age restrictions are public and available. Otherwise, this will be `false` if they're hidden.
            When restrictions are hidden and the current user isn't a staff member, the age range will be empty.</dd>
            </dl><br/>            <b><i>a_data</i></b> - Additional information specific for the item.
            
            The structure may be different depending on the item category.
            <dl>
            <dt>
            bool <var>is_renew_public</var>
            </dt>
            <dd>
            This applies only for promotions.
            <tt>true</tt> — clients can set promotion auto-renew.<br>
            <tt>false</tt> — clients can't set promotion auto-renew.
            </dd>
            </dl>
            
            Consider the following examples:
            * For a product, this contains inventory information.
            * For a gift card, this contains possible amounts.
            * For a session pass/membership/package, this contains information about start and stop dates.<br/>            <b><i>a_image</i></b> - Image information:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            The height in pixels.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            The width in pixels.
            </dd>
            <dt>
            bool <var>is_empty</var>
            </dt>
            <dd>
            <tt>true</tt> — the item has no image (in this case, ignore the other keys of this array).<br>
            <tt>false</tt> — the item has an image.
            </dd>
            <dt>
            string <var>s_url</var>
            </dt>
            <dd>
            The image URL.
            </dd>
            </dl><br/>            <b><i>a_installment_template</i></b> - A list of installment plans. Each element has the following next keys:
            <dl>
            <dt>
            int <var>i_count</var>
            </dt>
            <dd>
            The number of payments.
            </dd>
            <dt>
            int <var>id_duration</var>
            </dt>
            <dd>
            The duration of a single period. One of the [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) constants.
            </dd>
            <dt>
            int <var>i_period</var>
            </dt>
            <dd>
            The number of periods specified by <var>id_period</var> between individual payments.
            </dd>
            <dt>
            string <var>k_currency</var>
            </dt>
            <dd>
            The payment currency Key.
            </dd>
            <dt>
            string <var>k_pay_installment_template</var>
            </dt>
            <dd>
            The key of the installment plan template.
            </dd>
            <dt>
            string <var>m_amount</var>
            </dt>
            <dd>
            The amount of the installment plan.
            </dd>
            <dt>
            string <var>s_duration</var>
            </dt>
            <dd>
            The title of the installment plan.
            </dd>
            </dl><br/>            <b><i>a_item</i></b> - The list of information pertaining to the specified item.
            <dl>
            <dt>array <var>a_data</var></dt>
            <dd>Contains additional data for the sale item.</dd>
            
            <dt>array <var>a_image</var></dt>
            <dd>Contains information about one image connected to a sale item.</dd>
            
            <dt>array <var>a_tax</var></dt>
            <dd>Contains information about taxes. The structure of this array is described in {@link RsTax::$a_tax}.</dd>
            
            <dt>string <var>id_purchase_option_view</var></dt>
            <dd>The Purchase Option view type. One of the [Wl\Catalog\PurchaseOptionViewSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/PurchaseOptionViewSid.php) constants.</dd>
            
            <dt>string <var>m_discount_code</var></dt>
            <dd>The discount code amount.</dd>
            
            <dt>string <var>m_discount_login</var></dt>
            <dd>The discount amount for the client type.</dd>
            
            <dt>string <var>s_comment</var></dt>
            <dd>Additional information about the sale item. For example, information about 'introductory offer'.</dd>
            
            <dt>string <var>s_price</var></dt>
            <dd>The price of the sale item in a human-readable format.</dd>
            
            <dt>string <var>s_sale</var></dt>
            <dd>The category title of the sale item.</dd>
            
            <dt>string <var>s_title</var></dt>
            <dd>The title of the sale item.</dd>
            </dl><br/>            <b><i>a_tax</i></b> - A list of the item's taxes.
            Keys refer tax keys, and values refer to the amount of tax.<br/>            <b><i>f_price</i></b> - The price of the sale item.<br/>            <b><i>f_price_include</i></b> - The price of the sale item, including tax.<br/>            <b><i>f_price_retail_product</i></b> - The retail price of the product. This will be empty if this isn't a product.<br/>            <b><i>f_price_total_enrollment</i></b> - Full price of event. This will be empty if this isn't an event.<br/>            <b><i>f_tax</i></b> - The tax amount.<br/>            <b><i>html_description</i></b> - The sale item description.<br/>            <b><i>html_special</i></b> - Special instructions for the sale item.<br/>            <b><i>id_purchase_item</i></b> - The purchase item category ID.
            One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.<br/>            <b><i>id_purchase_option_view</i></b> - The ID of the item view category. One of the [Wl\Catalog\PurchaseOptionViewSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/PurchaseOptionViewSid.php) constants.<br/>            <b><i>id_sale</i></b> - The ID of item category.
            One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.<br/>            <b><i>is_contract</i></b> - If `true`, the item requires a contract. Otherwise, this will be `false`.<br/>            <b><i>k_id</i></b> - The item key.<br/>            <b><i>k_shop_product_option</i></b> - The product option key.
            
            This will be `null` if not set yet.<br/>            <b><i>m_discount_code</i></b> - The discount amount for a discount code.<br/>            <b><i>m_discount_login</i></b> - The discount amount for a user's type.<br/>            <b><i>m_price</i></b> - The price on the price tag.<br/>            <b><i>m_price_include</i></b> - The price, including taxes.<br/>            <b><i>m_tax</i></b> - The tax amount.<br/>            <b><i>s_comment</i></b> - Additional comment(s).
            For example, information about 'introductory offer'.<br/>            <b><i>s_price</i></b> - The price of the sale item in a human-readable format.<br/>            <b><i>s_sale</i></b> - The category title of the sale item.<br/>            <b><i>s_title</i></b> - The sale item title.<br/>            <b><i>text_price</i></b> - The price on the price tag, with the currency sign.<br/>            <b><i>text_sale</i></b> - The title of the item category.<br/>            <b><i>text_title</i></b> - The item title.<br/>            <b><i>xml_description</i></b> - A detailed description.<br/>            <b><i>xml_special</i></b> - Special instructions.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_age_restriction:
                    type: object
                    example: []
                  a_data:
                    type: object
                    example: []
                  a_image:
                    type: object
                    example: []
                  a_installment_template:
                    type: object
                    example: []
                  a_item:
                    type: object
                    example: []
                  a_tax:
                    type: object
                    example: []
                  f_price:
                    type: string
                    example: ""
                  f_price_include:
                    type: string
                    example: ""
                  f_price_retail_product:
                    type: string
                    example: ""
                  f_price_total_enrollment:
                    type: string
                    example: ""
                  f_tax:
                    type: string
                    example: ""
                  html_description:
                    type: string
                    example: ""
                  html_special:
                    type: string
                    example: ""
                  id_purchase_item:
                    type: integer
                    example: 0
                  id_purchase_option_view:
                    type: integer
                    example: 0
                  id_sale:
                    type: integer
                    example: 0
                  is_contract:
                    type: integer
                    example: 0
                  k_id:
                    type: string
                    example: ""
                  k_shop_product_option:
                    type: string
                    example: ""
                  m_discount_code:
                    type: string
                    example: ""
                  m_discount_login:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_price_include:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  s_comment:
                    type: string
                    example: ""
                  s_price:
                    type: string
                    example: ""
                  s_sale:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  text_price:
                    type: string
                    example: ""
                  text_sale:
                    type: string
                    example: ""
                  text_title:
                    type: string
                    example: ""
                  xml_description:
                    type: string
                    example: ""
                  xml_special:
                    type: string
                    example: ""

  /Wl/Catalog/CatalogList/ListModel:
    get:
      tags:
      - Catalog
      summary: Displays information about store items.
      description: >-
        Displays information about store items.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of a location.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_product</i></b> - The list of all sale items.<br/>            <b><i>a_product_duplicate</i></b> - The list of products to show with duplicates.
            
            Products have their own order within every shop category, and they can be related to several categories.
            As a design decision, products are sorted in the backend using duplicates for every category.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_product:
                    type: object
                    example: []
                  a_product_duplicate:
                    type: object
                    example: []

  /Wl/Catalog/Payment/PaymentModel:
    post:
      tags:
      - Catalog
      summary: Purchases an item and performs the payment in the store.
      description: >-
        Purchases an item and performs the payment in the store.
        <br /><br />
        This endpoint uses a CAPTCHA check. To pass the CAPTCHA, consult the CAPTCHA API documentation.
        The documentation specifies that a captcha must be sent for a specific action. For this API, an action is `1064`.
      parameters:
        - name: a_commission
          description: >-
            The staff commission earned for this purchase. If this isn't empty, it has the next fields: <dl>
            <dt>string <var>k_staff</var></dt>
            <dd>The staff key.</dd>
            <dt>string <var>k_staff_pay</var></dt>
            <dd>The payment schema key.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: id_mode
          description: >-
            The WellnessLiving mode type (required). One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_guest
          description: >-
            Determines if the payment owner is an anonymous user (optional).

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            Specify this if operations are performed by the staff member (optional).

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key (required).

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key (required).

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user's key (required).

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_item</i></b> -
          The list of items in the cart.
          
          This parameter is required.
          
          Every element must have the following keys:
          <dl>
          <dt>
          array [<var>a_config</var>]
          </dt>
          <dd>
          Additional configuration information. This may contain the next keys:
          <dl>
          <dt>
          array [<var>a_quick_gift</var>]
          </dt>
          <dd>
          A list of components to be added to the client. For quick gift cards only: <dl>
          <dt>int <var>i_count</var></dt>
          <dd>The quantity of elements.</dd>
          <dt>int <var>id_purchase_item</var></dt>
          <dd>The purchase type of the element. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
          <dt>string <var>k_id</var></dt>
          <dd>The primary key of the element, depending on the element type.</dd></dl>
          </dd>
          <dt>
          array [<var>a_uid_share</var>]
          </dt>
          <dd>
          An array of UIDs representing the client's relatives that share the Purchase Option.
          </dd>
          <dt>
          array [<var>a_wellness_program</var>]
          </dt>
          <dd>
          "Wellness Program" fields.
          
          <var>k_wellness_program</var> must be passed along with this array. See the description below.
          
          <dl>
          <dt>array <var>a_account</var></dt>
          <dd>See [Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel::$a_account](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) for a full description.</dd>
          <dt>array <var>a_field</var></dt>
          <dd>See [Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel::$a_field](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) for a full description.</dd>
          </dl>
          
          It's recommended to validate the fields using the POST method of the [Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) model.
          </dd>
          <dt>
          string [<var>dt_prorate</var>]
          </dt>
          <dd>
          The prorate date, used only for memberships.
          </dd>
          <dt>
          string [<var>dt_send_local</var>]
          </dt>
          <dd>
          The date when the gift card will be sent. This is only used for gift cards.
          </dd>
          <dt>
          string [<var>dt_start</var>]
          </dt>
          <dt>
          bool [<var>is_pay_when_start</var>]
          </dt>
          <dd>
          If `true`, the client won't be charged for this item until its start date. Otherwise, this will be `false`.
          The Purchase Option must have a specified start date.
          </dd>
          <dd>
          The start date, used only for memberships.
          </dd>
          <dt>
          bool [<var>is_prorate</var>]
          </dt>
          <dd>
          If this is set to `1`, this purchase will use the prorate rule. Otherwise, set this to `0`. This is only used for memberships.
          </dd>
          <dt>
          bool [<var>is_prorate_fix</var>]
          </dt>
          <dd>
          If this is set to `1`, the custom prorate amount will be used. Otherwise, set this to `0`. This is only used for memberships.
          </dd>
          <dt>
          bool [<var>is_prorate_only</var>]
          </dt>
          <dd>
          If this is set to `1`, this purchase is prorate only. Otherwise, set this to `0`. This is only used for memberships.
          </dd>
          <dt>
          bool [<var>is_renew</var>]
          </dt>
          <dd>
          If this is set to `1`, auto-renew will be enabled for the item. Otherwise, set this to `0`. This is only used for memberships.
          </dd>
          <dt>
          string [<var>k_appointment</var>]
          </dt>
          <dd>
          The appointment key, used only for appointment add-ons.
          </dd>
          <dt>
          string [<var>k_coupon_amount</var>]
          </dt>
          <dd>
          The key of the gift card amount, used only for gift cards.
          </dd>
          <dt>
          string [<var>k_staff</var>]
          </dt>
          <dt>
          string [<var>k_wellness_program</var>]
          </dt>
          <dd>
          The "Wellness Program" key. Set this for the insurance membership promotion.
          
          <var>a_wellness_program</var> array must be passed along with the key. See the array description above.
          
          <p>Use the following models to work with this type of promotion:</p>
          <ul>
          <li>[Wl\Insurance\Catalog\ProgramListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Catalog/ProgramListModel.php) to obtain list of active programs.</li>
          <li>[Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) to get and validate fields for a given program.</li>
          </ul>
          </dd>
          <dd>
          The staff member key, used only for appointment tips.
          </dd>
          <dt>
          string [<var>m_prorate_custom</var>]
          </dt>
          <dd>
          The custom prorate price, used only memberships only. This is only used if <var>is_prorate_fix</var> is <tt>true</tt>.
          </dd>
          <dt>
          string [<var>s_code</var>]
          </dt>
          <dd>
          The gift card code. This is required for gift cards.
          </dd>
          <dt>
          string [<var>s_image</var>]
          </dt>
          <dd>
          The key of the image for the gift card. If empty, the business's first gift card image will be used. Specify this only for gift cards.
          </dd>
          <dt>
          string [<var>s_mail</var>]
          </dt>
          <dd>
          The gift card receiver email. This is required for gift cards.
          </dd>
          <dt>
          string [<var>s_recipient</var>]
          </dt>
          <dd>
          The gift card receiver name. This is required for gift cards.
          </dd>
          <dt>
          string [<var>s_sender</var>]
          </dt>
          <dd>
          The gift card sender name. This is required for gift cards.
          </dd>
          <dt>
          string <var>[uid_to]</var>
          </dt>
          <dd>
          Specifies the recipient of a transfer Purchase Option.
          </dd>
          </dl>
          </dd>
          <dt>
          array[] [<var>a_tax_custom</var>]
          </dt>
          <dd>
          Customer taxes (optional). Every element must contain the following keys:
          <dl><dt>string <var>f_tax</var></dt><dd>The tax amount.</dd>
          <dt>string <var>k_tax</var></dt><dd>The tax key.</dd></dl>
          </dd>
          <dt>
          string [<var>html_contract</var>]
          </dt>
          <dd>
          The contract text. This is only required for items that require contract signing.
          </dd>
          <dt>
          int <var>i_quantity</var>
          </dt>
          <dd>
          The item quantity.
          </dd>
          <dt>
          int <var>id_sale</var>
          </dt>
          <dd>
          The item type ID. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.
          </dd>
          <dt>
          string <var>k_id</var>
          </dt>
          <dd>
          The item key.
          </dd>
          <dt>
          string [<var>k_shop_product_option</var>]
          </dt>
          <dd>
          The product option key, required only for products.
          </dd>
          <dt>
          string [<var>m_price_custom</var>]
          </dt>
          <dd>
          The custom price (optional).
          </dd>
          <dt>
          string <var>[s_signature]</var>
          </dt>
          <dd>
          The client signature, used for items that require a signed contract.
          </dd>
          </dl>
          <br/>
          <b><i>a_pay_form</i></b> -
          The list of available payment sources.
          
          Each element has the next keys:
          <dl>
          <dt>
          array [<var>a_pay_card</var>]
          </dt>
          <dd>
          The payment card information:
          <dl>
          <dt>
          array <var>a_pay_address</var>
          </dt>
          <dd>
          The payment address:
          <dl>
          <dt>boolean <var>is_new</var></dt>
          <dd>Set this value to <tt>1</tt> to add a new payment address or <tt>0</tt> to use a saved payment address.</dd>
          <dt>string [<var>k_geo_country</var>]</dt>
          <dd>The key of the country used for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>k_geo_region</var>]</dt>
          <dd>The key of the region for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>k_pay_address</var>]</dt>
          <dd>The key of the saved payment address. Specify this to use a saved address.</dd>
          <dt>string [<var>s_city</var>]</dt>
          <dd>The city used for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>s_name</var>]</dt>
          <dd>The card name. Specify this to add a new address.</dd>
          <dt>string [<var>s_phone</var>]</dt>
          <dd>The payment phone number. Specify this to add a new address.</dd>
          <dt>string [<var>s_postal</var>]</dt>
          <dd>The postal code for the payment address. Specify this to add a new address.</dd>
          <dt>string [<var>s_street1</var>]</dt>
          <dd>The payment address. Specify this to add a new address.</dd>
          <dt>string [<var>s_street2</var>]</dt>
          <dd>The optional payment address. Specify this to add a new address.</dd>
          </dl>
          </dd>
          <dt>
          int [<var>i_csc</var>]
          </dt>
          <dd>
          The credit card CSC. Specify this to add a new card.
          </dd>
          <dt>
          int [<var>i_month</var>]
          </dt>
          <dd>
          The credit card expiration month. Specify this to add a new card.
          </dd>
          <dt>
          int [<var>i_year</var>]
          </dt>
          <dd>
          The credit card expiration year. Specify this to add a new card.
          </dd>
          <dt>
          boolean <var>is_new</var>
          </dt>
          <dd>
          Set this to <tt>1</tt> to add a new card or <tt>0</tt> to use a saved card.
          </dd>
          <dt>
          string [<var>k_pay_bank</var>]
          </dt>
          <dd>
          The key of a credit card. Specify this to use saved card.
          </dd>
          <dt>
          string [<var>s_comment</var>]
          </dt>
          <dd>
          Optional comment(s). Specify this to add a new card.
          </dd>
          <dt>
          string [<var>s_number</var>]
          </dt>
          <dd>
          The card number. Specify this to add a new card.
          </dd>
          </dl>
          </dd>
          <dt>
          string <var>f_amount</var>
          </dt>
          <dd>
          The amount of money to withdraw using this payment source.
          </dd>
          <dt>
          boolean [<var>is_hide</var>]
          </dt>
          <dd>
          Determines whether this payment method is hidden.
          </dd>
          <dt>
          boolean [<var>is_success</var>=<tt>false</tt>]
          </dt>
          <dd>
          Identifies whether this source was successfully charged.
          </dd>
          <dt>
          string [<var>m_surcharge</var>]
          </dt>
          <dd>
          The client-side calculated surcharge.
          </dd>
          <dt>
          string [<var>s_index</var>]
          </dt>
          <dd>
          The index of this form (optional).
          </dd>
          <dt>
          string <var>sid_pay_method</var>
          </dt>
          <dd>
          The payment method ID.
          </dd>
          </dl>
          <br/>
          <b><i>a_quiz_response</i></b> -
          The list of quiz response keys.
          Keys refer to quiz keys, and values refer to responses or special values from the {@link Wl\Quiz\Response\QuizResponse::RESPONSE_SKIP} constant.
          <br/>
          <b><i>f_discount_percent</i></b> -
          The percentage discount (optional).
          <br/>
          <b><i>k_pay_installment_template</i></b> -
          The installment template key (optional).
          This will be `null` if the installment plan doesn't exist or isn't set for the purchased item.
          <br/>
          <b><i>k_visit</i></b> -
          The visit key to be paid (optional).
          <br/>
          <b><i>m_discount_flat</i></b> -
          The amount to discount (optional).
          <br/>
          <b><i>m_surcharge</i></b> -
          The manual surcharge amount.
          
          An empty string represents an automatic surcharge amount.
          <br/>
          <b><i>m_tip</i></b> -
          The tip amount (optional).
          <br/>
          <b><i>text_discount_code</i></b> -
          The discount code (optional).
          <br/>
          <b><i>text_receipt_note</i></b> -
          The custom receipt note.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_item:
                  description: >- 
                    The list of items in the cart.
                    
                    This parameter is required.
                    
                    Every element must have the following keys:
                    <dl>
                    <dt>
                    array [<var>a_config</var>]
                    </dt>
                    <dd>
                    Additional configuration information. This may contain the next keys:
                    <dl>
                    <dt>
                    array [<var>a_quick_gift</var>]
                    </dt>
                    <dd>
                    A list of components to be added to the client. For quick gift cards only: <dl>
                    <dt>int <var>i_count</var></dt>
                    <dd>The quantity of elements.</dd>
                    <dt>int <var>id_purchase_item</var></dt>
                    <dd>The purchase type of the element. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.</dd>
                    <dt>string <var>k_id</var></dt>
                    <dd>The primary key of the element, depending on the element type.</dd></dl>
                    </dd>
                    <dt>
                    array [<var>a_uid_share</var>]
                    </dt>
                    <dd>
                    An array of UIDs representing the client's relatives that share the Purchase Option.
                    </dd>
                    <dt>
                    array [<var>a_wellness_program</var>]
                    </dt>
                    <dd>
                    "Wellness Program" fields.
                    
                    <var>k_wellness_program</var> must be passed along with this array. See the description below.
                    
                    <dl>
                    <dt>array <var>a_account</var></dt>
                    <dd>See [Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel::$a_account](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) for a full description.</dd>
                    <dt>array <var>a_field</var></dt>
                    <dd>See [Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel::$a_field](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) for a full description.</dd>
                    </dl>
                    
                    It's recommended to validate the fields using the POST method of the [Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) model.
                    </dd>
                    <dt>
                    string [<var>dt_prorate</var>]
                    </dt>
                    <dd>
                    The prorate date, used only for memberships.
                    </dd>
                    <dt>
                    string [<var>dt_send_local</var>]
                    </dt>
                    <dd>
                    The date when the gift card will be sent. This is only used for gift cards.
                    </dd>
                    <dt>
                    string [<var>dt_start</var>]
                    </dt>
                    <dt>
                    bool [<var>is_pay_when_start</var>]
                    </dt>
                    <dd>
                    If `true`, the client won't be charged for this item until its start date. Otherwise, this will be `false`.
                    The Purchase Option must have a specified start date.
                    </dd>
                    <dd>
                    The start date, used only for memberships.
                    </dd>
                    <dt>
                    bool [<var>is_prorate</var>]
                    </dt>
                    <dd>
                    If this is set to `1`, this purchase will use the prorate rule. Otherwise, set this to `0`. This is only used for memberships.
                    </dd>
                    <dt>
                    bool [<var>is_prorate_fix</var>]
                    </dt>
                    <dd>
                    If this is set to `1`, the custom prorate amount will be used. Otherwise, set this to `0`. This is only used for memberships.
                    </dd>
                    <dt>
                    bool [<var>is_prorate_only</var>]
                    </dt>
                    <dd>
                    If this is set to `1`, this purchase is prorate only. Otherwise, set this to `0`. This is only used for memberships.
                    </dd>
                    <dt>
                    bool [<var>is_renew</var>]
                    </dt>
                    <dd>
                    If this is set to `1`, auto-renew will be enabled for the item. Otherwise, set this to `0`. This is only used for memberships.
                    </dd>
                    <dt>
                    string [<var>k_appointment</var>]
                    </dt>
                    <dd>
                    The appointment key, used only for appointment add-ons.
                    </dd>
                    <dt>
                    string [<var>k_coupon_amount</var>]
                    </dt>
                    <dd>
                    The key of the gift card amount, used only for gift cards.
                    </dd>
                    <dt>
                    string [<var>k_staff</var>]
                    </dt>
                    <dt>
                    string [<var>k_wellness_program</var>]
                    </dt>
                    <dd>
                    The "Wellness Program" key. Set this for the insurance membership promotion.
                    
                    <var>a_wellness_program</var> array must be passed along with the key. See the array description above.
                    
                    <p>Use the following models to work with this type of promotion:</p>
                    <ul>
                    <li>[Wl\Insurance\Catalog\ProgramListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Catalog/ProgramListModel.php) to obtain list of active programs.</li>
                    <li>[Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) to get and validate fields for a given program.</li>
                    </ul>
                    </dd>
                    <dd>
                    The staff member key, used only for appointment tips.
                    </dd>
                    <dt>
                    string [<var>m_prorate_custom</var>]
                    </dt>
                    <dd>
                    The custom prorate price, used only memberships only. This is only used if <var>is_prorate_fix</var> is <tt>true</tt>.
                    </dd>
                    <dt>
                    string [<var>s_code</var>]
                    </dt>
                    <dd>
                    The gift card code. This is required for gift cards.
                    </dd>
                    <dt>
                    string [<var>s_image</var>]
                    </dt>
                    <dd>
                    The key of the image for the gift card. If empty, the business's first gift card image will be used. Specify this only for gift cards.
                    </dd>
                    <dt>
                    string [<var>s_mail</var>]
                    </dt>
                    <dd>
                    The gift card receiver email. This is required for gift cards.
                    </dd>
                    <dt>
                    string [<var>s_recipient</var>]
                    </dt>
                    <dd>
                    The gift card receiver name. This is required for gift cards.
                    </dd>
                    <dt>
                    string [<var>s_sender</var>]
                    </dt>
                    <dd>
                    The gift card sender name. This is required for gift cards.
                    </dd>
                    <dt>
                    string <var>[uid_to]</var>
                    </dt>
                    <dd>
                    Specifies the recipient of a transfer Purchase Option.
                    </dd>
                    </dl>
                    </dd>
                    <dt>
                    array[] [<var>a_tax_custom</var>]
                    </dt>
                    <dd>
                    Customer taxes (optional). Every element must contain the following keys:
                    <dl><dt>string <var>f_tax</var></dt><dd>The tax amount.</dd>
                    <dt>string <var>k_tax</var></dt><dd>The tax key.</dd></dl>
                    </dd>
                    <dt>
                    string [<var>html_contract</var>]
                    </dt>
                    <dd>
                    The contract text. This is only required for items that require contract signing.
                    </dd>
                    <dt>
                    int <var>i_quantity</var>
                    </dt>
                    <dd>
                    The item quantity.
                    </dd>
                    <dt>
                    int <var>id_sale</var>
                    </dt>
                    <dd>
                    The item type ID. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.
                    </dd>
                    <dt>
                    string <var>k_id</var>
                    </dt>
                    <dd>
                    The item key.
                    </dd>
                    <dt>
                    string [<var>k_shop_product_option</var>]
                    </dt>
                    <dd>
                    The product option key, required only for products.
                    </dd>
                    <dt>
                    string [<var>m_price_custom</var>]
                    </dt>
                    <dd>
                    The custom price (optional).
                    </dd>
                    <dt>
                    string <var>[s_signature]</var>
                    </dt>
                    <dd>
                    The client signature, used for items that require a signed contract.
                    </dd>
                    </dl>

                  type: object
                a_pay_form:
                  description: >- 
                    The list of available payment sources.
                    
                    Each element has the next keys:
                    <dl>
                    <dt>
                    array [<var>a_pay_card</var>]
                    </dt>
                    <dd>
                    The payment card information:
                    <dl>
                    <dt>
                    array <var>a_pay_address</var>
                    </dt>
                    <dd>
                    The payment address:
                    <dl>
                    <dt>boolean <var>is_new</var></dt>
                    <dd>Set this value to <tt>1</tt> to add a new payment address or <tt>0</tt> to use a saved payment address.</dd>
                    <dt>string [<var>k_geo_country</var>]</dt>
                    <dd>The key of the country used for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>k_geo_region</var>]</dt>
                    <dd>The key of the region for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>k_pay_address</var>]</dt>
                    <dd>The key of the saved payment address. Specify this to use a saved address.</dd>
                    <dt>string [<var>s_city</var>]</dt>
                    <dd>The city used for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>s_name</var>]</dt>
                    <dd>The card name. Specify this to add a new address.</dd>
                    <dt>string [<var>s_phone</var>]</dt>
                    <dd>The payment phone number. Specify this to add a new address.</dd>
                    <dt>string [<var>s_postal</var>]</dt>
                    <dd>The postal code for the payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>s_street1</var>]</dt>
                    <dd>The payment address. Specify this to add a new address.</dd>
                    <dt>string [<var>s_street2</var>]</dt>
                    <dd>The optional payment address. Specify this to add a new address.</dd>
                    </dl>
                    </dd>
                    <dt>
                    int [<var>i_csc</var>]
                    </dt>
                    <dd>
                    The credit card CSC. Specify this to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_month</var>]
                    </dt>
                    <dd>
                    The credit card expiration month. Specify this to add a new card.
                    </dd>
                    <dt>
                    int [<var>i_year</var>]
                    </dt>
                    <dd>
                    The credit card expiration year. Specify this to add a new card.
                    </dd>
                    <dt>
                    boolean <var>is_new</var>
                    </dt>
                    <dd>
                    Set this to <tt>1</tt> to add a new card or <tt>0</tt> to use a saved card.
                    </dd>
                    <dt>
                    string [<var>k_pay_bank</var>]
                    </dt>
                    <dd>
                    The key of a credit card. Specify this to use saved card.
                    </dd>
                    <dt>
                    string [<var>s_comment</var>]
                    </dt>
                    <dd>
                    Optional comment(s). Specify this to add a new card.
                    </dd>
                    <dt>
                    string [<var>s_number</var>]
                    </dt>
                    <dd>
                    The card number. Specify this to add a new card.
                    </dd>
                    </dl>
                    </dd>
                    <dt>
                    string <var>f_amount</var>
                    </dt>
                    <dd>
                    The amount of money to withdraw using this payment source.
                    </dd>
                    <dt>
                    boolean [<var>is_hide</var>]
                    </dt>
                    <dd>
                    Determines whether this payment method is hidden.
                    </dd>
                    <dt>
                    boolean [<var>is_success</var>=<tt>false</tt>]
                    </dt>
                    <dd>
                    Identifies whether this source was successfully charged.
                    </dd>
                    <dt>
                    string [<var>m_surcharge</var>]
                    </dt>
                    <dd>
                    The client-side calculated surcharge.
                    </dd>
                    <dt>
                    string [<var>s_index</var>]
                    </dt>
                    <dd>
                    The index of this form (optional).
                    </dd>
                    <dt>
                    string <var>sid_pay_method</var>
                    </dt>
                    <dd>
                    The payment method ID.
                    </dd>
                    </dl>

                  type: object
                a_quiz_response:
                  description: >- 
                    The list of quiz response keys.
                    Keys refer to quiz keys, and values refer to responses or special values from the {@link Wl\Quiz\Response\QuizResponse::RESPONSE_SKIP} constant.

                  type: object
                f_discount_percent:
                  description: >- 
                    The percentage discount (optional).

                  type: string
                k_pay_installment_template:
                  description: >- 
                    The installment template key (optional).
                    This will be `null` if the installment plan doesn't exist or isn't set for the purchased item.

                  type: string
                k_visit:
                  description: >- 
                    The visit key to be paid (optional).

                  type: string
                m_discount_flat:
                  description: >- 
                    The amount to discount (optional).

                  type: string
                m_surcharge:
                  description: >- 
                    The manual surcharge amount.
                    
                    An empty string represents an automatic surcharge amount.

                  type: string
                m_tip:
                  description: >- 
                    The tip amount (optional).

                  type: string
                text_discount_code:
                  description: >- 
                    The discount code (optional).

                  type: string
                text_receipt_note:
                  description: >- 
                    The custom receipt note.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_login_activity</i></b> - The key of login activity.
            
            This will be `null` if not set yet.<br/>            <b><i>k_purchase</i></b> - The purchase key created during payment.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_login_activity:
                    type: string
                    example: ""
                  k_purchase:
                    type: string
                    example: ""

  /Wl/Catalog/StaffApp/CatalogCart/CatalogCartModel:
    get:
      tags:
      - Catalog
      summary: Calculates price data for a sale item.
      description: >-
        Calculates price data for a sale item.
        <br /><br />
        Note that the terms "promotion" and "Purchase Option" refer to the same thing.
      parameters:
        - name: a_item
          description: >-
            The list of cart items with the next structure:
            <dl>
            <dt>array [<var>a_config</var>]</dt>
            <dd>
            The list of purchase item additional options:
            <dl>
            <dt>string [<var>f_price</var>]</dt>
            <dd>The custom price.</dd>
            <dt>string [<var>dt_prorate</var>]</dt>
            <dd>The prorate date. This should be passed when <var>is_prorate</var>=<tt>true</tt>.</dd>
            <dt>string [<var>dt_start</var>]</dt>
            <dd>The promotion start date.</dd>
            <dt>bool [<var>is_prorate</var>]</dt>
            <dd>Determines whether to prorate the first payment.</dd>
            <dt>bool [<var>is_prorate_fix</var>]</dt>
            <dd>Determines if the client should pay for the first period now.</dd>
            <dt>bool [<var>is_prorate_only</var>]</dt>
            <dd>Determines whether the selected option 'pay prorate amount only' should only include the prorate amount.</dd>
            <dt>string [<var>m_custom</var>]</dt>
            <dd>The custom price of the gift card.</dd>
            <dt>string [<var>dt_send_local</var>]</dt>
            <dd>The date when the gift card email must be sent.</dd>
            <dt>bool <var>is_mail</var></dt>
            <dd>If <tt>true</tt>, the gift card will be sent via email. Otherwise, <tt>false</tt> if the gift card will be printed.</dd>
            <dt>string [<var>s_mail</var>]</dt>
            <dd>The recipient's email.</dd>
            <dt>string [<var>s_message</var>]</dt>
            <dd>The message.</dd>
            <dt>string <var>s_recipient</var></dt>
            <dd>The recipient's name.</dd>
            <dt>string <var>s_sender</var></dt>
            <dd>The sender's name.</dd>
            <dt>string <var>m_prorate_custom</var></dt>
            <dd>The amount of money for the prorate period. This should only be passed in the case of manual entry.</dd>
            <dt>string <var>k_coupon</var></dt>
            <dd>The coupon key.</dd>
            <dt>string <var>k_coupon_amount</var></dt>
            <dd>The coupon amount key.</dd>
            </dl>
            </dd>
            <dt>array [<var>a_tax_custom</var>]</dt>
            <dd>
            Information about taxes. If not passed, no custom taxes have been applied to the sale item.
            If a record is present, the tax is custom using the next structure:
            <dl>
            <dt>string <var>f_tax</var></dt>
            <dd>The tax amount.</dd>
            <dt>string <var>k_tax</var></dt>
            <dd>The tax keys.</dd>
            </dl>
            </dd>
            <dt>int [<var>f_discount_percent</var>]</dt>
            <dd>The discount percentage, applied to the current item.</dd>
            <dt>int <var>i_quantity</var></dt>
            <dd>The quantity of sale items.</dd>
            <dt>int <var>id_sale</var></dt>
            <dd>The sale item type. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>The sale item key.</dd>
            <dt>string <var>k_shop_product_option</var></dt>
            <dd>
            The store product option key. This will be <tt>null</tt> if the sale item has no options.
            </dd>
            <dt>string [<var>m_discount_fix</var>]</dt>
            <dd>The fixed price discount, applied to the current item.</dd>
            <dt>string [<var>m_price_custom</var>]</dt>
            <dd>The custom price of the sale item. If not passed, no custom price has been applied to the sale item.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: f_discount_percent
          description: >-
            The discount as a percentage.

          in: query
          schema:
            type: string
        - name: is_check_cart_item
          description: >-
            If `true`, every item is checked at the cart. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.
            
            This field isn't used directly, but described for correct JavaScript auto-generation.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The business location key.

          in: query
          schema:
            type: string
        - name: m_discount_flat
          description: >-
            The manual discount amount in dollars, excluding tax. Staff members can set this amount when making a sale.

          in: query
          schema:
            type: string
        - name: m_tip
          description: >-
            The amount of tips.

          in: query
          schema:
            type: string
        - name: text_discount_code
          description: >-
            The discount code.
            
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: uid_current
          description: >-
            The key of the current user.

          in: query
          schema:
            type: string
        - name: uid_customer
          description: >-
            The key of the user who performed the purchase.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_discount_code</i></b> - A list of available discount codes with the next structure:
            <dl>
            <dt>bool <var>is_select</var></dt>
            <dd>`true` if this code is selected currently, `false` otherwise.</dd>
            <dt>string <var>k_discount_code</var></dt>
            <dd>Discount code key.</dd>
            <dt>string <var>text_discount_code</var></dt>
            <dd>Value of the code that can be used to get discount.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>Name of the code.</dd>
            </dl><br/>            <b><i>is_commission</i></b> - Determines whether the business applied a commission at checkout.<br/>            <b><i>is_discount_code_mode_select</i></b> - Determines, how staff sees discount codes in Store.
            `true` as select field, `false` as input field.<br/>            <b><i>is_receipt_note</i></b> - Determines whether to display custom receipt notes at checkout.<br/>            <b><i>m_discount</i></b> - The discount amount in dollars, excluding tax.<br/>            <b><i>m_discount_total</i></b> - The discount amount applied to the cart's total amount, including taxes.<br/>            <b><i>m_subtotal</i></b> - The subtotal amount.<br/>            <b><i>m_tax</i></b> - The amount of tax.<br/>            <b><i>m_tip_purchase</i></b> - The amount of appointment tips.<br/>            <b><i>m_total</i></b> - The cart's total amount.<br/>            <b><i>text_error_code</i></b> - The discount code's error message.<br/>            <b><i>text_receipt_note</i></b> - The custom receipt note's text.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_discount_code:
                    type: object
                    example: []
                  is_commission:
                    type: integer
                    example: 0
                  is_discount_code_mode_select:
                    type: integer
                    example: 0
                  is_receipt_note:
                    type: integer
                    example: 0
                  m_discount:
                    type: string
                    example: ""
                  m_discount_total:
                    type: string
                    example: ""
                  m_subtotal:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  m_tip_purchase:
                    type: string
                    example: ""
                  m_total:
                    type: string
                    example: ""
                  text_error_code:
                    type: string
                    example: ""
                  text_receipt_note:
                    type: string
                    example: ""

  /Wl/Catalog/StaffApp/CatalogList/CatalogListModel:
    get:
      tags:
      - Catalog
      summary: Returns a list of all products available for a business’s shop at a particular location.
      description: >-
        Returns a list of all products available for a business’s shop at a particular location.
      parameters:
        - name: k_business
          description: >-
            The key of the business to get categories for.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.
            This can affect the list of displayed products.

          in: query
          schema:
            type: string
        - name: k_visit
          description: >-
            The visit key to pay for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_shop_product</i></b> - Products in the online store category.
            
            Every element has the following fields:
            <dl>
            <dt>
            array <var>a_location</var>
            </dt>
            <dd>
            The list of locations where the current sale item is available.
            </dd>
            <dt>
            string[] <var>a_login_type</var>
            </dt>
            <dd>
            The list of login types available to purchase the sale item.
            </dd>
            <dt>
            string[] <var>a_shop_category</var>
            </dt>
            <dd>
            A list of online store category keys.
            </dd>
            <dt>
            int <var>[id_program]</var>
            </dt>
            <dd>
            The program ID, set for promotions. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.
            <p>If `id_program` is [WlProgramSid::INSURANCE_MEMBERSHIP](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php), then use:</p>
            <ul>
            <li>[Wl\Insurance\Catalog\ProgramListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Catalog/ProgramListModel.php) to obtain a list of active programs.</li>
            <li>[Wl\Insurance\Enrollment\Field\EnrollmentFieldListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel.php) to get and validate fields for a given program.</li>
            <li>[Wl\Catalog\Payment\PaymentModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/Payment/PaymentModel.php) for a program purchase.</li>
            </ul>
            </dd>
            <dt>
            int <var>id_restriction</var>
            </dt>
            <dd>
            The restriction ID. One of the [Wl\Shop\Product\PurchaseRestrictionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Shop/Product/PurchaseRestrictionSid.php) constants.
            </dd>
            <dt>
            int <var>id_sale</var>
            </dt>
            <dd>
            The sale category ID. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.
            </dd>
            <dt>
            bool <var>is_online_sell</var>
            </dt>
            <dd>
            Determines whether the sale item can be purchased by the client.
            </dd>
            <dt>
            bool <var>is_visit</var>
            </dt>
            <dd>
            This will be <tt>true</tt> if this Purchase Option is suitable to pay for the visit [Wl\Catalog\StaffApp\CatalogList\CatalogListModel::$k_visit](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/StaffApp/CatalogList/CatalogListModel.php).
            Otherwise, this will be <tt>false</tt>.
            If [Wl\Catalog\StaffApp\CatalogList\CatalogListModel::$k_visit](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/StaffApp/CatalogList/CatalogListModel.php) is empty, this will always be `false`.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The sale item ID.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The category title.
            </dd>
            </dl><br/>            <b><i>can_add</i></b> - If `true`, the current user is able to add the purchased item to the account.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_shop_product:
                    type: object
                    example: []
                  can_add:
                    type: integer
                    example: 0

  /Wl/Catalog/StaffApp/CatalogView/CatalogViewModel:
    get:
      tags:
      - Catalog
      summary: Returns information about an item’s price after taxes.
      description: >-
        Returns information about an item’s price after taxes.
      parameters:
        - name: a_config
          description: >-
            Configuration information about the item, which can specify prorated amounts.
            
            If set, these values will change the values returned by the endpoint call.
            
            <dl>
            <dt>float <var>f_promote</var></dt>
            <dd>The amount to prorate the item by.</dd>
            <dt>bool <var>is_prorate</var></dt>
            <dd>If <tt>true</tt>, this item is prorated.</dd>
            <dt>string <var>m_prorate_custom</var></dt>
            <dd>The custom prorate amount.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: a_tax
          description: >-
            Contains information about edited taxes.
            
            This will be `null` if not set yet or default taxes are used.
            
            The key is the tax identifier, where the value is:
            <dl>
            <dt>string <var>k_tax</var></dt>
            <dd>The tax ID.</dd>
            <dt>string <var>m_tax_custom</var></dt>
            <dd>The amount of custom tax.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: i_quantity
          description: >-
            The quantity of items.

          in: query
          schema:
            type: string
        - name: id_sale
          description: >-
            The ID of the sale category. One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.
            This will be `null` for the system business.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The key of the sale item.
            This can be retrieved with the [Wl\Catalog\StaffApp\CatalogList\CatalogListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Catalog/StaffApp/CatalogList/CatalogListModel.php) endpoint (see the
            <var>a_shop_product</var> parameter).

          in: query
          schema:
            type: string
        - name: k_shop_product_option
          description: >-
            The product option key.

          in: query
          schema:
            type: string
        - name: m_price
          description: >-
            The custom price of the sale item.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The ID of the user who performed the actions.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_tax_data</i></b> - Contains information about calculated taxes. The structure of this array is described in {@link RsTax::$a_tax}.<br/>            <b><i>m_prorate</i></b> - The prorated amount.<br/>            <b><i>m_subtotal</i></b> - The amount of the sale item, excluding taxes.<br/>            <b><i>m_tax</i></b> - The calculated amount of tax.<br/>            <b><i>m_total</i></b> - The calculated amount of the sale item, including taxes.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_tax_data:
                    type: object
                    example: []
                  m_prorate:
                    type: string
                    example: ""
                  m_subtotal:
                    type: string
                    example: ""
                  m_tax:
                    type: string
                    example: ""
                  m_total:
                    type: string
                    example: ""

  /Wl/Classes/ClassList/BookListModel:
    get:
      tags:
      - Classes
      summary: An endpoint to get all the classes for a location.
      description: >-
        An endpoint to get all the classes for a location.
      parameters:
        - name: i_image_height
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_class</i></b> - The class list. Every element has the following structure:
            <dl>
            <dt>array <var>a_class_tab</var></dt>
            <dd>The list of tab keys for the class.</dd>
            
            <dt>string <var>dtu_book_date</var></dt>
            <dd>The book date of an event in UTC date/time format. Can be empty string if user cannot book the event.</dd>
            
            <dt>bool <var>is_active</var></dt>
            <dd>This will be <tt>true</tt> if the class is active. Otherwise, this will be <tt>false</tt>.</dd>
            
            <dt>bool <var>is_event</var></dt>
            <dd>This will be <tt>true</tt> for events. Otherwise, this will be <tt>false</tt> for classes.</dd>
            
            <dt>sting <var>k_class</var></dt>
            <dd>The class key.</dd>
            
            <dt>sting <var>k_enrollment_block</var></dt>
            <dd>The enrollment block key.</dd>
            
            <dt>string <var>m_price_total</var></dt>
            <dd>The total price for an event.</dd>
            
            <dt>sting <var>text_description</var></dt>
            <dd>The class description.</dd>
            
            <dt>sting <var>text_title</var></dt>
            <dd>The class name.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_class:
                    type: object
                    example: []

  /Wl/Classes/ClassView/ElementModel:
    get:
      tags:
      - Classes
      summary: Retrieves information about a class element.
      description: >-
        Retrieves information about a class element.
      parameters:
        - name: i_image_height
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class
          description: >-
            The class key used to get information for a specific class.
            
            An empty value returns information for all classes of the business.

          in: query
          schema:
            type: string
        - name: show_cancelled
          description: >-
            Defines if canceled schedules should be included in the result.
            
            If `true`, canceled schedules will be shown. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_class_list</i></b> - Displays information about the class schedule(s). Each element has the next structure:
            <dl>
            <dt>array <var>a_schedule</var></dt>
            <dd>A list of class schedules. Each element has the next structure:
            <dl>
            <dt>array <var>a_repeat</var></dt>
            <dd>Schedule repeat options:
            <dl>
            <dt>int <var>i_repeat</var></dt>
            <dd>A count of the periods specified in <var>id_repeat</var>.</dd>
            <dt>int <var>id_repeat</var></dt>
            <dd>The measuring unit of <var>i_repeat</var>.</dd>
            </dl>
            </dd>
            <dt>string[] <var>a_staff_key</var></dt>
            <dd>A list of staff member keys that provide sessions for this schedule.</dd>
            <dt>string <var>dl_end</var></dt>
            <dd>
            The end date of the schedule in the location's time zone.
            This will be empty or zero if the schedule is ongoing.
            </dd>
            <dt>string <var>dl_start</var></dt>
            <dd>The start date of the schedule in location's time zone.</dd>
            <dt>int <var>i_day</var></dt>
            <dd>The day of the week where the class schedule exists, starting with 1 for Monday and ending with 7 for Sunday.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The duration of the schedule sessions in minutes.</dd>
            <dt>int <var>is_cancel</var></dt>
            <dd>Defines whether the schedule canceled or not.</dd>
            <dt>string <var>k_location</var></dt>
            <dd>The location key of the schedule.</dd>
            <dt>string <var>m_price</var></dt>
            <dd>The price of a single session of the schedule.</dd>
            <dt>string <var>text_time</var></dt>
            <dd>The time of the session in the following format: `[start_time] - [end_time]` in the locale's time zone.</dd>
            </dl>
            </dd>
            <dt>array <var>a_config</var></dt>
            <dd>Class-specific business policies. This will be <tt>null</tt> in cases when the business policy is used.</dd>
            <dt>array <var>a_search_tag</var></dt>
            <dd>Tags for quick search.</dd>
            <dt>array <var>a_visits_required</var></dt>
            <dd>Information about visits that should be reviewed prior to visiting this class/event.</dd>
            <dt>bool|null <var>has_own_image</var></dt>
            <dd>
            This field will be `true` if the image used for the class is an image uploaded in the class setup.
            If an image isn't uploaded in the class setup, but there's at least one image in Setup->Locations image slider,
            this field will be `false`.
            This field will be `null` if the class image isn't uploaded, and there are no images in location slider. In such cases, an empty image is used.
            </dd>
            <dt>string <var>html_description</var></dt>
            <dd>The browser-safe description.</dd>
            <dt>string <var>html_special_instruction</var></dt>
            <dd>Special instructions safe to be inserted to a browser.</dd>
            <dt>int <var>i_age_from</var></dt>
            <dd>The minimum age restriction.</dd>
            <dt>int <var>i_age_to</var></dt>
            <dd>The maximum age restriction.</dd>
            <dt>bool <var>is_age_public</var></dt>
            <dd>Determines whether age restriction exist and should be taken into account prior to booking this class/event.</dd>
            <dt>bool <var>is_bookable</var></dt>
            <dd>Determines whether clients can book the class or event online.</dd>w
            <dt>bool <var>is_online_private</var></dt>
            <dd>
            `true` — show classes only for clients who can book online.
            `false` — show classes for all clients.
            </dd>
            <dt>bool <var>is_promotion_client</var></dt>
            <dd>Determines whether clients of the business can see a list of applicable Purchase Options.</dd>
            <dt>bool <var>is_promotion_only</var></dt>
            <dd>Determines whether the item can be booked only using promotions.</dd>
            <dt>bool <var>is_promotion_staff</var></dt>
            <dd>Determines whether staff members of the business can see a list of applicable Purchase Options.</dd>
            <dt>bool <var>is_single_buy</var></dt>
            <dd>
            Determines whether the item can be paid with Drop In or not.
            If it can be paid with Drop In, then `m_price` shows the price for one visit.
            If this is `0`, it means the class is free.
            </dd>
            <dt>bool <var>is_virtual</var></dt>
            <dd>Determines whether the item is virtual.</dd>
            <dt>bool <var>is_event</var></dt>
            <dd>Determines whether the item is an event or class instance. If `true`, the item is an event instance. Otherwise, this will be `false`.</dd>
            <dt>string <var>k_class</var></dt>
            <dd>The class key.</dd>
            <dt>string <var>m_price</var></dt>
            <dd>Drop In price, if the class allows payment for one visit.</dd>
            <dt>bool <var>show_special_instructions</var></dt>
            <dd>This will be `true` if special instructions can be public. Otherwise, this will be `false` if they should only be shown to the clients who booked the class.</dd>
            <dt>string <var>xml_description</var></dt>
            <dd>The item description.</dd>
            <dt>string <var>xml_special_instruction</var></dt>
            <dd>The item's special instructions.</dd>
            <dt>string <var>url_image</var></dt>
            <dd>The URL link to the item image.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_class_list:
                    type: object
                    example: []

  /Wl/Classes/Period/Modify/ModifyModel:
    get:
      tags:
      - Classes
      summary: Modifies the master model.
      description: >-
        Modifies the master model.
      parameters:
        - name: dt_end
          description: >-
            The end date, returned in MySQL format and the local time.

          in: query
          schema:
            type: string
        - name: dt_start
          description: >-
            The start date, returned in MySQL format and the local time.

          in: query
          schema:
            type: string
        - name: id_class_modify_action
          description: >-
            The class modify step type. One of the [Wl\WlClassModifyActionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyActionSid.php) constants.

          in: query
          schema:
            type: string
        - name: id_class_modify_mode
          description: >-
            The modify mode type. One of the [Wl\WlClassModifyModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: id_step
          description: >-
            The class modify action type. One of the [Wl\WlClassModifyStepSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyStepSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_back
          description: >-
            The step direction.
            
            `true` — step forward.
            
            `false` — step back.
            
            After each step, this variable sets to the default position.
            By default, the step direction is forward.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.
            
            This will be empty if not set yet.

          in: query
          schema:
            type: string
        - name: s_id
          description: >-
            The unique hash string.
            
            This hash string is a hash of the {@link \RsClassModify} object.
            It needs to work with the same {@link \RsClassModify} object on each step.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_get</i></b> - Step information, depending on the steps.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_get:
                    type: object
                    example: []
    post:
      tags:
      - Classes
      summary: Modifies the master model.
      description: >-
        Modifies the master model.
      parameters:
        - name: dt_end
          description: >-
            The end date, returned in MySQL format and the local time.

          in: query
          schema:
            type: string
        - name: dt_start
          description: >-
            The start date, returned in MySQL format and the local time.

          in: query
          schema:
            type: string
        - name: id_class_modify_action
          description: >-
            The class modify step type. One of the [Wl\WlClassModifyActionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyActionSid.php) constants.

          in: query
          schema:
            type: string
        - name: id_class_modify_mode
          description: >-
            The modify mode type. One of the [Wl\WlClassModifyModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: id_step
          description: >-
            The class modify action type. One of the [Wl\WlClassModifyStepSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyStepSid.php) constants.

          in: query
          schema:
            type: string
        - name: is_back
          description: >-
            The step direction.
            
            `true` — step forward.
            
            `false` — step back.
            
            After each step, this variable sets to the default position.
            By default, the step direction is forward.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.
            
            This will be empty if not set yet.

          in: query
          schema:
            type: string
        - name: s_id
          description: >-
            The unique hash string.
            
            This hash string is a hash of the {@link \RsClassModify} object.
            It needs to work with the same {@link \RsClassModify} object on each step.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_set</i></b> -
          The list of data to save.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_set:
                  description: >- 
                    The list of data to save.

                  type: object
      responses:
        '200':
          description: >-
            <b><i>id_step</i></b> - The class modify action type. One of the [Wl\WlClassModifyStepSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlClassModifyStepSid.php) constants.<br/>            <b><i>is_back</i></b> - The step direction.
            
            `true` — step forward.
            
            `false` — step back.
            
            After each step, this variable sets to the default position.
            By default, the step direction is forward.<br/>            <b><i>k_class</i></b> - The class ID.<br/>            <b><i>s_id</i></b> - The unique hash string.
            
            This hash string is a hash of the {@link \RsClassModify} object.
            It needs to work with the same {@link \RsClassModify} object on each step.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  id_step:
                    type: integer
                    example: 0
                  is_back:
                    type: integer
                    example: 0
                  k_class:
                    type: string
                    example: ""
                  s_id:
                    type: string
                    example: ""

  /Wl/Classes/Promotion/ClassPromotionModel:
    get:
      tags:
      - Classes
      summary: Returns a list of promotions that can pay for a business's classes or events.
      description: >-
        Returns a list of promotions that can pay for a business's classes or events.
      parameters:
        - name: is_event
          description: >-
            Determines whether the class is an event or not.

          in: query
          schema:
            type: string
        - name: is_login_type_ignore
          description: >-
            `true` — the login type or group restrictions are ignored and all pricing options will be returned. This will
            require staff or admin access level.
            
            `false` — the API should return only pricing options, which are available for the current user.

          in: query
          schema:
            type: string
        - name: is_related_only
          description: >-
            `true` — promotions should only be returned if they're related to the given class or event.
            
            `false` — all promotions should be returned, even if they aren't related to the given class or event.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class
          description: >-
            The class key.
            
            This refers to the class or event with which you want to connect the promotions. This will be `null` or `0` if you
            need to return a list of promotions for an uncreated class or event.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion</i></b> - Promotion data with the following structure:<dl>
            <dt>string <var>k_promotion</var></dt>
            <dd>The promotion key.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The title of the promotion.</dd>
            <dt>int <var>id_program</var></dt>
            <dd>One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.</dd>
            <dt>bool <var>is_select</var></dt>
            <dd><tt>true</tt> if the promotion is related to the class or event, <tt>false</tt> otherwise.</dd>
            </dl>.<br/>            <b><i>k_promotion_default</i></b> - The default promotion key.
            
            This will be `null` if `k_class` wasn't provided, or if the class has no default promotion.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion:
                    type: object
                    example: []
                  k_promotion_default:
                    type: string
                    example: ""

  /Wl/Collector/DebtListModel:
    get:
      tags:
      - Collector
      summary: Returns list of debts added within the previous month.
      description: >-
        Returns list of debts added within the previous month.
      parameters:
        - name: dl_end
          description: >-
            If set, this is the end of the date window. Only debts added before or on this date will be shown.
            
            If left `null` and [Wl\Collector\DebtListModel::$dl_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) has been specified, only debts added after the start date will be returned.
            If left `null` and [Wl\Collector\DebtListModel::$dl_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) is also `null`, this will return debts from the previous month.

          in: query
          schema:
            type: string
        - name: dl_start
          description: >-
            If set, this is the start of the date window. Only debts added on or after this date will be shown.
            
            If left `null` and [Wl\Collector\DebtListModel::$dl_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) has been specified will return debts added since the beginning of time.
            If left `null` and [Wl\Collector\DebtListModel::$dl_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) is also `null`, this will return debts from the previous month.

          in: query
          schema:
            type: string
        - name: is_request_debt
          description: >-
            Defines whether new debts should be returned or only previously sent debts.
            
            If `true`, only new debts will be returned.
            If `false` or left `null`, only previously sent debts will be returned.

          in: query
          schema:
            type: string
        - name: is_test
          description: >-
            If `true`, debts from test businesses will be returned. Otherwise, this will be `false` if only
            debts from real businesses will be returned.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key for which debts should be returned.
            
            Use `null` if debt payments from all businesses should be returned.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_debt</i></b> - A list of debts for the given business added within the previous month.
            
            Each value is an array with the next structure:
            <dl>
            <dt>string <var>dl_client_birth</var></dt>
            <dd>The birth date of the debtor client.</dd>
            <dt>string <var>dtu_client_since</var></dt>
            <dd>The date and time in UTC from which the debtor client is a member of the business.</dd>
            <dt>string <var>dtu_due</var></dt>
            <dd>The date and time in UTC of the last payment on the debtor client's account.</dd>
            <dt>string <var>dtu_add</var></dt>
            <dd>The date and time in UTC when the client was added to the list of debtors.</dd>
            <dt>string <var>dtu_cease</var></dt>
            <dd>The date and time in UTC when the debt was fully ceased.</dd>
            <dt>int <var>id_currency</var></dt>
            <dd>The debt currency ID. One of [Core\Locale\CurrencySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Locale/CurrencySid.php) constants.</dd>
            <dt>string <var>k_business</var></dt>
            <dd>The business key where the debt occurred.</dd>
            <dt>string <var>k_collector_debt</var></dt>
            <dd>The debt key, which should be used for debt payment.</dd>
            <dt>string <var>k_pay_transaction_debt</var></dt>
            <dd>The transaction key after which the debt occurred.</dd>
            <dt>string <var>k_pay_transaction_last</var></dt>
            <dd>The last transaction key on account after the debt occurred.</dd>
            <dt>string <var>m_amount_debt</var></dt>
            <dd>The initial amount of the debt.</dd>
            <dt>string <var>m_amount_paid</var></dt>
            <dd>The amount paid for debt.</dd>
            <dt>string <var>text_business_title</var></dt>
            <dd>The title of the business.</dd>
            <dt>string <var>text_client_name</var></dt>
            <dd>The full name of the debtor client.</dd>
            <dt>string <var>text_client_address</var></dt>
            <dd>The address of the debtor client.</dd>
            <dt>string <var>text_client_mail</var></dt>
            <dd>The email address of the debtor client.</dd>
            <dt>string <var>text_client_phone</var></dt>
            <dd>The phone number of the debtor client.</dd>
            <dt>string <var>text_client_zip</var></dt>
            <dd>The ZIP code of the debtor client.</dd>
            <dt>string <var>text_skip</var></dt>
            <dd>The notification message sent when the debt payment is missed.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The user key of the debt owner.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_debt:
                    type: object
                    example: []

  /Wl/Collector/DebtPayModel:
    post:
      tags:
      - Collector
      summary: Registers a debt payment that was performed beyond Wellnessliving, with a specified credit amount applied to a client's account balance.
      description: >-
        Registers a debt payment that was performed beyond Wellnessliving, with a specified credit amount applied to a client's account balance.
      parameters:
        - name: id_currency
          description: >-
            The currency of the payment.
            One of [Core\Locale\CurrencySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Locale/CurrencySid.php) constants.
            
            Important! The currency must coincide with currency of the debt that was sent to collections.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business from which the debt originates.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user with the debt.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>id_pay_method</i></b> -
          The payment method ID.
          One of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.
          
          `null` if the payment method is unknown. In such cases, [WlPayMethodSid::ECOMMERCE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) would be used.
          <br/>
          <b><i>k_collector_debt</i></b> -
          The debt key towards which the payment was performed.
          <br/>
          <b><i>m_amount</i></b> -
          The amount of money that's been paid towards the debt.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id_pay_method:
                  description: >- 
                    The payment method ID.
                    One of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.
                    
                    `null` if the payment method is unknown. In such cases, [WlPayMethodSid::ECOMMERCE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) would be used.

                  type: integer
                k_collector_debt:
                  description: >- 
                    The debt key towards which the payment was performed.

                  type: string
                m_amount:
                  description: >- 
                    The amount of money that's been paid towards the debt.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_pay_transaction</i></b> - The transaction key generated to register the payment.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_pay_transaction:
                    type: string
                    example: ""

  /Wl/Collector/DebtTransactionModel:
    get:
      tags:
      - Collector
      summary: Returns a list of payments for debts added within the previous day.
      description: >-
        Returns a list of payments for debts added within the previous day.
      parameters:
        - name: dl_end
          description: >-
            If set, this is the end of the date window. Only debt payments added before or on this date will be shown.
            
            If left `null` and [Wl\Collector\DebtListModel::$dl_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) has been specified only debt payments added after the start date will be returned.
            If left `null` and [Wl\Collector\DebtListModel::$dl_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) is also `null`, this will return debt payments from the previous month.

          in: query
          schema:
            type: string
        - name: dl_start
          description: >-
            If set, this is the start of the date window. Only debt payments added on or after this date will be shown.
            
            If left `null` and [Wl\Collector\DebtListModel::$dl_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) has been specified, this will return debt payments since the beginning of time.
            If left `null` and [Wl\Collector\DebtListModel::$dl_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtListModel.php) is also `null`, this will return debt payments from the previous month.

          in: query
          schema:
            type: string
        - name: is_test
          description: >-
            If `true`, debt payments from test businesses will be returned. Otherwise, this will be `false` if only
            debt payments from real businesses will be returned.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key for which debt payments should be returned.
            
            Use `null` if debt payments from all businesses should be returned.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_transaction</i></b> - A list of debt payments for a given business added within the previous day.
            
            Each value is an array with next structure:
            <dl>
            <dt>string <var>dtu_pay</var></dt>
            <dd>The date and time in UTC of the payment transaction.</dd>
            <dt>string <var>m_pay_amount</var></dt>
            <dd>The amount of the payment's transaction.</dd>
            <dt>int <var>id_pay_method</var></dt>
            <dd>The payment method ID that was used for the payment. One of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.</dd>
            <dt>bool <var>is_pay_collections</var></dt>
            <dd>Defines whether the payment was performed via a third party service.
            `true` if the payment was performed via a third party service and this transaction is
            responsible for an account credit transaction for that payment. See [Wl\Collector\DebtPayModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Collector/DebtPayModel.php).
            `false` if the payment was performed within the Wellnessliving system.
            </dd>
            <dt>bool <var>is_debt_paid</var></dt>
            <dd>
            Defines whether the initial debt to which this related transaction is fully paid.
            `true` if the debt is fully paid.
            `false` if the debt is partially paid.
            </dd>
            <dt>string <var>text_client_name</var></dt>
            <dd>The full name of the debtor client for whom the payment transaction was performed.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The UID of the debtor client for whom the payment transaction was performed.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_transaction:
                    type: object
                    example: []

  /Wl/Coupon/CouponList/ListModel:
    get:
      tags:
      - Coupon
      summary: Retrieves a list of gift cards.
      description: >-
        Retrieves a list of gift cards.
      parameters:
        - name: is_franchise
          description: >-
            Whether to return franchisee-created coupons (if business is franchisor).
            <tt>true</tt> to include franchisee-created coupons.

          in: query
          schema:
            type: string
        - name: is_frontend
          description: >-
            `true` to get only gift cards available for current user; `false` to get all gift cards.

          in: query
          schema:
            type: string
        - name: is_inactive_include
          description: >-
            A flag to include disabled items in the query result

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key to retrieve a list of all the gift cards in a business.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_coupon</i></b> - A list of gift cards. Every element has the following keys:
            <dl>
            <dt>
            int <var>id_type</var>
            </dt>
            <dd>
            The type of coupon. One of [Wl\Coupon\TypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Coupon/TypeSid.php) constants.
            </dd>
            <dt>
            string <var>k_coupon</var>
            </dt>
            <dd>
            The gift card key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title of the gift card.
            </dd>
            </dl><br/>            <b><i>id_table</i></b> - Class table ID.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_coupon:
                    type: object
                    example: []
                  id_table:
                    type: integer
                    example: 0

  /Wl/Event/Book/EventList/ListModel:
    get:
      tags:
      - Event
      summary: Retrieves a list of events for a given class tab.
      description: >-
        Retrieves a list of events for a given class tab.
      parameters:
        - name: id_status
          description: >-
            Defines how the event availability flag filter should be applied.
            
            One of [AFlagSid](https://github.com/wellnessliving/wl-sdk/blob/masterAFlagSid.php) constants.
            
            * [AFlagSid::ON](https://github.com/wellnessliving/wl-sdk/blob/masterAFlagSid.php) to show only available events.
            * [AFlagSid::OFF](https://github.com/wellnessliving/wl-sdk/blob/masterAFlagSid.php) to show only unavailable events.
            * [AFlagSid::ALL](https://github.com/wellnessliving/wl-sdk/blob/masterAFlagSid.php) to show all events (available and unavailable).

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The key of the category tab.
            If empty, select only elements with not specified book tab.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user's key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_event</i></b> - A list of event identifiers.
            
            The order of items in this array matches the order in which elements should be displayed.<br/>            <b><i>a_event_available</i></b> - Event availability value.
            
            Unavailable events are those that cannot be booked,
            but they can be shown to the client (for example, under the "not available" filter).
            
            The array contains:
            * Key - Class (event) key.
            * Value - Event availability value: `true` - available, `false` - not available.<br/>            <b><i>is_virtual_service</i></b> - <tt>true</tt> if exist at least one virtual event
            by specific [Wl\Event\Book\EventList\ListModel::$k_business](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventList/ListModel.php) and
            [Wl\Event\Book\EventList\ListModel::$k_class_tab](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventList/ListModel.php),
            <tt>false</tt> otherwise.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_event:
                    type: object
                    example: []
                  a_event_available:
                    type: object
                    example: []
                  is_virtual_service:
                    type: integer
                    example: 0

  /Wl/Event/Book/EventView/ElementModel:
    get:
      tags:
      - Event
      summary: Retrieves information about an event element.
      description: >-
        Retrieves information about an event element.
      parameters:
        - name: dl_book_available_end
          description: >-
            The last available date for booking.
            If this is set and [Wl\Event\Book\EventView\ElementModel::$dl_book_available_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) is a set list of
            sessions available for booking, [Wl\Event\Book\EventView\ElementModel::$a_book_available](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php)
            should match given date range.

          in: query
          schema:
            type: string
        - name: dl_book_available_start
          description: >-
            The first available date for booking.
            If this is set and [Wl\Event\Book\EventView\ElementModel::$dl_book_available_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) is a set list of
            sessions available for booking [Wl\Event\Book\EventView\ElementModel::$a_book_available](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php)
            should match given date range.

          in: query
          schema:
            type: string
        - name: i_image_height
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_staff_image_height
          description: >-
            Staff 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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_staff_image_width
          description: >-
            Staff 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 will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: k_event
          description: >-
            The event key.
            You can specify [Wl\Event\Book\EventView\ElementModel::$s_event](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) instead to get information for a bulk of events.

          in: query
          schema:
            type: string
        - name: s_event
          description: >-
            A list of event keys serialized with JSON.
            Specify instead of [Wl\Event\Book\EventView\ElementModel::$k_event](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) to get information for a bulk of events.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_age_restrictions</i></b> - Displays information about age restrictions for this event.
            
            An empty array if there are no age restrictions.
            
            <dl>
            <dt>int|null <var>i_age_from</var></dt>
            <dd>The minimum age for participation in the event. `null` if there's no minimum age set or information isn't available.</dd>
            <dt>int|null <var>i_age_to</var></dt>
            <dd>The age limit for participation in the event. `null` if there's no age limit set or information isn't available.</dd>
            <dt>bool <var>is_age_public</var></dt>
            <dd>`true` if age restrictions are public and available, `false` if they're hidden.
            When restrictions are hidden and the current user isn't a staff member, the age range will be empty.</dd>
            </dl><br/>            <b><i>a_book_available</i></b> - Retrieves information about an event item.
            
            Received only if [Wl\Event\Book\EventView\ElementModel::$k_event](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) has been specified. In this case other fields aren't receivers.
            
            <dl>
            <dt>string <var>dt_date</var></dt>
            <dd>Date/time when session starts. In UTC.</dd>
            <dt>string <var>k_class_period</var></dt>
            <dd>Class session primary keys.</dd>
            </dl><br/>            <b><i>a_business_policy</i></b> - Displays all business policies connected to clients and bookings.
            
            Contains the same structure as the [Wl\Business\Config\BusinessConfigModel::$a_business_policy](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Config/BusinessConfigModel.php) property.
            
            If policies are overwritten for a certain event, the impacted event's policies will be in this result.
            Otherwise, the result will display the business policies.<br/>            <b><i>a_class_logo</i></b> - The logo of event.
            <dl>
            <dt>int [<var>i_height</var>]</dt>
            <dd>Is returned only if staff has photo. Image height.</dd>
            <dt>int [<var>i_width</var>]</dt>
            <dd>Is returned only if staff has photo. Image width.</dd>
            <dt>int [<var>id_gender</var>] </dt>
            <dd>Is returned only if staff does not have photo. ID of staff gender. One of [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.</dd>
            <dt>string [<var>url_logo</var>]</dt>
            <dd>Is returned only if staff has photo. URL to image.</dd>
            </dl><br/>            <b><i>a_class_tab</i></b> - The list of keys from class tab.+<br/>            <b><i>a_event</i></b> - Displays information for a bulk of events.
            
            Received only if [Wl\Event\Book\EventView\ElementModel::$s_event](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) has been specified. In this case, other fields aren't receivers.
            
            The event keys of this array.
            Values of this array and sub arrays with keys that correspond to all fields in this table that may be received.<br/>            <b><i>a_schedule</i></b> - A list of event sessions. Every element has the following next keys:
            <dl>
            <dt>
            array <var>a_day</var>
            </dt>
            <dd>
            A list of days of the week when the session has occurred.
            Keys - a number corresponding to a day of the week (0 - Sunday, 6 - Saturday). The value is always <tt>true</tt>.
            </dd>
            <dt>array <var>a_repeat</var></dt>
            <dd>
            Repeat periodicity instructions.
            <dl>
            <dt>int <var>i_repeat</var></dt>
            <dd>Count of the periods which specified in <var>id_repeat</var>.</dd>
            <dt>int <var>id_repeat</var></dt>
            <dd>Measuring unit of <var>i_repeat</var> (week, month, year).</dd>
            </dl>
            </dd>
            <dt>
            array[] <var>a_staff</var>
            </dt>
            <dd>
            A list of staff members who conduct the session. Every element has the following next keys:
            <dl>
            <dt>string <var>k_staff</var></dt>
            <dd>The staff member key.</dd>
            <dt>string <var>s_name</var></dt>
            <dd>The staff member name.</dd>
            <dt>string <var>s_surname</var></dt>
            <dd>The first letter of staff member's surname.</dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_virtual_location</var>
            </dt>
            <dd>
            List of virtual locations.
            </dd>
            <dt>
            string <var>dt_end</var>
            </dt>
            <dd>
            The end date of the session.
            The local date without time.
            </dd>
            <dt>
            string <var>dt_start</var>
            </dt>
            <dd>
            The start date of the session.
            The local date without time.
            </dd>
            <dt>
            int <var>i_capacity</var>
            </dt>
            <dd>
            The class capacity.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The duration of the class in seconds.
            </dd>
            <dt>
            bool <var>is_virtual</var>
            </dt>
            <dd>
            This will be `true` if the session is not held in person but offered remotely. If will be `false` otherwise.
            </dd>
            <dt>
            string <var>f_price</var>
            </dt>
            <dd>
            The price of the session, if it can be purchased separately.
            </dd>
            <dt>
            string <var>k_class_period</var>
            </dt>
            <dd>
            The key of the class period.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The key of the location where the session is held.
            </dd>
            <dt>
            string <var>s_location</var>
            </dt>
            <dd>
            The location title.
            </dd>
            <dt>
            string <var>s_time</var>
            </dt>
            <dd>
            The time when session occurred.
            A textual representation of the start and end time of a session. Example: <tt>10:00 am - 11:00 am</tt>
            </dd>
            <dt>
            string <var>s_timezone</var>
            </dt>
            <dd>
            The name of the timezone in which the session is held.
            </dd>
            </dl><br/>            <b><i>a_staff_logo</i></b> - Photos of staff members. Keys are the keys of staff members. The values are the following:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>Image height.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>Image width.</dd>
            <dt>string <var>uid</var></dt>
            <dd>Key of the user.</dd>
            <dt>string <var>url_logo</var></dt>
            <dd>URL to image.</dd>
            </dl><br/>            <b><i>a_visits_required</i></b> - A list of classes and events that clients should attend before this one.
            
            <dl>
            <dt>int <var>i_count</var></dt>
            <dd>The number of visits.</dd>
            <dt>bool <var>is_event</var></dt>
            <dd>`true` if this is an event, `false` if this is a class.</dd>
            <dt>string <var>k_class</var></dt>
            <dd>The key of the class or event.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The name of the class or event.</dd>
            </dl><br/>            <b><i>dt_book_date</i></b> - That date that should be used to go to the booking wizard.<br/>            <b><i>dt_early</i></b> - The early registration date of the event.<br/>            <b><i>dt_end</i></b> - The end date of the event.<br/>            <b><i>dt_start</i></b> - The start date of the event.<br/>            <b><i>hide_application</i></b> - Whether event will be hidden in the White Label mobile application.
            <tt>true</tt> means that event will not be displayed, <tt>false</tt> otherwise.<br/>            <b><i>html_special</i></b> - Special instruction for the event.<br/>            <b><i>i_session</i></b> - The session count.<br/>            <b><i>id_virtual_provider</i></b> - The virtual provider ID. One of the[Wl\Virtual\VirtualProviderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Virtual/VirtualProviderSid.php) constants.
            
            `null` if an in-person event.<br/>            <b><i>is_availability_checked</i></b> - `true` if the event availability was checked; `false` if the event has too many sessions and calculating
            the availability of each one takes a lot of time.<br/>            <b><i>is_book</i></b> - <tt>true</tt> if the event is already booked; <tt>false</tt> if the event isn't booked.<br/>            <b><i>is_full</i></b> - `true` if there are no free spots in the event; booking is available only into the wait list.
            `false` otherwise.<br/>            <b><i>is_promotion_only</i></b> - `true` if the event can be paid with a Purchase Option only.
            `false` if full event purchases or single session purchases are permitted.<br/>            <b><i>is_single_session_buy</i></b> - Determines whether this event allows paying for a single session.<br/>            <b><i>is_virtual</i></b> - <tt>true</tt> -if event is virtual; <tt>false</tt> - otherwise.<br/>            <b><i>k_book_class_period</i></b> - The ID of the session which should be used to go to the booking wizard.<br/>            <b><i>m_price</i></b> - The price of a single session of the event.<br/>            <b><i>m_price_total</i></b> - The price of the all sessions of the event.<br/>            <b><i>m_price_total_early</i></b> - Price of the full event, should be used as full price while [Wl\Event\Book\EventView\ElementModel::$dt_early](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) is actual.<br/>            <b><i>s_deny_reason</i></b> - The reason why the event can't be booked.
            Empty if [Wl\Event\Book\EventView\ElementModel::$k_book_class_period](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/Book/EventView/ElementModel.php) isn't empty.<br/>            <b><i>s_title</i></b> - The title of the event.<br/>            <b><i>xml_description</i></b> - The description of the event.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_age_restrictions:
                    type: object
                    example: []
                  a_book_available:
                    type: object
                    example: []
                  a_business_policy:
                    type: object
                    example: []
                  a_class_logo:
                    type: object
                    example: []
                  a_class_tab:
                    type: object
                    example: []
                  a_event:
                    type: object
                    example: []
                  a_schedule:
                    type: object
                    example: []
                  a_staff_logo:
                    type: object
                    example: []
                  a_visits_required:
                    type: object
                    example: []
                  dt_book_date:
                    type: string
                    example: ""
                  dt_early:
                    type: string
                    example: ""
                  dt_end:
                    type: string
                    example: ""
                  dt_start:
                    type: string
                    example: ""
                  hide_application:
                    type: integer
                    example: 0
                  html_special:
                    type: string
                    example: ""
                  i_session:
                    type: integer
                    example: 0
                  id_virtual_provider:
                    type: integer
                    example: 0
                  is_availability_checked:
                    type: integer
                    example: 0
                  is_book:
                    type: integer
                    example: 0
                  is_full:
                    type: integer
                    example: 0
                  is_promotion_only:
                    type: integer
                    example: 0
                  is_single_session_buy:
                    type: integer
                    example: 0
                  is_virtual:
                    type: integer
                    example: 0
                  k_book_class_period:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_price_total:
                    type: string
                    example: ""
                  m_price_total_early:
                    type: string
                    example: ""
                  s_deny_reason:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  xml_description:
                    type: string
                    example: ""

  /Wl/Event/EventCancelWholeModel:
    post:
      tags:
      - Event
      summary: Cancels a whole event booked by a client.
      description: >-
        Cancels a whole event booked by a client.

      requestBody:
        description: >-
              <b><i>k_class</i></b> -
              An event key.
              <br/>
              <b><i>uid</i></b> -
              A user key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_class:
                      description: >- 
                        An event key.

                      type: string
                    uid:
                      description: >- 
                        A user key.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Event/EventListModel:
    get:
      tags:
      - Event
      summary: Retrieves a list of events that fit the given filter parameters.
      description: >-
        Retrieves a list of events that fit the given filter parameters.
      parameters:
        - name: a_class_filter
          description: >-
            List of class keys applied by filter.

          in: query
          schema:
            type: string
        - name: a_enrollment_block_filter
          description: >-
            List of enrollment blocks keys applied by filter.

          in: query
          schema:
            type: string
        - name: a_location
          description: >-
            List of location keys applied by filter.

          in: query
          schema:
            type: string
        - name: a_staff
          description: >-
            List of staff keys applied by filter.

          in: query
          schema:
            type: string
        - name: dl_end
          description: >-
            The end date of the range from which a list of events should be retrieved.
            
            <tt>null</tt> if the range has no end date.

          in: query
          schema:
            type: string
        - name: dl_start
          description: >-
            The start date of the range from which a list of events should be retrieved.
            
            <tt>null</tt> if the range has no start date.

          in: query
          schema:
            type: string
        - name: id_flag
          description: >-
            Defines how the event availability flag filter should be applied.
            
            One of [Core\a\AFlagSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AFlagSid.php) constants.
            
            * [Core\a\AFlagSid::ON](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AFlagSid.php) to show only available events.
            * [Core\a\AFlagSid::OFF](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AFlagSid.php) to show only unavailable events.
            * [Core\a\AFlagSid::ALL](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AFlagSid.php) to show all events (available and unavailable).

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            Determines whether the endpoint is used for backend mode.

          in: query
          schema:
            type: string
        - name: is_ignore_requirement
          description: >-
            `true` to show even event restricted by booking policies; `false` to show available events only.

          in: query
          schema:
            type: string
        - name: is_tab_all
          description: >-
            Determines whether you need to retrieve a list of event sessions regardless of the tab specified in [Wl\Event\EventListModel::$k_class_tab](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel.php).
            
            * <tt>true</tt> - retrieves a list regardless of the specified tab.
            * <tt>false</tt> - retrieves a list only for the specific tab.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The event business key to retrieve a list of all event sessions in business.
            
            Required if [Wl\Event\EventListModel::$k_location](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel.php) isn't specified.

          in: query
          schema:
            type: string
        - name: k_class
          description: >-
            The event class key to retrieve a list of all event sessions of a specific class.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The class tab key to retrieve a list of event sessions from a specific tab only.
            An empty value to retrieve a list of event sessions that don't belong to any tab.
            
            Will be ignored in next cases:
            * [Wl\Event\EventListModel::$k_skin](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel.php) specified.
            * [Wl\Event\EventListModel::$is_tab_all](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel.php) is <tt>true</tt>.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The event location key to retrieve a list of all event sessions in a specific location.
            
            Required if [Wl\Event\EventListModel::$k_business](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel.php) isn't specified.

          in: query
          schema:
            type: string
        - name: k_skin
          description: >-
            The skin key if an event list is used for widget mode.
            
            [Wl\Event\EventListModel::$k_class_tab](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel.php) will be ignored for widget mode.

          in: query
          schema:
            type: string
        - name: text_search
          description: >-
            Search string to filter events by name.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.
            Required to apply specific user rules such as age restrictions.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_enrollment_block_list</i></b> - List of available enrollment blocks correspond to requested parameters.<br/>            <b><i>a_event_list</i></b> - A list of events corresponding to requested parameters. Each event will have the following keys: <dl>
            <dt>array <var>a_class_tab</var></dt>
            <dd>The list of class tab keys that contain this event.</dd>
            <dt>array <var>a_logo</var></dt>
            <dd>Information about the event's logo. It will contain the following keys:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The image height.</dd>
            <dt>int <var>i_height_src</var></dt>
            <dd>The source image's height.</dd>
            <dt>int <var>i_rotate</var></dt>
            <dd>The angle which image was rotated compared to the original.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The image width.</dd>
            <dt>int <var>i_width_src</var></dt>
            <dd>The source image's width.</dd>
            <dt>int <var>id_type_src</var></dt>
            <dd>The image type ID. One of the [Core\Drive\DriveTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Drive/DriveTypeSid.php) constants.</dd>
            <dt>bool <var>is_resize</var></dt>
            <dd>This will be `true` if the image has been resized. `false` otherwise.</dd>
            <dt>bool <var>is_old</var></dt>
            <dd>This will be `true` if the image is old. `false` otherwise.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL to the image.</dd>
            <dt>string <var>url-view</var></dt>
            <dd>The URL to the image.</dd>
            <dt>string <var>url-thumbnail</var></dt>
            <dd>The URL to the image's thumbnail.</dd>
            </dl>
            </dd>
            <dt>array <var>a_schedule</var></dt>
            <dd>Information about the event's schedule. It is a list of instances, each instance will contain the following keys:
            <dl>
            <dt>array <var>a_day</var></dt>
            <dd>The days when the event is scheduled (0 - Sunday, 6 - Saturday).</dd>
            <dt>array <var>a_staff_member</var></dt>
            <dd>Information about the staff member(s) conducting the event. This is a list of staff, each element is an array
            with the following keys
            <dl>
            <dt>string <var>k_staff_member</var></dt>
            <dd>The staff member key.</dd>
            <dt>string <var>text_business_role</var></dt>
            <dd>The name of the staff member's business role.</dd>
            <dt>string <var>text_mail</var></dt>
            <dd>The staff member's email address.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>The staff member's first name.</dd>
            <dt>string <var>text_name_full</var></dt>
            <dd>The staff member's full name.</dd>
            <dt>string <var>text_name_last</var></dt>
            <dd>The staff member's last name.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The staff member's user key.</dd>
            </dl>
            </dd>
            <dt>string <var>dl_end</var></dt>
            <dd>The ending date of the event series.</dd>
            <dt>string <var>dl_start</var></dt>
            <dd>The starting date of the event series.</dd>
            <dt>bool <var>is_day</var></dt>
            <dd>This will be `true` if the event starts and ends on the same day.</dd>
            <dt>string <var>k_class_period</var></dt>
            <dd>The class period key.</dd>
            <dt>string <var>k_location</var></dt>
            <dd>The location key.</dd>
            <dt>string <var>text_location</var></dt>
            <dd>The name of the location.</dd>
            <dt>string <var>text_time</var></dt>
            <dd>The human readable version of the event time.</dd>
            </dl>
            </dd>
            <dt>array <var>a_search_tag</var></dt>
            <dd>The list of search tags for this event.</dd>
            <dt>bool <var>can_cancel</var></dt>
            <dd>Whether the current user can cancel already booked event.</dd>
            <dt>string <var>dl_early</var></dt>
            <dd>The early cancel date</dd>
            <dt>string <var>dl_end</var></dt>
            <dd>The ending date of the event.</dd>
            <dt>string <var>dl_start</var></dt>
            <dd>The starting date of the event.</dd>
            <dt>string <var>dtu_session</var></dt>
            <dd>Date of the closest session of the event.</dd>
            <dt>int <var>i_session_all</var></dt>
            <dd>Number of all sessions in the event.</dd>
            <dt>int <var>i_session_future</var></dt>
            <dd>Number of all sessions in the future.</dd>
            <dt>int <var>i_session_past</var></dt>
            <dd>Number of all sessions in the past.</dd>
            <dt>bool <var>is_age_restrict</var></dt>
            <dd>`true` if the event is age restricted, `false` if the event is not.</dd>
            <dt>bool <var>is_block</var></dt>
            <dd>`true` if the event is a block event, `false` if the event is not.</dd>
            <dt>bool <var>is_bookable</var></dt>
            <dd>`true` if the event is can be booked by the current user, `false` if the event is not.</dd>
            <dt>bool <var>is_booked</var></dt>
            <dd>`true` if the user has booked the event, `false` if the event is not.</dd>
            <dt>bool <var>is_closed</var></dt>
            <dd>`true` if booking the event is closed, `false` if the event is not.</dd>
            <dt>bool <var>is_full</var></dt>
            <dd>`true` if the event is full, `false` if the event is not.</dd>
            <dt>bool <var>is_online</var></dt>
            <dd>`true` if the event is available online, `false` if the event is not.</dd>
            <dt>bool <var>is_online_private</var></dt>
            <dd>`true` if the event is online and private, `false` if the event is not.</dd>
            <dt>bool <var>is_open</var></dt>
            <dd>`true` if the event is open to be booked, `false` if the event is not.</dd>
            <dt>bool <var>is_prorate</var></dt>
            <dd>`true` if the event is prorated, `false` if the event is not.</dd>
            <dt>bool <var>is_virtual</var></dt>
            <dd>`true` if the event is only held virtually, `false` if the event is not.</dd>
            <dt>string <var>k_class</var></dt>
            <dd>The class key.</dd>
            <dt>string <var>k_class_period</var></dt>
            <dd>The class period key.</dd>
            <dt>string <var>k_enrollment_block</var></dt>
            <dd>The enrollment block key.</dd>
            <dt>string <var>k_location</var></dt>
            <dd>The location key.</dd>
            <dt>string <var>m_price_total</var></dt>
            <dd>The total price of booking a session.</dd>
            <dt>string <var>m_price_total_early</var></dt>
            <dd>The total price if booked early.</dd>
            <dt>string <var>text_age_restrict</var></dt>
            <dd>The age description.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The name of the event.</dd>
            <dt>string <var>url_book</var></dt>
            <dd>The direct booking url.</dd>
            <dt>string <var>xml_description</var></dt>
            <dd>The description of the event.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_enrollment_block_list:
                    type: object
                    example: []
                  a_event_list:
                    type: object
                    example: []

  /Wl/Facebook/Login/FacebookLoginModel:
    post:
      tags:
      - Facebook
      summary: An endpoint that performs authorization actions with Facebook.
      description: >-
        An endpoint that performs authorization actions with Facebook.

      requestBody:
        description: >-
              <b><i>k_business</i></b> -
              Business in which authorization is performed.
              <br/>
              <b><i>s_application</i></b> -
              The application ID.
              
              This will be `null` if the application is being used to make the request.
              Use the application credential from the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredential} class for user authorization.
              <br/>
              <b><i>s_token</i></b> -
              The Facebook token.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_business:
                      description: >- 
                        Business in which authorization is performed.

                      type: string
                    s_application:
                      description: >- 
                        The application ID.
                        
                        This will be `null` if the application is being used to make the request.
                        Use the application credential from the {@link \WellnessLiving\Core\Request\Model\Application\Credential\FacebookCredential} class for user authorization.

                      type: string
                    s_token:
                      description: >- 
                        The Facebook token.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Family/Relation/RelationModel:
    post:
      tags:
      - Family
      summary: Returns data about a user's relationships.
      description: >-
        Returns data about a user's relationships.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user whose relationships are being assessed.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_new</i></b> -
          The new relationship to be added to user, specified with [Wl\Family\Relation\RelationModel::$uid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/RelationModel.php):
          <dl>
          <dt>int <var>id_family_relation</var></dt>
          <dd>The relationship type. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
          <dt>string <var>uid</var></dt>
          <dd>The related user's key.</dd>
          </dl>
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_new:
                  description: >- 
                    The new relationship to be added to user, specified with [Wl\Family\Relation\RelationModel::$uid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/RelationModel.php):
                    <dl>
                    <dt>int <var>id_family_relation</var></dt>
                    <dd>The relationship type. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
                    <dt>string <var>uid</var></dt>
                    <dd>The related user's key.</dd>
                    </dl>

                  type: object
      responses:
        '200':
          description: >-
            <b><i>a_relation</i></b> - Information about the user's relationships. Every element has the following fields:
            <dl>
            <dt>int <var>id_family_relation</var></dt>
            <dd>The relationship type. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
            <dt>int <var>id_family_relation_reverse</var></dt>
            <dd>The type of reciprocated relationship. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
            <dt>string <var>text_name</var></dt>
            <dd>The name of the relation.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>The first name of the relation.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The key of the related user.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_relation:
                    type: object
                    example: []
    delete:
      tags:
      - Family
      summary: Returns data about a user's relationships.
      description: >-
        Returns data about a user's relationships.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user whose relationships are being assessed.

          in: query
          schema:
            type: string
        - name: uid_delete
          description: >-
            The key of the related user who [Wl\Family\Relation\RelationModel::$uid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/RelationModel.php) must be removed.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_relation</i></b> - Information about the user's relationships. Every element has the following fields:
            <dl>
            <dt>int <var>id_family_relation</var></dt>
            <dd>The relationship type. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
            <dt>int <var>id_family_relation_reverse</var></dt>
            <dd>The type of reciprocated relationship. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
            <dt>string <var>text_name</var></dt>
            <dd>The name of the relation.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>The first name of the relation.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The key of the related user.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_relation:
                    type: object
                    example: []
    get:
      tags:
      - Family
      summary: Returns data about a user's relationships.
      description: >-
        Returns data about a user's relationships.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user whose relationships are being assessed.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_relation</i></b> - Information about the user's relationships. Every element has the following fields:
            <dl>
            <dt>int <var>id_family_relation</var></dt>
            <dd>The relationship type. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
            <dt>int <var>id_family_relation_reverse</var></dt>
            <dd>The type of reciprocated relationship. One of the [Wl\Family\Relation\WlFamilyRelationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Family/Relation/WlFamilyRelationSid.php) constants.</dd>
            <dt>string <var>text_name</var></dt>
            <dd>The name of the relation.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>The first name of the relation.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The key of the related user.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_relation:
                    type: object
                    example: []

  /Wl/Google/Login/GoogleLoginModel:
    post:
      tags:
      - Google
      summary: An endpoint that performs authorization actions with Google.
      description: >-
        An endpoint that performs authorization actions with Google.

      requestBody:
        description: >-
              <b><i>k_business</i></b> -
              Business in which authorization is performed.
              <br/>
              <b><i>s_application</i></b> -
              The application ID.
              
              This will be `null` for application use, which makes the request. Use the application credential from
              {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredential} for user authorization.
              <br/>
              <b><i>s_code</i></b> -
              The Google server authorization code.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_business:
                      description: >- 
                        Business in which authorization is performed.

                      type: string
                    s_application:
                      description: >- 
                        The application ID.
                        
                        This will be `null` for application use, which makes the request. Use the application credential from
                        {@link \WellnessLiving\Core\Request\Model\Application\Credential\GoogleCredential} for user authorization.

                      type: string
                    s_code:
                      description: >- 
                        The Google server authorization code.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Gym/Visit/VisitAddModel:
    post:
      tags:
      - Gym
      summary: An endpoint for adding a gym visit.
      description: >-
        An endpoint for adding a gym visit.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user making the gym visit.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_time</i></b> -
          The time of the visit, in the location's timezone. An array with the following fields:
          <dl>
          <dt>int <var>i_hour</var></dt>
          <dd>The hour component.</dd>
          <dt>int <var>i_minute</var></dt>
          <dd>The minute component.</dd>
          <dt>bool <var>is_am</var></dt>
          <dd>If `true` the visit is in the AM. If `false` it is in the PM.</dd>
          </dl>
          <br/>
          <b><i>dt_date</i></b> -
          The date of visit, without a time component in MySQL format. Date is based on the timezone of the location.
          <br/>
          <b><i>is_pay</i></b> -
          Determines whether payment is required for the visit.
          
          `true` if payment is needed for the visit.
          `false` if visit should be not pay.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_time:
                  description: >- 
                    The time of the visit, in the location's timezone. An array with the following fields:
                    <dl>
                    <dt>int <var>i_hour</var></dt>
                    <dd>The hour component.</dd>
                    <dt>int <var>i_minute</var></dt>
                    <dd>The minute component.</dd>
                    <dt>bool <var>is_am</var></dt>
                    <dd>If `true` the visit is in the AM. If `false` it is in the PM.</dd>
                    </dl>

                  type: object
                dt_date:
                  description: >- 
                    The date of visit, without a time component in MySQL format. Date is based on the timezone of the location.

                  type: string
                is_pay:
                  description: >- 
                    Determines whether payment is required for the visit.
                    
                    `true` if payment is needed for the visit.
                    `false` if visit should be not pay.

                  type: integer
      responses:
        '200':
          description: >-
            <b><i>url_catalog</i></b> - Url to the business catalog with items that can be used to pay for the visit.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  url_catalog:
                    type: string
                    example: ""

  /Wl/Holiday/BulkBusinessHolidayModel:
    get:
      tags:
      - Holiday
      summary: An endpoint displaying information about all location/business holidays for a given business.
      description: >-
        An endpoint displaying information about all location/business holidays for a given business.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business_holidays</i></b> - An array consisting of the business's closed day data for all locations by holiday keys [Wl\Holiday\HolidayModel::$dl_work](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Holiday/HolidayModel.php).
            
            List of holidays. Values are arrays of holidays as follows:
            <dl>
            <dt>array <var>a_class</var></dt>
            <dd>A list of affected classes. Keys are class keys.</dd>
            <dt>array <var>a_class_only</var></dt>
            <dd>A list of affected classes. Keys are class keys.Primary keys in {@link \RsClassSql} table.</dd>
            <dt>array <var>a_event_only</var></dt>
            <dd>A list of affected events. Keys are event keys.</dd>
            <dt>array <var>a_service</var></dt>
            <dd>A list of affected services. Keys are service keys.</dd>
            <dt>string <var>dt_end</var></dt>
            <dd>The end date of the holiday.</dd>
            <dt>string <var>dt_start</var></dt>
            <dd>The start date of the holiday.</dd>
            <dt>int <var>is_class_all</var></dt>
            <dd>'1' if all classes are selected to cancel, '0' if otherwise.</dd>
            <dt>int <var>is_event_all</var></dt>
            <dd>'1' if all events are selected to cancel, '0' if otherwise.</dd>
            <dt>int <var>is_service_all</var></dt>
            <dd>'1' if all services are selected to cancel, '0' if otherwise.</dd>
            <dt>int <var>k_business</var></dt>
            <dd>The business key.</dd>
            <dt>int <var>k_holiday</var></dt>
            <dd>The holiday key.</dd>
            <dt>int <var>k_location</var></dt>
            <dd>The location key.</dd>
            <dt>int <var>k_market</var></dt>
            <dd>The market key.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The name of the holiday.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business_holidays:
                    type: object
                    example: []

  /Wl/Holiday/HolidayModel:
    get:
      tags:
      - Holiday
      summary: An endpoint displaying information about locations' business holidays.
      description: >-
        An endpoint displaying information about locations' business holidays.
      parameters:
        - name: dl_work
          description: >-
            The date working hours are required for.
            Set in the business's timezone.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_location_holiday</i></b> - A list of the location's closed day titles by location keys on the date [Wl\Holiday\HolidayModel::$dl_work](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Holiday/HolidayModel.php).<br/>            <b><i>is_business_holiday</i></b> - <tt>true</tt> if the business has a closed day on the date [Wl\Holiday\HolidayModel::$dl_work](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Holiday/HolidayModel.php), <tt>false</tt> if otherwise.<br/>            <b><i>text_business_title</i></b> - The message used for the business's closed day on the date [Wl\Holiday\HolidayModel::$dl_work](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Holiday/HolidayModel.php).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_location_holiday:
                    type: object
                    example: []
                  is_business_holiday:
                    type: integer
                    example: 0
                  text_business_title:
                    type: string
                    example: ""

  /Wl/Insurance/Catalog/ProgramListModel:
    get:
      tags:
      - Insurance
      summary: Retrieves a list of programs' information.
      description: >-
        Retrieves a list of programs' information.
      parameters:
        - name: k_business
          description: >-
            The key of the franchisee business.

          in: query
          schema:
            type: string
        - name: k_promotion
          description: >-
            The key of the promotion.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_wellness_program</i></b> - A List of active programs.
            Every element has next keys:
            
            <dl>
            <dt>string <var>k_wellness_program</var></dt>
            <dd>The insurance key.</dd>
            <dt>string <var>m_price</var></dt>
            <dd>The Purchase Option price.</dd>
            <dt>string <var>text_insurance_organization</var></dt>
            <dd>The insurance organization name.</dd>
            <dt>string <var>text_partner</var></dt>
            <dd>The insurance partner name.</dd>
            <dt>string <var>text_program</var></dt>
            <dd>The insurance name.</dd>
            <dt>string <var>url_insurance_detail</var></dt>
            <dd>The insurance organization URL.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_wellness_program:
                    type: object
                    example: []

  /Wl/Insurance/Enrollment/Field/EnrollmentFieldListModel:
    post:
      tags:
      - Insurance
      summary: Retrieves and validates a list of insurance partner fields.
      description: >-
        Retrieves and validates a list of insurance partner fields.
        <br /><br />
        Use the GET method to load a list of required fields.
        <br /><br />
        Use the POST method to validate the fields before sending them to the payment API.
      parameters:
        - name: k_business
          description: >-
            The key of the business in which the enrollment is performed.

          in: query
          schema:
            type: string
        - name: k_wellness_program
          description: >-
            "Wellness Program" key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_account</i></b> -
          Reimbursement account information.
          
          Keys - field name.
          Values - value entered by user.
          
          Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setAccountForm()} method.
          <br/>
          <b><i>a_field</i></b> -
          List of fields that the user has filled in for enrollment.
          
          Keys refer specifically to field keys.
          Values refer specifically to values entered by the user.
          
          Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setFieldForm()} method.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_account:
                  description: >- 
                    Reimbursement account information.
                    
                    Keys - field name.
                    Values - value entered by user.
                    
                    Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setAccountForm()} method.

                  type: object
                a_field:
                  description: >- 
                    List of fields that the user has filled in for enrollment.
                    
                    Keys refer specifically to field keys.
                    Values refer specifically to values entered by the user.
                    
                    Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setFieldForm()} method.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    put:
      tags:
      - Insurance
      summary: Retrieves and validates a list of insurance partner fields.
      description: >-
        Retrieves and validates a list of insurance partner fields.
        <br /><br />
        Use the GET method to load a list of required fields.
        <br /><br />
        Use the POST method to validate the fields before sending them to the payment API.
      parameters:
        - name: k_business
          description: >-
            The key of the business in which the enrollment is performed.

          in: query
          schema:
            type: string
        - name: k_wellness_program
          description: >-
            "Wellness Program" key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_account</i></b> -
          Reimbursement account information.
          
          Keys - field name.
          Values - value entered by user.
          
          Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setAccountForm()} method.
          <br/>
          <b><i>a_field</i></b> -
          List of fields that the user has filled in for enrollment.
          
          Keys refer specifically to field keys.
          Values refer specifically to values entered by the user.
          
          Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setFieldForm()} method.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_account:
                  description: >- 
                    Reimbursement account information.
                    
                    Keys - field name.
                    Values - value entered by user.
                    
                    Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setAccountForm()} method.

                  type: object
                a_field:
                  description: >- 
                    List of fields that the user has filled in for enrollment.
                    
                    Keys refer specifically to field keys.
                    Values refer specifically to values entered by the user.
                    
                    Validation is performed by {@link Wl\Insurance\Enrollment\Field\EnrollmentFieldList::setFieldForm()} method.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Insurance
      summary: Retrieves and validates a list of insurance partner fields.
      description: >-
        Retrieves and validates a list of insurance partner fields.
        <br /><br />
        Use the GET method to load a list of required fields.
        <br /><br />
        Use the POST method to validate the fields before sending them to the payment API.
      parameters:
        - name: k_business
          description: >-
            The key of the business in which the enrollment is performed.

          in: query
          schema:
            type: string
        - name: k_wellness_program
          description: >-
            "Wellness Program" key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_field_list</i></b> - The partner field list.
            <dl>
            <dt>array <var>a_account</var></dt>
            <dd>
            The list of reimbursement account fields.
            If the program doesn't require reimbursement, this list will be empty.
            The description of the list of fields is similar to the <var>a_field</var>.
            </dd>
            <dt>array <var>a_field</var></dt>
            <dd>
            The partner field info.
            <dl>
            <dt>array <var>a_config</var></dt>
            <dd>
            Additional information about the field.
            <dl>
            <dt>array <var>a_option</var></dt>
            <dd>A set of options for the dropdown list. The key is the title and the value is the value of the list item.</dd>
            <dt>string <var>text_type</var></dt>
            <dd>The type of text field.</dd>
            </dl>
            </dd>
            
            <dt>int <var>i_length</var></dt>
            <dd>The length of the field.</dd>
            
            <dt>bool <var>is_disable</var></dt>
            <dd>Determines whether this field is enabled.</dd>
            
            <dt>bool <var>is_required</var></dt>
            <dd>Determines whether this field is required.</dd>
            
            <dt>string <var>k_field</var></dt>
            <dd>The field key.</dd>
            
            <dt>string <var>s_regular</var></dt>
            <dd>The regular expression validation for the field.</dd>
            
            <dt>string <var>text_display_name</var></dt>
            <dd>The label text for the field.</dd>
            
            <dt>string <var>text_error_message</var></dt>
            <dd>The error message if the value in field isn't valid.</dd>
            
            <dt>string <var>text_field_name</var></dt>
            <dd>The name of the field.</dd>
            </dl>
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_field_list:
                    type: object
                    example: []

  /Wl/Integration/Autymate/AutymateActivateModel:
    get:
      tags:
      - Integration
      summary: Checks or changes the status of Autymate enrollments.
      description: >-
        Checks or changes the status of Autymate enrollments.
      parameters:
        - name: id_mode
          description: >-
            The mode of the request.
            
            One of [Wl\Integration\Autymate\AutymateAccessModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Integration/Autymate/AutymateAccessModeSid.php) constants.

          in: query
          schema:
            type: string
        - name: id_status
          description: >-
            The new status of the enrollment. If `0`, the current status is returned.
            
            One of [Wl\Integration\Autymate\AutymateStatusSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Integration/Autymate/AutymateStatusSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business.

          in: query
          schema:
            type: string
        - name: s_guid
          description: >-
            The randomly generated 32 character string used to authenticate Autymate requests for the business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>id_status</i></b> - The new status of the enrollment. If `0`, the current status is returned.
            
            One of [Wl\Integration\Autymate\AutymateStatusSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Integration/Autymate/AutymateStatusSid.php) constants.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  id_status:
                    type: integer
                    example: 0

  /Wl/Integration/Autymate/ReportModel:
    get:
      tags:
      - Integration
      summary: Retrieves all daily transactions for a business using the All Transactions report from the
      description: >-
        Retrieves all daily transactions for a business using the All Transactions report from the
        [Wl\Report\Generator\QueryModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Report/Generator/QueryModel.php) endpoint. This endpoint is a streamlined interface and adds
        additional columns to the report for Autymate.
        Autymate will have one user to access all businesses, this user will require the wl.integration.autymate.report privilege.
      parameters:
        - name: a_pay_method_remove
          description: >-
            List of payment methods to filter out in the report. Each element is one of the {@line \WellnessLiving\WlPayMethodSid} constants.

          in: query
          schema:
            type: string
        - name: dl_date
          description: >-
            The date in local time to retrieve transactions for.

          in: query
          schema:
            type: string
        - name: i_page
          description: >-
            The page of the report, starting from 0.
            Each page will contain a maximum of [Wl\Integration\Autymate\ReportModel::LIMIT](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Integration/Autymate/ReportModel.php) rows.

          in: query
          schema:
            type: string
        - name: is_refresh
          description: >-
            Determines whether this report should be refreshed.
            
            `true` to refresh this report if it's already generated.
            Refreshing of the report may not be queried while report is being generated.
            
            `false` to only return contents of the report.
            If report isn't yet generated, it automatically starts the generation in the background.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business for which the report must be generated.

          in: query
          schema:
            type: string
        - name: s_guid
          description: >-
            The randomly generated 32 character string used to authenticate requests.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_field</i></b> - The list of fields in this report.
            
            This array is effectively a title row for table that is returned in [Wl\Integration\Autymate\ReportModel::$a_row](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Integration/Autymate/ReportModel.php).<br/>            <b><i>a_row</i></b> - The report data.
            
            This is an indexed array in which one row is an indexed array also.
            
            Indexes of the columns correspond to columns in [Wl\Integration\Autymate\ReportModel::$a_field](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Integration/Autymate/ReportModel.php).<br/>            <b><i>a_warning</i></b> - The warning list of the report, if applicable.<br/>            <b><i>dtu_complete</i></b> - The date and time when this report has completed generation.
            
            `null` if generation of this report isn't completed.<br/>            <b><i>dtu_queue</i></b> - The date and time when this report was put in the generation queue.
            
            Effectively, this is the time when a user clicked to view this report or the report for this day was first called.<br/>            <b><i>dtu_start</i></b> - The date and time when generation of this report was started.
            
            `null` if generation of this report hasn't started.<br/>            <b><i>id_report_status</i></b> - The status of the report.
            
            One of the [Wl\Report\Generator\ReportGeneratorStatusSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Report/Generator/ReportGeneratorStatusSid.php) constants.<br/>            <b><i>is_more</i></b> - If <tt>true</tt> then there are more report rows to get. Otherwise, <tt>false</tt> if all rows have been sent.<br/>            <b><i>is_report_complete</i></b> - Determines whether this report is complete. If this report is accessed on the current day, or is returning
            a result that was cached on the current day it could be incomplete as not all the transactions for the day
            are present.
            
            If `true` then this report will be complete.
            
            If `false` then this report could be incomplete.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_field:
                    type: object
                    example: []
                  a_row:
                    type: object
                    example: []
                  a_warning:
                    type: object
                    example: []
                  dtu_complete:
                    type: string
                    example: ""
                  dtu_queue:
                    type: string
                    example: ""
                  dtu_start:
                    type: string
                    example: ""
                  id_report_status:
                    type: integer
                    example: 0
                  is_more:
                    type: integer
                    example: 0
                  is_report_complete:
                    type: integer
                    example: 0

  /Wl/Integration/Curves/CurvesFranchiseLocationModel:
    get:
      tags:
      - Integration
      summary: Gets information for enterprise locations.
      description: >-
        Gets information for enterprise locations.
      parameters:
        - name: id_business_franchise_location
          description: >-
            Determines which locations should be returned.
            
            One of the [Wl\Business\Franchise\Location\BusinessFranchiseLocationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Franchise/Location/BusinessFranchiseLocationSid.php) constants.
            
            <tt>null</tt> means that [Wl\Business\Franchise\Location\BusinessFranchiseLocationSid::ALL](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/Franchise/Location/BusinessFranchiseLocationSid.php) is used.

          in: query
          schema:
            type: string
        - name: id_report
          description: >-
            Determines report for which data should be returned.
            
            One of the [RsReportSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsReportSid.php) constants.
            
            <tt>null</tt> means that report is not set.

          in: query
          schema:
            type: string
        - name: is_include_churn
          description: >-
            Whether to include churned/removed locations. `true` to list all locations regardless of their status.

          in: query
          schema:
            type: string
        - name: is_include_non_api
          description: >-
            Whether to include locations marked to not be displayed on franchisor website. `true` to list all locations
            regardless of this setting.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_city_list</i></b> - The city list. Each element has next structure:
            <dl>
            <dt>
            string <var>k_city</var>
            </dt>
            <dd>
            City key.
            </dd>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            Country key.
            </dd>
            <dt>
            string <var>k_state</var>
            </dt>
            <dd>
            State key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            City title.
            </dd>
            </dl><br/>            <b><i>a_country_list</i></b> - The country list. Each element has next structure:
            <dl>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            Country key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            Country title.
            </dd>
            </dl><br/>            <b><i>a_location_list</i></b> - The location list. Each element has next structure:
            <dl>
            <dt>
            string <var>k_city</var>
            </dt>
            <dd>
            City key.
            </dd>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            Country key.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            Location key.
            </dd>
            <dt>
            string <var>k_region</var>
            </dt>
            <dd>
            Franchise region key.
            </dd>
            <dt>
            string <var>k_state</var>
            </dt>
            <dd>
            State key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            Location title.
            </dd>
            </dl><br/>            <b><i>a_region_list</i></b> - The region list. Each element has next structure:
            <dl>
            <dt>
            string <var>k_region</var>
            </dt>
            <dd>
            Franchise region key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            Franchise region title.
            </dd>
            </dl><br/>            <b><i>a_state_list</i></b> - The state list. Each element has next structure:
            <dl>
            <dt>
            string <var>k_country</var>
            </dt>
            <dd>
            Country key.
            </dd>
            <dt>
            string <var>k_state</var>
            </dt>
            <dd>
            State key.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            State title.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_city_list:
                    type: object
                    example: []
                  a_country_list:
                    type: object
                    example: []
                  a_location_list:
                    type: object
                    example: []
                  a_region_list:
                    type: object
                    example: []
                  a_state_list:
                    type: object
                    example: []

  /Wl/Integration/DragonFly/AccessModel:
    get:
      tags:
      - Integration
      summary: Checks if a user can access a physical location.
      description: >-
        Checks if a user can access a physical location.
      parameters:
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: s_member
          description: >-
            The member ID.
            Member ID is intended to work with barcode scanners.
            If this is specified the user key does not need to be set.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.
            This should be specified if the member ID is not set or not known.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>can_access</i></b> - Whether the specified user can access the location.
            `true` if the specified member can access the location.
            `false` if they can not.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  can_access:
                    type: integer
                    example: 0

  /Wl/Integration/Saml/SamlUserDeactivationModel:
    post:
      tags:
      - Integration
      summary: Retrieves user statuses in the business.
      description: >-
        Retrieves user statuses in the business.

      requestBody:
        description: >-
              <b><i>a_id</i></b> -
              A list of SAML identifiers.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    a_id:
                      description: >- 
                        A list of SAML identifiers.

                      type: object
      responses:
        '200':
          description: >-
            <b><i>a_result</i></b> - The key of the SAML identifier.
            
            This value is `true` if an active user is found in the business, `false` if otherwise.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_result:
                    type: object
                    example: []

  /Wl/Lead/LeadModel:
    post:
      tags:
      - Lead
      summary: Gets information from the Lead Capture widget and saves a new user’s information.
      description: >-
        Gets information from the Lead Capture widget and saves a new user’s information.
        <br /><br />
        A user can be added to a second business by adding them first as a lead. If your business uses Enterprise Cloud,
        there may be a restriction where clients can only be members in one enterprise location (travellers in all
        other enterprise locations).
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1072`.
      parameters:
        - name: k_business
          description: >-
            The key of business to which the new user must be captured.

          in: query
          schema:
            type: string
        - name: k_skin
          description: >-
            The key of the widget skin. If left empty, then the default skin is used.
            This will be the Lead Capture widget skin with "Use this widget for the Add Lead form" selected.
            If your business doesn't have a skin selected, this endpoint will default to the system-wide default,
            which may lack fields your business requires when adding a lead or a client.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_field_data</i></b> -
          A list of fields containing the lead information.
          The keys are the field keys and values are field values.
          
          If field key is `Address` field key, value may be an array or string.
          Can be a string if only address field is used. Will be an array if city and postal code are used,
          with the following keys:
          
          <dl>
          <dt>string <var>text_address</var></dt>
          <dd>Address.</dd>
          <dt>string <var>k_city</var></dt>
          <dd>City key.</dd>
          <dt>string <var>text_postal</var></dt>
          <dd>Postal code.</dd>
          </dl>
          <br/>
          <b><i>s_captcha</i></b> -
          The characters entered by the lead for the captcha test.
          This isn't necessary if the GET method returned an empty [Wl\Lead\LeadModel::$url_captcha](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Lead/LeadModel.php).
          This field isn't necessary if the GET method returned an empty [Wl\Lead\LeadModel::$url_captcha](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Lead/LeadModel.php).
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_field_data:
                  description: >- 
                    A list of fields containing the lead information.
                    The keys are the field keys and values are field values.
                    
                    If field key is `Address` field key, value may be an array or string.
                    Can be a string if only address field is used. Will be an array if city and postal code are used,
                    with the following keys:
                    
                    <dl>
                    <dt>string <var>text_address</var></dt>
                    <dd>Address.</dd>
                    <dt>string <var>k_city</var></dt>
                    <dd>City key.</dd>
                    <dt>string <var>text_postal</var></dt>
                    <dd>Postal code.</dd>
                    </dl>

                  type: object
                s_captcha:
                  description: >- 
                    The characters entered by the lead for the captcha test.
                    This isn't necessary if the GET method returned an empty [Wl\Lead\LeadModel::$url_captcha](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Lead/LeadModel.php).
                    This field isn't necessary if the GET method returned an empty [Wl\Lead\LeadModel::$url_captcha](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Lead/LeadModel.php).

                  type: string
      responses:
        '200':
          description: >-
            <b><i>uid</i></b> - The key of the new user.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  uid:
                    type: string
                    example: ""
    get:
      tags:
      - Lead
      summary: Gets information from the Lead Capture widget and saves a new user’s information.
      description: >-
        Gets information from the Lead Capture widget and saves a new user’s information.
        <br /><br />
        A user can be added to a second business by adding them first as a lead. If your business uses Enterprise Cloud,
        there may be a restriction where clients can only be members in one enterprise location (travellers in all
        other enterprise locations).
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1072`.
      parameters:
        - name: k_business
          description: >-
            The key of business to which the new user must be captured.

          in: query
          schema:
            type: string
        - name: k_skin
          description: >-
            The key of the widget skin. If left empty, then the default skin is used.
            This will be the Lead Capture widget skin with "Use this widget for the Add Lead form" selected.
            If your business doesn't have a skin selected, this endpoint will default to the system-wide default,
            which may lack fields your business requires when adding a lead or a client.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_field_list</i></b> - A list of profile fields in the business. Every element has the following keys:
            <dl>
            <dt>
            array[] <var>a_item</var>
            </dt>
            <dd>
            A list of possible options for an HTML select field. This value is only used if this field is an HTML select.
            Every element has the following keys:
            <dl>
            <dt>string <var>s_id</var></dt>
            <dd>The option ID.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The option title.</dd>
            </dl>
            </dd>
            <dt>
            int <var>id_field_general</var>
            </dt>
            <dd>
            The type of the general field. This is one of the [RsFieldGeneralSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldGeneralSid.php).
            This value is only set if the field is one of the general fields.
            </dd>
            <dt>
            int <var>id_field_type</var>
            </dt>
            <dd>
            The field type. This is one of the [RsFieldTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldTypeSid.php) constants.
            </dd>
            <dt>
            bool <var>is_require</var>
            </dt>
            <dd>
            If `true`, then the field is mandatory. If `false`, then the field isn't mandatory.
            </dd>
            <dt>
            string <var>k_field</var>
            </dt>
            <dd>
            The field key.
            </dd>
            <dt>
            string <var>text_field</var>
            </dt>
            <dd>
            The field title.
            </dd>
            </dl><br/>            <b><i>a_skin</i></b> - The skin configuration:
            <dl>
            <dt>array <var>a_style</var></dt><dd>The general style settings.</dd>
            <dt>array <var>background</var></dt><dd>The background settings.</dd>
            <dt>array <var>field-font</var></dt><dd>The font settings.</dd>
            <dt>array <var>header-text</var></dt><dd>The header settings.</dd>
            <dt>array <var>info-show</var></dt><dd>The information settings.</dd>
            <dt>array <var>submit-background</var></dt><dd>The settings for the submit button background.</dd>
            <dt>array <var>submit-font</var></dt><dd>The settings for the submit button font.</dd>
            <dt>array <var>submit-text</var></dt><dd>The settings for the submit button text.</dd>
            </dl><br/>            <b><i>url_captcha</i></b> - The URL to load the image with a captcha test.
            This string is empty if it's not necessary to pass a captcha test.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_field_list:
                    type: object
                    example: []
                  a_skin:
                    type: object
                    example: []
                  url_captcha:
                    type: string
                    example: ""

  /Wl/Location/Flag/FlagModel:
    get:
      tags:
      - Location
      summary: Retrieves information if a user is flagged in a location.
      description: >-
        Retrieves information if a user is flagged in a location.
      parameters:
        - name: a_uid
          description: >-
            User keys. Each element is a primary key in the {@link \PassportLoginSql} table.
            <tt>null</tt> if not set.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user's key.
            <tt>null</tt> if not set.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_flag</i></b> - Array with structure:<dl>
            <dt>string <var>uid</var></dt>
            <dd>Key:</dd>
            <dt>bool <var>is_flag</var></dt>
            <dd>Value: <tt>true</tt> if user is flagged; <tt>false</tt> otherwise.</dd>
            </dl>
            <tt>null</tt> until loaded or when <var>a_uid</var> was not set.<br/>            <b><i>is_flag</i></b> - <tt>true</tt> if the user is flagged, <tt>false</tt> if otherwise.
            
            <tt>null</tt> until loaded or when [Wl\Location\Flag\FlagModel::$a_uid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Location/Flag/FlagModel.php) was not set.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_flag:
                    type: object
                    example: []
                  is_flag:
                    type: integer
                    example: 0

  /Wl/Location/ListBulkModel:
    get:
      tags:
      - Location
      summary: Gets all locations for a list of businesses.
      description: >-
        Gets all locations for a list of businesses.
        <br /><br />
        This can be used to get all locations from all businesses. When using this endpoint, note that it will return
        a list of all locations in the system, potentially using substantial system resources. Using this endpoint can
        potentially result in larger API calls than average calls made for other endpoints.
      parameters:
        - name: id_directory
          description: >-
            The ID of the directory if locations should be filtered by enabling directory integration.
            
            `0` if a directory filter isn't required.

          in: query
          schema:
            type: string
        - name: s_business
          description: >-
            A list of businesses. Business primary keys are serialized with JSON.
            
            Empty string if you need all locations in the system.

          in: query
          schema:
            type: string
        - name: s_location
          description: >-
            A list of locations. Location primary keys are serialized with JSON.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_location</i></b> - Short-form information about locations.
            
            Keys refer to location primary keys. Values refer to sub-arrays with the next keys:
            <dl>
            <dt>
            float <var>f_latitude</var>
            </dt>
            <dd>
            The latitude coordinate.
            </dd>
            <dt>
            float <var>f_longitude</var>
            </dt>
            <dd>
            The longitude coordinate.
            </dd>
            <dt>
            float <var>f_rate</var>
            </dt>
            <dd>
            The location rate.
            </dd>
            <dt>
            int <var>i_order</var>
            </dt>
            <dd>
            The order number.
            </dd>
            <dt>
            string <var>k_business</var>
            </dt>
            <dd>
            The business's primary key.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The location's primary key.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The location title.
            </dd>
            <dt>
            string <var>text_address</var>
            </dt>
            <dd>
            The full location address.
            </dd>
            <dt>
            string [<var>url_logo</var>]
            </dt>
            <dd>
            The location logo.
            </dd>
            </dl><br/>            <b><i>a_location_full</i></b> - A list of models with full information about each location.
            
            Every element is an object of the [Wl\Location\View\ViewModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Location/View/ViewModel.php).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_location:
                    type: object
                    example: []
                  a_location_full:
                    type: object
                    example: []

  /Wl/Location/ListModel:
    get:
      tags:
      - Location
      summary: Returns information for all locations belonging to a business.
      description: >-
        Returns information for all locations belonging to a business.
      parameters:
        - name: a_business
          description: >-
            A list of business keys.
            You can specify this instead of <var>$k_business</var> to load data for many businesses in one call.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key used internally by WellnessLiving.

          in: query
          schema:
            type: string
        - name: s_business
          description: >-
            The primary keys of the selected businesses.
            You can specify this instead of <var>$k_business</var> to load data for many businesses in one call.
            
            This is the same as <var>$a_business</var>, but serialized with JSON (to make the URL shorter).

          in: query
          schema:
            type: string
        - name: show_remove
          description: >-
            Determines whether removed locations should be returned.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_location</i></b> - Information about the business's location(s). If you've specified multiple businesses for this endpoint, this will
            return location information for multiple businesses. Keys refer to location keys. Values refer to subarrays with the next keys:
            <dl>
            <dt>
            float <var>f_latitude</var>
            </dt>
            <dd>
            The location latitude.
            </dd>
            <dt>
            float <var>f_longitude</var>
            </dt>
            <dd>
            The location longitude.
            </dd>
            <dt>
            string <var>k_business</var>
            </dt>
            <dd>
            The business key.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The location key.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The location title.
            </dd>
            <dt>
            string <var>text_address</var>
            </dt>
            <dd>
            The location's full address.
            </dd>
            <dt>
            string [<var>url_logo</var>]
            </dt>
            <dd>
            The location logo's URL. This will only be set if the location has a logo.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_location:
                    type: object
                    example: []

  /Wl/Location/LocationModel:
    post:
      tags:
      - Location
      summary: Creates a new location in the business or edits a specified location.
      description: >-
        Creates a new location in the business or edits a specified location.
        Access to this endpoint is logged with specified permissions. It can also be accessed by guests during the
        registration process for new businesses (see [Wl\Business\BusinessModel::sessionKey()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/BusinessModel.php)).
        <br /><br />
        Field <tt>k_business</tt> is required.
        Other fields are optionally if the location should be edited. This means if a field is not specified it is not be changed.
        If <tt>k_location</tt> is not specified that new location will be created. In this case <tt>k_city</tt>,
        <tt>text_address</tt> and <tt>text_title</tt> are required.

      requestBody:
        description: >-
              <b><i>k_business</i></b> -
              The key of the business.
              This field is required.
              <br/>
              <b><i>k_city</i></b> -
              The key of the city.
              This field is required for creating a new location.
              <br/>
              <b><i>k_location</i></b> -
              The key of the location.
              This will be `null` if it's being used to create a new location.
              <br/>
              <b><i>k_timezone</i></b> -
              The key of the time zone.
              This field is optional.
              <br/>
              <b><i>text_address</i></b> -
              The address of the location.
              This field is required for creating a new location.
              <br/>
              <b><i>text_email</i></b> -
              The mail address.
              <br/>
              <b><i>text_phone</i></b> -
              The phone number.
              <br/>
              <b><i>text_postal</i></b> -
              The postal code.
              <br/>
              <b><i>text_title</i></b> -
              The title of the location.
              This field is required for creating a new location.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_business:
                      description: >- 
                        The key of the business.
                        This field is required.

                      type: string
                    k_city:
                      description: >- 
                        The key of the city.
                        This field is required for creating a new location.

                      type: string
                    k_location:
                      description: >- 
                        The key of the location.
                        This will be `null` if it's being used to create a new location.

                      type: string
                    k_timezone:
                      description: >- 
                        The key of the time zone.
                        This field is optional.

                      type: string
                    text_address:
                      description: >- 
                        The address of the location.
                        This field is required for creating a new location.

                      type: string
                    text_email:
                      description: >- 
                        The mail address.

                      type: string
                    text_phone:
                      description: >- 
                        The phone number.

                      type: string
                    text_postal:
                      description: >- 
                        The postal code.

                      type: string
                    text_title:
                      description: >- 
                        The title of the location.
                        This field is required for creating a new location.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>k_location</i></b> - The key of the location.
            This will be `null` if it's being used to create a new location.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_location:
                    type: string
                    example: ""

  /Wl/Location/View/ViewModel:
    get:
      tags:
      - Location
      summary: Returns information on a specified location.
      description: >-
        Returns information on a specified location.
      parameters:
        - name: i_logo_height
          description: >-
            Maximum location image height.

          in: query
          schema:
            type: string
        - name: i_logo_width
          description: >-
            Maximum location image width.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_age</i></b> - A list of ages that are permitted for visiting this location.<br/>            <b><i>a_amenities</i></b> - A list of facilities that are available in this location.<br/>            <b><i>a_level</i></b> - A list of levels that are suitable for visiting this location.<br/>            <b><i>a_logo</i></b> - Information about the location logo used in WellnessLiving:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            The image height.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            The image width.
            </dd>
            <dt>
            string <var>s_url</var>
            </dt>
            <dd>
            The URL to the image.
            </dd>
            </dl><br/>            <b><i>a_slide</i></b> - A list of the location images.
            Every element has the following keys:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            Height.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            Width.
            </dd>
            <dt>
            string <var>url_preview</var>
            </dt>
            <dd>
            URL to image preview.
            </dd>
            <dt>
            string <var>url_slide</var>
            </dt>
            <dd>
            URL to full image.
            </dd>
            </dl><br/>            <b><i>a_work</i></b> - The hours of operation for the location.
            Fields are numbers representing specific days (1 is Monday, 7 is Sunday). Values are objects with the next fields:
            <dl>
            <dt>
            string <var>s_end</var>
            </dt>
            <dd>
            The time of day end in MySQL format.
            </dd>
            <dt>
            string <var>s_start</var>
            </dt>
            <dd>
            The time of day start in MySQL format.
            </dd>
            </dl><br/>            <b><i>f_latitude</i></b> - The latitude coordinate of the location.<br/>            <b><i>f_longitude</i></b> - The longitude coordinate of the location.<br/>            <b><i>html_description_full</i></b> - The full description of the location.<br/>            <b><i>html_description_preview</i></b> - A shorter description of the location. A preview of [Wl\Location\View\ViewModel::$html_description_full](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Location/View/ViewModel.php).<br/>            <b><i>id_industry</i></b> - The industry of the business.
            `null` in case when industry didn't set for chosen business type, or for business types
            where set value which is absent.<br/>            <b><i>is_phone</i></b> - `true` if to display phone number on location page. `False` otherwise.<br/>            <b><i>is_top_choice</i></b> - `true` if WellnessLiving identifies this is a top choice location, `false` otherwise.<br/>            <b><i>k_business</i></b> - The key of the business this location belongs to.<br/>            <b><i>k_business_type</i></b> - The key of the business type this location belongs to.<br/>            <b><i>k_timezone</i></b> - Timezone primary key in {@link \AGeoTimezoneSql} table.<br/>            <b><i>s_address</i></b> - The physical address of the location.<br/>            <b><i>s_map</i></b> - A string that can be used in navigator programs.<br/>            <b><i>s_phone</i></b> - The phone number for the location.<br/>            <b><i>s_timezone</i></b> - The system name of the time zone.<br/>            <b><i>s_title</i></b> - The title of the location.<br/>            <b><i>text_address_individual</i></b> - The address of the location.<br/>            <b><i>text_alias</i></b> - The special system name, which can be used in custom location links.
            This is usually based on name of the location, with extra characters removed.
            However, it can also can be fully customized.<br/>            <b><i>text_business_type</i></b> - The name of the business type.<br/>            <b><i>text_city</i></b> - The city name of the location.<br/>            <b><i>text_country</i></b> - The country name of the location.<br/>            <b><i>text_industry</i></b> - The name of the industry of the business.<br/>            <b><i>text_mail</i></b> - The email address.<br/>            <b><i>text_postal</i></b> - Postal code of the location.<br/>            <b><i>text_region</i></b> - The region name of the location.<br/>            <b><i>text_region_code</i></b> - Region 2 or 3 letters abbreviation of the location. Can be empty, if abbreviation for region is not set.<br/>            <b><i>url_facebook</i></b> - The Facebook URL of the location.<br/>            <b><i>url_instagram</i></b> - The Instagram URL of the location.<br/>            <b><i>url_linkedin</i></b> - The Linked In URL of the location.<br/>            <b><i>url_map</i></b> - The URL of the location in Google Maps.<br/>            <b><i>url_microsite</i></b> - The URL to the location entry in the WellnessLiving Explorer listing.<br/>            <b><i>url_site</i></b> - The website URL of the location.<br/>            <b><i>url_twitter</i></b> - The URL of the location's Twitter account.<br/>            <b><i>url_web</i></b> - The URL to the business's Client Web App.<br/>            <b><i>url_youtube</i></b> - The YouTube URL of the location.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_age:
                    type: object
                    example: []
                  a_amenities:
                    type: object
                    example: []
                  a_level:
                    type: object
                    example: []
                  a_logo:
                    type: object
                    example: []
                  a_slide:
                    type: object
                    example: []
                  a_work:
                    type: object
                    example: []
                  f_latitude:
                    type: string
                    example: ""
                  f_longitude:
                    type: string
                    example: ""
                  html_description_full:
                    type: string
                    example: ""
                  html_description_preview:
                    type: string
                    example: ""
                  id_industry:
                    type: integer
                    example: 0
                  is_phone:
                    type: integer
                    example: 0
                  is_top_choice:
                    type: integer
                    example: 0
                  k_business:
                    type: string
                    example: ""
                  k_business_type:
                    type: string
                    example: ""
                  k_timezone:
                    type: string
                    example: ""
                  s_address:
                    type: string
                    example: ""
                  s_map:
                    type: string
                    example: ""
                  s_phone:
                    type: string
                    example: ""
                  s_timezone:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  text_address_individual:
                    type: string
                    example: ""
                  text_alias:
                    type: string
                    example: ""
                  text_business_type:
                    type: string
                    example: ""
                  text_city:
                    type: string
                    example: ""
                  text_country:
                    type: string
                    example: ""
                  text_industry:
                    type: string
                    example: ""
                  text_mail:
                    type: string
                    example: ""
                  text_postal:
                    type: string
                    example: ""
                  text_region:
                    type: string
                    example: ""
                  text_region_code:
                    type: string
                    example: ""
                  url_facebook:
                    type: string
                    example: ""
                  url_instagram:
                    type: string
                    example: ""
                  url_linkedin:
                    type: string
                    example: ""
                  url_map:
                    type: string
                    example: ""
                  url_microsite:
                    type: string
                    example: ""
                  url_site:
                    type: string
                    example: ""
                  url_twitter:
                    type: string
                    example: ""
                  url_web:
                    type: string
                    example: ""
                  url_youtube:
                    type: string
                    example: ""

  /Wl/Location/WorkTime/LocationWorkTimeModel:
    post:
      tags:
      - Location
      summary: Saves working hours for a specified location.
      description: >-
        Saves working hours for a specified location.
        <br /><br />
        Note that to run this endpoint, an authenticated user with specified permissions is required. Otherwise, use a
        guest account during the new business registration process (see [Wl\Business\BusinessModel::sessionKey()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/BusinessModel.php)).

      requestBody:
        description: >-
              <b><i>a_work_time</i></b> -
              The list of the location's business hours. Each element has the next structure:<dl>
              <dt>int <var>i_day</var></dt>
              <dd>The day of the week, from Monday (1) to Sunday (7). One of the[Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.</dd>
              <dt>string <var>t_end</var></dt>
              <dd>The end time of work, formatted as HH:MM.</dd>
              <dt>string <var>t_start</var></dt>
              <dd>The start time of work, formatted as HH:MM</dd>
              </dl>
              
              Note that the days of the week that aren't represented in this list will be saved as non-working days.
              <br/>
              <b><i>k_business</i></b> -
              The business key.
              <br/>
              <b><i>k_location</i></b> -
              The location key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    a_work_time:
                      description: >- 
                        The list of the location's business hours. Each element has the next structure:<dl>
                        <dt>int <var>i_day</var></dt>
                        <dd>The day of the week, from Monday (1) to Sunday (7). One of the[Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.</dd>
                        <dt>string <var>t_end</var></dt>
                        <dd>The end time of work, formatted as HH:MM.</dd>
                        <dt>string <var>t_start</var></dt>
                        <dd>The start time of work, formatted as HH:MM</dd>
                        </dl>
                        
                        Note that the days of the week that aren't represented in this list will be saved as non-working days.

                      type: object
                    k_business:
                      description: >- 
                        The business key.

                      type: string
                    k_location:
                      description: >- 
                        The location key.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Login/Add/MailUseOkModel:
    post:
      tags:
      - Login
      summary: Registers an existing user in the specified Enterprise Headquarters account.
      description: >-
        Registers an existing user in the specified Enterprise Headquarters account.
        <br /><br />
        This endpoint isn't applicable for users who are already members of the business. After a profile is edited, there can
        be a delay while the data replicates to system caches. As a result, you may see a 'profile-field-empty' status code. In most
        cases, this delay is less than 20 seconds.
        <br /><br />
        For Enterprise Cloud in WellnessLiving, clients can only be members in one Enterprise Location.
        In all other Enterprise Locations, they'll be treated as travelers in the system.

      requestBody:
        description: >-
              <b><i>is_lead</i></b> -
              This value is `true` if this user is a lead. `false` if otherwise.
              <br/>
              <b><i>k_business</i></b> -
              The business key used internally by WellnessLiving.
              <br/>
              <b><i>k_skin</i></b> -
              The Lead Capture Widget skin key. This is used only if a lead was added.
              <br/>
              <b><i>uid</i></b> -
              The user key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    is_lead:
                      description: >- 
                        This value is `true` if this user is a lead. `false` if otherwise.

                      type: integer
                    k_business:
                      description: >- 
                        The business key used internally by WellnessLiving.

                      type: string
                    k_skin:
                      description: >- 
                        The Lead Capture Widget skin key. This is used only if a lead was added.

                      type: string
                    uid:
                      description: >- 
                        The user key.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>a_error</i></b> - The list of fields with missing information.
            Each element is an array containing the following data:
            <dl>
            <dt>
            string <var>html_message</var>
            </dt>
            <dd>
            The error message.
            </dd>
            <dt>
            string <var>s_field</var>
            </dt>
            <dd>
            The name of the field missing information.
            Given in the format `k_field.name`.
            </dd>
            </dl><br/>            <b><i>s_code</i></b> - The result code of the request.<br/>            <b><i>text_message</i></b> - The result message of the request.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_error:
                    type: object
                    example: []
                  s_code:
                    type: string
                    example: ""
                  text_message:
                    type: string
                    example: ""

  /Wl/Login/Agree/AgreeModel:
    get:
      tags:
      - Login
      summary: Saves the user's agreement to the online waiver.
      description: >-
        Saves the user's agreement to the online waiver.
      parameters:
        - name: k_business
          description: >-
            The key of business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user's key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>html_contract</i></b> - Formatted text of business liability release. Not empty if business has liability release and if user did not agree to this liability release.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  html_contract:
                    type: string
                    example: ""
    post:
      tags:
      - Login
      summary: Saves the user's agreement to the online waiver.
      description: >-
        Saves the user's agreement to the online waiver.
      parameters:
        - name: k_business
          description: >-
            The key of business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user's key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>is_agree</i></b> -
          <tt>false</tt> if user has not agreed to use Electronic Signatures,
          <tt>true</tt> if user has agreed to use Electronic Signatures,
          <tt>null</tt> otherwise.
          <br/>
          <b><i>s_signature</i></b> -
          The base64-encoded user's signature image from the signature pad as a PNG file.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_agree:
                  description: >- 
                    <tt>false</tt> if user has not agreed to use Electronic Signatures,
                    <tt>true</tt> if user has agreed to use Electronic Signatures,
                    <tt>null</tt> otherwise.

                  type: integer
                s_signature:
                  description: >- 
                    The base64-encoded user's signature image from the signature pad as a PNG file.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Login/Attendance/Add/AddModel:
    get:
      tags:
      - Login
      summary: Adds a client to an attendance list.
      description: >-
        Adds a client to an attendance list.
        This endpoint can also be used to get a list of Purchase Options suitable to pay for the session in question.
      parameters:
        - name: dt_date_global
          description: >-
            The start date and time of the class in GMT and MySQL format.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.

          in: query
          schema:
            type: string
        - name: uid_client
          description: >-
            The client user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_promotion</i></b> - Any of the client memberships that can be used to pay for the session.
            Every element is an array with the following keys:
            <dl>
            <dt>
            string <var>k_login_promotion</var>
            </dt>
            <dd>
            The login promotion key, available to pay for the session.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title of the login promotion.
            </dd>
            </dl><br/>            <b><i>a_session_pass</i></b> - Any user's session passes that can be used to pay for the session.
            Every element is an array with the following keys:
            <dl>
            <dt>
            string <var>k_session_pass</var>
            </dt>
            <dd>
            The session pass key, available to pay for the session.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title of the session pass.
            </dd>
            </dl><br/>            <b><i>is_free</i></b> - If `true`, the session is free with no methods of payment. If `false`, the session can be paid for.<br/>            <b><i>k_login_promotion</i></b> - The key of the user's promotion to be used for booking.
            If empty, use any suitable user's promotion.<br/>            <b><i>k_session_pass</i></b> - The key of a session pass that can be used for a single session payment.
            If no such payment is available, `0` will be returned.<br/>            <b><i>m_price</i></b> - The price of the session, including any taxes and discounts.
            
            If `null`, the price of the session hasn't been loaded yet.<br/>            <b><i>m_rest</i></b> - The user's account balance if they were charged the [Wl\Login\Attendance\Add\AddModel::$m_price](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/Add/AddModel.php) amount.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_promotion:
                    type: object
                    example: []
                  a_session_pass:
                    type: object
                    example: []
                  is_free:
                    type: integer
                    example: 0
                  k_login_promotion:
                    type: string
                    example: ""
                  k_session_pass:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_rest:
                    type: string
                    example: ""
    post:
      tags:
      - Login
      summary: Adds a client to an attendance list.
      description: >-
        Adds a client to an attendance list.
        This endpoint can also be used to get a list of Purchase Options suitable to pay for the session in question.
      parameters:
        - name: dt_date_global
          description: >-
            The start date and time of the class in GMT and MySQL format.

          in: query
          schema:
            type: string
        - name: is_event_single
          description: >-
            Defines whether only single session can be booked for block event.
            
            <tt>true</tt> Only current session of the block event will be booked in a case if staff event has appropriate setting to do this action.
            In this case this session will be considered as session out of event block.
            <tt>false</tt> all available event sessions will be booked.
            In this case session will be considered as part of event block.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.

          in: query
          schema:
            type: string
        - name: uid_client
          description: >-
            The client user key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>id_add_option</i></b> -
          Determines how the payment was handled for the session.
          One of the [Wl\Login\Attendance\AddOptionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AddOptionSid.php) constants.
          <br/>
          <b><i>id_mode</i></b> -
          Determines how the session was booked.
          One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
          We recommend using the `WEB_BACKEND` value.
          <br/>
          <b><i>k_login_promotion</i></b> -
          The key of the user's promotion to be used for booking.
          If empty, use any suitable user's promotion.
          <br/>
          <b><i>k_session_pass</i></b> -
          The key of a session pass that can be used for a single session payment.
          If no such payment is available, `0` will be returned.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id_add_option:
                  description: >- 
                    Determines how the payment was handled for the session.
                    One of the [Wl\Login\Attendance\AddOptionSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AddOptionSid.php) constants.

                  type: integer
                id_mode:
                  description: >- 
                    Determines how the session was booked.
                    One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
                    We recommend using the `WEB_BACKEND` value.

                  type: integer
                k_login_promotion:
                  description: >- 
                    The key of the user's promotion to be used for booking.
                    If empty, use any suitable user's promotion.

                  type: string
                k_session_pass:
                  description: >- 
                    The key of a session pass that can be used for a single session payment.
                    If no such payment is available, `0` will be returned.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>id_visit</i></b> - The status of the visit.
            One of the [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.<br/>            <b><i>is_paid</i></b> - If `true`, the visit was automatically paid for in any available way during the booking.
            If `false`, the visit wasn't automatically paid for.<br/>            <b><i>k_visit</i></b> - The key of the booked visit. This will be set on success.
            This value will be needed if the session still needs to be paid for.<br/>            <b><i>url_store</i></b> - The URL link to the store to allow for the payment of the visit.
            
            This link is for web only.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  id_visit:
                    type: integer
                    example: 0
                  is_paid:
                    type: integer
                    example: 0
                  k_visit:
                    type: string
                    example: ""
                  url_store:
                    type: string
                    example: ""

  /Wl/Login/Attendance/AttendanceInfoByTokenModel:
    get:
      tags:
      - Login
      summary: Displays information for certain sessions.
      description: >-
        Displays information for certain sessions.
        Version of [Wl\Login\Attendance\AttendanceInfoModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AttendanceInfoModel.php) for access validation by security token.
      parameters:
        - name: dt_date_local
          description: >-
            Start date of the class in MySQL format in local time.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            ID of appointment to get information for.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            ID of business to get information for.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            ID of class period to get information for.

          in: query
          schema:
            type: string
        - name: text_token
          description: >-
            The security token.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_logo</i></b> - Service logo information:
            <dl>
            <dt>
            bool <var>is_empty</var>
            </dt>
            <dd>
            Whether service image is empty.
            </dd>
            <dt>
            string <var>s_url</var>
            </dt>
            <dd>
            Url link to image.
            </dd>
            </dl><br/>            <b><i>a_resource</i></b> - Assets which are bound to this session.<br/>            <b><i>a_resource_layout</i></b> - Asset layouts of session:
            <dl>
            <dt>
            array <var>a_client</var>
            </dt>
            <dd>
            List of clients who occupy assets of class.
            It is a double nesting array.
            Keys - primary keys of assets in {@link \RsResourceSql} table; sub keys - asset index;
            values - sub array with keys:
            <dl><dt>string <var>text_client</var></dt><dd>User's name.</dd>
            <dt>string <var>uid</var></dt><dd>User's primary key.</dd></dl>
            </dd>
            <dt>
            string[] <var>a_resource_available</var>
            </dt>
            <dd>
            </dd>
            <dt>
            string <var>k_resource_layout</var>
            </dt>
            <dd>
            Key of layout in {@link \Wl\Resource\Layout\Sql} table.
            </dd>
            <dt>
            string <var>text_resource_type</var>
            </dt>
            <dd>
            Title of asset category.
            </dd>
            </dl><br/>            <b><i>a_staff</i></b> - List of staff members who provide service:
            <dl>
            <dt>
            array <var>a_logo</var>
            </dt>
            <dd>
            Data of staff member's photo. Empty if staff has no photo. Otherwise contains next keys:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            Height in pixels.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            Width in pixels.
            </dd>
            <dt>
            string <var>url_logo</var>
            </dt>
            <dd>
            Image URL.
            </dd>
            </dl>
            </dd>
            <dt>
            string <var>k_staff</var>
            </dt>
            <dd>
            Staff key, primary key in {@link \RsStaffSql}.
            </dd>
            <dt>
            string <var>html_firstname</var>
            </dt>
            <dd>
            Staff member's first name.
            </dd>
            <dt>
            string <var>html_lastname</var>
            </dt>
            <dd>
            Staff member's last name.
            </dd>
            </dl><br/>            <b><i>dt_date_global</i></b> - Start date of ste session in MySQL format in GMT.<br/>            <b><i>dtu_wait_promote</i></b> - Date and time in UTC when the visit is promoted from wait list to active list.
            Not empty for appointments.<br/>            <b><i>has_note</i></b> - Whether notes added to visit.<br/>            <b><i>id_note</i></b> - Type of note. One of [Wl\Visit\Note\Sid\NoteSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/Note/Sid/NoteSid.php) constants. <tt>false</tt> if notes not allowed.<br/>            <b><i>id_service</i></b> - Service type, one of [WlServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlServiceSid.php).<br/>            <b><i>is_start_virtual_service</i></b> - Whether this service be carried out in Zoom.
            <tt>true</tt> - If the service can be carried out in Zoom.
            <tt>false</tt> - otherwise.<br/>            <b><i>k_class</i></b> - Class identifier, primary key in {@link \RsClassSql}. Not empty if service is class/event reservation.<br/>            <b><i>k_location</i></b> - The location key.<br/>            <b><i>k_resource</i></b> - The resource key.
            
            Not empty for asset book only.<br/>            <b><i>k_service</i></b> - The appointment key.
            
            Not empty for the case of an appointment only.<br/>            <b><i>text_location</i></b> - Location name.<br/>            <b><i>text_time_end</i></b> - Time when service starts in format <tt>8:00AM</tt>.<br/>            <b><i>text_time_start</i></b> - Start time of the session in format '9:30AM'.<br/>            <b><i>text_title</i></b> - Title of the appointment.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_logo:
                    type: object
                    example: []
                  a_resource:
                    type: object
                    example: []
                  a_resource_layout:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  dt_date_global:
                    type: string
                    example: ""
                  dtu_wait_promote:
                    type: string
                    example: ""
                  has_note:
                    type: integer
                    example: 0
                  id_note:
                    type: integer
                    example: 0
                  id_service:
                    type: integer
                    example: 0
                  is_start_virtual_service:
                    type: integer
                    example: 0
                  k_class:
                    type: string
                    example: ""
                  k_location:
                    type: string
                    example: ""
                  k_resource:
                    type: string
                    example: ""
                  k_service:
                    type: string
                    example: ""
                  text_location:
                    type: string
                    example: ""
                  text_time_end:
                    type: string
                    example: ""
                  text_time_start:
                    type: string
                    example: ""
                  text_title:
                    type: string
                    example: ""

  /Wl/Login/Attendance/AttendanceListByTokenModel:
    get:
      tags:
      - Login
      summary: Displays attendance list data.
      description: >-
        Displays attendance list data.
        Version of [Wl\Login\Attendance\AttendanceListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AttendanceListModel.php) for access validation by security token.
      parameters:
        - name: dt_date_local
          description: >-
            The local date of the class or event session.

          in: query
          schema:
            type: string
        - name: is_purchase_info_return
          description: >-
            If <tt>true</tt>, then return the purchase used to pay for session.
            Otherwise <tt>false</tt>, do not return any purchase information.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key. Not used if requesting information for a class or event session.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key. Not used if requesting information for an appointment.

          in: query
          schema:
            type: string
        - name: text_token
          description: >-
            The security token.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list_active</i></b> - The list of clients in the active attendance list who haven't confirmed or canceled.
            Each element is an array with the following fields:
            <dl>
            <dt>array <var>a_photo</var></dt>
            <dd>
            Information about the user's photo. The information returned has the following structure:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The height of the photo.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The width of the photo.</dd>
            <dt>string <var>is_empty</var></dt>
            <dd>This will be <tt>true</tt> if a photo hasn't been set yet.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL of the photo.</dd>
            </dl>
            </dd>
            <dt>array <var>a_progress</var></dt>
            <dd>Information about a user's current progress. By default, this information isn't sent.</dd>
            <dt>array <var>a_resource</var></dt>
            <dd>A list of information for any associated resources for this visit.</dd>
            <dt>array <var>a_wait_confirm</var></dt>
            <dd>The list of visit keys for clients on the wait list.</dd>
            <dt>array <var>a_wearable</var></dt>
            <dd>A list of information pertaining to the client's wearables.</dd>
            <dt>bool <var>can_profile</var></dt>
            <dd>If <tt>true</tt>, the current user can access this client profile.</dd>
            <dt>string <var>dt_book</var></dt>
            <dd>The date the session was booked, in UTC.</dd>
            <dt>string <var>dt_date</var></dt>
            <dd>The date of the session, in UTC.</dd>
            <dt>string <var>dt_expire</var></dt>
            <dd>The date the Purchase Option that was used will expire, in UTC.</dd>
            <dt>string <var>dt_register</var></dt>
            <dd>The date the client checked in for the visit, in UTC.</dd>
            <dt>string <var>html_age</var></dt>
            <dd>The client age.</dd>
            <dt>string <var>html_book_by</var></dt>
            <dd>The name of the person who booked this visit.</dd>
            <dt>string <var>html_gender_class</var></dt>
            <dd>The name of the icon to show under gender in the class attendance list.</dd>
            <dt>string <var>html_member</var></dt>
            <dd>The client's member ID, if set.</dd>
            <dt>string <var>html_tooltip_book_by</var></dt>
            <dd>When and where this visit was booked, along with who booked it.</dd>
            <dt>int <var>i</var></dt>
            <dd>The default place in the list to show this client. This is a deprecated copy of the <tt>i_order</tt> field.</dd>
            <dt>int <var>i_left</var></dt>
            <dd>The number of visits left on this Purchase Option. This will be <tt>NULL</tt> if there's no limit.</dd>
            <dt>int <var>i_order</var></dt>
            <dd>The default place in the list to show this client.</dd>
            <dt>int <var>i_total</var></dt>
            <dd>The total visits available from this Purchase Option.</dd>
            <dt>int <var>id_gender</var></dt>
            <dd>The gender ID of the client. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.</dd>
            <dt>int <var>id_pass_prospect</var></dt>
            <dd>If this visit was paid for by an external system, this ID will be set. Otherwise, it will be <tt>0</tt>.</dd>
            <dt>int <var>id_program</var></dt>
            <dd>The program ID of the Purchase Option. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.</dd>
            <dt>int <var>id_visit</var></dt>
            <dd>The status of the visit. One of the [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.</dd>
            <dt>bool <var>is_attend</var></dt>
            <dd>This will be <tt>true</tt> if the client has attended the visit.</dd>
            <dt>bool <var>is_duration_pass</var></dt>
            <dd>This will be <tt>true</tt> if the Purchase Option used is a duration pass.</dd>
            <dt>bool <var>is_deposit</var></dt>
            <dd>This will be <tt>true</tt> if the client has paid a deposit for the visit.</dd>
            <dt>bool <var>is_early</var></dt>
            <dd>This will be <tt>true</tt> if the client has canceled the visit early, incurring no penalty.
            This will be <tt>false</tt> if canceled late or if not canceled at all.
            </dd>
            <dt>bool <var>is_free</var></dt>
            <dd>This will be <tt>true</tt> if the visit is free.</dd>
            <dt>bool <var>is_hidden</var></dt>
            <dd>This will be <tt>true</tt> if details on this visit should be hidden from staff members.</dd>
            <dt>bool <var>is_penalty</var></dt>
            <dd>This will be <tt>true</tt> if this visit was cancelled late and a penalty is applied.</dd>
            <dt>bool <var>is_promotion_first</var></dt>
            <dd>This will be <tt>true</tt> if this was the first visit for the Purchase Option used.</dd>
            <dt>bool <var>is_promotion_last</var></dt>
            <dd>This will be <tt>true</tt> if this was the latest visit for the Purchase Option used.</dd>
            <dt>bool <var>is_unlimited</var></dt>
            <dd>This will be <tt>true</tt> if the Purchase Option used has no usage limits.</dd>
            <dt>bool <var>is_visit</var></dt>
            <dd>This will be <tt>true</tt> if this visit is still considered valid.
            If visit was removed by the system or a staff member, this will be <tt>false</tt>.</dd>
            <dt>bool <var>is_wait</var></dt>
            <dd>This will be <tt>true</tt> if the visit is on the waiting list.</dd>
            <dt>bool <var>is_wait_confirm</var></dt>
            <dd>This will be <tt>true</tt> if the visit is awaiting confirmation.</dd>
            <dt>bool <var>is_wait_priority</var></dt>
            <dd>This will be <tt>true</tt> if the visit has priority on the wait list.</dd>
            <dt>string <var>k_location</var></dt>
            <dd>The key of the location.</dd>
            <dt>string <var>k_login_promotion</var></dt>
            <dd>The key of the client's Purchase Option.</dd>
            <dt>string <var>k_visit</var></dt>
            <dd>The key of the visit.</dd>
            <dt>array <var>[o_purchase_item]</var></dt>
            <dd>The purchase used to pay for the session.</dd>
            <dt>string <var>s_expire</var></dt>
            <dd>The expiry information for the Purchase Option. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_firstname</var></dt>
            <dd>The client's first name. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_lastname</var></dt>
            <dd>The client's last name. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_note</var></dt>
            <dd>Any notes tied to the client. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_promotion</var></dt>
            <dd>The description of the type of Purchase Option. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>text_expire</var></dt>
            <dd>The expiry information for the Purchase Option.</dd>
            <dt>string <var>text_firstname</var></dt>
            <dd>The client first name.</dd>
            <dt>string <var>text_lastname</var></dt>
            <dd>The client last name.</dd>
            <dt>string <var>text_note</var></dt>
            <dd>Any notes tied to the client.</dd>
            <dt>string <var>text_promotion</var></dt>
            <dd>The description of the type of Purchase Option.</dd>
            <dt>string <var>text_restrict_title</var></dt>
            <dd>The Purchase Option restriction description. It can be empty string when the Purchase Option has no restrictions.</dd>
            <dt>string <var>text_visit_status_class</var></dt>
            <dd>The class visit status.</dd>
            <dt>string <var>text_visit_status_icon</var></dt>
            <dd>The icon to use for the class visit status.</dd>
            <dt>string <var>text_wearable</var></dt>
            <dd>The wearable device ID.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The client user key.</dd>
            <dt>string <var>uid_book</var></dt>
            <dd>
            The key of the user who made the booking.
            If differing from <tt>uid</tt>, the booking could have been made by a staff or family member.
            </dd>
            <dt>string <var>url-cancel</var></dt>
            <dd>The URL that can be used to cancel the visit.</dd>
            <dt>string <var>url-cancel-admin</var></dt>
            <dd>The URL that can be used by an admin to cancel the visit.</dd>
            <dt>string <var>url-login-view</var></dt>
            <dd>The URL that for the user's page.</dd>
            <dt>string <var>url-mail</var></dt>
            <dd>The URL to a page for sending an email to the client.</dd>
            <dt>string <var>url-profile</var></dt>
            <dd>The URL that for the client's profile.</dd>
            </dl><br/>            <b><i>a_list_confirm</i></b> - The list of clients who have confirmed their attendance.
            Has the same structure as [Wl\Login\Attendance\AttendanceListModel::$a_list_active](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AttendanceListModel.php) property.<br/>            <b><i>a_list_wait</i></b> - The list of clients who are on the wait list.
            Has the same structure as [Wl\Login\Attendance\AttendanceListModel::$a_list_active](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AttendanceListModel.php) property.<br/>            <b><i>i_capacity</i></b> - The maximum capacity of the class or event session.<br/>            <b><i>i_client</i></b> - Count client on the attendance.<br/>            <b><i>k_location</i></b> - The Location key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list_active:
                    type: object
                    example: []
                  a_list_confirm:
                    type: object
                    example: []
                  a_list_wait:
                    type: object
                    example: []
                  i_capacity:
                    type: integer
                    example: 0
                  i_client:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""

  /Wl/Login/Attendance/AttendanceListModel:
    get:
      tags:
      - Login
      summary: Retrieves information about clients attending a class, appointment, or event session.
      description: >-
        Retrieves information about clients attending a class, appointment, or event session.
      parameters:
        - name: dt_date_local
          description: >-
            The local date of the class or event session.

          in: query
          schema:
            type: string
        - name: is_purchase_info_return
          description: >-
            If <tt>true</tt>, then return the purchase used to pay for session.
            Otherwise <tt>false</tt>, do not return any purchase information.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key. Not used if requesting information for a class or event session.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key. Not used if requesting information for an appointment.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list_active</i></b> - The list of clients in the active attendance list who haven't confirmed or canceled.
            Each element is an array with the following fields:
            <dl>
            <dt>array <var>a_photo</var></dt>
            <dd>
            Information about the user's photo. The information returned has the following structure:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The height of the photo.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The width of the photo.</dd>
            <dt>string <var>is_empty</var></dt>
            <dd>This will be <tt>true</tt> if a photo hasn't been set yet.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL of the photo.</dd>
            </dl>
            </dd>
            <dt>array <var>a_progress</var></dt>
            <dd>Information about a user's current progress. By default, this information isn't sent.</dd>
            <dt>array <var>a_resource</var></dt>
            <dd>A list of information for any associated resources for this visit.</dd>
            <dt>array <var>a_wait_confirm</var></dt>
            <dd>The list of visit keys for clients on the wait list.</dd>
            <dt>array <var>a_wearable</var></dt>
            <dd>A list of information pertaining to the client's wearables.</dd>
            <dt>bool <var>can_profile</var></dt>
            <dd>If <tt>true</tt>, the current user can access this client profile.</dd>
            <dt>string <var>dt_book</var></dt>
            <dd>The date the session was booked, in UTC.</dd>
            <dt>string <var>dt_date</var></dt>
            <dd>The date of the session, in UTC.</dd>
            <dt>string <var>dt_expire</var></dt>
            <dd>The date the Purchase Option that was used will expire, in UTC.</dd>
            <dt>string <var>dt_register</var></dt>
            <dd>The date the client checked in for the visit, in UTC.</dd>
            <dt>string <var>html_age</var></dt>
            <dd>The client age.</dd>
            <dt>string <var>html_book_by</var></dt>
            <dd>The name of the person who booked this visit.</dd>
            <dt>string <var>html_gender_class</var></dt>
            <dd>The name of the icon to show under gender in the class attendance list.</dd>
            <dt>string <var>html_member</var></dt>
            <dd>The client's member ID, if set.</dd>
            <dt>string <var>html_tooltip_book_by</var></dt>
            <dd>When and where this visit was booked, along with who booked it.</dd>
            <dt>int <var>i</var></dt>
            <dd>The default place in the list to show this client. This is a deprecated copy of the <tt>i_order</tt> field.</dd>
            <dt>int <var>i_left</var></dt>
            <dd>The number of visits left on this Purchase Option. This will be <tt>NULL</tt> if there's no limit.</dd>
            <dt>int <var>i_order</var></dt>
            <dd>The default place in the list to show this client.</dd>
            <dt>int <var>i_total</var></dt>
            <dd>The total visits available from this Purchase Option.</dd>
            <dt>int <var>id_gender</var></dt>
            <dd>The gender ID of the client. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.</dd>
            <dt>int <var>id_pass_prospect</var></dt>
            <dd>If this visit was paid for by an external system, this ID will be set. Otherwise, it will be <tt>0</tt>.</dd>
            <dt>int <var>id_program</var></dt>
            <dd>The program ID of the Purchase Option. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.</dd>
            <dt>int <var>id_visit</var></dt>
            <dd>The status of the visit. One of the [Wl\Visit\WlVisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/WlVisitSid.php) constants.</dd>
            <dt>bool <var>is_attend</var></dt>
            <dd>This will be <tt>true</tt> if the client has attended the visit.</dd>
            <dt>bool <var>is_duration_pass</var></dt>
            <dd>This will be <tt>true</tt> if the Purchase Option used is a duration pass.</dd>
            <dt>bool <var>is_deposit</var></dt>
            <dd>This will be <tt>true</tt> if the client has paid a deposit for the visit.</dd>
            <dt>bool <var>is_early</var></dt>
            <dd>This will be <tt>true</tt> if the client has canceled the visit early, incurring no penalty.
            This will be <tt>false</tt> if canceled late or if not canceled at all.
            </dd>
            <dt>bool <var>is_free</var></dt>
            <dd>This will be <tt>true</tt> if the visit is free.</dd>
            <dt>bool <var>is_hidden</var></dt>
            <dd>This will be <tt>true</tt> if details on this visit should be hidden from staff members.</dd>
            <dt>bool <var>is_penalty</var></dt>
            <dd>This will be <tt>true</tt> if this visit was cancelled late and a penalty is applied.</dd>
            <dt>bool <var>is_promotion_first</var></dt>
            <dd>This will be <tt>true</tt> if this was the first visit for the Purchase Option used.</dd>
            <dt>bool <var>is_promotion_last</var></dt>
            <dd>This will be <tt>true</tt> if this was the latest visit for the Purchase Option used.</dd>
            <dt>bool <var>is_unlimited</var></dt>
            <dd>This will be <tt>true</tt> if the Purchase Option used has no usage limits.</dd>
            <dt>bool <var>is_visit</var></dt>
            <dd>This will be <tt>true</tt> if this visit is still considered valid.
            If visit was removed by the system or a staff member, this will be <tt>false</tt>.</dd>
            <dt>bool <var>is_wait</var></dt>
            <dd>This will be <tt>true</tt> if the visit is on the waiting list.</dd>
            <dt>bool <var>is_wait_confirm</var></dt>
            <dd>This will be <tt>true</tt> if the visit is awaiting confirmation.</dd>
            <dt>bool <var>is_wait_priority</var></dt>
            <dd>This will be <tt>true</tt> if the visit has priority on the wait list.</dd>
            <dt>string <var>k_location</var></dt>
            <dd>The key of the location.</dd>
            <dt>string <var>k_login_promotion</var></dt>
            <dd>The key of the client's Purchase Option.</dd>
            <dt>string <var>k_visit</var></dt>
            <dd>The key of the visit.</dd>
            <dt>array <var>[o_purchase_item]</var></dt>
            <dd>The purchase used to pay for the session.</dd>
            <dt>string <var>s_expire</var></dt>
            <dd>The expiry information for the Purchase Option. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_firstname</var></dt>
            <dd>The client's first name. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_lastname</var></dt>
            <dd>The client's last name. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_note</var></dt>
            <dd>Any notes tied to the client. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>s_promotion</var></dt>
            <dd>The description of the type of Purchase Option. This field is deprecated, use the text_ version instead.</dd>
            <dt>string <var>text_expire</var></dt>
            <dd>The expiry information for the Purchase Option.</dd>
            <dt>string <var>text_firstname</var></dt>
            <dd>The client first name.</dd>
            <dt>string <var>text_lastname</var></dt>
            <dd>The client last name.</dd>
            <dt>string <var>text_note</var></dt>
            <dd>Any notes tied to the client.</dd>
            <dt>string <var>text_promotion</var></dt>
            <dd>The description of the type of Purchase Option.</dd>
            <dt>string <var>text_restrict_title</var></dt>
            <dd>The Purchase Option restriction description. It can be empty string when the Purchase Option has no restrictions.</dd>
            <dt>string <var>text_visit_status_class</var></dt>
            <dd>The class visit status.</dd>
            <dt>string <var>text_visit_status_icon</var></dt>
            <dd>The icon to use for the class visit status.</dd>
            <dt>string <var>text_wearable</var></dt>
            <dd>The wearable device ID.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The client user key.</dd>
            <dt>string <var>uid_book</var></dt>
            <dd>
            The key of the user who made the booking.
            If differing from <tt>uid</tt>, the booking could have been made by a staff or family member.
            </dd>
            <dt>string <var>url-cancel</var></dt>
            <dd>The URL that can be used to cancel the visit.</dd>
            <dt>string <var>url-cancel-admin</var></dt>
            <dd>The URL that can be used by an admin to cancel the visit.</dd>
            <dt>string <var>url-login-view</var></dt>
            <dd>The URL that for the user's page.</dd>
            <dt>string <var>url-mail</var></dt>
            <dd>The URL to a page for sending an email to the client.</dd>
            <dt>string <var>url-profile</var></dt>
            <dd>The URL that for the client's profile.</dd>
            </dl><br/>            <b><i>a_list_confirm</i></b> - The list of clients who have confirmed their attendance.
            Has the same structure as [Wl\Login\Attendance\AttendanceListModel::$a_list_active](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AttendanceListModel.php) property.<br/>            <b><i>a_list_wait</i></b> - The list of clients who are on the wait list.
            Has the same structure as [Wl\Login\Attendance\AttendanceListModel::$a_list_active](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Attendance/AttendanceListModel.php) property.<br/>            <b><i>i_capacity</i></b> - The maximum capacity of the class or event session.<br/>            <b><i>i_client</i></b> - Count client on the attendance.<br/>            <b><i>k_location</i></b> - The Location key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list_active:
                    type: object
                    example: []
                  a_list_confirm:
                    type: object
                    example: []
                  a_list_wait:
                    type: object
                    example: []
                  i_capacity:
                    type: integer
                    example: 0
                  i_client:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""

  /Wl/Login/Coupon/CouponModel:
    get:
      tags:
      - Login
      summary: Retrieves information about a gift card (also referred to as the coupon code).
      description: >-
        Retrieves information about a gift card (also referred to as the coupon code).
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: s_code
          description: >-
            The gift card.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>k_login_coupon</i></b> - The gift card reference number for this specific user. WellnessLiving uses this reference number for managing
            gift cards in the system.<br/>            <b><i>m_amount</i></b> - The gift card amount.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_login_coupon:
                    type: string
                    example: ""
                  m_amount:
                    type: string
                    example: ""

  /Wl/Login/LoginModel:
    post:
      tags:
      - Login
      summary: Returns the profile information for a specific user.
      description: >-
        Returns the profile information for a specific user.
        <br /><br />
        This endpoint can be used to return public information about a staff member or a user`s image. To obtain the
        user's full information, you'll need access to the requested user.
      parameters:
        - name: i_photo_height
          description: >-
            The height of the requested photo.

          in: query
          schema:
            type: string
        - name: i_photo_width
          description: >-
            The width of the requested photo.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business. Users can be in multiple businesses.
            This can be left as `null` to retrieve system-wide information.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_uid</i></b> -
          List of users to get information for. Serialized as JSON string.
          
          <tt>null</tt> for mode of single user.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_uid:
                  description: >- 
                    List of users to get information for. Serialized as JSON string.
                    
                    <tt>null</tt> for mode of single user.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_login</i></b> - List of information about users:
            <dl>
            <dt>
            int <var>id_gender</var>
            </dt>
            <dd>
            User's gender. One of [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
            </dd>
            <dt>
            string <var>k_staff</var>
            </dt>
            <dd>
            User's key as staff member.
            </dd>
            <dt>
            string <var>s_first_name</var>
            </dt>
            <dd>
            User first name.
            </dd>
            <dt>
            string <var>s_last_name</var>
            </dt>
            <dd>
            First letter of user last name.
            </dd>
            <dt>
            string <var>text_mail_client</var>
            </dt>
            <dd>
            Client`s mail.
            </dd>
            <dt>
            string <var>text_mail_staff</var>
            </dt>
            <dd>
            Staff`s mail.
            </dd>
            <dt>
            string <var>text_name_first_staff</var>
            </dt>
            <dd>
            Staff`s first name.
            </dd>
            <dt>
            string <var>text_name_full_client</var>
            </dt>
            <dd>
            Full client name. User login is returned in a case neither first name, nor last name specified. An empty string is returned in a case neither first name, nor last name specified, nor login. See
            description of the {@link Wl\User\Info\UserInfo::nameFullText()} method.
            </dd>
            <dt>
            string <var>text_name_full_staff</var>
            </dt>
            <dd>
            Full staff name. User login is returned in a case neither first name, nor last name specified. An empty string is returned in a case neither first name, nor last name specified, nor login.
            </dd>`
            <dt>
            string <var>text_name_last_staff</var>
            </dt>
            <dd>
            Staff`s last name.
            </dd>
            <dt>
            string <var>url_photo</var>
            </dt>
            <dd>
            User photo URL.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login:
                    type: object
                    example: []
    get:
      tags:
      - Login
      summary: Returns the profile information for a specific user.
      description: >-
        Returns the profile information for a specific user.
        <br /><br />
        This endpoint can be used to return public information about a staff member or a user`s image. To obtain the
        user's full information, you'll need access to the requested user.
      parameters:
        - name: i_photo_height
          description: >-
            The height of the requested photo.

          in: query
          schema:
            type: string
        - name: i_photo_width
          description: >-
            The width of the requested photo.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business. Users can be in multiple businesses.
            This can be left as `null` to retrieve system-wide information.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user.
            
            `null` on case when is walk-in client.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>can_postcard</i></b> - Whether this user can send postcards.<br/>            <b><i>id_gender</i></b> - The gender ID. It will be one of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.<br/>            <b><i>k_staff</i></b> - The user's staff key for the specified business.<br/>            <b><i>s_first_name</i></b> - The first name of the user.<br/>            <b><i>s_last_name</i></b> - The surname of the user.<br/>            <b><i>text_mail_client</i></b> - The client`s mailing address.<br/>            <b><i>text_mail_staff</i></b> - The staff member's mailing address.
            This will be set if the user is a staff member ([Wl\Login\LoginModel::$k_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/LoginModel.php)).<br/>            <b><i>text_name_first_staff</i></b> - The staff member's first name.
            This will be set if the user is a staff member ([Wl\Login\LoginModel::$k_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/LoginModel.php)).<br/>            <b><i>text_name_full_client</i></b> - The user's login name. This is returned in cases when neither the first name nor the last name have been specified.
            An empty string is returned in cases where neither the first name, last name, nor login have been specified.<br/>            <b><i>text_name_full_staff</i></b> - The staff member's full name.
            The user login is returned in cases where neither the first name nor the last name have been specified.
            An empty string is returned in cases where neither the first name, last name, nor login have been specified.
            This will be set if the user is a staff member ([Wl\Login\LoginModel::$k_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/LoginModel.php)).<br/>            <b><i>text_name_last_staff</i></b> - The staff member's last name.
            This will be set if the user is a staff member ([Wl\Login\LoginModel::$k_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/LoginModel.php)).<br/>            <b><i>uid</i></b> - The key of the user.
            
            `null` on case when is walk-in client.<br/>            <b><i>url_photo</i></b> - The URL where the user photo can be retrieved.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  can_postcard:
                    type: integer
                    example: 0
                  id_gender:
                    type: integer
                    example: 0
                  k_staff:
                    type: string
                    example: ""
                  s_first_name:
                    type: string
                    example: ""
                  s_last_name:
                    type: string
                    example: ""
                  text_mail_client:
                    type: string
                    example: ""
                  text_mail_staff:
                    type: string
                    example: ""
                  text_name_first_staff:
                    type: string
                    example: ""
                  text_name_full_client:
                    type: string
                    example: ""
                  text_name_full_staff:
                    type: string
                    example: ""
                  text_name_last_staff:
                    type: string
                    example: ""
                  uid:
                    type: string
                    example: ""
                  url_photo:
                    type: string
                    example: ""

  /Wl/Login/Mail/MailUseModel:
    get:
      tags:
      - Login
      summary: An endpoint to check if an email address is used by member of a business.
      description: >-
        An endpoint to check if an email address is used by member of a business.
      parameters:
        - name: k_business
          description: >-
            The business for which the email address search is being performed.

          in: query
          schema:
            type: string
        - name: text_mail
          description: >-
            The email address to check for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_exists</i></b> - If <tt>true</tt>, the user with the specified email address exists in specified business. Otherwise, this will
            be <tt>false</tt>.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_exists:
                    type: integer
                    example: 0

  /Wl/Login/Member/MemberModel:
    get:
      tags:
      - Login
      summary: Displays information about members of businesses.
      description: >-
        Displays information about members of businesses.
      parameters:
        - name: uid
          description: >-
            The user's key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business</i></b> - A list of businesses where the client is present. Every element is an array with the following keys:
            <dl>
            <dt>
            bool <var>can_enter</var>
            </dt>
            <dd>
            <tt>true</tt> if user is allowed to sign in into this business; <tt>false</tt> otherwise.
            </dd>
            <dt>
            bool <var>is_franchisee</var>
            </dt>
            <dd>
            If `true`, then the business is a franchisee. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_business</var>
            </dt>
            <dd>
            The business key.
            </dd>
            <dt>
            string <var>k_business_franchisor</var>
            </dt>
            <dd>
            The business key of the Enterprise Headquarters account (if applicable).
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title of the business.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business:
                    type: object
                    example: []

  /Wl/Login/Member/MemberValidateModel:
    get:
      tags:
      - Login
      summary: Checking whether there is something that prevents the user from using the business.
      description: >-
        Checking whether there is something that prevents the user from using the business.
      parameters:
        - name: k_business
          description: >-
            Key of the business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user's key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_empty_fields_booking</i></b> - List of fields if the user has empty profile fields, which are required for booking.<br/>            <b><i>a_empty_fields_registration</i></b> - List of fields if the user has empty profile fields, which are required for registration.<br/>            <b><i>has_credit_card</i></b> - `true` If the user has credit cards on profile, otherwise `false`.<br/>            <b><i>has_outstanding_contract</i></b> - `true` if the user has an outstanding contract, otherwise `false`.<br/>            <b><i>has_outstanding_waiver</i></b> - `true` If the user has an outstanding waiver for the business, otherwise `false`.<br/>            <b><i>has_pending_quizzes</i></b> - `true` If the user has pending registration quizzes to complete, otherwise `false`.<br/>            <b><i>is_booking_require_card</i></b> - `true` If the user has to provide credit card details before booking, otherwise `false`.<br/>            <b><i>is_register_require_card</i></b> - `true` If the user has to provide credit card details to finish their registration, otherwise `false`.<br/>            <b><i>k_location</i></b> - Home user`s location.
            `null` if user has not home location.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_empty_fields_booking:
                    type: object
                    example: []
                  a_empty_fields_registration:
                    type: object
                    example: []
                  has_credit_card:
                    type: integer
                    example: 0
                  has_outstanding_contract:
                    type: integer
                    example: 0
                  has_outstanding_waiver:
                    type: integer
                    example: 0
                  has_pending_quizzes:
                    type: integer
                    example: 0
                  is_booking_require_card:
                    type: integer
                    example: 0
                  is_register_require_card:
                    type: integer
                    example: 0
                  k_location:
                    type: string
                    example: ""

  /Wl/Login/Permission/PermissionModel:
    post:
      tags:
      - Login
      summary: Makes a purchased promotion auto-renewable.
      description: >-
        Makes a purchased promotion auto-renewable.
        <br /><br />
        The POST method makes the promotion auto-renewable based on the [Wl\Login\Permission\PermissionModel::$is_renew](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Permission/PermissionModel.php) parameter.
      parameters:
        - name: k_login_promotion
          description: >-
            The key of the purchased promotion.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>is_renew</i></b> -
          If `true`, the purchased promotion has been made auto-renewable. Otherwise, this will be `false`.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_renew:
                  description: >- 
                    If `true`, the purchased promotion has been made auto-renewable. Otherwise, this will be `false`.

                  type: integer
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Login/Promotion/Convert/ConvertModel:
    get:
      tags:
      - Login
      summary: Receives convertable Purchase Option data and promotion conversions.
      description: >-
        Receives convertable Purchase Option data and promotion conversions.
        <br /><br />
        The DELETE method will remove the conversion and reset the date.
        The GET method will return a list of promotions available at the business.
        The POST method can be used to change what the Purchase Option should convert to and when to convert it.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The login promotion key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion</i></b> - Promotion data containing the following structure:<dl>
            <dt>string <var>k_promotion</var></dt>
            <dd>The promotion key.</dd>
            <dt>string <var>html_title</var></dt>
            <dd>The title of the promotion.</dd>
            <dt>bool <var>is_select</var></dt>
            <dd>If <tt>true</tt>, the promotion is related to the service. Otherwise, this will be <tt>false</tt>.</dd>
            </dl>.<br/>            <b><i>id_convert</i></b> - The conversion ID. One of the [PromotionConvertSid](https://github.com/wellnessliving/wl-sdk/blob/masterPromotionConvertSid.php) constants.<br/>            <b><i>is_edit</i></b> - Determines whether the conversion request is new or editing an existing conversion.
            
            If `true`, the conversion exists. Otherwise, this will be `false`.<br/>            <b><i>s_date_convert</i></b> - The existing conversion date, returned as a string for the datepicker.<br/>            <b><i>s_date_now</i></b> - The current date, returned as a string.<br/>            <b><i>s_title</i></b> - The Purchase Option title.<br/>            <b><i>text_note</i></b> - The note for the promotion conversion.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion:
                    type: object
                    example: []
                  id_convert:
                    type: integer
                    example: 0
                  is_edit:
                    type: integer
                    example: 0
                  s_date_convert:
                    type: string
                    example: ""
                  s_date_now:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  text_note:
                    type: string
                    example: ""
    post:
      tags:
      - Login
      summary: Receives convertable Purchase Option data and promotion conversions.
      description: >-
        Receives convertable Purchase Option data and promotion conversions.
        <br /><br />
        The DELETE method will remove the conversion and reset the date.
        The GET method will return a list of promotions available at the business.
        The POST method can be used to change what the Purchase Option should convert to and when to convert it.
      parameters:
        - name: dl_convert
          description: >-
            The conversion date, in the local time zone.

          in: query
          schema:
            type: string
        - name: id_convert
          description: >-
            The conversion ID. One of the [PromotionConvertSid](https://github.com/wellnessliving/wl-sdk/blob/masterPromotionConvertSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The login promotion key.

          in: query
          schema:
            type: string
        - name: k_promotion_to
          description: >-
            The promotion key the given promotion will be converted to.

          in: query
          schema:
            type: string
        - name: text_note
          description: >-
            The note for the promotion conversion.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    delete:
      tags:
      - Login
      summary: Receives convertable Purchase Option data and promotion conversions.
      description: >-
        Receives convertable Purchase Option data and promotion conversions.
        <br /><br />
        The DELETE method will remove the conversion and reset the date.
        The GET method will return a list of promotions available at the business.
        The POST method can be used to change what the Purchase Option should convert to and when to convert it.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The login promotion key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Login/Promotion/PromotionPayPauseModel:
    get:
      tags:
      - Login
      summary: Manages or retrieves information about holds on Purchase Options.
      description: >-
        Manages or retrieves information about holds on Purchase Options.
        <br /><br />
        The DELETE method can remove a hold.
        The GET method only returns information about active holds.
        The POST method can create or edit a hold.
        The PUT method can edit a hold.
      parameters:
        - name: dt_end
          description: >-
            The end date of the current hold, in the local time zone. This can be set to a special value
            {@link Wl\Promotion\Pay\PromotionPayPause::DATE_END_INDEFINITE} to make the period indefinite until further action.
            
            `null` if it shouldn't be updated.

          in: query
          schema:
            type: string
        - name: dt_start
          description: >-
            The start date of the current hold, in the local time zone.
            
            `null` if it shouldn't be updated.

          in: query
          schema:
            type: string
        - name: is_list
          description: >-
            Whether need to get all pause periods for the login promotion.
            If <tt>true</tt> then [Wl\Login\Promotion\PromotionPayPauseModel::$a_pay_pause_list](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) will be returned.
            If <tt>false</tt> then information about specified [Wl\Login\Promotion\PromotionPayPauseModel::$k_promotion_pay_pause](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) or
            currently active pause period will be returned ([Wl\Login\Promotion\PromotionPayPauseModel::$dt_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php),
            [Wl\Login\Promotion\PromotionPayPauseModel::$dt_end and  Wl\Login\Promotion\PromotionPayPauseModel::$text_note](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) and {@link \WellnessLiving\Wl\Login\Promotion\PromotionPayPauseModel::$text_note}).

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Key of business to which currently handled pause period or login promotion belongs.
            
            <tt>null</tt> if not initialized.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The Purchase Option key. If this key is used, a new hold will be created. The endpoint will return a `start-cross`
            status code if a hold is already in place.
            
            Ignored if [Wl\Login\Promotion\PromotionPayPauseModel::$k_promotion_pay_pause](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) is provided.
            
            `null` if not yet initialized.

          in: query
          schema:
            type: string
        - name: k_promotion_pay_pause
          description: >-
            The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_pay_pause_list</i></b> - List of all promotion payment pause periods. Each element has next structure:<dl>
            <dt>string|null <var>dl_create</var></dt>
            <dd>Date when this hold period was created. <tt>null</tt> for old records.</dd>
            <dt>string <var>dl_end</var></dt>
            <dd>
            Ending date of the pause (inclusively - this date is paused).
            This field contains zero date for promotions placed on hold indefinitely.
            </dd>
            <dt>string <var>dl_start</var></dt>
            <dd>Starting date of the pause (inclusively - this date is paused).</dd>
            <dt>int|null <var>i_hold_day</var></dt>
            <dd>Duration of the hold in days. <tt>null</tt> if the hold is ongoing.</dd>
            <dt>bool <var>is_past</var></dt>
            <dd>Whether the hold is in past.</dd>
            <dt>string <var>k_promotion_pay_pause</var></dt>
            <dd>Key of the hold period.</dd>
            <dt>string|null <var>text_note</var></dt>
            <dd>Additional notes.</dd>
            <dt>string|null <var>text_user_create</var></dt>
            <dd>Full name of a user that has created hold period. <tt>null</tt> for old records.</dd>
            <dt>string|null <var>uid_create</var></dt>
            <dd>Key of a user that has created hold period. <tt>null</tt> for old records.</dd>
            </dl>
            
            <tt>null</tt> if [Wl\Login\Promotion\PromotionPayPauseModel::$is_list](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) is false.<br/>            <b><i>dt_end</i></b> - The end date of the current hold, in the local time zone. This can be set to a special value
            {@link Wl\Promotion\Pay\PromotionPayPause::DATE_END_INDEFINITE} to make the period indefinite until further action.
            
            `null` if it shouldn't be updated.<br/>            <b><i>dt_start</i></b> - The start date of the current hold, in the local time zone.
            
            `null` if it shouldn't be updated.<br/>            <b><i>k_login_promotion</i></b> - The Purchase Option key. If this key is used, a new hold will be created. The endpoint will return a `start-cross`
            status code if a hold is already in place.
            
            Ignored if [Wl\Login\Promotion\PromotionPayPauseModel::$k_promotion_pay_pause](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) is provided.
            
            `null` if not yet initialized.<br/>            <b><i>k_promotion_pay_pause</i></b> - The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).<br/>            <b><i>text_note</i></b> - Additional notes for the promotion payment pause period.
            Leave this field as `null` if the note shouldn't be updated.
            
            `null` if it shouldn't be updated.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_pay_pause_list:
                    type: object
                    example: []
                  dt_end:
                    type: string
                    example: ""
                  dt_start:
                    type: string
                    example: ""
                  k_login_promotion:
                    type: string
                    example: ""
                  k_promotion_pay_pause:
                    type: string
                    example: ""
                  text_note:
                    type: string
                    example: ""
    post:
      tags:
      - Login
      summary: Manages or retrieves information about holds on Purchase Options.
      description: >-
        Manages or retrieves information about holds on Purchase Options.
        <br /><br />
        The DELETE method can remove a hold.
        The GET method only returns information about active holds.
        The POST method can create or edit a hold.
        The PUT method can edit a hold.
      parameters:
        - name: dt_end
          description: >-
            The end date of the current hold, in the local time zone. This can be set to a special value
            {@link Wl\Promotion\Pay\PromotionPayPause::DATE_END_INDEFINITE} to make the period indefinite until further action.
            
            `null` if it shouldn't be updated.

          in: query
          schema:
            type: string
        - name: dt_start
          description: >-
            The start date of the current hold, in the local time zone.
            
            `null` if it shouldn't be updated.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Key of business to which currently handled pause period or login promotion belongs.
            
            <tt>null</tt> if not initialized.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The Purchase Option key. If this key is used, a new hold will be created. The endpoint will return a `start-cross`
            status code if a hold is already in place.
            
            Ignored if [Wl\Login\Promotion\PromotionPayPauseModel::$k_promotion_pay_pause](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) is provided.
            
            `null` if not yet initialized.

          in: query
          schema:
            type: string
        - name: k_promotion_pay_pause
          description: >-
            The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_note</i></b> -
          Additional notes for the promotion payment pause period.
          Leave this field as `null` if the note shouldn't be updated.
          
          `null` if it shouldn't be updated.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_note:
                  description: >- 
                    Additional notes for the promotion payment pause period.
                    Leave this field as `null` if the note shouldn't be updated.
                    
                    `null` if it shouldn't be updated.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_promotion_pay_pause</i></b> - The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_promotion_pay_pause:
                    type: string
                    example: ""
    put:
      tags:
      - Login
      summary: Manages or retrieves information about holds on Purchase Options.
      description: >-
        Manages or retrieves information about holds on Purchase Options.
        <br /><br />
        The DELETE method can remove a hold.
        The GET method only returns information about active holds.
        The POST method can create or edit a hold.
        The PUT method can edit a hold.
      parameters:
        - name: dt_end
          description: >-
            The end date of the current hold, in the local time zone. This can be set to a special value
            {@link Wl\Promotion\Pay\PromotionPayPause::DATE_END_INDEFINITE} to make the period indefinite until further action.
            
            `null` if it shouldn't be updated.

          in: query
          schema:
            type: string
        - name: dt_start
          description: >-
            The start date of the current hold, in the local time zone.
            
            `null` if it shouldn't be updated.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Key of business to which currently handled pause period or login promotion belongs.
            
            <tt>null</tt> if not initialized.

          in: query
          schema:
            type: string
        - name: k_promotion_pay_pause
          description: >-
            The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_note</i></b> -
          Additional notes for the promotion payment pause period.
          Leave this field as `null` if the note shouldn't be updated.
          
          `null` if it shouldn't be updated.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_note:
                  description: >- 
                    Additional notes for the promotion payment pause period.
                    Leave this field as `null` if the note shouldn't be updated.
                    
                    `null` if it shouldn't be updated.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_promotion_pay_pause</i></b> - The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_promotion_pay_pause:
                    type: string
                    example: ""
    delete:
      tags:
      - Login
      summary: Manages or retrieves information about holds on Purchase Options.
      description: >-
        Manages or retrieves information about holds on Purchase Options.
        <br /><br />
        The DELETE method can remove a hold.
        The GET method only returns information about active holds.
        The POST method can create or edit a hold.
        The PUT method can edit a hold.
      parameters:
        - name: k_business
          description: >-
            Key of business to which currently handled pause period or login promotion belongs.
            
            <tt>null</tt> if not initialized.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The Purchase Option key. If this key is used, a new hold will be created. The endpoint will return a `start-cross`
            status code if a hold is already in place.
            
            Ignored if [Wl\Login\Promotion\PromotionPayPauseModel::$k_promotion_pay_pause](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php) is provided.
            
            `null` if not yet initialized.

          in: query
          schema:
            type: string
        - name: k_promotion_pay_pause
          description: >-
            The promotion payment hold key. If this key is used, it will edit an existing hold.
            This key will be empty if there's no active hold in place or if a scheduled hold isn't in effect.
            
            `null` if not yet initialized or if the request is based on [Wl\Login\Promotion\PromotionPayPauseModel::$k_login_promotion](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Login/Promotion/PromotionPayPauseModel.php).

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Login/Search/StaffApp/ListModel:
    get:
      tags:
      - Login
      summary: Gets a list of clients whose names match a search string.
      description: >-
        Gets a list of clients whose names match a search string.
      parameters:
        - name: is_franchisee_search_wide
          description: >-
            <tt>true</tt> - search among whole franchise; <tt>false</tt> - search in specified business only.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key number used internally by WellnessLiving.

          in: query
          schema:
            type: string
        - name: text_search
          description: >-
            The search string. Clients can be matched by name or email.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list</i></b> - A list of users matching the search string.
            
            The list depends on the search query.
            If the query is empty, recent users will be returned.
            
            Each element is an array with the following keys:
            <dl>
            <dt>string <var>text_mail</var></dt>
            <dd>Client's email.</dd>
            <dt>string <var>text_name_first</var></dt>
            <dd>Client's first name.</dd>
            <dt>string <var>text_name_last</var></dt>
            <dd>Client's last name.</dd>
            <dt>string <var>text_phone</var></dt>
            <dd>Client's phone.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The client name.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The client key.</dd>
            </dl><br/>            <b><i>can_add</i></b> - If `true`, then this user can add other users via the Add Client page.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list:
                    type: object
                    example: []
                  can_add:
                    type: integer
                    example: 0

  /Wl/Login/Type/LoginTypeModel:
    get:
      tags:
      - Login
      summary: Retrieves information about login types.
      description: >-
        Retrieves information about login types.
        <br /><br />
        A login type is basically a client type.
        This information can be used to filter clients by their client type in the All Clients Report.
      parameters:
        - name: k_business
          description: >-
            The business key used internally by WellnessLiving.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_type_list</i></b> - A list of login types, keys, and information. Each element is an array with the following information:
            
            <dl>
            <dt>bool <var>is_member</var></dt>
            <dd>
            It will be `1` if the record contains a type of member.
            It will be `0` if record contains some other type of client.
            It will be `null` if the record contains some type of prospect.
            </dd>
            <dt>string <var>k_login_type</var></dt>
            <dd>The login type key.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The name of the login type.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>Same as <var>s_title</var> offset.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_type_list:
                    type: object
                    example: []

  /Wl/Mail/SendMailModel:
    post:
      tags:
      - Mail
      summary: Can be used to send email messages.
      description: >-
        Can be used to send email messages.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>s_business_mail</i></b> -
          The business's mailing address.
          <br/>
          <b><i>s_business_name</i></b> -
          The business name.
          <br/>
          <b><i>s_business_reply</i></b> -
          The business's reply.
          <br/>
          <b><i>s_campaign</i></b> -
          The campaign name.
          <br/>
          <b><i>s_mail</i></b> -
          The message recipient's address.
          <br/>
          <b><i>s_subject</i></b> -
          The message's subject line.
          <br/>
          <b><i>z_html</i></b> -
          The message content.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s_business_mail:
                  description: >- 
                    The business's mailing address.

                  type: string
                s_business_name:
                  description: >- 
                    The business name.

                  type: string
                s_business_reply:
                  description: >- 
                    The business's reply.

                  type: string
                s_campaign:
                  description: >- 
                    The campaign name.

                  type: string
                s_mail:
                  description: >- 
                    The message recipient's address.

                  type: string
                s_subject:
                  description: >- 
                    The message's subject line.

                  type: string
                z_html:
                  description: >- 
                    The message content.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Member/Group/GroupList/ListModel:
    get:
      tags:
      - Member
      summary: Member groups list.
      description: >-
        Member groups list.
      parameters:
        - name: a_member_group_select
          description: >-
            List of groups for filtering groups of business.
            
            `null` in the case when need to return all groups of business.

          in: query
          schema:
            type: string
        - name: is_churn_risk
          description: >-
            Whether include "Isaac Churn Risk" group.

          in: query
          schema:
            type: string
        - name: is_return_members
          description: >-
            Whether include a list of members of groups.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_member_group</i></b> - Member groups list:
            <dl>
            <dt>
            string <var>k_member_group</var>
            </dt>
            <dd>
            The key of the member group.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The name of the member group.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_member_group:
                    type: object
                    example: []
    delete:
      tags:
      - Member
      summary: Member groups list.
      description: >-
        Due to the limitiations of OpenApi 3.0.3 the parameters of the DELETE method are not listed correctly.<br/>
        They are appended to this description.<br/>
        Member groups list.
        <br /><br />
        a_member_group_delete - 
           List of groups to be deleted.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    put:
      tags:
      - Member
      summary: Member groups list.
      description: >-
        Member groups list.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_member_group_order</i></b> -
          List of groups in the order in which they will be saved.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_member_group_order:
                  description: >- 
                    List of groups in the order in which they will be saved.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Member/Purchase/MemberByPromotionModel:
    get:
      tags:
      - Member
      summary: Returns a list of active clients with the given Purchase Options.
      description: >-
        Returns a list of active clients with the given Purchase Options.
        <br /><br />
        This endpoint returns only active clients using active Purchase Options from the given list.
        <br /><br />
        Does not return clients, to which currently signed-in user does not have access to.
      parameters:
        - name: k_business
          description: >-
            The key of the business for which to get a list of clients.

          in: query
          schema:
            type: string
        - name: s_promotion_keys
          description: >-
            The comma-separated list of the Purchase Option keys.
            Only active clients with at least one active Purchase Option from this list will be returned.
            
            For example: '324,123,11,556'

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_clients</i></b> - The list of active clients with the given Purchase Options.
            
            <dl>
            <dt>array[] <var>a_purchase_options</var></dt>
            <dd>
            The list of active Purchase Options. Each element has:
            
            <dl>
            <dt>string|null <var>dl_end</var></dt>
            <dd>The date in the location time zone when the Purchase Option expires.
            This will be `null` if the Purchase Option doesn't expire.</dd>
            <dt>string <var>dtu_purchase</var></dt>
            <dd>The global date and time when the Purchase Option was sold.</dd>
            <dt>string|null <var>dl_start</var></dt>
            <dd>The date in location's time zone when the Purchase Option starts.
            This will be `null` if not defined yet. For example, if the starting date is the date of the first visit
            and there haven't been any visits yet.</dd>
            <dt>string|null <var>dl_terminate</var></dt>
            <dd>The date in location time zone when the Purchase Option will be terminated.
            This will be `null` if the Purchase Option isn't scheduled to be terminated.</dd>
            <dt>string <var>k_promotion</var></dt>
            <dd>The key of the Purchase Option.</dd>
            </dl>
            </dd>
            
            <dt>string <var>uid</var></dt>
            <dd>The key of the client.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_clients:
                    type: object
                    example: []

  /Wl/Microsoft/Login/MicrosoftLoginModel:
    get:
      tags:
      - Microsoft
      summary: An endpoint that performs authorization actions with Microsoft.
      description: >-
        An endpoint that performs authorization actions with Microsoft.
      parameters:
        - name: uid
          description: >-
            The client for whom the Microsoft account will be unlinked.

          in: query
          schema:
            type: string
        - name: url_redirect
          description: >-
            The Redirect URI for external applications.
            The link to the page on which Microsoft will return the result after authorization.
            
            * All possible links must be registered in the Microsoft application used for authorization.
            * WARNING: Do not use this link for a direct redirect. This will present a vulnerability.
            
            * A [Social\Microsoft\LoginModel::$url_login](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Social/Microsoft/LoginModel.php) link will be generated along with this redirect URI.
            * When checking the received [Social\Microsoft\LoginModel::$s_code](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Social/Microsoft/LoginModel.php) from Microsoft, the link must be sent along with it
            to the [Social\Microsoft\LoginModel::post()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Social/Microsoft/LoginModel.php) method.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_exists</i></b> - If `true`, the user has a bound Microsoft account. Otherwise, this will be `false`.<br/>            <b><i>url_login</i></b> - The Microsoft OAuth 2.0 authorization link.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_exists:
                    type: integer
                    example: 0
                  url_login:
                    type: string
                    example: ""
    post:
      tags:
      - Microsoft
      summary: An endpoint that performs authorization actions with Microsoft.
      description: >-
        An endpoint that performs authorization actions with Microsoft.
      parameters:
        - name: is_external
          description: >-
            If authorization is performed in a third-party application, set this flag in case of authorization errors.

          in: query
          schema:
            type: string
        - name: url_redirect
          description: >-
            The Redirect URI for external applications.
            The link to the page on which Microsoft will return the result after authorization.
            
            * All possible links must be registered in the Microsoft application used for authorization.
            * WARNING: Do not use this link for a direct redirect. This will present a vulnerability.
            
            * A [Social\Microsoft\LoginModel::$url_login](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Social/Microsoft/LoginModel.php) link will be generated along with this redirect URI.
            * When checking the received [Social\Microsoft\LoginModel::$s_code](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Social/Microsoft/LoginModel.php) from Microsoft, the link must be sent along with it
            to the [Social\Microsoft\LoginModel::post()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Social/Microsoft/LoginModel.php) method.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>k_business</i></b> -
          Business in which authorization is performed.
          <br/>
          <b><i>s_code</i></b> -
          The authorization code that the app requested.
          <br/>
          <b><i>s_state</i></b> -
          If a state parameter is included in the request, the same value should appear in the response.
          The app should verify that the state values in the request and response are identical.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                k_business:
                  description: >- 
                    Business in which authorization is performed.

                  type: string
                s_code:
                  description: >- 
                    The authorization code that the app requested.

                  type: string
                s_state:
                  description: >- 
                    If a state parameter is included in the request, the same value should appear in the response.
                    The app should verify that the state values in the request and response are identical.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    delete:
      tags:
      - Microsoft
      summary: An endpoint that performs authorization actions with Microsoft.
      description: >-
        An endpoint that performs authorization actions with Microsoft.
      parameters:
        - name: uid
          description: >-
            The client for whom the Microsoft account will be unlinked.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Notification/Send/NotificationSendModel:
    post:
      tags:
      - Notification
      summary: An endpoint that allows to send notifications to users of the certain business or location.
      description: >-
        An endpoint that allows to send notifications to users of the certain business or location.
        <br /><br />
        This endpoint is available only for user with a special privilege. If you want to use this endpoint, contant
        with WellnessLiving support first.

      requestBody:
        description: >-
              <b><i>a_data</i></b> -
              Custom array with information which can be used to generate notification.
              <br/>
              <b><i>dtu_send</i></b> -
              Date and time in UTC, when notification should be sent. Empty string means to send immediately.
              
              If date and time are set, it should be reasonable. If it's too far in the future, API returns an error.
              <br/>
              <b><i>id_notification</i></b> -
              ID of the notification.
              
              Contact with WellnessLiving support to get the list of available notifications.
              <br/>
              <b><i>k_business</i></b> -
              Key of the business where notification should be sent.
              <br/>
              <b><i>k_location</i></b> -
              Key of the location.
              If it's not empty, only clients from this location will get notification.
              `null` to not limit recipients with a certain location.
              <br/>
              <b><i>s_uid</i></b> -
              List of UIDs joined with comma, if notification should be sent to certain recipients.
              Empty string means to send to all clients of the business or location with proper subscription level.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    a_data:
                      description: >- 
                        Custom array with information which can be used to generate notification.

                      type: object
                    dtu_send:
                      description: >- 
                        Date and time in UTC, when notification should be sent. Empty string means to send immediately.
                        
                        If date and time are set, it should be reasonable. If it's too far in the future, API returns an error.

                      type: string
                    id_notification:
                      description: >- 
                        ID of the notification.
                        
                        Contact with WellnessLiving support to get the list of available notifications.

                      type: integer
                    k_business:
                      description: >- 
                        Key of the business where notification should be sent.

                      type: string
                    k_location:
                      description: >- 
                        Key of the location.
                        If it's not empty, only clients from this location will get notification.
                        `null` to not limit recipients with a certain location.

                      type: string
                    s_uid:
                      description: >- 
                        List of UIDs joined with comma, if notification should be sent to certain recipients.
                        Empty string means to send to all clients of the business or location with proper subscription level.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Pay/Account/AccountModel:
    get:
      tags:
      - Pay
      summary: Displays information about user's accounts.
      description: >-
        Displays information about user's accounts.
      parameters:
        - name: is_owner
          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 for their child.
            Otherwise, `false` to indicate information strictly for the specified user is returned.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_account</i></b> - A list of the user's accounts.
            
            Keys are account keys. This could be `0` if the user has no accounts in the currency of the given business.
            Values are account data: <dl>
            <dt>
            int <var>id_currency</var>
            </dt>
            <dd>
            Currency ID. One of [Core\Locale\CurrencySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Locale/CurrencySid.php) constant.
            </dd>
            <dt>
            string <var>k_currency</var>
            </dt>
            <dd>
            Key of account currency.
            </dd>
            <dt>
            string|null <var>k_pay_account</var>
            </dt>
            <dd>
            ID of payment account. <tt>null</tt> if this is a user account based on system payment method.
            </dd>
            <dt>
            string|null <var>k_pay_method</var>
            </dt>
            <dd>
            ID of custom payment method. <tt>null</tt> if this is a user account based on system payment method.
            </dd>
            <dt>
            string <var>m_rest</var>
            </dt>
            <dd>
            Account balance.
            </dd>
            <dt>
            string|null <var>s_method</var>
            </dt>
            <dd>
            Name of a custom payment method. <tt>null</tt> if this is a user account based on system payment method.
            </dd>
            </dl><br/>            <b><i>a_account_nx</i></b> - A list of accounts that is not created for this user yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_account:
                    type: object
                    example: []
                  a_account_nx:
                    type: object
                    example: []

  /Wl/Pay/Address/AddressModel:
    get:
      tags:
      - Pay
      summary: Gets information about a user's payment addresses.
      description: >-
        Gets information about a user's payment addresses.
      parameters:
        - name: id_pay_owner
          description: >-
            The ID of the payment owner type.
            One of [WlPayOwnerSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayOwnerSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key, where the payment is performed.
            <tt>null</tt> if pay owner is not user.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The primary key of a payment owner.
            This could be the business of the user depending on a [Wl\Pay\Address\AddressModel::$id_pay_owner](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Address/AddressModel.php) value.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_pay_address</i></b> - The payee's address information.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_pay_address:
                    type: object
                    example: []

  /Wl/Pay/Address/ProfileModel:
    get:
      tags:
      - Pay
      summary: Retrieves a client’s physical address from their profile.
      description: >-
        Retrieves a client’s physical address from their profile.
      parameters:
        - name: k_business
          description: >-
            The business key number used internally by WellnessLiving.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user whose data should be retrieved.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>k_geo_country</i></b> - The country key.
            
            This will be `null` if not set yet.<br/>            <b><i>k_geo_region</i></b> - The region ID.
            
            This will be `null` if not set yet.<br/>            <b><i>s_city</i></b> - The name of the city in the address.
            
            This will be `null` if not set yet.<br/>            <b><i>s_name</i></b> - The client name as listed in their address.
            
            This will be `null` if not set yet.<br/>            <b><i>s_phone</i></b> - The client phone number.
            
            This will be `null` if not set yet.<br/>            <b><i>s_postal</i></b> - The client postal or zip code.
            
            This will be `null` if not set yet.<br/>            <b><i>s_street1</i></b> - The first line of the client address.
            
            This will be `null` if not set yet.<br/>            <b><i>s_street2</i></b> - The second line of the client address.
            
            This will be `null` if not set yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_geo_country:
                    type: string
                    example: ""
                  k_geo_region:
                    type: string
                    example: ""
                  s_city:
                    type: string
                    example: ""
                  s_name:
                    type: string
                    example: ""
                  s_phone:
                    type: string
                    example: ""
                  s_postal:
                    type: string
                    example: ""
                  s_street1:
                    type: string
                    example: ""
                  s_street2:
                    type: string
                    example: ""

  /Wl/Pay/Bank/Card/Add/AddModel:
    post:
      tags:
      - Pay
      summary: Adds a payment card to a user’s account.
      description: >-
        Adds a payment card to a user’s account.
        The GET method retrieves an HTML code that contains the fields necessary to provide the information needed to
        add the payment card.
        The POST method will actually add the payment card.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: k_business
          description: >-
            The business key number used internally by WellnessLiving.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: k_pay_owner
          description: >-
            The payment owner ID. This is different from the user ID. It can be found with
            the [Wl\Pay\Owner\OwnerModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Owner/OwnerModel.php).

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_card_detail</i></b> -
          An array containing payment card information with the following fields:
          
          <dl>
          <dt>
          array <var>a_pay_address</var>
          </dt>
          <dd>
          Address information:
          <dl>
          <dt>bool <var>is_new</var></dt>
          <dd>`true` - add new address. `false` - use existing address.</dd>
          <dt>string <var>k_pay_address</var></dt>
          <dd>The chosen payment address ID. THis will be set even if the user decided to add a new address.</dd>
          <dt>string <var>k_geo_country</var></dt>
          <dd>The country key.</dd>
          <dt>string <var>k_geo_region</var></dt>
          <dd>The region key.</dd>
          <dt>string <var>s_city</var></dt>
          <dd>The city name.</dd>
          <dt>string <var>s_name</var></dt>
          <dd>The user name.</dd>
          <dt>string <var>s_street1</var></dt>
          <dd>The first address line.</dd>
          <dt>string <var>s_street2</var></dt>
          <dd>The second address line.</dd>
          <dt>string <var>s_phone</var></dt>
          <dd>The phone number.</dd>
          <dt>string <var>s_postal</var></dt>
          <dd>The postal code.</dd>
          </dl>
          </dd>
          <dt>
          int <var>i_csc</var>
          </dt>
          <dd>
          The payment card security code, also known as the CVC or CVV.
          </dd>
          <dt>
          int <var>i_month</var>
          </dt>
          <dd>
          The number of the month when the payment card expires. 1=January and 12=December.
          </dd>
          <dt>
          int <var>i_year</var>
          </dt>
          <dd>
          The last two digits of the year when the payment card expires.
          </dd>
          <dt>
          int <var>id_pay_actor</var>
          </dt>
          <dd>
          Pay actor id. One of [RsPayActorSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsPayActorSid.php) constants.
          </dd>
          <dt>
          string <var>k_pay_bank</var>
          </dt>
          <dd>
          Key of existing payment source in case of editing.
          Empty if new pay source is being added.
          </dd>
          <dt>
          string <var>s_name</var>
          </dt>
          <dd>
          The name as it appears on the payment card.
          </dd>
          <dt>
          string <var>s_number</var>
          </dt>
          <dd>
          The payment card number with no spaces or dashes.
          </dd>
          </dl>
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_card_detail:
                  description: >- 
                    An array containing payment card information with the following fields:
                    
                    <dl>
                    <dt>
                    array <var>a_pay_address</var>
                    </dt>
                    <dd>
                    Address information:
                    <dl>
                    <dt>bool <var>is_new</var></dt>
                    <dd>`true` - add new address. `false` - use existing address.</dd>
                    <dt>string <var>k_pay_address</var></dt>
                    <dd>The chosen payment address ID. THis will be set even if the user decided to add a new address.</dd>
                    <dt>string <var>k_geo_country</var></dt>
                    <dd>The country key.</dd>
                    <dt>string <var>k_geo_region</var></dt>
                    <dd>The region key.</dd>
                    <dt>string <var>s_city</var></dt>
                    <dd>The city name.</dd>
                    <dt>string <var>s_name</var></dt>
                    <dd>The user name.</dd>
                    <dt>string <var>s_street1</var></dt>
                    <dd>The first address line.</dd>
                    <dt>string <var>s_street2</var></dt>
                    <dd>The second address line.</dd>
                    <dt>string <var>s_phone</var></dt>
                    <dd>The phone number.</dd>
                    <dt>string <var>s_postal</var></dt>
                    <dd>The postal code.</dd>
                    </dl>
                    </dd>
                    <dt>
                    int <var>i_csc</var>
                    </dt>
                    <dd>
                    The payment card security code, also known as the CVC or CVV.
                    </dd>
                    <dt>
                    int <var>i_month</var>
                    </dt>
                    <dd>
                    The number of the month when the payment card expires. 1=January and 12=December.
                    </dd>
                    <dt>
                    int <var>i_year</var>
                    </dt>
                    <dd>
                    The last two digits of the year when the payment card expires.
                    </dd>
                    <dt>
                    int <var>id_pay_actor</var>
                    </dt>
                    <dd>
                    Pay actor id. One of [RsPayActorSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsPayActorSid.php) constants.
                    </dd>
                    <dt>
                    string <var>k_pay_bank</var>
                    </dt>
                    <dd>
                    Key of existing payment source in case of editing.
                    Empty if new pay source is being added.
                    </dd>
                    <dt>
                    string <var>s_name</var>
                    </dt>
                    <dd>
                    The name as it appears on the payment card.
                    </dd>
                    <dt>
                    string <var>s_number</var>
                    </dt>
                    <dd>
                    The payment card number with no spaces or dashes.
                    </dd>
                    </dl>

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Pay
      summary: Adds a payment card to a user’s account.
      description: >-
        Adds a payment card to a user’s account.
        The GET method retrieves an HTML code that contains the fields necessary to provide the information needed to
        add the payment card.
        The POST method will actually add the payment card.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: k_business
          description: >-
            The business key number used internally by WellnessLiving.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
        - name: k_pay_owner
          description: >-
            The payment owner ID. This is different from the user ID. It can be found with
            the [Wl\Pay\Owner\OwnerModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Owner/OwnerModel.php).

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>html_widget</i></b> - The HTML form containing the fields required to add a card.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  html_widget:
                    type: string
                    example: ""
    delete:
      tags:
      - Pay
      summary: Adds a payment card to a user’s account.
      description: >-
        Adds a payment card to a user’s account.
        The GET method retrieves an HTML code that contains the fields necessary to provide the information needed to
        add the payment card.
        The POST method will actually add the payment card.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1064`.
      parameters:
        - name: k_business
          description: >-
            The business key number used internally by WellnessLiving.

          in: query
          schema:
            type: string
        - name: k_pay_bank
          description: >-
            Pay bank key to delete.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Pay/Bank/Card/ListModel:
    get:
      tags:
      - Pay
      summary: Gets information about any payment cards belonging to a user.
      description: >-
        Gets information about any payment cards belonging to a user.
      parameters:
        - name: k_business
          description: >-
            ID of current business.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            Location to show information for.
            
            <tt>0</tt> to use user's home location.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            ID of a user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_bank_card</i></b> - A list of bank cards.
            The array keys are the card `k_pay_bank` IDs.
            Each element has the following keys:
            <dl>
            <dt>int <var>i_month</var></dt>
            <dd>The month when the payment card expires, represented by a number (1=January and 12=December).</dd>
            <dt>int <var>i_year</var></dt>
            <dd>The last two digits of the year when the payment card expires.</dd>
            <dt>int <var>id_card_system</var></dt>
            <dd>The card system ID. This is one of the [Core\a\ACardSystemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ACardSystemSid.php) constants.</dd>
            <dt>bool <var>is_default</var></dt>
            <dd>
            If `true`, then this card is the user default card.
            If `false`, then this isn't the user default card.
            </dd>
            <dt>string <var>k_pay_address</var></dt>
            <dd>The payment address ID. This refers to a physical address associated with a payment card.</dd>
            <dt>string <var>k_pay_bank</var></dt>
            <dd>The payment method ID. Each payment card for each user will have its own ID.</dd>
            <dt>string <var>text_name_card</var></dt>
            <dd>
            The payment card descriptor. This is typically the company name and the last 4 digits of the card
            (for example, visa-5903).
            </dd>
            <dt>string <var>text_name_holder</var></dt>
            <dd>The name of the card owner as it appears on the card.</dd>
            <dt>string <var>text_number</var></dt>
            <dd>
            A portion of the payment card number, used to identify the card.
            This is typically the last 4 digits of the card number.
            </dd>
            </dl><br/>            <b><i>a_list</i></b> - List of bank cards.
            Duplicate of the [Wl\Pay\Bank\Card\ListModel::$a_bank_card](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Bank/Card/ListModel.php).<br/>            <b><i>can_add</i></b> - Whether new card can be added.
            
            `true` if new cards can be added.
            `false` if new cards can not be added.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_bank_card:
                    type: object
                    example: []
                  a_list:
                    type: object
                    example: []
                  can_add:
                    type: integer
                    example: 0

  /Wl/Pay/Form/EnvironmentModel:
    get:
      tags:
      - Pay
      summary: Gets information about payment environments.
      description: >-
        Gets information about payment environments.
      parameters:
        - name: k_business
          description: >-
            The key of the business to retrieve payment information for.
            
            This will be `0` if not set yet.
            An empty string if payments are performed with the WellnessLiving system merchant.

          in: query
          schema:
            type: string
        - name: k_currency
          description: >-
            The key of the currency to retrieve payment information for.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location to retrieve payment information for.
            
            This will be `0` if not set yet.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_card_system</i></b> - A list of supported bank card systems.
            Keys refer to card types based on card numbers (see [Core\a\ACardSystemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ACardSystemSid.php)),
            and values are IDs of card systems (one of [Core\a\ACardSystemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ACardSystemSid.php) constants).<br/>            <b><i>a_method_staff</i></b> - A list of payment methods enabled for staff members. The ID is one of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.
            The value is always `true`.<br/>            <b><i>a_method_support</i></b> - A list of all payment methods that can be used within this business.
            This array is sorted in the order in which payment methods should be shown to the user.
            Each element of the array has the following structure:
            <dl>
            <dt>int <var>id_pay_method</var></dt>
            <dd>The ID of type of payment method. One of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.</dd>
            <dt>bool [<var>is_client</var>]</dt>
            <dd>Determines whether this method is available for clients. This field is only returned for custom payment methods.</dd>
            <dt>string|null <var>k_pay_method</var></dt>
            <dd>
            The key of the custom payment method.
            This will be `null` if this payment method isn't customized.
            </dd>
            <dt>string [<var>s_method</var>]</dt>
            <dd>The name of payment method. This field is only returned for custom payment methods.</dd>
            </dl><br/>            <b><i>a_mobile_config</i></b> - The configuration array that's sent to mobile card reader plugin.
            The structure of this array depends on the payment processor being used.<br/>            <b><i>a_pay_processor</i></b> - Represents information about payment processors.
            
            Keys are payment methods IDs, one of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.
            
            Value is the following array: <dl>
            <dt>array|null <var>a_public_keys</var></dt>
            <dd>
            Public keys configured for this payment processor.
            Copy of result of {@link Wl\Pay\Processor\ProcessorInterface\PayProcessorPublicKeysInterface::publicKeys()}.
            `null` if this payment processor does not support public keys.
            </dd>
            <dt>int <var>id_pay_processor</var></dt>
            <dd>ID of the payment processor. One of [WlPayProcessorSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayProcessorSid.php) constants.</dd>
            <dt>string <var>k_business_merchant</var></dt>
            <dd>Key of the business merchant.</dd>
            </dl>
            
            `null` if no processors are set up.<br/>            <b><i>f_surcharge</i></b> - The percentage of the payment amount to additionally withdraw as a surcharge.
            
            This will be `null` if the percentage surcharge amount shouldn't be withdrawn.<br/>            <b><i>id_locale</i></b> - The locale ID of the business.<br/>            <b><i>is_save_source</i></b> - Determines whether newly added payment sources should be saved. This will be `true` if payment sources should be saved,
            `false` if otherwise.<br/>            <b><i>m_surcharge</i></b> - The fixed surcharge amount to withdraw from all payment sources that support surcharges.
            
            This will be `null` if the fixed surcharge amount shouldn't be withdrawn.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_card_system:
                    type: object
                    example: []
                  a_method_staff:
                    type: object
                    example: []
                  a_method_support:
                    type: object
                    example: []
                  a_mobile_config:
                    type: object
                    example: []
                  a_pay_processor:
                    type: object
                    example: []
                  f_surcharge:
                    type: string
                    example: ""
                  id_locale:
                    type: integer
                    example: 0
                  is_save_source:
                    type: integer
                    example: 0
                  m_surcharge:
                    type: string
                    example: ""

  /Wl/Pay/Method/ListModel:
    get:
      tags:
      - Pay
      summary: An endpoint containing a model to get the list of payment methods.
      description: >-
        An endpoint containing a model to get the list of payment methods.
      parameters:
        - name: is_active
          description: >-
            Whether only active payment methods should be returned.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of a user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_pay_method</i></b> - A list of payment methods:
            <dl>
            <dt>
            int <var>id_pay_method</var>
            </dt>
            <dd>
            The payment method type ID. One of [WlPayMethodSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayMethodSid.php) constants.
            </dd>
            <dt>
            string|null <var>k_pay_method</var>
            </dt>
            <dd>
            Payment method key. May be <tt>null</tt> if it is a system payment method.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The payment method name.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_pay_method:
                    type: object
                    example: []

  /Wl/Pay/Owner/OwnerModel:
    get:
      tags:
      - Pay
      summary: Gets the payment owner ID.
      description: >-
        Gets the payment owner ID.
      parameters:
        - name: k_business
          description: >-
            Business key.
            `null` if not passed.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of a user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>id_pay_owner</i></b> - The type of user for which transactions can be made (this property is optional).
            
            This is one of the [WlPayOwnerSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlPayOwnerSid.php) constants.<br/>            <b><i>is_pay_self_only</i></b> - Is client pay only for self. If parent pays for child this flag will be `false` for both.<br/>            <b><i>k_pay_owner</i></b> - The payment owner key. This is used for financial transactions.<br/>            <b><i>k_pay_owner_money</i></b> - Key of the money owner.
            
            Copy of result of {@link Wl\Pay\Owner\PayOwner::ownerMoney()}.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  id_pay_owner:
                    type: integer
                    example: 0
                  is_pay_self_only:
                    type: integer
                    example: 0
                  k_pay_owner:
                    type: string
                    example: ""
                  k_pay_owner_money:
                    type: string
                    example: ""

  /Wl/Pay/Transaction/Report/TransactionAllPaymentModel:
    get:
      tags:
      - Pay
      summary: Can retrieve information from the All Transactions Report.
      description: >-
        Can retrieve information from the All Transactions Report.
      parameters:
        - name: dl_date_end
          description: >-
            The end date in local time to retrieve transactions for.

          in: query
          schema:
            type: string
        - name: dl_date_start
          description: >-
            The end date in local time to retrieve transactions for.

          in: query
          schema:
            type: string
        - name: i_page
          description: >-
            The page of the report, starting from 0.
            Each page will contain a maximum of [Wl\Pay\Transaction\Report\TransactionAllPaymentModel::LIMIT](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Transaction/Report/TransactionAllPaymentModel.php) rows.

          in: query
          schema:
            type: string
        - name: is_refresh
          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 is being generated.
            Otherwise, `false` to only return contents of the report.
            
            If the report hasn't yet been generated, it will automatically start generating in the background.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business for which report should be generated.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_field</i></b> - A list of fields in the report.
            
            This array is effectively a title row for the table returned in [Wl\Pay\Transaction\Report\TransactionAllPaymentModel::$a_row](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Transaction/Report/TransactionAllPaymentModel.php).<br/>            <b><i>a_row</i></b> - The report data.
            
            This is an indexed array in which one row is also an indexed array.
            
            Indexes of the columns correspond to the columns in [Wl\Pay\Transaction\Report\TransactionAllPaymentModel::$a_field](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Pay/Transaction/Report/TransactionAllPaymentModel.php).<br/>            <b><i>a_warning</i></b> - The warning list of the report.<br/>            <b><i>dtu_complete</i></b> - The date and time if the report has completed generation. Otherwise, this will be `null`.<br/>            <b><i>dtu_queue</i></b> - The date and time if this report has been put in the generation queue. Otherwise, this will be `null`.<br/>            <b><i>dtu_start</i></b> - The date and time if generation of this report has started. Otherwise, this will be `null`.<br/>            <b><i>id_report_status</i></b> - The report status.
            
            One of [Wl\Report\Generator\ReportGeneratorStatusSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Report/Generator/ReportGeneratorStatusSid.php) constants.<br/>            <b><i>is_more</i></b> - Determines whether to show more rows in the report.
            
            If `true`, there are more report rows to get. Otherwise, `false` to indicate that all rows in the report have
            already been retrieved.<br/>            <b><i>is_report_complete</i></b> - Determines whether the report is complete.
            
            If the report is accessed on the current day, or is returning a result that was cached on the current day, it could
            be incomplete as not all the transactions for the day are present.
            
            If `true`, the report has been completed. Otherwise, `false`.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_field:
                    type: object
                    example: []
                  a_row:
                    type: object
                    example: []
                  a_warning:
                    type: object
                    example: []
                  dtu_complete:
                    type: string
                    example: ""
                  dtu_queue:
                    type: string
                    example: ""
                  dtu_start:
                    type: string
                    example: ""
                  id_report_status:
                    type: integer
                    example: 0
                  is_more:
                    type: integer
                    example: 0
                  is_report_complete:
                    type: integer
                    example: 0

  /Wl/Profile/Activity/ElementModel:
    get:
      tags:
      - Profile
      summary: Returns detailed information about a single client activity.
      description: >-
        Returns detailed information about a single client activity.
      parameters:
        - name: k_login_activity
          description: >-
            The key of the activity item represented by this endpoint.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_credit_score</i></b> - Messages with description what did user do to get account credits as reward points.<br/>            <b><i>a_reward_score</i></b> - Messages with description what did user do to get points.<br/>            <b><i>dt_date_gmt</i></b> - The date of the activity in GMT.<br/>            <b><i>dt_date_local</i></b> - The date of the activity in the client's time zone.<br/>            <b><i>html_message</i></b> - Description of the action, who and what did.<br/>            <b><i>i_credit_score</i></b> - Total amount of account credits user got for [Wl\Profile\Activity\ElementModel::$k_login_activity. This field is a copy of result of  RsLoginActivity::reward()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Activity/ElementModel.php). This field is a copy of result of {@link RsLoginActivity::reward()}.<br/>            <b><i>i_score</i></b> - The total amount of rewards points the client received for the activity.<br/>            <b><i>i_spend</i></b> - The rewards points used to redeem a prize.<br/>            <b><i>id_icon</i></b> - The ID of the icon that should be shown for this activity. One of [WlDesignIconSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlDesignIconSid.php) constants.
            
            This will be `null`  is no special icon for this activity.<br/>            <b><i>id_type</i></b> - The ID of the activity item returned by this endpoint. One of [RsLoginActivityTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsLoginActivityTypeSid.php) constants.<br/>            <b><i>k_id</i></b> - Object ID, for example, class period ID for books and visits.<br/>            <b><i>s_message</i></b> - The description of the activity. This should include the nature of the activity and the people involved.<br/>            <b><i>url_link</i></b> - Link to share activity with social networks.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_credit_score:
                    type: object
                    example: []
                  a_reward_score:
                    type: object
                    example: []
                  dt_date_gmt:
                    type: string
                    example: ""
                  dt_date_local:
                    type: string
                    example: ""
                  html_message:
                    type: string
                    example: ""
                  i_credit_score:
                    type: integer
                    example: 0
                  i_score:
                    type: integer
                    example: 0
                  i_spend:
                    type: integer
                    example: 0
                  id_icon:
                    type: integer
                    example: 0
                  id_type:
                    type: integer
                    example: 0
                  k_id:
                    type: string
                    example: ""
                  s_message:
                    type: string
                    example: ""
                  url_link:
                    type: string
                    example: ""

  /Wl/Profile/Activity/ListModel:
    get:
      tags:
      - Profile
      summary: Returns a list of client activities.
      description: >-
        Returns a list of client activities.
      parameters:
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the client to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_activity</i></b> - An array listing client activities, where each activity is provided as an ID number.
            
            The order of items in this array is the order in which the elements should be displayed.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_activity:
                    type: object
                    example: []

  /Wl/Profile/Alert/AlertModel:
    get:
      tags:
      - Profile
      summary: Retrieves information about client alert messages.
      description: >-
        Retrieves information about client alert messages.
      parameters:
        - name: k_business
          description: >-
            The key of the business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_alert</i></b> - A list of alerts. Every element is an array with the following keys:
            <dl>
            <dt>
            string|null <var>dt_date</var>
            </dt>
            <dd>
            The date and time in MySQL format in local time when the alert was last modified.
            This will be `null` if the date isn't available for this alert.
            </dd>
            <dt>
            bool <var>is_today</var>
            </dt>
            <dd>
            This will be `true` if the alert was added today. Otherwise, this will be `false`.
            </dd>
            <dt>
            int <var>id_profile_note</var>
            </dt>
            <dd>
            ID of alert type. One of [RsProfileNoteSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsProfileNoteSid.php) constants.
            </dd>
            <dt>
            string [<var>k_pay_account</var>]
            </dt>
            <dd>
            The key of the client's account.
            </dd>
            <dt>
            string [<var>k_purchase_item</var>]
            </dt>
            <dd>
            The key of the purchase item.
            </dd>
            <dt>
            string <var>s_text</var>
            </dt>
            <dd>
            The alert's text.
            </dd>
            </dl><br/>            <b><i>a_warning</i></b> - A list of warnings. Every element is an array with the following keys:
            <dl>
            <dt>
            string[] <var>a_location_flag</var>
            </dt>
            <dd>
            The list of locations keys from {@link \RsLocationSql} table, where this note is flagged.
            </dd>
            <dt>
            bool <var>dt_date</var>
            </dt>
            <dd>
            The date and time in MySQL format in local time when the warning was last modified.
            </dd>
            <dt>
            bool <var>is_flag</var>
            </dt>
            <dd>
            This will be `true` if the client is flagged. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_today</var>
            </dt>
            <dd>
            This will be `true` if the warning was added today. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>s_text</var>
            </dt>
            <dd>
            The text of the warning.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_alert:
                    type: object
                    example: []
                  a_warning:
                    type: object
                    example: []

  /Wl/Profile/Contract/ContractModel:
    get:
      tags:
      - Profile
      summary: Gets information about a session pass or membership with a contract.
      description: >-
        Gets information about a session pass or membership with a contract.
        <br /><br />
        The POST method will complete a sale of a Purchase Option requiring a contract.
        The method that WellnessLiving uses to encode a signature into a string isn't currently available in the SDK.
      parameters:
        - name: dt_start
          description: >-
            The start date of the contract.

          in: query
          schema:
            type: string
        - name: f_manual_discount
          description: >-
            The percentage discount for the item.

          in: query
          schema:
            type: string
        - name: id_purchase_item
          description: >-
            The type of purchase item. This is one of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.
            Optional if [Wl\Profile\Contract\ContractModel::$k_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Contract/ContractModel.php) is not empty.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: k_id
          description: >-
            The key of the purchase item in the database.
            The item key. Depends of [Wl\Profile\Contract\ContractModel::$id_purchase_item](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Contract/ContractModel.php) property.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the selected location.

          in: query
          schema:
            type: string
        - name: k_purchase_item
          description: >-
            The key of the selected purchase item.

          in: query
          schema:
            type: string
        - name: m_discount_flat
          description: >-
            Amount of a flat manual discount.

          in: query
          schema:
            type: string
        - name: m_price_custom
          description: >-
            The custom price of the item.

          in: query
          schema:
            type: string
        - name: s_discount_code
          description: >-
            The discount code used for the item.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the current user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>html_contract</i></b> - The text of the contract.<br/>            <b><i>i_minor_age</i></b> - Age of minor which documents can be signed by parent or legal guardian.<br/>            <b><i>text_title</i></b> - Title of purchase option.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  html_contract:
                    type: string
                    example: ""
                  i_minor_age:
                    type: integer
                    example: 0
                  text_title:
                    type: string
                    example: ""
    post:
      tags:
      - Profile
      summary: Gets information about a session pass or membership with a contract.
      description: >-
        Gets information about a session pass or membership with a contract.
        <br /><br />
        The POST method will complete a sale of a Purchase Option requiring a contract.
        The method that WellnessLiving uses to encode a signature into a string isn't currently available in the SDK.
      parameters:
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: k_purchase_item
          description: >-
            The key of the selected purchase item.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the current user.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>is_agree</i></b> -
          <tt>false</tt> if user has not agreed to use Electronic Signatures,
          <tt>true</tt> if user has agreed to use Electronic Signatures,
          <tt>null</tt> otherwise.
          <br/>
          <b><i>s_signature</i></b> -
          An encoded version of the client signature.
          This is different from the signature needed to communicate with an endpoint.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_agree:
                  description: >- 
                    <tt>false</tt> if user has not agreed to use Electronic Signatures,
                    <tt>true</tt> if user has agreed to use Electronic Signatures,
                    <tt>null</tt> otherwise.

                  type: integer
                s_signature:
                  description: >- 
                    An encoded version of the client signature.
                    This is different from the signature needed to communicate with an endpoint.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Profile/Edit/CreateModel:
    post:
      tags:
      - Profile
      summary: Creates user account for the given email address if email address does not already exist.
      description: >-
        Creates user account for the given email address if email address does not already exist.
        checks if a user's email address is already used or changes a user’s login email address.
        <br /><br />
        This endpoint is rate limited.

      requestBody:
        description: >-
              <b><i>k_business</i></b> -
              The key of the business where you're creating new user.
              <br/>
              <b><i>text_firstname</i></b> -
              First name of the user.
              <br/>
              <b><i>text_lastname</i></b> -
              Last name of the user.
              <br/>
              <b><i>text_mail</i></b> -
              Email of the user.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_business:
                      description: >- 
                        The key of the business where you're creating new user.

                      type: string
                    text_firstname:
                      description: >- 
                        First name of the user.

                      type: string
                    text_lastname:
                      description: >- 
                        Last name of the user.

                      type: string
                    text_mail:
                      description: >- 
                        Email of the user.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>uid</i></b> - The key of the user added.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  uid:
                    type: string
                    example: ""

  /Wl/Profile/Edit/EditByTokenModel:
    put:
      tags:
      - Profile
      summary: Displays client profile information.
      description: >-
        Displays client profile information.
        Version of [Wl\Profile\Edit\EditModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php) for access validation by security token.
      parameters:
        - name: is_staff
          description: >-
            Indicates whether to display the form as a user or as a staff member.
            Staff members may have access to different fields than the user.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business where you're editing.
            
            An empty value will return the system-wide fields.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to edit.
            
            If empty, then an empty form will be displayed to add a new user.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_change</i></b> -
          A list of fields to change. Values are the new field values. Specific values depend on an individual field type.
          Some fields may be strings while others are arrays. If a composite field is changed, all fields should be specified
          (for example, if you change your address, you'll need to specify the city). Keys are the `k_field` values.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_change:
                  description: >- 
                    A list of fields to change. Values are the new field values. Specific values depend on an individual field type.
                    Some fields may be strings while others are arrays. If a composite field is changed, all fields should be specified
                    (for example, if you change your address, you'll need to specify the city). Keys are the `k_field` values.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Profile
      summary: Displays client profile information.
      description: >-
        Displays client profile information.
        Version of [Wl\Profile\Edit\EditModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php) for access validation by security token.
      parameters:
        - name: id_register_source
          description: >-
            ID of registration source. One of [Wl\Profile\RegisterSourceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) constants.
            If empty [Wl\Profile\RegisterSourceSid::SELF](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) is used.

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            Indicates whether to display the form as a user or as a staff member.
            Staff members may have access to different fields than the user.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business where you're editing.
            
            An empty value will return the system-wide fields.

          in: query
          schema:
            type: string
        - name: text_token
          description: >-
            The security token.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to edit.
            
            If empty, then an empty form will be displayed to add a new user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_error</i></b> - List of errors.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>a_structure</i></b> - The values and structure of all fields. Array keys are field IDs (`k_field`).
            Array values are the field values. The array has the following structure:
            <dl>
            <dt>int [<var>id_field_general</var>]</dt>
            <dd>The ID of a system field. One of [Wl\Field\WlFieldGeneralSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Field/WlFieldGeneralSid.php) constants. This value is only defined if
            <var>id_field_type</var>=[RsFieldTypeSid::GENERAL](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldTypeSid.php).</dd>
            <dt>bool <var>is_require</var></dt>
            <dd>Indicates whether the value of this field is required. This will be `1` if required or `0` if the field is optional.</dd>
            <dt>int <var>id_field_type</var></dt>
            <dd>The type of field. This is one of the [Wl\Field\WlFieldTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Field/WlFieldTypeSid.php) constants.</dd>
            <dt>string <var>k_field</var></dt>
            <dd>The field ID (<var>k_field</var>). A copy of the key of this array element.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The title of the field.</dd>
            <dt>mixed <var>x_value</var></dt>
            <dd>The value of the field. This value is defined by individual fields.</dd>
            </dl><br/>            <b><i>is_short</i></b> - Indicates whether to display the full profile edit form or the short version.
            This is assumed to be used only in user registration mode.<br/>            <b><i>class</i></b> - Exception class name.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>code</i></b> - Code of the error.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>message</i></b> - Error message.
            <tt>null</tt> if there was no mistake.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_error:
                    type: object
                    example: []
                  a_structure:
                    type: object
                    example: []
                  is_short:
                    type: integer
                    example: 0
                  class:
                    type: string
                    example: ""
                  code:
                    type: string
                    example: ""
                  message:
                    type: string
                    example: ""
    post:
      tags:
      - Profile
      summary: Displays client profile information.
      description: >-
        Displays client profile information.
        Version of [Wl\Profile\Edit\EditModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php) for access validation by security token.
      parameters:
        - name: id_register_source
          description: >-
            ID of registration source. One of [Wl\Profile\RegisterSourceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) constants.
            If empty [Wl\Profile\RegisterSourceSid::SELF](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) is used.

          in: query
          schema:
            type: string
        - name: is_short
          description: >-
            Indicates whether to display the full profile edit form or the short version.
            This is assumed to be used only in user registration mode.

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            Indicates whether to display the form as a user or as a staff member.
            Staff members may have access to different fields than the user.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business where you're editing.
            
            An empty value will return the system-wide fields.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to edit.
            
            If empty, then an empty form will be displayed to add a new user.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_image_upload</i></b> -
          Information for user's photo.
          It is necessary to save simultaneously user and photo in staff member mode.
          
          Attention!
          Data from this field is taken directly from a POST somewhere in the depths of the photo upload.
          <br/>
          <b><i>a_new</i></b> -
          A copy of the [Wl\Profile\Edit\EditModel::$a_change](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php).
          This is used for POST requests when creating a new user.
          <br/>
          <b><i>is_sing_in</i></b> -
          <tt>true</tt> to sing in a created user; <tt>false</tt> to not sign in.
          <br/>
          <b><i>text_password</i></b> -
          The password to be set for a new user.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_image_upload:
                  description: >- 
                    Information for user's photo.
                    It is necessary to save simultaneously user and photo in staff member mode.
                    
                    Attention!
                    Data from this field is taken directly from a POST somewhere in the depths of the photo upload.

                  type: object
                a_new:
                  description: >- 
                    A copy of the [Wl\Profile\Edit\EditModel::$a_change](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php).
                    This is used for POST requests when creating a new user.

                  type: object
                is_sing_in:
                  description: >- 
                    <tt>true</tt> to sing in a created user; <tt>false</tt> to not sign in.

                  type: integer
                text_password:
                  description: >- 
                    The password to be set for a new user.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_error</i></b> - List of errors.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>class</i></b> - Exception class name.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>code</i></b> - Code of the error.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>status</i></b> - Status of the request.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>message</i></b> - Error message.
            <tt>null</tt> if there was no mistake.<br/>            <b><i>uid</i></b> - The key of the user to edit.
            
            If empty, then an empty form will be displayed to add a new user.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_error:
                    type: object
                    example: []
                  class:
                    type: string
                    example: ""
                  code:
                    type: string
                    example: ""
                  status:
                    type: string
                    example: ""
                  message:
                    type: string
                    example: ""
                  uid:
                    type: string
                    example: ""

  /Wl/Profile/Edit/EditModel:
    put:
      tags:
      - Profile
      summary: Gets information about a client profile. This endpoint can also edit or create a profile.
      description: >-
        Gets information about a client profile. This endpoint can also edit or create a profile.
        <br /><br />
        The GET method returns the profile fields for a specified user or a blank set of fields for a new user of a
        given business:
        <br /><br />
        If the GET method is used with a valid UID greater than 0, the method will return a list of fields with the
        values of the specified user.
        If the GET method is used with a UID set to 0, a list of profile fields will be returned for the specified
        business. A user in WellnessLiving can be in multiple businesses. There are some fields common among all business
        and others specific to one business.
        <br /><br />
        The type of field is described in `id_field_type`, which will be one of the [RsFieldTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldTypeSid.php) constants.
        Some fields have a general type, which can have a specific format:
        Address — An array containing the following keys: `k_city`, `s_address`, `s_city`, and `s_postal`.
        The `k_city` value can be retrieved via the [Core\Geo\ComboboxModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Geo/ComboboxModel.php) endpoint. The following is an example address array:
        <br /><br />
        Birthday — A string containing the date in MySQL format (for example, `1987-06-05`).
        Email Address — An array containing the following keys:
        <dl>
        <dt>bool <var>is_inherit</var></dt>
        <dd>Determines whether the user shares the email address with another user.
        This is typically done for children who use their parent’s email (`is_inherit=1`).
        In general, most other cases use (`is_inherit=0`).</dd>
        <dt>bool <var>s_mail</var></dt>
        <dd>The new email address.</dd>
        </dl>
      parameters:
        - name: is_staff
          description: >-
            Indicates whether to display the form as a user or as a staff member.
            Staff members may have access to different fields than the user.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business you're editing.
            
            An empty value will return the system-wide fields.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to edit.
            
            If empty, an empty form will be displayed to add a new user.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_change</i></b> -
          A list of fields to change. Values are the new field values. Specific values depend on an individual field type.
          Some fields may be strings while others are arrays. If a composite field is changed, all fields should be specified
          (for example, if you change your address, you'll need to specify the city). Keys are the `k_field` values.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_change:
                  description: >- 
                    A list of fields to change. Values are the new field values. Specific values depend on an individual field type.
                    Some fields may be strings while others are arrays. If a composite field is changed, all fields should be specified
                    (for example, if you change your address, you'll need to specify the city). Keys are the `k_field` values.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Profile
      summary: Gets information about a client profile. This endpoint can also edit or create a profile.
      description: >-
        Gets information about a client profile. This endpoint can also edit or create a profile.
        <br /><br />
        The GET method returns the profile fields for a specified user or a blank set of fields for a new user of a
        given business:
        <br /><br />
        If the GET method is used with a valid UID greater than 0, the method will return a list of fields with the
        values of the specified user.
        If the GET method is used with a UID set to 0, a list of profile fields will be returned for the specified
        business. A user in WellnessLiving can be in multiple businesses. There are some fields common among all business
        and others specific to one business.
        <br /><br />
        The type of field is described in `id_field_type`, which will be one of the [RsFieldTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldTypeSid.php) constants.
        Some fields have a general type, which can have a specific format:
        Address — An array containing the following keys: `k_city`, `s_address`, `s_city`, and `s_postal`.
        The `k_city` value can be retrieved via the [Core\Geo\ComboboxModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Geo/ComboboxModel.php) endpoint. The following is an example address array:
        <br /><br />
        Birthday — A string containing the date in MySQL format (for example, `1987-06-05`).
        Email Address — An array containing the following keys:
        <dl>
        <dt>bool <var>is_inherit</var></dt>
        <dd>Determines whether the user shares the email address with another user.
        This is typically done for children who use their parent’s email (`is_inherit=1`).
        In general, most other cases use (`is_inherit=0`).</dd>
        <dt>bool <var>s_mail</var></dt>
        <dd>The new email address.</dd>
        </dl>
      parameters:
        - name: id_register_source
          description: >-
            The ID of registration source. One of the [Wl\Profile\RegisterSourceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) constants.
            If empty, [Wl\Profile\RegisterSourceSid::SELF](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) is used.

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            Indicates whether to display the form as a user or as a staff member.
            Staff members may have access to different fields than the user.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business you're editing.
            
            An empty value will return the system-wide fields.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to edit.
            
            If empty, an empty form will be displayed to add a new user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_error</i></b> - The list of errors.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>a_structure</i></b> - The values and structure of all fields. Array keys are field IDs (`k_field`).
            Array values are the field values. The array has the following structure:
            <dl>
            <dt>int [<var>id_field_general</var>]</dt>
            <dd>The ID of a system field. One of the [RsFieldGeneralSid constants. This value is only defined if <var>id_field_type</var>= RsFieldTypeSid::GENERAL](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldGeneralSid constants. This value is only defined if <var>id_field_type</var>= /WellnessLiving/RsFieldTypeSid.php) constants. This value is only defined if <var>id_field_type</var>={@link \WellnessLiving\RsFieldTypeSid::GENERAL}.</dd>
            <dt>bool <var>is_require</var></dt>
            <dd>Indicates whether the value of this field is required. This will be `1` if required or `0` if the field is optional.</dd>
            <dt>int <var>id_field_type</var></dt>
            <dd>The type of field. One of the [RsFieldTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldTypeSid.php) constants.</dd>
            <dt>string <var>k_field</var></dt>
            <dd>The field ID (<var>k_field</var>). A copy of the key of this array element.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The title of the field.</dd>
            <dt>mixed <var>x_value</var></dt>
            <dd>The value of the field. This value is defined by individual fields.</dd>
            </dl><br/>            <b><i>is_short</i></b> - Indicates whether to display the full profile edit form or the short version.
            This is assumed to be used only in user registration mode.<br/>            <b><i>class</i></b> - The exception class name.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>code</i></b> - The error code.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>message</i></b> - The error message.
            This will be `null` if there weren't any mistakes.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_error:
                    type: object
                    example: []
                  a_structure:
                    type: object
                    example: []
                  is_short:
                    type: integer
                    example: 0
                  class:
                    type: string
                    example: ""
                  code:
                    type: string
                    example: ""
                  message:
                    type: string
                    example: ""
    post:
      tags:
      - Profile
      summary: Gets information about a client profile. This endpoint can also edit or create a profile.
      description: >-
        Gets information about a client profile. This endpoint can also edit or create a profile.
        <br /><br />
        The GET method returns the profile fields for a specified user or a blank set of fields for a new user of a
        given business:
        <br /><br />
        If the GET method is used with a valid UID greater than 0, the method will return a list of fields with the
        values of the specified user.
        If the GET method is used with a UID set to 0, a list of profile fields will be returned for the specified
        business. A user in WellnessLiving can be in multiple businesses. There are some fields common among all business
        and others specific to one business.
        <br /><br />
        The type of field is described in `id_field_type`, which will be one of the [RsFieldTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsFieldTypeSid.php) constants.
        Some fields have a general type, which can have a specific format:
        Address — An array containing the following keys: `k_city`, `s_address`, `s_city`, and `s_postal`.
        The `k_city` value can be retrieved via the [Core\Geo\ComboboxModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Geo/ComboboxModel.php) endpoint. The following is an example address array:
        <br /><br />
        Birthday — A string containing the date in MySQL format (for example, `1987-06-05`).
        Email Address — An array containing the following keys:
        <dl>
        <dt>bool <var>is_inherit</var></dt>
        <dd>Determines whether the user shares the email address with another user.
        This is typically done for children who use their parent’s email (`is_inherit=1`).
        In general, most other cases use (`is_inherit=0`).</dd>
        <dt>bool <var>s_mail</var></dt>
        <dd>The new email address.</dd>
        </dl>
      parameters:
        - name: id_register_source
          description: >-
            The ID of registration source. One of the [Wl\Profile\RegisterSourceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) constants.
            If empty, [Wl\Profile\RegisterSourceSid::SELF](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/RegisterSourceSid.php) is used.

          in: query
          schema:
            type: string
        - name: is_short
          description: >-
            Indicates whether to display the full profile edit form or the short version.
            This is assumed to be used only in user registration mode.

          in: query
          schema:
            type: string
        - name: is_staff
          description: >-
            Indicates whether to display the form as a user or as a staff member.
            Staff members may have access to different fields than the user.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business you're editing.
            
            An empty value will return the system-wide fields.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to edit.
            
            If empty, an empty form will be displayed to add a new user.

          in: query
          schema:
            type: string
        - name: uid_existed
          description: >-
            The UID of an existing user in another business to add to the current business.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_image_upload</i></b> -
          Information about the user's photo.
          It's necessary to simultaneously save the user and the photo in staff member mode.
          
          Note that data from this field is taken directly from a POST somewhere in the photo upload process.
          <br/>
          <b><i>a_new</i></b> -
          A copy of the [Wl\Profile\Edit\EditModel::$a_change](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php).
          This is used for POST requests when creating a new user.
          <br/>
          <b><i>is_sing_in</i></b> -
          This will be `true` to sign in a created user. Otherwise, this will be `false`.
          <br/>
          <b><i>text_password</i></b> -
          The password to be set for a new user.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_image_upload:
                  description: >- 
                    Information about the user's photo.
                    It's necessary to simultaneously save the user and the photo in staff member mode.
                    
                    Note that data from this field is taken directly from a POST somewhere in the photo upload process.

                  type: object
                a_new:
                  description: >- 
                    A copy of the [Wl\Profile\Edit\EditModel::$a_change](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/Edit/EditModel.php).
                    This is used for POST requests when creating a new user.

                  type: object
                is_sing_in:
                  description: >- 
                    This will be `true` to sign in a created user. Otherwise, this will be `false`.

                  type: integer
                text_password:
                  description: >- 
                    The password to be set for a new user.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_error</i></b> - The list of errors.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>class</i></b> - The exception class name.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>code</i></b> - The error code.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>status</i></b> - The request status.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>message</i></b> - The error message.
            This will be `null` if there weren't any mistakes.<br/>            <b><i>uid</i></b> - The key of the user to edit.
            
            If empty, an empty form will be displayed to add a new user.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_error:
                    type: object
                    example: []
                  class:
                    type: string
                    example: ""
                  code:
                    type: string
                    example: ""
                  status:
                    type: string
                    example: ""
                  message:
                    type: string
                    example: ""
                  uid:
                    type: string
                    example: ""

  /Wl/Profile/Edit/EditPasswordModel:
    post:
      tags:
      - Profile
      summary: Model to change user's password.
      description: >-
        Model to change user's password.

      requestBody:
        description: >-
              <b><i>k_business</i></b> -
              The key ID of business where actions take place.
              Primary key in {@link \RsBusinessSql} table.
              Business is necessary for mail sending only.
              <br/>
              <b><i>s_password_confirm</i></b> -
              The confirmation of new password.
              <br/>
              <b><i>s_password_new</i></b> -
              The new password.
              <br/>
              <b><i>s_password_old</i></b> -
              The old password.
              <br/>
              <b><i>uid</i></b> -
              The user key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    k_business:
                      description: >- 
                        The key ID of business where actions take place.
                        Primary key in {@link \RsBusinessSql} table.
                        Business is necessary for mail sending only.

                      type: string
                    s_password_confirm:
                      description: >- 
                        The confirmation of new password.

                      type: string
                    s_password_new:
                      description: >- 
                        The new password.

                      type: string
                    s_password_old:
                      description: >- 
                        The old password.

                      type: string
                    uid:
                      description: >- 
                        The user key.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Profile/Edit/Email/EditEmailModel:
    get:
      tags:
      - Profile
      summary: Checks if a user's email address is already used or changes a user’s login email address.
      description: >-
        Checks if a user's email address is already used or changes a user’s login email address.
        <br /><br />
        This endpoint is rate limited. If the rate limit is exceeded, it won't return user information.
        <br /><br />
        While `get` request allows to check, whether user with the given email exists on the site, `post` allows to add it
        to the certain business, if it's not added yet. If client has all required by this business fields filled, it will
        be added right away. Otherwise it will add temporary access to this client, and you need to send all necessary fields
        with [EditModel](https://github.com/wellnessliving/wl-sdk/blob/masterEditModel.php) endpoint.
      parameters:
        - name: k_business
          description: >-
            The business key where the check must be performed.

          in: query
          schema:
            type: string
        - name: text_mail
          description: >-
            The email address to be checked.

          in: query
          schema:
            type: string
        - name: uid_want
          description: >-
            The key of user whose email will be edited.
            This will be `0` in the case of a new user creation.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_business_member_key</i></b> - List of business keys where a user is already a member.<br/>            <b><i>a_user</i></b> - Information about the user who occupies the specified email.
            This will be empty if the email is free or if the rate limit has been reached.
            Otherwise, has next keys:
            <dl>
            <dt>
            string <var>text_firstname</var>
            </dt>
            <dd>
            First name.
            </dd>
            <dt>
            string <var>text_lastname</var>
            </dt>
            <dd>
            Last name.
            </dd>
            <dt>
            string <var>text_phone</var>
            </dt>
            <dd>
            Phone.
            </dd>
            <dt>
            string <var>url_photo</var>
            </dt>
            <dd>
            URL to photo.
            </dd>
            </dl><br/>            <b><i>is_added</i></b> - Shows, whether client was registered in the business: <tt>true</tt> if user was added to the business,
            <tt>false</tt> if staff only received temporary access, because mandatory fields must be specified first.<br/>            <b><i>is_current_member</i></b> - If `true`, user is already a member of current business, `false` - otherwise.<br/>            <b><i>is_limit</i></b> - If `true`, then the number of requests has exceeded the rate limit. Otherwise, this will be `false`.<br/>            <b><i>is_staff</i></b> - If `true`, user, who has the specified email, is staff, `false` - otherwise.<br/>            <b><i>is_use</i></b> - If `true`, then the specified email is in use. Otherwise, this will be `false`.<br/>            <b><i>uid_result</i></b> - The key of user who has the specified email.
            This will be `0` if the email is free or if the rate limit has been reached.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_business_member_key:
                    type: object
                    example: []
                  a_user:
                    type: object
                    example: []
                  is_added:
                    type: integer
                    example: 0
                  is_current_member:
                    type: integer
                    example: 0
                  is_limit:
                    type: integer
                    example: 0
                  is_staff:
                    type: integer
                    example: 0
                  is_use:
                    type: integer
                    example: 0
                  uid_result:
                    type: string
                    example: ""
    post:
      tags:
      - Profile
      summary: Checks if a user's email address is already used or changes a user’s login email address.
      description: >-
        Checks if a user's email address is already used or changes a user’s login email address.
        <br /><br />
        This endpoint is rate limited. If the rate limit is exceeded, it won't return user information.
        <br /><br />
        While `get` request allows to check, whether user with the given email exists on the site, `post` allows to add it
        to the certain business, if it's not added yet. If client has all required by this business fields filled, it will
        be added right away. Otherwise it will add temporary access to this client, and you need to send all necessary fields
        with [EditModel](https://github.com/wellnessliving/wl-sdk/blob/masterEditModel.php) endpoint.
      parameters:
        - name: k_business
          description: >-
            The business key where the check must be performed.

          in: query
          schema:
            type: string
        - name: uid_want
          description: >-
            The key of user whose email will be edited.
            This will be `0` in the case of a new user creation.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_added</i></b> - Shows, whether client was registered in the business: <tt>true</tt> if user was added to the business,
            <tt>false</tt> if staff only received temporary access, because mandatory fields must be specified first.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_added:
                    type: integer
                    example: 0

  /Wl/Profile/Form/Response/ResponseListModel:
    get:
      tags:
      - Profile
      summary: Retrieves a list of a user's quiz responses.
      description: >-
        Retrieves a list of a user's quiz responses.
      parameters:
        - name: is_backend
          description: >-
            This will be `true` if the API is being used from the backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_quiz_login</i></b> - The list of uncompleted quiz responses. Each element has the next structure: <dl>
            <dt>string <var>dtl_date</var></dt>
            <dd>The date of the request to fill out a quiz form.</dd>
            <dt>int <var>id_source</var></dt>
            <dd>The place where the request to fill out a quiz form occurred. One of the [SourceSid](https://github.com/wellnessliving/wl-sdk/blob/masterSourceSid.php) constants.</dd>
            <dt>bool <var>is_private</var></dt>
            <dd>
            Determines whether the form can be viewed by staff member only after confirmation.
            `true` — the form can be viewed only after confirmation.
            `false` — the form can always be viewed.
            </dd>
            <dt>string <var>k_quiz</var></dt>
            <dd>The quiz key.</dd>
            <dt>string <var>k_quiz_login</var></dt>
            <dd>The key of the request.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The quiz title.</dd>
            </dl><br/>            <b><i>a_quiz_response</i></b> - The list of completed quiz responses. Each element has the next structure: <dl>
            <dt>string <var>dtl_date</var></dt>
            <dd>The date of the request to fill out a quiz form.</dd>
            <dt>int <var>id_source</var></dt>
            <dd>The place where the request to fill out the quiz form occurred. One of the [SourceSid](https://github.com/wellnessliving/wl-sdk/blob/masterSourceSid.php) constants.</dd>
            <dt>int <var>id_status</var></dt>
            <dd>Status of the response. One of [ResponseStatusSid](https://github.com/wellnessliving/wl-sdk/blob/masterResponseStatusSid.php) constants.</dd>
            <dt>bool <var>is_private</var></dt>
            <dd>
            Determines whether the form can be viewed by staff member only after confirmation.
            `true` — the form can be viewed only after confirmation.
            `false` — the form can always be viewed.
            </dd>
            <dt>string <var>k_quiz</var></dt>
            <dd>The quiz key.</dd>
            <dt>string <var>k_quiz_login</var></dt>
            <dd>The quiz response key.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The quiz title.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_quiz_login:
                    type: object
                    example: []
                  a_quiz_response:
                    type: object
                    example: []

  /Wl/Profile/PurchaseList/PurchaseListElementModel:
    get:
      tags:
      - Profile
      summary: Gets the details of a specified purchase.
      description: >-
        Gets the details of a specified purchase.
        <br /><br />
        This endpoint may require different IDs to be specified for different types of purchases. The IDs required for a
        specific item will be the same IDs returned from the [Wl\Profile\PurchaseList\PurchaseListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/PurchaseList/PurchaseListModel.php) endpoint.
      parameters:
        - name: i_image_height
          description: >-
            Image Height in pixels. Please specify this value if you need purchase image to be returned in specific size.
            In case this value is not specified returned image will have default purchase size.

          in: query
          schema:
            type: string
        - name: i_image_width
          description: >-
            Image Width in pixels. Please specify this value if you need purchase image to be returned in specific size.
            In case this value is not specified returned image will have default purchase size.

          in: query
          schema:
            type: string
        - name: k_code
          description: >-
            The ID of the redemption code used to obtain the item. This should be specified only for items obtained via
            redemption code (not for ordinary purchases or for purchased promotions without purchases).
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: k_enrollment_book
          description: >-
            The key of an entirely booked event. This must be specified if the purchased item is a whole event
            and part of a package.

          in: query
          schema:
            type: string
        - name: k_login_product
          description: >-
            The key of a purchased product. This must be specified if the purchased item is a product and part of a package.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The key of the user's promotion. This should only be specified for promotions given without a purchase.
            This isn't for ordinary purchases or for promotions obtained via redemption codes. This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: k_purchase_item
          description: >-
            The key of the purchased item. This should be specified only for ordinary purchases
            and not for purchases obtained via redemption codes or as a result of an old import.

          in: query
          schema:
            type: string
        - name: k_session_pass
          description: >-
            The ID of the makeup session used to attend an event.
            
            This must be specified if the purchase item is a component of a package and a whole event booking.
            And only for items which aren't components of package.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_component</i></b> - A list of components. This won't be empty if this purchase element is a package. Every element has keys:
            <dl>
            <dt>
            string [<var>k_enrollment_book</var>]
            </dt>
            <dd>
            The booking enrollment key.
            </dd>
            <dt>
            string [<var>k_login_product</var>]
            </dt>
            <dd>
            The key referencing the product a user purchased.
            </dd>
            <dt>
            string [<var>k_login_promotion</var>]
            </dt>
            <dd>
            The key of a user's Purchase Option.
            </dd>
            <dt>
            string [<var>k_session_pass</var>]
            </dt>
            <dd>
            The key of a user's session pass.
            </dd>
            </dl><br/>            <b><i>a_logo</i></b> - An array containing information about the image of the purchased item. Every element has the following keys:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            The height of the image.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            The width of the image.
            </dd>
            <dt>
            bool <var>is_empty</var>
            </dt>
            <dd>
            If `true`, then the purchased item doesn't have an image. If `false`, then the item has an image.
            </dd>
            </dl><br/>            <b><i>a_restrict</i></b> - This field is used only for promotions. It contains restrictions that will apply to bookings made with
            this promotion. Every element has the following keys:
            <dl>
            <dt>
            int <var>i_limit</var>
            </dt>
            <dd>
            The number of sessions that may be booked during this period.
            </dd>
            <dt>
            int <var>i_remain</var>
            </dt>
            <dd>
            The number of sessions that remain available.
            </dd>
            <dt>
            string <var>text_date</var>
            </dt>
            <dd>
            The name of the period type.
            </dd>
            </dl>This will be an empty array for other purchased items.<br/>            <b><i>a_tax</i></b> - The list of taxes paid for the purchased item. Every element has the following fields:
            <dl>
            <dt>
            string <var>f_tax_discount</var>
            </dt>
            <dd>
            The amount of tax.
            </dd>
            <dt>
            string <var>s_tax</var>
            </dt>
            <dd>
            The name of the tax.
            </dd>
            </dl><br/>            <b><i>can_renew</i></b> - This is `true` only if the purchased item is a promotion and the user can control the renewal of the promotion.
            Otherwise, this will be `false`.<br/>            <b><i>dl_end</i></b> - The expiration date of the promotion. This is used only if the purchased item is a promotion.<br/>            <b><i>dl_purchase</i></b> - The local date of the purchase in MySQL format.<br/>            <b><i>dl_send</i></b> - The local date in MySQL format when mail about purchasing was sent (or will be sent) to the user.
            This won't be empty only for gift cards.<br/>            <b><i>dl_start</i></b> - The start date of the promotion. This is used only if the purchased item is a promotion.<br/>            <b><i>dt_hold_end</i></b> - The end date of the promotion hold. This is used only for promotions on hold.
            This value may be empty if the hold is eternal.<br/>            <b><i>dt_hold_start</i></b> - The start date of the promotion hold. This is used only for promotions on hold.<br/>            <b><i>dt_purchase</i></b> - The purchase date of the purchased item. This is given in UTC in MySQL format.<br/>            <b><i>dt_redeem</i></b> - The date in MySQL format when gift card was redeemed. This won't be empty only for gift cards.<br/>            <b><i>f_discount_login_type_percent</i></b> - The percentage value of the discount for the client type. This will be empty if a discount wasn't applied.<br/>            <b><i>html_description</i></b> - The description of the purchased item.<br/>            <b><i>i_book</i></b> - The number of sessions remaining for a promotion. This value is used only for promotions. This value will be `0` if
            the purchased item isn't a promotion or if there are no remaining sessions.<br/>            <b><i>i_book_duration</i></b> - Displays the number of minutes of sessions that were booked by this promotion. This isn't `0` only for promotions.<br/>            <b><i>i_buy</i></b> - The number of purchased items bought at the time of purchase.
            This will be `0` for purchase items obtained via a redemption code or as a result of an import.<br/>            <b><i>i_discount_count</i></b> - The percentage value of the discount given by a reward prize. This will be `0` if a discount wasn't applied.<br/>            <b><i>i_duration</i></b> - The duration of the promotion. The measurement unit is <var>id_duration</var>. This field is only added for promotions.<br/>            <b><i>i_left</i></b> - The number of bookings left with this promotion. This value is used only for non-sequential promotions.<br/>            <b><i>i_limit</i></b> - The number of visits that can be made with this promotion. This value is used only for promotions.<br/>            <b><i>i_payment_period</i></b> - The interval duration of the regular payments. This value is used only for membership-type promotions.<br/>            <b><i>i_remain</i></b> - The number of remaining bookings for the promotion. This is used only for promotions.<br/>            <b><i>i_remain_duration</i></b> - The number of minutes remaining for the promotion.
            This is used only for promotions that work with a limited number of minutes.<br/>            <b><i>i_renew</i></b> - Displays how many times promotion was updated. This isn't `0` only for promotions.<br/>            <b><i>i_use</i></b> - The number of visits that were attended for the promotion. This is used only for promotions.<br/>            <b><i>i_use_duration</i></b> - The number of minutes the user has already used with this purchase of this promotion. This isn't `0` only for promotions.<br/>            <b><i>id_activation</i></b> - The activation mode. One of the [RsActivationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsActivationSid.php) constants. This field is only added for promotions.<br/>            <b><i>id_discount_commission_type</i></b> - The type of discount given via a reward prize. One of the [WlCommissionTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlCommissionTypeSid.php) constants. This will be empty
            if this discount wasn't applied.<br/>            <b><i>id_duration</i></b> - The type of duration for the promotion. This is used only for membership-type promotions. This determines
            whether the promotion lasts indefinitely, has a fixed duration, or ends on a specific date. The measurement unit
            for key <var>i_payment_period</var>. One of the [WlDurationTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlDurationTypeSid.php) constants.<br/>            <b><i>id_program_type</i></b> - The ID of the promotion program. This is used only for promotions.
            The measurement unit for key <var>i_payment_period</var>. The ID of promotion program type.
            One of the [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php) constants.<br/>            <b><i>id_purchase_item</i></b> - The ID of the purchase item type. The measurement unit for key <var>i_payment_period</var>.
            The ID of purchase item type. One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.<br/>            <b><i>id_sale</i></b> - The ID of the sale category. One of the constants [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php).<br/>            <b><i>is_active</i></b> - If `true`, then the purchase item is active. If `false`, then the purchase item isn't active.<br/>            <b><i>is_component</i></b> - If `true`, then the purchased item is a component of another purchase item, as is the case of a package.
            If `false`, then the purchased item isn't a component of another purchase item.<br/>            <b><i>is_convert</i></b> - If `true`, then this promotion will be converted to a different promotion after it expires. If `false`, then the
            promotion won't be converted to a different promotion after it expires. This can only be true for certain
            promotions.<br/>            <b><i>is_expire</i></b> - This is `true` only if the purchased item is a promotion that has expired. Otherwise, this will be `false`
            in all other cases.<br/>            <b><i>is_hold</i></b> - This is `true` only if the purchased item is a promotion and has been placed on hold.
            Otherwise, this is `false` in all other cases.<br/>            <b><i>is_limit</i></b> - If `true`, then the usage of this purchased item is disabled.
            If `false`, then the usage of this purchased item is enabled.<br/>            <b><i>is_login_type_member</i></b> - If `true`, then the discount was applied for the member type.
            If `false`, then the discount was applied for the pass holder type.
            If `null`, then the discount was applied for the prospect type. This won't be `null` only if a discount based
            on a client type was applied.<br/>            <b><i>is_mail</i></b> - If `true`, then the gift card email notification will be sent to the receiver. This is `true` only if the
            purchased item is a gift card. Otherwise, this will be `false` in all other cases.<br/>            <b><i>is_past</i></b> - If `true`, then the gift card email notification has been sent. This can only be `true` if the purchased item
            is a gift card. Otherwise, this will be `false` in all other cases.<br/>            <b><i>is_promotion</i></b> - Not `false` only for promotions.<br/>            <b><i>is_redeem</i></b> - This is `true` if the gift card has been redeemed.
            This can only be `true` if the purchased item is a gift card. Otherwise, this will be `false` in all other cases.<br/>            <b><i>is_renew</i></b> - This is `true` if the promotion is auto-renewable. This can only be `true` if the purchased item is a promotion.
            Otherwise, this will be `false` in all other cases.<br/>            <b><i>is_transfer</i></b> - This is `true` if the promotion has been transferred. This can only be true if the purchased item is a promotion.
            This is `false` if the promotion hasn't been transferred or in all other cases.<br/>            <b><i>k_code_result</i></b> - The key of the redemption code. This value will not be `0` if the purchased item is obtained via a redemption
            code or if it's a component of a package obtained via a redemption code.<br/>            <b><i>k_currency</i></b> - The key of the currency used to make the purchase.<br/>            <b><i>k_id</i></b> - The key of the item. This can correspond to one of many values depending on [Wl\Profile\PurchaseList\PurchaseListElementModel::$id_sale](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/PurchaseList/PurchaseListElementModel.php).<br/>            <b><i>k_login_promotion_result</i></b> - The key of the purchased promotion. This won't be `0` only for promotions.<br/>            <b><i>k_purchase_result</i></b> - The key of the whole purchase, including the given purchased item.<br/>            <b><i>m_cost_item</i></b> - The cost of the purchased item.<br/>            <b><i>m_cost_total</i></b> - The total cost of the purchase, including taxes and fees.<br/>            <b><i>m_discount_amount</i></b> - The amount of the discount via prize. This will be empty if this discount wasn't applied.<br/>            <b><i>m_discount_login_type_amount</i></b> - The amount of the discount for the client type. This value will be empty if the discount wasn't applied.<br/>            <b><i>m_discount_manual</i></b> - The amount of the manual discount. This will be empty if this discount wasn't applied.<br/>            <b><i>m_period_price</i></b> - The amount to pay for each payment period. This is used only for promotions with the membership program type.<br/>            <b><i>m_price</i></b> - The source price of item.<br/>            <b><i>m_refund</i></b> - The amount refunded. This will be `0` if there are no refunds.<br/>            <b><i>s_code</i></b> - The redemption code. This value is used only if the purchase is bought via a redemption code.<br/>            <b><i>s_gift_code</i></b> - The code to redeem the gift card. This isn't empty only for gift cards.
            
            This can be auto-generated or custom (entered manually by the staff member during purchase).
            The max length is 20 characters, including numbers and letters.<br/>            <b><i>s_gift_recipient</i></b> - The name of gift recipient. This isn't empty only for gift cards.<br/>            <b><i>s_limit_actor</i></b> - The name of the staff member who disabled the usage of the purchased item.
            This will be empty if the purchased item is enabled.<br/>            <b><i>s_mail</i></b> - The email address to which the gift card was sent. This is used only for gift cards.<br/>            <b><i>s_message</i></b> - The test of the message sent to the gift card recipient. This is used only for gift cards.
            This will be empty if an email notification shouldn't be sent.<br/>            <b><i>s_payer</i></b> - The name of the user who paid for this purchase.<br/>            <b><i>s_promotion_convert</i></b> - The title of the converted promotion. This value is used only for promotions that must be converted to another
            promotion after expiration.<br/>            <b><i>s_purchase</i></b> - The purchase ID number as it appears on the receipt. This value will also include the leading 0s for the ID number.<br/>            <b><i>s_recipient</i></b> - The name of the user who paid for this purchase.<br/>            <b><i>s_sender</i></b> - The name of the sender. This value is used only for gift cards.<br/>            <b><i>s_title</i></b> - The name of the purchased item.<br/>            <b><i>sid_value</i></b> - The string ID of the purchased item. This ID may be used to change the view of the purchased item.<br/>            <b><i>uid_payer</i></b> - The key of the user who paid for this purchase.<br/>            <b><i>uid_recipient</i></b> - The key of the user who paid for this purchase.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_component:
                    type: object
                    example: []
                  a_logo:
                    type: object
                    example: []
                  a_restrict:
                    type: object
                    example: []
                  a_tax:
                    type: object
                    example: []
                  can_renew:
                    type: integer
                    example: 0
                  dl_end:
                    type: string
                    example: ""
                  dl_purchase:
                    type: string
                    example: ""
                  dl_send:
                    type: string
                    example: ""
                  dl_start:
                    type: string
                    example: ""
                  dt_hold_end:
                    type: string
                    example: ""
                  dt_hold_start:
                    type: string
                    example: ""
                  dt_purchase:
                    type: string
                    example: ""
                  dt_redeem:
                    type: string
                    example: ""
                  f_discount_login_type_percent:
                    type: string
                    example: ""
                  html_description:
                    type: string
                    example: ""
                  i_book:
                    type: integer
                    example: 0
                  i_book_duration:
                    type: integer
                    example: 0
                  i_buy:
                    type: integer
                    example: 0
                  i_discount_count:
                    type: integer
                    example: 0
                  i_duration:
                    type: integer
                    example: 0
                  i_left:
                    type: integer
                    example: 0
                  i_limit:
                    type: integer
                    example: 0
                  i_payment_period:
                    type: integer
                    example: 0
                  i_remain:
                    type: integer
                    example: 0
                  i_remain_duration:
                    type: integer
                    example: 0
                  i_renew:
                    type: integer
                    example: 0
                  i_use:
                    type: integer
                    example: 0
                  i_use_duration:
                    type: integer
                    example: 0
                  id_activation:
                    type: integer
                    example: 0
                  id_discount_commission_type:
                    type: integer
                    example: 0
                  id_duration:
                    type: integer
                    example: 0
                  id_program_type:
                    type: integer
                    example: 0
                  id_purchase_item:
                    type: integer
                    example: 0
                  id_sale:
                    type: integer
                    example: 0
                  is_active:
                    type: integer
                    example: 0
                  is_component:
                    type: integer
                    example: 0
                  is_convert:
                    type: integer
                    example: 0
                  is_expire:
                    type: integer
                    example: 0
                  is_hold:
                    type: integer
                    example: 0
                  is_limit:
                    type: integer
                    example: 0
                  is_login_type_member:
                    type: integer
                    example: 0
                  is_mail:
                    type: integer
                    example: 0
                  is_past:
                    type: integer
                    example: 0
                  is_promotion:
                    type: integer
                    example: 0
                  is_redeem:
                    type: integer
                    example: 0
                  is_renew:
                    type: integer
                    example: 0
                  is_transfer:
                    type: integer
                    example: 0
                  k_code_result:
                    type: string
                    example: ""
                  k_currency:
                    type: string
                    example: ""
                  k_id:
                    type: string
                    example: ""
                  k_login_promotion_result:
                    type: string
                    example: ""
                  k_purchase_result:
                    type: string
                    example: ""
                  m_cost_item:
                    type: string
                    example: ""
                  m_cost_total:
                    type: string
                    example: ""
                  m_discount_amount:
                    type: string
                    example: ""
                  m_discount_login_type_amount:
                    type: string
                    example: ""
                  m_discount_manual:
                    type: string
                    example: ""
                  m_period_price:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_refund:
                    type: string
                    example: ""
                  s_code:
                    type: string
                    example: ""
                  s_gift_code:
                    type: string
                    example: ""
                  s_gift_recipient:
                    type: string
                    example: ""
                  s_limit_actor:
                    type: string
                    example: ""
                  s_mail:
                    type: string
                    example: ""
                  s_message:
                    type: string
                    example: ""
                  s_payer:
                    type: string
                    example: ""
                  s_promotion_convert:
                    type: string
                    example: ""
                  s_purchase:
                    type: string
                    example: ""
                  s_recipient:
                    type: string
                    example: ""
                  s_sender:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  sid_value:
                    type: integer
                    example: 0
                  uid_payer:
                    type: string
                    example: ""
                  uid_recipient:
                    type: string
                    example: ""

  /Wl/Profile/PurchaseList/PurchaseListModel:
    get:
      tags:
      - Profile
      summary: Gets a list of purchases for a user.
      description: >-
        Gets a list of purchases for a user.
      parameters:
        - name: k_business
          description: >-
            The key of a business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of a user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_purchase</i></b> - A list of purchased items. Every element contains a sub-array with the following fields:
            <dl>
            <dt>
            bool[] <var>a_active</var>
            </dt>
            <dd>
            The value of <var>a_purchase['is_active']</var>. For packages, this also contains the values of <var>a_purchase['is_active']</var> of every component.
            </dd>
            <dt>
            int[] <var>a_sale</var>
            </dt>
            <dd>
            The value of <var>a_purchase['id_sale']</var>. For packages, this also contains the values of <var>a_purchase['id_sale']</var> of every component.
            </dd>
            <dt>
            string <var>dt_add</var>
            </dt>
            <dd>
            The date that the purchase was added.
            </dd>
            <dt>
            int <var>id_purchase_item</var>
            </dt>
            <dd>
            The ID of the purchase type. One of the constants [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).
            </dd>
            <dt>
            int <var>id_sale</var>
            </dt>
            <dd>
            The ID of the sale category in the store. One of the constants [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php).
            </dd>
            <dt>
            bool <var>is_active</var>
            </dt>
            <dd>
            If `true`, then the purchase item is active. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool [<var>is_component</var>]
            </dt>
            <dd>
            If `true`, then the purchase item is a package component. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_appointment</var>
            </dt>
            <dd>
            Appointment key.
            </dd>
            <dt>
            string <var>k_code</var>
            </dt>
            <dd>
            The redemption code key that was used to make a purchase.
            This is used only if <var>k_login_promotion</var> and <var>k_purchase</var> are empty.
            </dd>
            <dt>
            string [<var>k_enrollment_book</var>]
            </dt>
            <dd>
            The key of an event that requires clients to book every session at once.
            This is used only if the event is part of a package.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The key of the purchase type referring to different types of keys depending on the value of <var>id_sale</var>.
            </dd>
            <dt>
            string [<var>k_login_product</var>]
            </dt>
            <dd>
            The key of the purchased product.
            This is used only if the event is part of a package.
            </dd>
            <dt>
            string <var>k_login_promotion</var>
            </dt>
            <dd>
            The key of the user's existing purchase options.
            This is used only if `k_code` and `k_purchase` are empty.
            </dd>
            <dt>
            string <var>k_purchase</var>
            </dt>
            <dd>
            The key of a purchase where no special case rules are in effect.
            This is used only used if `k_code` is empty.
            </dd>
            <dt>
            string <var>k_purchase_item</var>
            </dt>
            <dd>
            The key of a purchase item where no special case rules are in effect.
            This is used only if <var>k_code</var> is empty.
            </dd>
            <dt>
            string [<var>k_session_pass</var>]
            </dt>
            <dd>
            In certain cases a session can be canceled and makeup sessions can be granted to a client in lieu of
            other compensation. This is the key of one of the makeup sessions used to attend an event. This is also
            present for a repeat purchase of an event.
            </dd>
            <dt>
            string <var>k_service</var>
            </dt>
            <dd>
            Service key.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The name of the purchase item.
            </dd>
            <dt>
            string <var>uid</var>
            </dt>
            <dd>
            The ID of the purchase owner.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_purchase:
                    type: object
                    example: []

  /Wl/Profile/Purchase/PurchaseElementModel:
    get:
      tags:
      - Profile
      summary: Gets details of a specified purchase.
      description: >-
        Gets details of a specified purchase.
        <br /><br />
        This endpoint may require different IDs to be specified for different types of purchases.
        The IDs required for a specific item will be the same IDs returned from the [Wl\Profile\PurchaseList\PurchaseListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/PurchaseList/PurchaseListModel.php)
        endpoint.
        <br /><br />
        @deprecated Use [Wl\Profile\PurchaseList\PurchaseListElementModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/PurchaseList/PurchaseListElementModel.php) instead. It provides the same functionality
        and more.
      parameters:
        - name: k_code
          description: >-
            The key of the redemption code used to obtain some goods.
            This should be specified only for items obtained via redemption code (not for ordinary purchases or for purchased
            promotions without purchases). This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: k_enrollment_book
          description: >-
            The key of an entirely booked event.
            This must be specified if the purchased item is a whole event and a component of a package.

          in: query
          schema:
            type: string
        - name: k_login_product
          description: >-
            The key of a purchased product.
            This must be specified if the purchased item is a product and a component of a package.

          in: query
          schema:
            type: string
        - name: k_login_promotion
          description: >-
            The key of the user's promotion.
            This should only be specified for promotions given without a purchase. This isn't for ordinary purchases or for
            promotions obtained via redemption codes. This will be `null` if not set yet.

          in: query
          schema:
            type: string
        - name: k_purchase_item
          description: >-
            The key of the purchased item. This should be specified only for ordinary purchases, not for those obtained via
            redemption codes or as a result of an old import.

          in: query
          schema:
            type: string
        - name: k_session_pass
          description: >-
            The key of the make-up session used to attend an event.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_component</i></b> - List of components (not empty if this purchase element is a package). Every element has keys:
            <dl>
            <dt>
            string [<var>k_enrollment_book</var>]
            </dt>
            <dd>
            </dd>
            <dt>
            string [<var>k_login_product</var>]
            </dt>
            <dd>
            </dd>
            <dt>
            string [<var>k_login_promotion</var>]
            </dt>
            <dd>
            </dd>
            <dt>
            string [<var>k_session_pass</var>]
            </dt>
            <dd>
            </dd>
            </dl><br/>            <b><i>a_logo</i></b> - An array containing information about the image of the purchased item. Every element has the following keys:
            <dl>
            <dt>int <var>i_height</var></dt>
            <dd>The height of the image.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The width of the image.</dd>
            <dt>bool <var>is_empty</var></dt>
            <dd>If `true`, then the purchased item doesn't have image. If `false`, then the item has an image.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL for the image.</dd>
            </dl><br/>            <b><i>a_restrict</i></b> - This field is used only for promotions. It contains restrictions that will
            apply to bookings made with this promotion. Every element has the following keys:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The number of sessions that may be booked during this period.</dd>
            <dt>int <var>i_remain</var></dt>
            <dd>The number of sessions that remain available.</dd>
            <dt>string <var>s_date</var></dt>
            <dd>The name of the period type.</dd>
            </dl><br/>            <b><i>a_tax</i></b> - The list of taxes paid for the purchased item. Every element has the following fields:
            <dl>
            <dt>string <var>f_tax_discount</var></dt>
            <dd>The amount of tax.</dd>
            <dt>string <var>s_tax</var></dt>
            <dd>The name of the tax.</dd>
            </dl><br/>            <b><i>can_renew</i></b> - This is `true` only if the purchased item is a promotion and the user can control the renewal of the promotion.
            Otherwise, this will be `false`.<br/>            <b><i>dl_purchase</i></b> - Local date of purchase in MySQL format.<br/>            <b><i>dl_start</i></b> - The start date of the promotion. This is used only if the purchased item is a promotion.<br/>            <b><i>dt_end</i></b> - The expiration date of the promotion. This is used only if the purchased item is a promotion.<br/>            <b><i>dt_hold_end</i></b> - The end date of the promotion hold. This is used only for promotions on hold.
            This may be empty if the hold is internal.<br/>            <b><i>dt_hold_start</i></b> - The start date of the promotion hold. This is used only for promotions on hold.<br/>            <b><i>dt_purchase</i></b> - The purchase date of the purchased item. This is given in GMT in MySQL format.<br/>            <b><i>dt_send</i></b> - The date for when the email regarding the gift card should be sent (or was sent) to the receiver.
            This is only used for gift cards.<br/>            <b><i>f_discount_login_type_percent</i></b> - The percentage value of the discount for the client type. This is empty if this discount wasn't applied.<br/>            <b><i>html_description</i></b> - The description of the purchased item.<br/>            <b><i>i_book</i></b> - The number of sessions remaining for a promotion. This is used only for promotions.
            This will be `0` if the purchased item isn't a promotion or if there are no remaining sessions.<br/>            <b><i>i_buy</i></b> - The number of purchased items bought at the time of purchase.
            This field will be `0` for purchase items obtained via a redemption code or as a result of an old import.<br/>            <b><i>i_discount_count</i></b> - The percentage value of the discount given by a reward prize. This field will be `0` if a discount wasn't applied.<br/>            <b><i>i_duration</i></b> - This field is only added for promotions. Duration of promotion. Measurement unit is <var>id_duration</var>.<br/>            <b><i>i_left</i></b> - The number of bookings remaining in this promotion. This value is used only for non-sequential promotions.<br/>            <b><i>i_limit</i></b> - The number of visits which can be made with this promotion. This is used only for promotions.<br/>            <b><i>i_payment_period</i></b> - The duration of the regular payments interval. This is used only for “membership” type promotions.<br/>            <b><i>i_remain</i></b> - The number of remaining bookings for the promotion. This is used only for promotions.<br/>            <b><i>i_remain_duration</i></b> - The number of minutes remaining for the promotion.
            This is used only for promotions that work with a limited number of minutes.<br/>            <b><i>i_renew</i></b> - Not <tt>0</tt> only for promotions. How many times promotion was updated.<br/>            <b><i>i_use</i></b> - This is used only for promotions. This is the number of visits that were attended for the promotion.<br/>            <b><i>id_activation</i></b> - Activation mode. One on [WlActivationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlActivationSid.php) constants. This field is only added for promotions.<br/>            <b><i>id_discount_commission_type</i></b> - The type of discount given via a reward prize.
            One on the [WlCommissionTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlCommissionTypeSid.php) constants.
            This will be empty if this discount wasn't applied.<br/>            <b><i>id_duration</i></b> - The type of duration for the promotion. This is used only for “membership” type promotions.
            This determines whether the promotion lasts indefinitely, has a fixed duration, or ends on a specific date.
            One of the [WlDurationTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlDurationTypeSid.php) constants.<br/>            <b><i>id_program_type</i></b> - The ID of the promotion program.
            One of the [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php) constants.
            This is used only for promotions.<br/>            <b><i>id_purchase_item</i></b> - The ID of the purchase item type.
            One of the [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) constants.<br/>            <b><i>id_sale</i></b> - The ID of the sale category.
            One of the [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php) constants.<br/>            <b><i>is_active</i></b> - If `true`, then the purchase item is active. If `false`, then the purchase item isn't active.<br/>            <b><i>is_component</i></b> - If `true`, then the purchased item is a component of another purchase item, as is the case of a package.
            If `false`, then the purchased item isn't a component of another purchase item.<br/>            <b><i>is_convert</i></b> - If `true`, then this promotion will be converted to a different promotion after it expires. It `false`, then the
            promotion won't be converted to a different promotion after it expires. This can only be true for certain
            promotions.<br/>            <b><i>is_expire</i></b> - This is `true` only if the purchased item is an expired promotion. Otherwise, this will be `false`.<br/>            <b><i>is_hold</i></b> - This is `true` only if the purchased item is a promotion placed on hold.
            Otherwise, this will be `false`.<br/>            <b><i>is_limit</i></b> - If `true`, then the usage of this purchased item is disabled. If `false`, then the usage of this purchased item
            is enabled.<br/>            <b><i>is_login_type_member</i></b> - If `true`, then the discount was applied for the member type. If `false`, then the discount was applied for the
            pass holder type. If `null`, then the discount was applied for the prospect type (this won't be `null` only
            if a discount based on a client type was applied).<br/>            <b><i>is_mail</i></b> - If `true`, then the gift card email notification will be sent to the receiver. This is `true` only if the
            purchased item is a gift card. Otherwise, this will be `false`.<br/>            <b><i>is_past</i></b> - If `true`, then the gift card email notification has been sent. This can only be `true` if the purchased item is a
            gift card. Otherwise, this will be `false`.<br/>            <b><i>is_redeem</i></b> - This is `true` if the gift card has been redeemed. This can only be true if the purchased item is a gift card.
            Otherwise, this will be `false`.<br/>            <b><i>is_renew</i></b> - This is `true` if the promotion is auto-renewable. This can only be true if the purchased item is a promotion.
            Otherwise, this will be `false`.<br/>            <b><i>is_transfer</i></b> - This is `true` if the promotion has been transferred. This can only be `true` if the purchased item is a promotion.
            This is `false` if the promotion hasn't been transferred or in all other cases.<br/>            <b><i>k_code_result</i></b> - The key of the redemption code. This won't be `0` if the purchased item is obtained via a redemption code
            or if it's a component of a package which is obtained via a redemption code.<br/>            <b><i>k_currency</i></b> - The key of the currency used to make the purchase.<br/>            <b><i>k_login_promotion_result</i></b> - The key of the purchased promotion. This won't be `0` only for promotions.<br/>            <b><i>k_purchase_result</i></b> - The key of the whole purchase which includes the given purchased item.<br/>            <b><i>m_cost_item</i></b> - The cost of the purchased item.<br/>            <b><i>m_cost_total</i></b> - The total cost of the purchase, including taxes and fees.<br/>            <b><i>m_discount_amount</i></b> - The amount of the discount given via a reward prize. This will be empty if the discount wasn't applied.<br/>            <b><i>m_discount_login_type_amount</i></b> - The amount of the discount for the client type. This will be empty if the discount wasn't applied.<br/>            <b><i>m_discount_manual</i></b> - Amount of manual discount. Empty if this discount was not applied.<br/>            <b><i>m_period_price</i></b> - The amount to pay for each payment period. This is used only for promotions with the "membership" program type.<br/>            <b><i>m_price</i></b> - Source price of item.<br/>            <b><i>m_refund</i></b> - The amount refunded. This will be `0` if there are no refunds.<br/>            <b><i>s_code</i></b> - The redemption code. This is used only if the purchase is bought using a redemption code.<br/>            <b><i>s_gift_code</i></b> - The code to redeem gift card. This won't be empty only for gift cards.
            
            This can be auto-generated or custom (entered manually by the staff member during purchase).
            The max length is 20 characters, which can include both numbers and letters.<br/>            <b><i>s_gift_recipient</i></b> - Name of gift recipient. This won't be empty only for gift cards.<br/>            <b><i>s_limit_actor</i></b> - The name of the staff member who disabled the usage of the purchased item.
            This will be empty if the purchased item is enabled.<br/>            <b><i>s_mail</i></b> - The email address the gift card was sent to. This is used only for gift cards.<br/>            <b><i>s_message</i></b> - The text of the message sent to the gift card recipient. This is used only for gift cards.
            This will be empty if an email notification shouldn't be sent.<br/>            <b><i>s_payer</i></b> - The name of the user who paid for this purchase.<br/>            <b><i>s_promotion_convert</i></b> - The title of the converted promotion. This is used only for promotions which must be converted to
            another promotion after expiration.<br/>            <b><i>s_purchase</i></b> - The purchase ID number as it appears on the receipt.
            This value will also include the leading 0s for the ID number.<br/>            <b><i>s_recipient</i></b> - The name of the user who paid for this purchase.<br/>            <b><i>s_sender</i></b> - The name of the sender. This is used only for gift cards.<br/>            <b><i>s_title</i></b> - The name of the purchased item.<br/>            <b><i>sid_value</i></b> - The string ID of the purchased item. This ID may be used to change the view of the purchased item.<br/>            <b><i>uid_payer</i></b> - The key of the user who paid for this purchase.<br/>            <b><i>uid_recipient</i></b> - The key of the user who paid for this purchase.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_component:
                    type: object
                    example: []
                  a_logo:
                    type: object
                    example: []
                  a_restrict:
                    type: object
                    example: []
                  a_tax:
                    type: object
                    example: []
                  can_renew:
                    type: integer
                    example: 0
                  dl_purchase:
                    type: string
                    example: ""
                  dl_start:
                    type: string
                    example: ""
                  dt_end:
                    type: string
                    example: ""
                  dt_hold_end:
                    type: string
                    example: ""
                  dt_hold_start:
                    type: string
                    example: ""
                  dt_purchase:
                    type: string
                    example: ""
                  dt_send:
                    type: string
                    example: ""
                  f_discount_login_type_percent:
                    type: string
                    example: ""
                  html_description:
                    type: string
                    example: ""
                  i_book:
                    type: integer
                    example: 0
                  i_buy:
                    type: integer
                    example: 0
                  i_discount_count:
                    type: integer
                    example: 0
                  i_duration:
                    type: integer
                    example: 0
                  i_left:
                    type: integer
                    example: 0
                  i_limit:
                    type: integer
                    example: 0
                  i_payment_period:
                    type: integer
                    example: 0
                  i_remain:
                    type: integer
                    example: 0
                  i_remain_duration:
                    type: integer
                    example: 0
                  i_renew:
                    type: integer
                    example: 0
                  i_use:
                    type: integer
                    example: 0
                  id_activation:
                    type: integer
                    example: 0
                  id_discount_commission_type:
                    type: integer
                    example: 0
                  id_duration:
                    type: integer
                    example: 0
                  id_program_type:
                    type: integer
                    example: 0
                  id_purchase_item:
                    type: integer
                    example: 0
                  id_sale:
                    type: integer
                    example: 0
                  is_active:
                    type: integer
                    example: 0
                  is_component:
                    type: integer
                    example: 0
                  is_convert:
                    type: integer
                    example: 0
                  is_expire:
                    type: integer
                    example: 0
                  is_hold:
                    type: integer
                    example: 0
                  is_limit:
                    type: integer
                    example: 0
                  is_login_type_member:
                    type: integer
                    example: 0
                  is_mail:
                    type: integer
                    example: 0
                  is_past:
                    type: integer
                    example: 0
                  is_redeem:
                    type: integer
                    example: 0
                  is_renew:
                    type: integer
                    example: 0
                  is_transfer:
                    type: integer
                    example: 0
                  k_code_result:
                    type: string
                    example: ""
                  k_currency:
                    type: string
                    example: ""
                  k_login_promotion_result:
                    type: string
                    example: ""
                  k_purchase_result:
                    type: string
                    example: ""
                  m_cost_item:
                    type: string
                    example: ""
                  m_cost_total:
                    type: string
                    example: ""
                  m_discount_amount:
                    type: string
                    example: ""
                  m_discount_login_type_amount:
                    type: string
                    example: ""
                  m_discount_manual:
                    type: string
                    example: ""
                  m_period_price:
                    type: string
                    example: ""
                  m_price:
                    type: string
                    example: ""
                  m_refund:
                    type: string
                    example: ""
                  s_code:
                    type: string
                    example: ""
                  s_gift_code:
                    type: string
                    example: ""
                  s_gift_recipient:
                    type: string
                    example: ""
                  s_limit_actor:
                    type: string
                    example: ""
                  s_mail:
                    type: string
                    example: ""
                  s_message:
                    type: string
                    example: ""
                  s_payer:
                    type: string
                    example: ""
                  s_promotion_convert:
                    type: string
                    example: ""
                  s_purchase:
                    type: string
                    example: ""
                  s_recipient:
                    type: string
                    example: ""
                  s_sender:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  sid_value:
                    type: integer
                    example: 0
                  uid_payer:
                    type: string
                    example: ""
                  uid_recipient:
                    type: string
                    example: ""

  /Wl/Profile/Purchase/PurchaseListModel:
    get:
      tags:
      - Profile
      summary: Gets a list of purchases for a user.
      description: >-
        Gets a list of purchases for a user.
        <br /><br />
        @deprecated Use [Wl\Profile\PurchaseList\PurchaseListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Profile/PurchaseList/PurchaseListModel.php) instead.
      parameters:
        - name: k_business
          description: >-
            The key of a business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of a user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_purchase</i></b> - A list of purchased items. Every element contains a sub-array with the following fields:
            <dl>
            <dt>
            bool[] <var>a_active</var>
            </dt>
            <dd>
            The value of <var>a_purchase['is_active']</var>. For packages, this also contains the values of <var>a_purchase['is_active']</var> of every component.
            </dd>
            <dt>
            int[] <var>a_sale</var>
            </dt>
            <dd>
            The value of <var>a_purchase['id_sale']</var>. For packages, this also contains the values of <var>a_purchase['id_sale']</var> of every component.
            </dd>
            <dt>
            string <var>dt_add</var>
            </dt>
            <dd>
            The date that the purchase was added.
            </dd>
            <dt>
            int <var>id_purchase_item</var>
            </dt>
            <dd>
            The ID of the purchase type. One of the constants [Wl\Purchase\Item\WlPurchaseItemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php).
            </dd>
            <dt>
            int <var>id_sale</var>
            </dt>
            <dd>
            The ID of the sale category in the store. One of the constants [WlSaleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlSaleSid.php).
            </dd>
            <dt>
            bool <var>is_active</var>
            </dt>
            <dd>
            If `true`, then the purchase item is active. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool [<var>is_component</var>]
            </dt>
            <dd>
            If `true`, then the purchase item is a package component. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_code</var>
            </dt>
            <dd>
            The redemption code key that was used to make a purchase.
            This is used only if <var>k_login_promotion</var> and <var>k_purchase</var> are empty.
            </dd>
            <dt>
            string [<var>k_enrollment_book</var>]
            </dt>
            <dd>
            The key of an event that requires clients to book every session at once.
            This is used only if the event is part of a package.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            The key of the purchase type referring to different types of keys depending on the value of <var>id_sale</var>.
            </dd>
            <dt>
            string [<var>k_login_product</var>]
            </dt>
            <dd>
            The key of the purchased product.
            This is used only if the event is part of a package.
            </dd>
            <dt>
            string <var>k_login_promotion</var>
            </dt>
            <dd>
            The key of the user's existing purchase options.
            This is used only if `k_code` and `k_purchase` are empty.
            </dd>
            <dt>
            string <var>k_purchase</var>
            </dt>
            <dd>
            The key of a purchase where no special case rules are in effect.
            This is used only used if `k_code` is empty.
            </dd>
            <dt>
            string <var>k_purchase_item</var>
            </dt>
            <dd>
            The key of a purchase item where no special case rules are in effect.
            This is used only if <var>k_code</var> is empty.
            </dd>
            <dt>
            string [<var>k_session_pass</var>]
            </dt>
            <dd>
            In certain cases a session can be canceled and makeup sessions can be granted to a client in lieu of
            other compensation. This is the key of one of the makeup sessions used to attend an event. This is also
            present for a repeat purchase of an event.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The name of the purchase item.
            </dd>
            <dt>
            string <var>uid</var>
            </dt>
            <dd>
            The ID of the purchase owner.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_purchase:
                    type: object
                    example: []

  /Wl/Profile/Setting/SettingModel:
    get:
      tags:
      - Profile
      summary: Retrieves the user’s notification settings.
      description: >-
        Retrieves the user’s notification settings.
        <br /><br />
        Alternatively, this endpoint can be used to change a user’s notification settings.
      parameters:
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>is_account_management_email</i></b> - Determines whether email notifications related to purchases, contracts, and other activity in a client's account are enabled.<br/>            <b><i>is_account_management_sms</i></b> - Determines whether SMS notifications related to purchases, contracts, and other activity in a client's account are enabled.<br/>            <b><i>is_news_and_updates_email</i></b> - Determines whether email notifications related to news and updates from the business regarding their services, availability, and promotions are enabled.<br/>            <b><i>is_news_and_updates_sms</i></b> - Whether sms notifications related to news and updates from the business regarding their services, availability and promotions are enabled.<br/>            <b><i>is_schedule_and_reminders_email</i></b> - Determines whether email notifications related to the services a client has booked are enabled.<br/>            <b><i>is_schedule_and_reminders_sms</i></b> - Determines whether SMS notifications related to the services a client has booked are enabled.<br/>            <b><i>text_language</i></b> - SID of language code.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_account_management_email:
                    type: integer
                    example: 0
                  is_account_management_sms:
                    type: integer
                    example: 0
                  is_news_and_updates_email:
                    type: integer
                    example: 0
                  is_news_and_updates_sms:
                    type: integer
                    example: 0
                  is_schedule_and_reminders_email:
                    type: integer
                    example: 0
                  is_schedule_and_reminders_sms:
                    type: integer
                    example: 0
                  text_language:
                    type: string
                    example: ""
    post:
      tags:
      - Profile
      summary: Retrieves the user’s notification settings.
      description: >-
        Retrieves the user’s notification settings.
        <br /><br />
        Alternatively, this endpoint can be used to change a user’s notification settings.
      parameters:
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show information for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>is_account_management_email</i></b> -
          Determines whether email notifications related to purchases, contracts, and other activity in a client's account are enabled.
          <br/>
          <b><i>is_account_management_sms</i></b> -
          Determines whether SMS notifications related to purchases, contracts, and other activity in a client's account are enabled.
          <br/>
          <b><i>is_news_and_updates_email</i></b> -
          Determines whether email notifications related to news and updates from the business regarding their services, availability, and promotions are enabled.
          <br/>
          <b><i>is_news_and_updates_sms</i></b> -
          Whether sms notifications related to news and updates from the business regarding their services, availability and promotions are enabled.
          <br/>
          <b><i>is_schedule_and_reminders_email</i></b> -
          Determines whether email notifications related to the services a client has booked are enabled.
          <br/>
          <b><i>is_schedule_and_reminders_sms</i></b> -
          Determines whether SMS notifications related to the services a client has booked are enabled.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_account_management_email:
                  description: >- 
                    Determines whether email notifications related to purchases, contracts, and other activity in a client's account are enabled.

                  type: integer
                is_account_management_sms:
                  description: >- 
                    Determines whether SMS notifications related to purchases, contracts, and other activity in a client's account are enabled.

                  type: integer
                is_news_and_updates_email:
                  description: >- 
                    Determines whether email notifications related to news and updates from the business regarding their services, availability, and promotions are enabled.

                  type: integer
                is_news_and_updates_sms:
                  description: >- 
                    Whether sms notifications related to news and updates from the business regarding their services, availability and promotions are enabled.

                  type: integer
                is_schedule_and_reminders_email:
                  description: >- 
                    Determines whether email notifications related to the services a client has booked are enabled.

                  type: integer
                is_schedule_and_reminders_sms:
                  description: >- 
                    Determines whether SMS notifications related to the services a client has booked are enabled.

                  type: integer
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Profile/Term/TermModel:
    get:
      tags:
      - Profile
      summary: Displays information about online waiver.
      description: >-
        Displays information about online waiver.
      parameters:
        - name: k_business
          description: >-
            The key of the current business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>dt_agree</i></b> - The date/time of the waiver confirmation.
            <tt>null</tt> if waiver is not confirmed.<br/>            <b><i>html_contract</i></b> - The text of the online waiver.<br/>            <b><i>i_minor_age</i></b> - Age of minor which documents can be signed by parent or legal guardian.<br/>            <b><i>ip_agree</i></b> - The IP address from which the confirmation was carried out.
            <tt>null</tt> if waiver is not confirmed.<br/>            <b><i>is_agree</i></b> - Flag of successful saving agreement.
            <tt>true</tt> if agreement was sign up successful <tt>false</tt> - otherwise.<br/>            <b><i>s_name</i></b> - The user's name.<br/>            <b><i>url_signature</i></b> - The URL to the image with the client's signature.
            <tt>false</tt> if waiver is not confirmed.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  dt_agree:
                    type: string
                    example: ""
                  html_contract:
                    type: string
                    example: ""
                  i_minor_age:
                    type: integer
                    example: 0
                  ip_agree:
                    type: string
                    example: ""
                  is_agree:
                    type: integer
                    example: 0
                  s_name:
                    type: string
                    example: ""
                  url_signature:
                    type: string
                    example: ""

  /Wl/Promotion/Index/PromotionIndexModel:
    get:
      tags:
      - Promotion
      summary: Gets a list of introductory promotion offers of a specified type available at a given location.
      description: >-
        Gets a list of introductory promotion offers of a specified type available at a given location.
      parameters:
        - name: i_image_height
          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 image will have default size.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 will have default size.

          in: query
          schema:
            type: string
        - name: id_program_type
          description: >-
            The program type ID, which will be one of the [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php) constants.
            
            `0` to not filter Purchase Options with type of the Purchase Option.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion</i></b> - A list of introductory promotion offers available at the location.
            Every element is an array with the following keys:
            <dl>
            <dt>
            array <var>a_access</var>
            </dt>
            <dd>
            Information about services that can be attended with this pass or membership.
            <dl>
            <dt>array[] <var>a_class</var></dt>
            <dd>
            A list of available classes. Each element has the key `k_class`, where the primary key of the class can be found.
            </dd>
            <dt>array[] <var>a_event</var></dt>
            <dd>
            A list of available events. Each element has the key `k_class`, where the primary key of the event can be found.
            </dd>
            <dt>array[] <var>a_resource</var></dt>
            <dd>
            A list of available assets. Each element has the key `k_resource`, where the primary key of the asset can be found.
            </dd>
            <dt>array[] <var>a_service</var></dt>
            <dd>
            A list of available appointment types. Each element has the key `k_service`, where the primary key of the
            appointment type can be found.
            </dd>
            <dt>bool <var>is_class_all</var></dt>
            <dd>If `true`, any class in the business can be visited with this Purchase Option. If `false`, only selected classes can be visited.
            Selected classes can be found in the list of available classes and events.</dd>
            <dt>bool <var>is_event_all</var></dt>
            <dd>If `true`, if any event in the business can be visited with this Purchase Option. If `false`, if only selected events can be visited.
            Selected events can be found in the list of available classes and events.</dd>
            </dl>
            </dd>
            <dt>
            array[] <var>a_component</var>
            </dt>
            <dd>
            A list of components included in the Purchase Option if this Purchase Option is a package.
            If it's not a package, the list will be always empty.
            If it's a package, the list can still be empty if all its components were deactivated.
            This means that this array can't be used to determine whether this is a package or not (check `id_program` or `id_program_type`
            value instead).
            There can be three types of components: events, Purchase Options, and products.
            Some fields can be different depending on type of the component, but each element of the array includes:
            <dl>
            <dt>int <var>id_purchase_item</var></dt>
            <dd>The type of the component. This can only be [Wl\Purchase\Item\WlPurchaseItemSid::ENROLLMENT](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php),
            [Wl\Purchase\Item\WlPurchaseItemSid::PROMOTION or  Wl\Purchase\Item\WlPurchaseItemSid::PRODUCT](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php) or {@link \WellnessLiving\Wl\Purchase\Item\WlPurchaseItemSid::PRODUCT}.</dd>
            <dt>string <var>k_id</var></dt>
            <dd>
            The primary key of the component in the related table. This depends on the type of the component.
            The key of the event for [Wl\Purchase\Item\WlPurchaseItemSid::ENROLLMENT](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php), the key of the Purchase Option for the
            [Wl\Purchase\Item\WlPurchaseItemSid::PROMOTION, the key of the product option for the  Wl\Purchase\Item\WlPurchaseItemSid::PRODUCT](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Purchase/Item/WlPurchaseItemSid.php), the key of the product option for the {@link \WellnessLiving\Wl\Purchase\Item\WlPurchaseItemSid::PRODUCT}.
            Full information about events can be taken from the [Wl\Event\EventListModel. Purchase Options from the  Wl\Promotion\Index\PromotionIndexModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Event/EventListModel. Purchase Options from the  /WellnessLiving/Wl/Promotion/Index/PromotionIndexModel.php). Purchase Options from the {@link \WellnessLiving\Wl\Promotion\Index\PromotionIndexModel}.
            Full information about products are not available at this moment though API.
            </dd>
            <dt>int <var>i_quantity</var></dt>
            <dd>The quantity. If empty, it means the quantity is 1.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The name of the component.</dd>
            </dl>
            </dd>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            This will be an empty array if the Purchase Option doesn't have image.
            Otherwise, this will display the following information about the Purchase Option image:
            <dl>
            <dt>string <var>i_height</var></dt>
            <dd>The height of the image.</dd>
            <dt>string <var>i_width</var></dt>
            <dd>The width of the image.</dd>
            <dt>string <var>url-thumbnail</var></dt>
            <dd>The link to the image.</dd>
            </dl>
            </dd>
            <dt>
            array <var>a_visit_limit</var>
            </dt>
            <dd>
            Attendance restrictions, if available. If unavailable, this will be an empty array. Every element has a key, which is a type of
            the time period [Core\a\ADurationSid::DAY,  Core\a\ADurationSid::WEEK,  Core\a\ADurationSid::MONTH](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php), {@link \WellnessLiving\Core\a\ADurationSid::WEEK}, {@link \WellnessLiving\Core\a\ADurationSid::MONTH},
            [Core\a\ADurationSid::YEAR](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).
            The values are:
            <dl>
            <dt>int <var>i_limit</var></dt>
            <dd>The quantity of sessions every <var>i_period</var>.</dd>
            <dt>int <var>i_period</var></dt>
            <dd>The duration of the time period. This depends on a key of <var>a_visit_limit</var> array.</dd>
            <dt>int <var>i_roll_over_cap</var></dt>
            <dd>The limit number of rollover sessions.</dd>
            <dt>int <var>i_roll_over_expire</var></dt>
            <dd>The duration of the time period after which rolled over session will expire.</dd>
            <dt>int <var>id_roll_over_expire</var></dt>
            <dd>
            The type of <var>i_roll_over_expire</var> [Core\a\ADurationSid::DAY,  Core\a\ADurationSid::WEEK](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php), {@link \WellnessLiving\Core\a\ADurationSid::WEEK},
            [Core\a\ADurationSid::MONTH,  Core\a\ADurationSid::YEAR](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php), {@link \WellnessLiving\Core\a\ADurationSid::YEAR}.
            </dd>
            <dt>int <var>id_limit_cycle</var></dt>
            <dd>The type of the limit cycle {@link \WellnessLiving\Wl\Promotion\Edit\Limit\Cycle\Sid}.</dd>
            <dt>bool <var>is_reconcile_visit</var></dt>
            <dd>Determines whether to reconcile unpaid sessions on restrictions reset.</dd>
            <dt>bool <var>is_roll_over_expire</var></dt>
            <dd>Determines if the rolled over session is expired.</dd>
            <dt>bool <var>is_roll_over_renew</var></dt>
            <dd>Determines whether to rollover sessions upon auto-renew.</dd>
            <dt>bool <var>is_rollup</var></dt>
            <dd>Determines Whether to rollover sessions.</dd>
            <dt>bool <var>is_visit_conversion</var></dt>
            <dd>Determines whether to convert remaining visits.</dd>
            </dl>
            </dd>
            <dt>
            string <var>dl_expire</var>
            </dt>
            <dd>
            The local expiration date. This is the last day of the Purchase Option's active status.
            This is used only for the 'Expires on a certain date' duration type. Otherwise, this should be ignored.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The number of periods for the "Period" duration type.
            For example, if the duration of the Purchase Option is 12 months, this field will be 12.
            </dd>
            <dt>
            int <var>i_limit</var>
            </dt>
            <dd>
            The number of visits that the owner of the Purchase Option can use.
            This will be `0` if the Purchase Option has unlimited visits.
            </dd>
            <dt>
            int <var>i_limit_duration</var>
            </dt>
            <dd>
            The maximum number of minutes or hours depending on <var>id_limit_duration</var> that the current promotion can be used in.
            </dd>
            <dt>
            int <var>id_limit_duration</var>
            </dt>
            <dd>
            The type of <var>i_limit_duration</var> [Core\a\ADurationSid::MINUTE or  Core\a\ADurationSid::HOUR](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php) or {@link \WellnessLiving\Core\a\ADurationSid::HOUR}.
            </dd>
            <dt>
            int <var>id_duration</var>
            </dt>
            <dd>
            The type of periods for the duration type "Period".
            For example, if the duration of the Purchase Option is 12 months, this field will be the ID of the month.
            See all the possible options here: [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).
            </dd>
            <dt>
            int <var>id_duration_type</var>
            </dt>
            <dd>
            The type of the duration. Ths can be "Without End", "Expires on a certain date", "Period".
            See more information here: [WlDurationTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlDurationTypeSid.php).
            </dd>
            <dt>
            int <var>id_program</var>
            </dt>
            <dd>
            The type of the Purchase Option. The <var>id_program</var> relates to only one <var>id_program_type</var> and one
            <var>id_program_category</var>.
            See more information here: [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php).
            </dd>
            <dt>
            int <var>id_program_category</var>
            </dt>
            <dd>
            The category of the program for promotions. The <var>id_program_category</var> relates to more than one
            <var>id_program</var>.
            See more information here: [WlProgramCategorySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramCategorySid.php).
            </dd>
            <dt>
            int <var>id_program_type</var>
            </dt>
            <dd>
            The ID of the promotion program type. The <var>id_program_type</var> relates to more than one <var>id_program</var>.
            See more information here: [WlProgramTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramTypeSid.php).
            </dd>
            <dt>
            bool <var>is_direct_buy_only</var>
            </dt>
            <dd>
            If `true`, the pricing option can be sold only by direct link. This means it shouldn't be shown in the store or
            explorer. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_introductory</var>
            </dt>
            <dd>
            If `true`, this promotion is for introductory clients. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_online</var>
            </dt>
            <dd>
            If `true` this promotion is available for online purchase. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_promotion</var>
            </dt>
            <dd>
            The promotion key.
            </dd>
            <dt>
            string <var>m_price</var>
            </dt>
            <dd>
            The price.
            </dd>
            <dt>
            string <var>text_description</var>
            </dt>
            <dd>
            The description.
            </dd>
            <dt>
            int <var>text_program</var>
            </dt>
            <dd>
            The localized promotion program name corresponding to the value of <var>id_program</var>.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title.
            </dd>
            <dt>
            string <var>url_buy</var>
            </dt>
            <dd>
            The direct URL to the promotion purchase page.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion:
                    type: object
                    example: []

  /Wl/Promotion/PromotionListModel:
    get:
      tags:
      - Promotion
      summary: Gets a promotion list of the specified business.
      description: >-
        Gets a promotion list of the specified business.
      parameters:
        - name: is_franchise
          description: >-
            Determines whether to return promotions created by Enterprise Locations (for Enterprise Cloud businesses only).
            If `true`, promotions created by Enterprise Locations are included. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key used to get the promotions.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion</i></b> - A list of promotions.
            <dl>
            <dt>
            int <var>id_program</var>
            </dt>
            <dd>
            The promotion program. One of the [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php) constants.
            </dd>
            <dt>
            string <var>k_promotion</var>
            </dt>
            <dd>
            The key of the promotion.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title of the promotion.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion:
                    type: object
                    example: []

  /Wl/Promotion/PromotionModel:
    get:
      tags:
      - Promotion
      summary: Gets promotions for the specified business and promotion keys.
      description: >-
        Gets promotions for the specified business and promotion keys.
      parameters:
        - name: k_business
          description: >-
            The key of the business.

          in: query
          schema:
            type: string
        - name: k_promotion
          description: >-
            The key of the promotion.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_promotion</i></b> - Promotion information.
            <dl>
            <dt>
            array <var>a_access</var>
            </dt>
            <dd>
            Information about services that can be attended with this pass or membership.
            <dl>
            <dt>array[] <var>a_class</var></dt>
            <dd>A list of available classes.</dd>
            <dt>array[] <var>a_event</var></dt>
            <dd>A list of available events.</dd>
            <dt>array[] <var>a_resource</var></dt>
            <dd>A list of available assets.</dd>
            <dt>array[] <var>a_service</var></dt>
            <dd>A list of available appointment types.</dd>
            <dt>bool <var>is_class_all</var></dt>
            <dd>This will be `true` if any class in the business can be visited with this Purchase Option. Otherwise, this
            will be `false` if only selected classes can be visited with this Purchase Option. Selected classes can be found
            in the list of available classes and events.</dd>
            <dt>bool <var>is_event_all</var></dt>
            <dd>This will be `true` if any event in the business can be visited with this Purchase Option. Otherwise, this
            will be `false` if only selected events can be visited with this Purchase Option. Selected events can be found
            in the list of available classes and events.</dd>
            </dl>
            </dd>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            Information about Purchase Option image. This will be an empty array if the Purchase Option doesn't have an image.
            <dl>
            <dt>string <var>i_height</var></dt>
            <dd>The height of the image.</dd>
            <dt>string <var>i_width</var></dt>
            <dd>The width of the image.</dd>
            <dt>string <var>url-thumbnail</var></dt>
            <dd>The link to the image.</dd>
            </dl>
            </dd>
            <dt>
            string <var>dl_expire</var>
            </dt>
            <dd>
            The local expiration date. This is the last day when the Purchase Option is active.
            This is used only when the 'Expires on a certain date' duration type is set.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The number of periods for the 'Period' duration type.
            For example, if the duration of the Purchase Option is 12 months, this field will be 12.
            </dd>
            <dt>
            int <var>i_limit</var>
            </dt>
            <dd>
            The number of visits that the owner can use for the Purchase Option.
            This will be `0` if the Purchase Option allows for unlimited visits.
            </dd>
            <dt>
            int <var>id_duration</var>
            </dt>
            <dd>
            The type of period for the 'Period' duration type.
            For example, if the duration of the Purchase Option is 12 months, this field will display the ID of the month.
            For all possible options, see [Core\a\ADurationSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADurationSid.php).
            </dd>
            <dt>
            int <var>id_duration_type</var>
            </dt>
            <dd>
            The duration type. Possible duration types can be 'Without End', 'Expires on a certain date', 'Period'.
            For more information, see [WlDurationTypeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlDurationTypeSid.php).
            </dd>
            <dt>
            int <var>id_program</var>
            </dt>
            <dd>
            The Purchase Option type.
            For more information, see [WlProgramSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlProgramSid.php).
            </dd>
            <dt>
            bool <var>is_introductory</var>
            </dt>
            <dd>
            If `true`, this promotion is for introductory clients. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_online</var>
            </dt>
            <dd>
            If `true`, this promotion is available for online purchase. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_promotion</var>
            </dt>
            <dd>
            The key of the promotion.
            </dd>
            <dt>
            string <var>m_price</var>
            </dt>
            <dd>
            The price.
            </dd>
            <dt>
            string <var>text_description</var>
            </dt>
            <dd>
            The description of the Purchase Option.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The title of the Purchase Option.
            </dd>
            <dt>
            string <var>url_buy</var>
            </dt>
            <dd>
            The direct URL to the promotion purchase page.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_promotion:
                    type: object
                    example: []

  /Wl/Purchase/Mail/PurchaseMailModel:
    post:
      tags:
      - Purchase
      summary: Emails a receipt for a purchase.
      description: >-
        Emails a receipt for a purchase.

      requestBody:
        description: >-
              <b><i>is_send_force</i></b> -
              Determines whether mail sending should be forced.
              <br/>
              <b><i>k_purchase</i></b> -
              The key of the purchase.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    is_send_force:
                      description: >- 
                        Determines whether mail sending should be forced.

                      type: integer
                    k_purchase:
                      description: >- 
                        The key of the purchase.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Purchase/Receipt/PurchaseReceiptModel:
    get:
      tags:
      - Purchase
      summary: Returns receipt data of certain purchase.
      description: >-
        Returns receipt data of certain purchase.
      parameters:
        - name: is_url_public
          description: >-
            Whether the print receipt URL requires authentication. If `true`, the URL contains a token that temporarily
            allows access to the print receipt without a login. `false` otherwise.

          in: query
          schema:
            type: string
        - name: k_purchase
          description: >-
            The key of the purchase.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_account_rest</i></b> - Information about the account balance for a user's account after payment for the purchase. Every element has the following keys:
            <dl>
            <dt>
            string <var>m_amount</var>
            </dt>
            <dd>
            The account balance on the user's account.
            </dd>
            <dt>
            string <var>text_currency</var>
            </dt>
            <dd>
            The currency of the amount.
            </dd>
            <dt>
            string <var>text_method</var>
            </dt>
            <dd>
            The payment method title.
            </dd>
            </dl><br/>            <b><i>a_business</i></b> - Information about the business.
            <dl>
            <dt>
            array <var>a_logo</var>
            </dt>
            <dd>
            The business logo.
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            The image height.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            The image width.
            </dd>
            <dt>
            bool <var>is_empty</var>
            </dt>
            <dd>
            This will be `true` if the image is empty. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>text_url</var>
            </dt>
            <dd>
            The URL of the image.
            </dd>
            </dl>
            </dd>
            <dt>
            string <var>text_address</var>
            </dt>
            <dd>
            The business's address.
            </dd>
            <dt>
            string <var>text_mail</var>
            </dt>
            <dd>
            The business's email address.
            </dd>
            <dt>
            string <var>text_phone</var>
            </dt>
            <dd>
            The business's phone number.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The business name.
            </dd>
            </dl><br/>            <b><i>a_card</i></b> - Payment transaction information. Every element has the following keys:
            <dl>
            <dt>
            string <var>text_card_number</var>
            </dt>
            <dd>
            The card or account number.
            </dd>
            <dt>
            string <var>text_card_system</var>
            </dt>
            <dd>
            The card system name from [Core\a\ACardSystemSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ACardSystemSid.php).
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The payment account title. This will be 'Account number' for ACH, 'Card' for all other cases.
            </dd>
            </dl><br/>            <b><i>a_customer</i></b> - Information about the customer.
            <dl>
            <dt>
            string <var>text_address</var>
            </dt>
            <dd>
            The customer's address.
            </dd>
            <dt>
            string <var>text_mail</var>
            </dt>
            <dd>
            The customer's email address.
            </dd>
            <dt>
            string <var>text_name</var>
            </dt>
            <dd>
            The customer's name.
            </dd>
            <dt>
            string <var>text_phone</var>
            </dt>
            <dd>
            The customer's phone number.
            </dd>
            </dl><br/>            <b><i>a_pay_method</i></b> - A list of payment methods for the current purchase. Every element has the following keys:
            <dl>
            <dt>
            string <var>m_amount</var>
            </dt>
            <dd>
            The amount of the payment.
            </dd>
            <dt>
            string <var>text_currency</var>
            </dt>
            <dd>
            The currency of the amount.
            </dd>
            <dt>
            string <var>text_pay_method</var>
            </dt>
            <dd>
            The payment method title.
            </dd>
            </dl><br/>            <b><i>a_price</i></b> - Complete information about price information for the purchase.
            <dl>
            <dt>
            string <var>m_discount</var>
            </dt>
            <dd>
            The discount amount.
            </dd>
            <dt>
            string <var>m_discount_code</var>
            </dt>
            <dd>
            The discount amount for a discount code.
            </dd>
            <dt>
            string <var>m_sum</var>
            </dt>
            <dd>
            The subtotal amount (the sum of the prices).
            </dd>
            <dt>
            string <var>m_tax</var>
            </dt>
            <dd>
            The amount of taxes.
            </dd>
            <dt>
            string <var>m_tip</var>
            </dt>
            <dd>
            The amount of tips.
            </dd>
            <dt>
            string <var>m_total</var>
            </dt>
            <dd>
            The total amount.
            </dd>
            <dt>
            string <var>text_currency</var>
            </dt>
            <dd>
            The currency of the purchase.
            </dd>
            <dt>
            string <var>text_discount_code</var>
            </dt>
            <dd>
            The discount code applied to the purchase.
            </dd>
            </dl><br/>            <b><i>a_purchase_item</i></b> - A list of purchase items. Every element has the following keys:
            <dl>
            <dt>
            array <var>a_logo</var>
            </dt>
            <dd>
            The purchase item logo.
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            The image height.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            The image width.
            </dd>
            <dt>
            bool <var>is_empty</var>
            </dt>
            <dd>
            Determines whether the image is empty.
            </dd>
            <dt>
            string <var>text_url</var>
            </dt>
            <dd>
            The URL of the image.
            </dd>
            </dl>
            </dd>
            <dt>
            int <var>i_count</var>
            </dt>
            <dd>
            The number of items in the purchase.
            </dd>
            <dt>
            string <var>k_purchase_item</var>
            </dt>
            <dd>
            The key of the purchase item.
            </dd>
            <dt>
            string <var>m_price</var>
            </dt>
            <dd>
            The price of the single item.
            </dd>
            <dt>
            string <var>m_price_total</var>
            </dt>
            <dd>
            The price of all items.
            </dd>
            <dt>
            string <var>text_category</var>
            </dt>
            <dd>
            The type of the item (for example, a pass or membership).
            </dd>
            <dt>
            string <var>text_currency</var>
            </dt>
            <dd>
            The currency of the price.
            </dd>
            <dt>
            string <var>text_info</var>
            </dt>
            <dd>
            Additional information about the purchase item.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The name of the purchase item.
            </dd>
            <dt>
            string <var>text_description</var>
            </dt>
            <dd>
            The description of the purchase item.
            </dd>
            </dl><br/>            <b><i>dtl_purchase</i></b> - The local date of the purchase in MySQL format.<br/>            <b><i>has_signature</i></b> - Determines whether the payment contained a signature.<br/>            <b><i>html_receipt</i></b> - HTML representation of the purchase receipt.<br/>            <b><i>text_purchase_id</i></b> - The normalized purchase ID.<br/>            <b><i>text_receipt</i></b> - The receipt text set in the store settings.<br/>            <b><i>url_print</i></b> - The URL for printing on a normal printer.<br/>            <b><i>url_print_receipt</i></b> - The URL for printing on a receipt printer.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_account_rest:
                    type: object
                    example: []
                  a_business:
                    type: object
                    example: []
                  a_card:
                    type: object
                    example: []
                  a_customer:
                    type: object
                    example: []
                  a_pay_method:
                    type: object
                    example: []
                  a_price:
                    type: object
                    example: []
                  a_purchase_item:
                    type: object
                    example: []
                  dtl_purchase:
                    type: string
                    example: ""
                  has_signature:
                    type: integer
                    example: 0
                  html_receipt:
                    type: string
                    example: ""
                  text_purchase_id:
                    type: string
                    example: ""
                  text_receipt:
                    type: string
                    example: ""
                  url_print:
                    type: string
                    example: ""
                  url_print_receipt:
                    type: string
                    example: ""

  /Wl/Purchase/Share/PurchaseShareModel:
    post:
      tags:
      - Purchase
      summary: Shares a purchase to a specified social network.
      description: >-
        Shares a purchase to a specified social network.

      requestBody:
        description: >-
              <b><i>id_social</i></b> -
              The social network. One of the [Core\a\ASocialSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ASocialSid.php) constants.
              <br/>
              <b><i>k_purchase</i></b> -
              The key of the purchase.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    id_social:
                      description: >- 
                        The social network. One of the [Core\a\ASocialSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ASocialSid.php) constants.

                      type: integer
                    k_purchase:
                      description: >- 
                        The key of the purchase.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>url_share</i></b> - The URL to the sharing page.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  url_share:
                    type: string
                    example: ""

  /Wl/Quiz/QuizElementModel:
    get:
      tags:
      - Quiz
      summary: Manages a single quiz.
      description: >-
        Manages a single quiz.
      parameters:
        - name: can_anonymous
          description: >-
            `true` if don't check user authorization, `false` otherwise.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key within which quiz is managed.

          in: query
          schema:
            type: string
        - name: k_quiz
          description: >-
            Quiz key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_element</i></b> - List of quiz elements.
            
            Order of the element in array corresponds to order of elements on the form.<br/>            <b><i>a_setting</i></b> - Quiz settings. Array representation of [Wl\Quiz\QuizElementModel::$o_setting](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Quiz/QuizElementModel.php).<br/>            <b><i>i_responses</i></b> - Number of responses for specific quiz.<br/>            <b><i>is_active</i></b> - Quiz active status.
            
            `true` if quiz is active.
            `false` if quiz is not active.<br/>            <b><i>show_numbering</i></b> - Whether to show numbering of the form elements that supports numbering.
            
            `true` to show numbering on the form for elements that supports numbering.
            `false` to not show numbering.<br/>            <b><i>text_title</i></b> - Quiz form title.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_element:
                    type: object
                    example: []
                  a_setting:
                    type: object
                    example: []
                  i_responses:
                    type: integer
                    example: 0
                  is_active:
                    type: integer
                    example: 0
                  show_numbering:
                    type: integer
                    example: 0
                  text_title:
                    type: string
                    example: ""
    post:
      tags:
      - Quiz
      summary: Manages a single quiz.
      description: >-
        Manages a single quiz.
      parameters:
        - name: can_anonymous
          description: >-
            `true` if don't check user authorization, `false` otherwise.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key within which quiz is managed.

          in: query
          schema:
            type: string
        - name: k_quiz
          description: >-
            Quiz key.

          in: query
          schema:
            type: string
        - name: k_quiz_login
          description: >-
            Quiz login key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_element</i></b> -
          List of quiz elements.
          
          Order of the element in array corresponds to order of elements on the form.
          <br/>
          <b><i>a_setting</i></b> -
          Quiz settings. Array representation of [Wl\Quiz\QuizElementModel::$o_setting](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Quiz/QuizElementModel.php).
          <br/>
          <b><i>is_active</i></b> -
          Quiz active status.
          
          `true` if quiz is active.
          `false` if quiz is not active.
          <br/>
          <b><i>show_numbering</i></b> -
          Whether to show numbering of the form elements that supports numbering.
          
          `true` to show numbering on the form for elements that supports numbering.
          `false` to not show numbering.
          <br/>
          <b><i>text_title</i></b> -
          Quiz form title.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_element:
                  description: >- 
                    List of quiz elements.
                    
                    Order of the element in array corresponds to order of elements on the form.

                  type: object
                a_setting:
                  description: >- 
                    Quiz settings. Array representation of [Wl\Quiz\QuizElementModel::$o_setting](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Quiz/QuizElementModel.php).

                  type: object
                is_active:
                  description: >- 
                    Quiz active status.
                    
                    `true` if quiz is active.
                    `false` if quiz is not active.

                  type: integer
                show_numbering:
                  description: >- 
                    Whether to show numbering of the form elements that supports numbering.
                    
                    `true` to show numbering on the form for elements that supports numbering.
                    `false` to not show numbering.

                  type: integer
                text_title:
                  description: >- 
                    Quiz form title.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_quiz</i></b> - Quiz key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_quiz:
                    type: string
                    example: ""
    put:
      tags:
      - Quiz
      summary: Manages a single quiz.
      description: >-
        Manages a single quiz.
      parameters:
        - name: k_business
          description: >-
            Business key within which quiz is managed.

          in: query
          schema:
            type: string
        - name: k_quiz
          description: >-
            Quiz key.

          in: query
          schema:
            type: string
        - name: k_quiz_login
          description: >-
            Quiz login key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>is_active</i></b> -
          Quiz active status.
          
          `true` if quiz is active.
          `false` if quiz is not active.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_active:
                  description: >- 
                    Quiz active status.
                    
                    `true` if quiz is active.
                    `false` if quiz is not active.

                  type: integer
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    delete:
      tags:
      - Quiz
      summary: Manages a single quiz.
      description: >-
        Manages a single quiz.
      parameters:
        - name: k_business
          description: >-
            Business key within which quiz is managed.

          in: query
          schema:
            type: string
        - name: k_quiz
          description: >-
            Quiz key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Reception/Application/MemberInfoModel:
    get:
      tags:
      - Reception
      summary: Returns client information for the Self Check-In Web App.
      description: >-
        Returns client information for the Self Check-In Web App.
      parameters:
        - name: a_uid
          description: >-
            The primary keys of clients whose information must be returned.
            
            If `null`, data for a single client is being requested.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The session date, if it's shown on the appointment info window or the attendance list.

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            If `true`, the API is being used from the backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: is_full
          description: >-
            If `true`, additional information will be returned. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business ID required to access client information.
            
            Specify this as `0` to retrieve the system-wide version of the information.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location where the Self Check-In Web App is running.

          in: query
          schema:
            type: string
        - name: k_visit
          description: >-
            The visit ID used to show icons on the attendance list and visit information.

          in: query
          schema:
            type: string
        - name: s_secret
          description: >-
            The application key of the Self Check-In Web App.

          in: query
          schema:
            type: string
        - name: s_show
          description: >-
            A list of icons with additional information about the business member.
            
            If empty, all available icons will be displayed.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The client ID required to access member information.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_info</i></b> - Additional member data. This will be filled if the flag from {@link InfoApi::$is_full} is set.
            
            This will be `null` if there isn't any data to show.<br/>            <b><i>a_items</i></b> - The options presented in the web app.
            
            The items are generated this way due to JavaScript limitations around translated messages.
            
            <dl>
            <dt>string <var>id_color</var></dt>
            <dd>
            The ID of the color the notice is displayed in.
            One of the [Wl\Reception\Application\MemberInfoColorSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Reception/Application/MemberInfoColorSid.php) constants.
            </dd>
            <dt>string <var>id_icon</var></dt>
            <dd>
            The ID of the icon that accompanies the message.
            One of the [Wl\Reception\Application\MemberInfoIconSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Reception/Application/MemberInfoIconSid.php) constants
            </dd>
            <dt>string <var>text_class</var></dt>
            <dd>The name of the class for styles.</dd>
            <dt>string <var>text_message</var></dt>
            <dd>The plain message for info box.</dd>
            <dt>string <var>html_message</var></dt>
            <dd>The message for info box.</dd>
            </dl><br/>            <b><i>a_result_list</i></b> - A list containing client data.
            
            Keys refer to clients' primary keys, and values refer to clients' data.
            
            If `null`, data for a single client is being requested.<br/>            <b><i>is_traveller</i></b> - If `true`, the client is a traveler. Otherwise, this will be `false`.
            This will be `null` in cases when the client is a walk-in or when {@link MemberInfoApi::$is_full} is `false`.<br/>            <b><i>s_member</i></b> - The member ID.
            
            If `null`, the specified client isn't a member of the specified business.<br/>            <b><i>text_first_name</i></b> - The client's first name.<br/>            <b><i>text_fullname</i></b> - The client's full name.<br/>            <b><i>url_barcode</i></b> - The barcode image URL.<br/>            <b><i>url_email</i></b> - The email URL.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_info:
                    type: object
                    example: []
                  a_items:
                    type: object
                    example: []
                  a_result_list:
                    type: object
                    example: []
                  is_traveller:
                    type: integer
                    example: 0
                  s_member:
                    type: string
                    example: ""
                  text_first_name:
                    type: string
                    example: ""
                  text_fullname:
                    type: string
                    example: ""
                  url_barcode:
                    type: string
                    example: ""
                  url_email:
                    type: string
                    example: ""

  /Wl/Reception/Application/ReceptionScheduleModel:
    get:
      tags:
      - Reception
      summary: Shows the schedule for the check-in process.
      description: >-
        Shows the schedule for the check-in process.
        <br /><br />
        Returns the HTML code that is normally presented for the check-in process.
      parameters:
        - name: k_business
          description: >-
            The business key, where the Self Check-In Web App is started.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key, where the Self Check-In Web App is started.

          in: query
          schema:
            type: string
        - name: s_secret
          description: >-
            The key of the Self Check-In Web App.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show the schedule for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_class</i></b> - A list of sessions to display with the following fields:
            <dl>
            <dt>array <var>a_resources_shared</var></dt>
            <dd>A list of shared resources containing:<dl>
            <dt>string <var>k_resource</var></dt><dd>The resource key.</dd>
            <dt>string <var>s_title</var></dt><dd>The resource title.</dd>
            </dl></dd>
            <dt>array <var>a_staff_all</var></dt>
            <dd>A list of staff members instructing the service, containing:<dl>
            <dt>string <var>s_name_full</var></dt><dd>The staff member's full name.</dd>
            </dl></dd>
            <dt>string <var>dtu_date</var></dt>
            <dd>The session date.</dd>
            <dt>string <var>html_class_js</var></dt>
            <dd>The name of the HTML class that JavaScript uses to display the icon, depending on the service type.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The session duration in minutes.</dd>
            <dt>int <var>id_service</var></dt>
            <dd>The service ID. One of the [Wl\Service\ServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Service/ServiceSid.php) constants.</dd>
            <dt>bool <var>is_auto</var></dt>
            <dd>If `true`, the session can be checked in automatically. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_book</var></dt>
            <dd>If `true`, the client should be notified that the visit is booked. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_wait</var></dt>
            <dd>If `true`, the client should be notified that they're on the wait list. Otherwise, this will be `false`.</dd>
            <dt>string|null <var>k_appointment</var></dt>
            <dd>The appointment key. If `null`, this isn't an appointment.</dd>
            <dt>string|null <var>k_class_period</var></dt>
            <dd>The class period key. If `null`, this isn't a class or event.</dd>
            <dt>string|null <var>k_visit</var></dt>
            <dd>The visit key if the session has been checked in. Otherwise, this will be `null`.</dd>
            <dt>string <var>s_class</var></dt>
            <dd>The service name.</dd>
            <dt>string <var>s_duration</var></dt>
            <dd>The session duration, formatted by the business configuration.</dd>
            <dt>string <var>s_time</var></dt>
            <dd>The time the session takes place.</dd>
            </dl><br/>            <b><i>a_schedule_class_all</i></b> - All types of services that appear in the schedule.
            Keys are constants from [Wl\Service\ServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Service/ServiceSid.php). Values are the HTML classes associated with that service.<br/>            <b><i>html_schedule</i></b> - The schedule to be shown in the Self Check-In Web App for the selected user.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_class:
                    type: object
                    example: []
                  a_schedule_class_all:
                    type: object
                    example: []
                  html_schedule:
                    type: string
                    example: ""
    post:
      tags:
      - Reception
      summary: Shows the schedule for the check-in process.
      description: >-
        Shows the schedule for the check-in process.
        <br /><br />
        Returns the HTML code that is normally presented for the check-in process.
      parameters:
        - name: k_business
          description: >-
            The business key, where the Self Check-In Web App is started.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The location key, where the Self Check-In Web App is started.

          in: query
          schema:
            type: string
        - name: s_secret
          description: >-
            The key of the Self Check-In Web App.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user to show the schedule for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>dtu_date</i></b> -
          The date and time of the visit in UTC and MySQL format.
          <br/>
          <b><i>k_appointment</i></b> -
          The key of the appointment to check in.
          
          If `null`, this is class visit or gym visit.
          <br/>
          <b><i>k_class_period</i></b> -
          The key of the class schedule to check in.
          
          If `null`, this is an appointment visit or gym visit.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dtu_date:
                  description: >- 
                    The date and time of the visit in UTC and MySQL format.

                  type: string
                k_appointment:
                  description: >- 
                    The key of the appointment to check in.
                    
                    If `null`, this is class visit or gym visit.

                  type: string
                k_class_period:
                  description: >- 
                    The key of the class schedule to check in.
                    
                    If `null`, this is an appointment visit or gym visit.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_confirmation_data</i></b> - Data for the confirmation screen with the following fields:
            <dl>
            <dt>array <var>a_payment</var></dt>
            <dd>Data for the promotion payment informational card. Each element contains:<dl>
            <dt>array <var>a_restrict</var></dt>
            <dd>Calendar restrictions. A duration pass will only have elements if a restriction has been met. This contains: <dl>
            <dt>int <var>i_limit</var></dt><dd>The count of possible visits.</dd>
            <dt>int <var>i_remain</var></dt><dd>The count of remaining visits.</dd>
            <dt>bool <var>s_date</var></dt><dd>The calendar period name.</dd>
            </dl></dd>
            <dt>bool <var>has_visit_past</var></dt>
            <dd>If `true`, the promotion was renewed in the past. Otherwise, this will be `false`.</dd>
            <dt>bool <var>hide_visit_additional_info</var></dt>
            <dd>If `true`, additional info should be excluded. Otherwise, this will be `false`.</dd>
            <dt>int <var>i_book</var></dt><dd>The count of upcoming uses of the promotion.</dd>
            <dt>int <var>i_book_duration</var></dt>
            <dd>
            The number of minutes used for upcoming visits.
            This applies for promotions of the [Wl\WlProgramTypeSid::DURATION](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlProgramTypeSid.php) program type.
            </dd>
            <dt>int <var>i_limit</var></dt><dd>The promotion's visit count limit.</dd>
            <dt>int <var>i_remain</var></dt><dd>The remaining count of visits.</dd>
            <dt>int <var>i_remain_duration</var></dt>
            <dd>
            The number of minutes left in this promotion.
            This applies for promotions of the [Wl\WlProgramTypeSid::DURATION](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlProgramTypeSid.php) program type.
            </dd>
            <dt>int <var>i_use</var></dt><dd>Count of held uses in the pass.</dd>
            <dt>int <var>i_use_duration</var></dt>
            <dd>
            The number of minutes used for past visits by this promotion.
            This applies for promotions of the [Wl\WlProgramTypeSid::DURATION](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/WlProgramTypeSid.php) program type.
            </dd>
            <dt>int <var>i_visit_past</var></dt>
            <dd>
            The count of attended sessions before the last renewal.
            If `0`, there were no sessions before last renewal or the promotion doesn't auto-renew.
            </dd>
            <dt>int <var>id_program_type</var></dt><dd>The promotion's program type ID.</dd>
            <dt>bool <var>is_last_use</var></dt>
            <dd>If `true`, the promotion has a usage limit and no remaining visits. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_package</var></dt><dd>If `true`, the promotion is a package. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_restrict_multiply</var></dt>
            <dd>If `true`, there's more than one calendar restriction on the pass. Otherwise, this will be `false`.</dd>
            <dt>string <var>k_login_promotion</var></dt>
            <dd>The login promotion key.</dd>
            <dt>string <var>s_remain_measure</var></dt><dd>The formatted remaining duration on the promotion.</dd>
            <dt>bool <var>show_remain</var></dt>
            <dd>If `true`, there's a rollover on the pass with calendar restrictions. Otherwise, this will be `false`.</dd>
            <dt>string <var>sid_program_type</var></dt><dd>The promotion's program type SID.</dd>
            </dl></dd>
            <dt>array <var>a_resources_not_shared</var></dt>
            <dd>The list of assets reserved individually at the time of booking containing:<dl>
            <dt>int <var>i_index</var></dt><dd>The busy resource index.</dd>
            <dt>string <var>s_title</var></dt><dd>The resource name.</dd>
            </dl></dd>
            <dt>string <var>dl_renew</var></dt>
            <dd>The promotion renewal date in local time.</dd>
            <dt>int <var>i_visits</var></dt>
            <dd>The total workouts attended.</dd>
            <dt>string <var>s_expire</var></dt>
            <dd>The short format of the promotion expiration date.</dd>
            <dt>string <var>s_payment</var></dt>
            <dd>The payment method used to book (free, unpaid, single buy, or promotion name).</dd>
            <dt>string <var>s_renew</var></dt>
            <dd>The short format of the promotion renewal date.</dd>
            <dt>string <var>show_visits</var></dt>
            <dd>Determines whether to show the client's total workouts attended on the confirmation screen.</dd>
            </dl><br/>            <b><i>html_confirmation</i></b> - The confirmation template to be shown in the Self Check-In Web App for the selected user.<br/>            <b><i>k_visit</i></b> - The visit key, which was added or checked in.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_confirmation_data:
                    type: object
                    example: []
                  html_confirmation:
                    type: string
                    example: ""
                  k_visit:
                    type: string
                    example: ""

  /Wl/Report/DataModel:
    get:
      tags:
      - Report
      summary: Returns information from a WellnessLiving report.
      description: >-
        Returns information from a WellnessLiving report.
        <br /><br />
        There are two All Clients Reports that can be used to find user IDs. The results from each report can be filtered by different
        fields. The two reports are similar, but not exactly the same. The `LOGIN_LIST` (ID 22) report requires filters to be set to
        retrieve information. The `LOGIN_LIST_ALL` (ID 33) doesn’t require any filters to be set when specifying a date range.
      parameters:
        - name: i_page
          description: >-
            The page of results to show, starting at zero. The API will return 256 results per page.

          in: query
          schema:
            type: string
        - name: id_report
          description: >-
            The report ID. One of the [Wl\Report\WlReportSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Report/WlReportSid.php) constants.
            The following reports are currently available via the API:
            <dl>
            <dt>LOGIN_LIST (ID 22)</dt>
            <dd>All Clients Report (Reports tab, features date search)</dd>
            <dt>LOGIN_LIST_ALL (ID 33)</dt>
            <dd>All Clients Report (Clients tab) Batch Report</dd>
            <dt>PAY_TRANSACTION_BATCH (ID 77)</dt>
            <dd>Batch Report</dd>
            <dt>PURCHASE_ITEM_LIST_USER (ID 118)</dt>
            <dd>Sales per Client Report</dd>
            <dt>PURCHASE_ITEM_ACCRUAL_CASH (ID 123)</dt>
            <dd>All Sales Report</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: id_report_group
          description: >-
            The report group ID. One of the [Wl\Report\WlReportGroupSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Report/WlReportGroupSid.php) constants that describes the time
            period (day, week, month, or year) for the report to cover.

          in: query
          schema:
            type: string
        - name: id_report_page
          description: >-
            The report page ID. One of the [WlReportPageSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlReportPageSid.php) constants.
            If set, the collection of that page will be used, otherwise a collection of single report will be used.

          in: query
          schema:
            type: string
        - name: id_report_view
          description: >-
            The report view ID. One of the [Wl\Report\WlReportChartViewSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Report/WlReportChartViewSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of business for which the report must be generated.

          in: query
          schema:
            type: string
        - name: s_filter
          description: >-
            Filter settings in encoded format. May be decoded by {@link Core\Tool\UrlEncode\UrlDecode::decode()}.

          in: query
          schema:
            type: string
        - name: s_sort
          description: >-
            The field to use for sorting report data.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_data</i></b> - The report contents.
            
            Contents of this array can vary based on the report that's loaded.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_data:
                    type: object
                    example: []

  /Wl/Report/PageDataModel:
    get:
      tags:
      - Report
      summary: Returns collection of the reports.
      description: >-
        Returns collection of the reports.
      parameters:
        - name: a_page
          description: >-
            The page of results to show for each report in collection, starting at zero (set by default). The API will return
            256 results per page. Key is report id from [WlReportSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlReportSid.php), value is the page of results.

          in: query
          schema:
            type: string
        - name: id_report_group
          description: >-
            The report group ID. One of the [WlReportGroupSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlReportGroupSid.php) constants that describes the time
            period (day, week, month, or year) for the report to cover.

          in: query
          schema:
            type: string
        - name: id_report_page
          description: >-
            The report page ID. One of the [WlReportPageSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlReportPageSid.php) constants.
            The collection of that page will be used to get list of reports.
            
            The following report collections are currently available via the API:
            * PROFILE_PURCHASE (ID 11) Collection with reports from client profile: memberships, packages, session/duration
            passes, single sessions, events, gift cards and groupon.

          in: query
          schema:
            type: string
        - name: id_report_view
          description: >-
            The report view ID. One of the [WlReportChartViewSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlReportChartViewSid.php) constants.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of business for which the report collection must be generated.

          in: query
          schema:
            type: string
        - name: s_filter
          description: >-
            Filter settings in encoded format.

          in: query
          schema:
            type: string
        - name: s_sort
          description: >-
            The field to use for sorting report data.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_data</i></b> - List of the reports contents. Key is the report id from [WlReportSid](https://github.com/wellnessliving/wl-sdk/blob/masterWlReportSid.php), value is report contents.
            Contents can vary based on the report that's loaded.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_data:
                    type: object
                    example: []

  /Wl/Resource/Layout/LayoutModel:
    get:
      tags:
      - Resource
      summary: Displays information about an asset layout.
      description: >-
        Displays information about an asset layout.
      parameters:
        - name: k_resource_layout
          description: >-
            The key of the layout.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_resource</i></b> - The list of assets. Every element contains the following keys:
            <dl>
            <dt>
            array <var>a_image</var>
            </dt>
            <dd>
            The asset's appearance information.
            See {@link RsResourceImage::data()} for details.
            </dd>
            <dt>
            int <var>i_cell_x</var>
            </dt>
            <dd>
            The vertical cell number. Not empty if assets are snapped to grid.
            </dd>
            <dt>
            int <var>i_cell_y</var>
            </dt>
            <dd>
            The horizontal cell number. Not empty if assets are snapped to grid.
            </dd>
            <dt>
            int <var>i_left</var>
            </dt>
            <dd>
            The horizontal offset in pixels. Not empty if assets aren't snapped to grid.
            </dd>
            <dt>
            int <var>i_top</var>
            </dt>
            <dd>
            The vertical offset in pixels. Not empty if assets aren't snapped to grid.
            </dd>
            <dt>
            int <var>i_index</var>
            </dt>
            <dd>
            Asset number.
            </dd>
            <dt>
            string <var>k_resource</var>
            </dt>
            <dd>
            The asset key.
            </dd>
            <dt>
            string <var>s_name</var>
            </dt>
            <dd>
            Asset name.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The asset title.
            </dd>
            </dl><br/>            <b><i>a_shape_custom</i></b> - A list of custom shapes. Every element is an array with the following keys:
            <dl>
            <dt>
            float <var>f_height</var>
            </dt>
            <dd>
            The height for the shape [Wl\Resource\Layout\Shape\LayoutShapeSid::RECTANGLE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php). Empty for other shapes.
            </dd>
            <dt>
            float <var>f_width</var>
            </dt>
            <dd>
            The width for the shape [Wl\Resource\Layout\Shape\LayoutShapeSid::RECTANGLE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php). Empty for other shapes.
            </dd>
            <dt>
            int <var>i_degree_from</var>
            </dt>
            <dd>
            The start angle for the shape [Wl\Resource\Layout\Shape\LayoutShapeSid::PIE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php). Empty for other shapes.
            </dd>
            <dt>
            int <var>i_degree_to</var>
            </dt>
            <dd>
            The start angle for shape [Wl\Resource\Layout\Shape\LayoutShapeSid::PIE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php). Empty for other shapes.
            </dd>
            <dt>
            int <var>i_left</var>
            </dt>
            <dd>
            The position of the shape by horizontal axis.
            </dd>
            <dt>
            int <var>i_radius</var>
            </dt>
            <dd>
            The radius for shapes [Wl\Resource\Layout\Shape\LayoutShapeSid::PIE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php) and
            [Wl\Resource\Layout\Shape\LayoutShapeSid::CIRCLE](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php). Empty for other shapes.
            </dd>
            <dt>
            int <var>i_top</var>
            </dt>
            <dd>
            The position of the shape by vertical axis.
            </dd>
            <dt>
            int <var>id_resource_layout_shape</var>
            </dt>
            <dd>
            The shape type ID. One of the [Wl\Resource\Layout\Shape\LayoutShapeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Layout/Shape/LayoutShapeSid.php) constants.
            </dd>
            <dt>
            string <var>k_resource_layout_shape</var>
            </dt>
            <dd>
            The shape key.
            </dd>
            <dt>
            string <var>s_color_background</var>
            </dt>
            <dd>
            The shape's background color.
            </dd>
            <dt>
            string <var>s_color_foreground</var>
            </dt>
            <dd>
            The shape's foreground color.
            </dd>
            <dt>
            string <var>s_text</var>
            </dt>
            <dd>
            The shape's title.
            </dd>
            </dl><br/>            <b><i>a_shape_icon</i></b> - A list of shapes and icons. Every element is an array with the following keys:
            <dl>
            <dt>
            int <var>i_cell_x</var>
            </dt>
            <dd>
            The cell number, positioned by the horizontal axis. Empty if grid is turned off.
            </dd>
            <dt>
            int <var>i_cell_y</var>
            </dt>
            <dd>
            The cell number, positioned by the vertical axis. Empty if grid is turned off.
            </dd>
            <dt>
            int <var>i_left</var>
            </dt>
            <dd>
            The horizontal position in pixels. Empty if grid is turned on.
            </dd>
            <dt>
            int <var>i_top</var>
            </dt>
            <dd>
            The vertical position in pixels. Empty if grid is turned on.
            </dd>
            <dt>
            int <var>id_shape_icon</var>
            </dt>
            <dd>
            The icon ID. One of the [Wl\Resource\Image\ImageIconSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Resource/Image/ImageIconSid.php) constants.
            </dd>
            </dl><br/>            <b><i>i_grid</i></b> - The grid size.<br/>            <b><i>is_grid</i></b> - This will be `true` if snap to grid is enabled. Otherwise, this will be `false`.<br/>            <b><i>k_resource_type</i></b> - The key of the asset category.<br/>            <b><i>s_color_active</i></b> - The color for active assets. Hex encoding with prefix `#`.<br/>            <b><i>show_name</i></b> - This will be `true` if asset names are displayed. Otherwise, this will be `false`.<br/>            <b><i>show_number</i></b> - This will be `true` if asset numbers are displayed. Otherwise, this will be `false`.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_resource:
                    type: object
                    example: []
                  a_shape_custom:
                    type: object
                    example: []
                  a_shape_icon:
                    type: object
                    example: []
                  i_grid:
                    type: integer
                    example: 0
                  is_grid:
                    type: integer
                    example: 0
                  k_resource_type:
                    type: string
                    example: ""
                  s_color_active:
                    type: string
                    example: ""
                  show_name:
                    type: integer
                    example: 0
                  show_number:
                    type: integer
                    example: 0

  /Wl/Review/ReviewFeatureModel:
    post:
      tags:
      - Review
      summary: Changes the status of a featured review.
      description: >-
        Changes the status of a featured review.

      requestBody:
        description: >-
              <b><i>is_featured</i></b> -
              Determines if the review is featured.
              <br/>
              <b><i>k_business</i></b> -
              The business key.
              <br/>
              <b><i>k_review</i></b> -
              The review key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    is_featured:
                      description: >- 
                        Determines if the review is featured.

                      type: integer
                    k_business:
                      description: >- 
                        The business key.

                      type: string
                    k_review:
                      description: >- 
                        The review key.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Review/ReviewList/ReviewElementModel:
    get:
      tags:
      - Review
      summary: Returns information about a review.
      description: >-
        Returns information about a review.
      parameters:
        - name: k_business
          description: >-
            The key of the business to which the review belongs.

          in: query
          schema:
            type: string
        - name: k_review
          description: >-
            The review key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.
            
            May be empty in the case of a guest.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_review</i></b> - Review data:
            <dl>
            <dt>
            string <var>dt_add</var>
            </dt>
            <dd>
            Date when review was added by user.
            </dd>
            <dt>
            float <var>f_rate</var>
            </dt>
            <dd>
            Review rate.
            </dd>
            <dt>
            int <var>id_review_status</var>
            </dt>
            <dd>
            Status of the Review
            </dd>
            <dt>
            bool <var>is_featured</var>
            </dt>
            <dd>
            If `true`, the review is featured. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_verify</var>
            </dt>
            <dd>
            <tt>true</tt> if review is verified, <tt>false</tt> otherwise.
            </dd>
            <dt>
            string <var>text_firstname</var>
            </dt>
            <dd>
            Client's first name who added review.
            </dd>
            <dt>
            string <var>text_lastname</var>
            </dt>
            <dd>
            Client's last name who added review.
            </dd>
            <dt>
            string <var>text_reply</var>
            </dt>
            <dd>
            Staff reply. Can be empty.
            </dd>
            <dt>
            string <var>text_review</var>
            </dt>
            <dd>
            Review text.
            </dd>
            <dt>
            string <var>text_business_name</var>
            </dt>
            <dd>
            Business name
            </dd>
            <dt>
            string <var>text_response</var>
            </dt>
            <dd>
            Word "response".
            </dd>
            <dt>
            string <var>uid</var>
            </dt>
            <dd>
            User key.
            </dd>
            <dt>
            string <var>url_logo</var>
            </dt>
            <dd>
            User logo.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_review:
                    type: object
                    example: []
    delete:
      tags:
      - Review
      summary: Returns information about a review.
      description: >-
        Returns information about a review.
      parameters:
        - name: k_review
          description: >-
            The review key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Review/ReviewList/ReviewListModel:
    get:
      tags:
      - Review
      summary: Returns a list of review IDs for all reviews for a location. If location is not specified, returns
      description: >-
        Returns a list of review IDs for all reviews for a location. If location is not specified, returns
        all reviews for all locations in the specified business.
        <br /><br />
        Reviews in WellnessLiving apply to specific locations. This endpoint can be used to get the IDs for all reviews or
        to get a listing that includes all the review data if the `i_page parameter` is set.
      parameters:
        - name: i_page
          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` if you only need to load the keys of the review.

          in: query
          schema:
            type: string
        - name: id_order
          description: >-
            The order in which the review should be arranged. One of the [Wl\Review\ReviewList\ReviewOrderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Review/ReviewList/ReviewOrderSid.php) constants.
            
            If not passed use default order [Wl\Review\ReviewList\ReviewOrderSid::LATEST](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Review/ReviewList/ReviewOrderSid.php).

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key. If not specified, location key needs to be specified.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the location to show reviews for.

          in: query
          schema:
            type: string
        - name: uid
          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 checked reviews.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_review</i></b> - List of reviews. If passed [Wl\Review\ReviewList\ReviewListModel::$i_page](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Review/ReviewList/ReviewListModel.php) then the result will be full, otherwise in result will be keys: <tt>k_review</tt>, <tt>uid</tt>.
            <dl>
            <dt>
            bool <var>can_reply</var>
            </dt>
            <dd>
            <tt>true</tt> if can reply to review, <tt>false</tt> otherwise.
            </dd>
            <dt>
            string <var>dl_reply</var>
            </dt>
            <dd>
            Date when staff reply to review. Can be empty string if no one replied.
            </dd>
            <dt>
            string <var>dt_add</var>
            </dt>
            <dd>
            Date when review added.
            </dd>
            <dt>
            float <var>f_rate</var>
            </dt>
            <dd>
            Rate of review.
            </dd>
            <dt>
            bool <var>is_featured</var>
            </dt>
            <dd>
            <tt>true</tt> if review is featured, <tt>false</tt> otherwise.
            </dd>
            <dt>
            bool <var>is_verify</var>
            </dt>
            <dd>
            <tt>true</tt> if review is verify, <tt>false</tt> otherwise.
            </dd>
            <dt>
            string <var>k_review</var>
            </dt>
            <dd>
            Review key.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The location ID for where the review was left/assigned.
            </dd>
            <dt>
            string <var>s_firstname</var>
            </dt>
            <dd>
            First name of user who wrote review.
            </dd>
            <dt>
            string <var>s_lastname</var>
            </dt>
            <dd>
            Last name of user who wrote review.
            </dd>
            <dt>
            string <var>s_reply</var>
            </dt>
            <dd>
            Reply for review.
            </dd>
            <dt>
            string <var>s_text</var>
            </dt>
            <dd>
            Review text.
            </dd>
            <dt>
            string <var>text_city</var>
            </dt>
            <dd>
            City from the profile of the user, who left review.
            </dd>
            <dt>
            string <var>text_reply_first</var>
            </dt>
            <dd>
            First name of staff who replied of review. Can be empty string if no one replied.
            </dd>
            <dt>
            string <var>text_reply_last</var>
            </dt>
            <dd>
            Last name of staff who replied of review. Can be empty string if no one replied.
            </dd>
            <dt>
            string <var>text_role</var>
            </dt>
            <dd>
            Staff role who replied of review. Can be empty string if no one replied.
            </dd>
            <dt>
            string <var>uid</var>
            </dt>
            <dd>
            User key who wrote review.
            </dd>
            <dt>
            string <var>url_image</var>
            </dt>
            <dd>
            Link to the image of the user who wrote review.
            </dd>
            <dt>
            string <var>url_reply_image</var>
            </dt>
            <dd>
            Link to the image of the user who replied of review. Can be empty string if no one replied.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_review:
                    type: object
                    example: []

  /Wl/Review/ReviewModel:
    post:
      tags:
      - Review
      summary: Adds a review for a location. The review consists of a rating from 1 to 5 stars and text.
      description: >-
        Adds a review for a location. The review consists of a rating from 1 to 5 stars and text.
        The review will be attributed to the user who is signed in to the API.
        <br /><br />
        This endpoint using captcha check.
        To pass captcha need study the documentation by captcha API, there you will find that you need to send a captcha for a specific action.
        For this API an action is `1066`.

      requestBody:
        description: >-
              <b><i>i_rate</i></b> -
              The rating given to the location (1 to 5 stars).
              
              This will be `null` if not set yet.
              <br/>
              <b><i>k_location</i></b> -
              The key of a location.
              
              This will be `null` if not loaded yet.
              <br/>
              <b><i>k_visit</i></b> -
              Visit key.
              Can be `null` if the review is not connected to a visit.
              <br/>
              <b><i>s_text</i></b> -
              The text of the review.
              
              This will be `null` if not set yet.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    i_rate:
                      description: >- 
                        The rating given to the location (1 to 5 stars).
                        
                        This will be `null` if not set yet.

                      type: integer
                    k_location:
                      description: >- 
                        The key of a location.
                        
                        This will be `null` if not loaded yet.

                      type: string
                    k_visit:
                      description: >- 
                        Visit key.
                        Can be `null` if the review is not connected to a visit.

                      type: string
                    s_text:
                      description: >- 
                        The text of the review.
                        
                        This will be `null` if not set yet.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>i_score</i></b> - Reward score for leaving a review.<br/>            <b><i>i_score_facebook</i></b> - Reward score for sharing a review on Facebook.<br/>            <b><i>i_score_twitter</i></b> - Reward score for sharing a review on Twitter.<br/>            <b><i>is_score</i></b> - If a reward score for leaving a review exists.<br/>            <b><i>is_score_facebook</i></b> - If a reward score for sharing a review on Facebook exists.<br/>            <b><i>is_score_twitter</i></b> - If a reward score for sharing a review on Twitter exists.<br/>            <b><i>is_share_points</i></b> - If a reward score for sharing exists.<br/>            <b><i>is_share_points_none</i></b> - If a reward score does not exist for leaving a review or sharing the review.<br/>            <b><i>k_login_activity</i></b> - The key of the review writing activity. This will be empty if the review was saved but not published.<br/>            <b><i>k_review</i></b> - Review key.<br/>            <b><i>uid</i></b> - The UID of client who leaves review.<br/>            <b><i>url_share</i></b> - The sharing url of the review.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  i_score:
                    type: integer
                    example: 0
                  i_score_facebook:
                    type: integer
                    example: 0
                  i_score_twitter:
                    type: integer
                    example: 0
                  is_score:
                    type: integer
                    example: 0
                  is_score_facebook:
                    type: integer
                    example: 0
                  is_score_twitter:
                    type: integer
                    example: 0
                  is_share_points:
                    type: integer
                    example: 0
                  is_share_points_none:
                    type: integer
                    example: 0
                  k_login_activity:
                    type: string
                    example: ""
                  k_review:
                    type: string
                    example: ""
                  uid:
                    type: string
                    example: ""
                  url_share:
                    type: string
                    example: ""

  /Wl/Review/ReviewReplyModel:
    post:
      tags:
      - Review
      summary: Adds a review reply.
      description: >-
        Adds a review reply.

      requestBody:
        description: >-
              <b><i>id_review_status</i></b> -
              Status of the Review, one of [RsReviewStatusSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsReviewStatusSid.php) constants.
              
              `null` until passed to the api when admin replies to the review.
              <br/>
              <b><i>k_business</i></b> -
              Key of the business to which the review belongs.
              
              Empty string to defined business automatically, based on value of <tt>k_review</tt>.
              
              Although this value may be empty, this behavior is deprecated and will be removed in the future.
              You MUST pass key of the business always.
              <br/>
              <b><i>k_review</i></b> -
              The review key.
              <br/>
              <b><i>text_reply</i></b> -
              The reply text for review.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    id_review_status:
                      description: >- 
                        Status of the Review, one of [RsReviewStatusSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsReviewStatusSid.php) constants.
                        
                        `null` until passed to the api when admin replies to the review.

                      type: integer
                    k_business:
                      description: >- 
                        Key of the business to which the review belongs.
                        
                        Empty string to defined business automatically, based on value of <tt>k_review</tt>.
                        
                        Although this value may be empty, this behavior is deprecated and will be removed in the future.
                        You MUST pass key of the business always.

                      type: string
                    k_review:
                      description: >- 
                        The review key.

                      type: string
                    text_reply:
                      description: >- 
                        The reply text for review.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Schedule/CancelModel:
    get:
      tags:
      - Schedule
      summary: Cancels either an appointment, class, or event session for the client.
      description: >-
        Cancels either an appointment, class, or event session for the client.
      parameters:
        - name: dt_date
          description: >-
            The date of the session in UTC.

          in: query
          schema:
            type: string
        - name: is_backend
          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 admin from the side of the business.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key.
            This will be `null` if not set yet or if a class or event is canceled.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Key of the business within which the action is performed.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.
            This will be `null` if not set yet or if an appointment is canceled.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Schedule
      summary: Cancels either an appointment, class, or event session for the client.
      description: >-
        Cancels either an appointment, class, or event session for the client.
      parameters:
        - name: dt_date
          description: >-
            The date of the session in UTC.

          in: query
          schema:
            type: string
        - name: is_backend
          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 admin from the side of the business.

          in: query
          schema:
            type: string
        - name: k_appointment
          description: >-
            The appointment key.
            This will be `null` if not set yet or if a class or event is canceled.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Key of the business within which the action is performed.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.
            This will be `null` if not set yet or if an appointment is canceled.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Schedule/ClassList/ClassListModel:
    get:
      tags:
      - Schedule
      summary: Retrieves a list of classes and class information for a Class Tab.
      description: >-
        Retrieves a list of classes and class information for a Class Tab.
      parameters:
        - name: a_location
          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 business, which is sent in [ClassListModel::$k_business](https://github.com/wellnessliving/wl-sdk/blob/masterClassListModel.php).

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The list start date in UTC and in MySQL format.

          in: query
          schema:
            type: string
        - name: dt_end
          description: >-
            The list end date in UTC and in MySQL format.
            If left empty, the default duration is [Wl\Schedule\ClassList\ClassListModel::DEFAULT_PERIOD](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php) days after
            [Wl\Schedule\ClassList\ClassListModel::$dt_date](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php).

          in: query
          schema:
            type: string
        - name: is_response_short
          description: >-
            `true` means to not generate [ClassListModel::$a_session](https://github.com/wellnessliving/wl-sdk/blob/masterClassListModel.php) result.
            Can be used, if you do not need full information about existing classes and result in [ClassListModel::$a_calendar](https://github.com/wellnessliving/wl-sdk/blob/masterClassListModel.php) is enough.

          in: query
          schema:
            type: string
        - name: is_tab_all
          description: >-
            If `true`, sessions from every class tab are returned. If `false`, use the
            [Wl\Schedule\ClassList\ClassListModel::$k_class_tab](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php) value.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_class_tab
          description: >-
            The category tab key.
            
            This will be `null` if not set yet.
            This will be ignored if [Wl\Schedule\ClassList\ClassListModel::$is_tab_all](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php) is `true`.

          in: query
          schema:
            type: string
        - name: s_staff
          description: >-
            The list of staff members to filter.
            A comma seperated list of staff keys.

          in: query
          schema:
            type: string
        - name: show_cancel
          description: >-
            If `true`, canceled sessions will be returned. If `false`, canceled sessions won't be returned.

          in: query
          schema:
            type: string
        - name: show_event
          description: >-
            If `true`, events are also returned. If `false`, only classes are returned.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_calendar</i></b> - Keys are dates of the days inside requested date range, when there is at least one class in the business.
            If, locations are sent as a parameter, then at least one class in the given locations.
            
            Values are empty arrays for now. This is done to make possible to add some information about certain dates, if we need this.<br/>            <b><i>a_session</i></b> - A list of classes sessions starting with the date [Wl\Schedule\ClassList\ClassListModel::$dt_date](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php)
            and in the 62 days ahead (or up to [Wl\Schedule\ClassList\ClassListModel::$dt_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php)).
            Every element has the following keys:
            <dl>
            <dt>
            string[] <var>a_class_tab</var>
            </dt>
            <dd>
            Keys of class tab.
            </dd>
            <dt>
            string[] <var>a_staff</var>
            </dt>
            <dd>
            The list of staff keys for the staff member conducting the session.
            </dd>
            <dt>
            string[] <var>a_virtual_location</var>
            </dt>
            <dd>
            The list of virtual locations keys. Each value is a location key.
            </dd>
            <dt>
            string <var>dt_date</var>
            </dt>
            <dd>
            The date/time of the session start in UTC.
            </dd>
            <dt>
            string <var>dt_time</var>
            </dt>
            <dd>
            The time of the session start in the local time zone.
            </dd>
            <dt>
            string <var>dtl_date</var>
            </dt>
            <dd>
            The date/time of session start in the location's time zone.
            </dd>
            <dt>
            bool <var>hide_application</var>
            </dt>
            <dd>
            Specifies whether the class will be hidden in the White Label Achieve Client App. If `true`, it means that the
            class won't be displayed. Otherwise, this will be `false` to indicate that the class will be displayed.
            </dd>
            <dt>
            int <var>i_day</var>
            </dt>
            <dd>
            The day of the week when session is occurred. Constant from [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php).
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The duration of the session in minutes.
            </dd>
            <dt>
            bool <var>is_cancel</var>
            </dt>
            <dd>
            If `true`, this class period was canceled. Otherwise, this will be `false`.
            </dd>
            <dt>
            bool <var>is_virtual</var>
            </dt>
            <dd>
            If `true`, this class is virtual. Otherwise, this will be `false`.
            </dd>
            <dt>
            string <var>k_class</var>
            </dt>
            <dd>
            The class key.
            </dd>
            <dt>
            string <var>k_class_period</var>
            </dt>
            <dd>
            The class period key.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The key of the session's location.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The title of the session.
            </dd>
            <dt>
            string <var>url_book</var>
            </dt>
            <dd>
            The direct link to start booking on the WellnessLiving website.
            </dd>
            </dl><br/>            <b><i>is_timezone_different</i></b> - If `true`, the list of sessions contains sessions from different time zones. Otherwise, this will be `false`.<br/>            <b><i>is_virtual_service</i></b> - If `true`, there exists at least one virtual service by a specified
            [Wl\Schedule\ClassList\ClassListModel::$k_business and  Wl\Schedule\ClassList\ClassListModel::$k_class_tab](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php) and {@link \WellnessLiving\Wl\Schedule\ClassList\ClassListModel::$k_class_tab},
            Otherwise, this will be `false`.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_calendar:
                    type: object
                    example: []
                  a_session:
                    type: object
                    example: []
                  is_timezone_different:
                    type: integer
                    example: 0
                  is_virtual_service:
                    type: integer
                    example: 0

  /Wl/Schedule/ClassView/ClassViewModel:
    get:
      tags:
      - Schedule
      summary: Gets information about a specified class session.
      description: >-
        Gets information about a specified class session.
        <br /><br />
        A class listing can be retrieved from the [Wl\Schedule\ClassList\ClassListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php) endpoint.
      parameters:
        - name: a_session_request
          description: >-
            A list of sessions to get information for. Every element has the following keys:
            <dl>
            <dt>string <var>dt_date</var></dt>
            <dd>The date/time of the session in UTC.</dd>
            <dt>string <var>k_class_period</var></dt>
            <dd>The session key.</dd>
            </dl>
            
            `null` if requesting a single session.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date/time of the session.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_asset</i></b> - Asset list data.<br/>            <b><i>a_class</i></b> - Detailed information about the class. When loaded, it contains the following fields:
            <dl>
            <dt>array <var>a_image</var></dt>
            <dd>Information describing a class image.<dl>
            <dt>int <var>i_height</var></dt>
            <dd>The image height.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The image width.</dd>
            <dt>bool <var>is_empty</var></dt>
            <dd>This will be `true` if there's no image and a default is used.</dd>
            <dt>bool|null <var>is_own</var></dt>
            <dd>This field will be `true` if the image used for the class is an image uploaded in class setup. If the image is
            not uploaded in the class setup, but there is at least one image in Setup->Locations image slider,
            this field will be `false`. `null` if class image is not uploaded, and there are no images in location slider,
            in this case empty image is used.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL link to the image.</dd>
            </dl></dd>
            <dt>int[] <var>a_tag</var></dt>
            <dd>A list of tags that can be used to describe the class in the catalog.</dd>
            <dt>bool <var>can_book</var></dt>
            <dd>Determines whether the current client can book this class.</dd>
            <dt>string <var>dt_date_global</var></dt>
            <dd>The session date/time in UTC.</dd>
            <dt>string <var>dt_date_local</var></dt>
            <dd>The start date in the local time zone.</dd>
            <dt>string <var>html_deny_reason</var></dt>
            <dd>The reason why the client can't book this class.
            This will be set only if <var>can_book</var> is `false`.</dd>
            <dt>string <var>html_description</var></dt>
            <dd>The class description.</dd>
            <dt>string <var>html_special</var></dt>
            <dd>The special instructions.</dd>
            <dt>int|null <var>i_age_from</var></dt>
            <dd>The lower bound of age permitted in the class. This will be `null` there's no age limit set.</dd>
            <dt>int|null <var>i_age_to</var></dt>
            <dd>The upper bound of age permitted in the class. This will be `null` there's no age limit.</dd>
            <dt>int <var>i_book</var></dt>
            <dd>The count of booked visits.</dd>
            <dt>int <var>i_capacity</var></dt>
            <dd>The class capacity.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The class duration in minutes.</dd>
            <dt>
            int <var>id_deny_reason</var>
            </dt>
            <dd>
            ID of deny reason. One of [\Wl\Schedule\ClassView\DenyReasonSid](https://github.com/wellnessliving/wl-sdk/blob/master/Wl/Schedule/ClassView/DenyReasonSid.php) constants.
            </dd>
            <dt>bool <var>is_book</var></dt>
            <dd>This will be `true` if the current class was booked by the current client.</dd>
            <dt>bool <var>is_cancel</var></dt>
            <dd>This will be `true` if the class period was canceled. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_promotion_only</var></dt>
            <dd>This will be `true` if this class can only be paid for using a Purchase Option. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_wait_list</var></dt>
            <dd>This will be `true` if user is only on the wait list. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_wait_list_enabled</var></dt>
            <dd>This will be `true` if the wait list is enabled for this class. Otherwise, this will be `false`.</dd>
            <dt>string <var>m_price</var></dt>
            <dd>The session price.</dd>
            <dt>string <var>s_duration</var></dt>
            <dd>The class duration in a human readable format.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The class name.</dd>
            <dt>string <var>text_room</var></dt>
            <dd>The class room.</dd>
            </dl>
            
            This will be `null` if data isn't loaded yet.<br/>            <b><i>a_location</i></b> - Location data.
            
            This will be `null` if data isn't loaded yet.<br/>            <b><i>a_session_result</i></b> - A list of sessions with information, received in a multiple session mode.
            Every element has the following keys:
            <dl>
            <dt>array <var>a_class</var></dt>
            <dd>Class information.</dd>
            <dt>array <var>a_location</var></dt>
            <dd>Location information.</dd>
            <dt>array <var>a_staff</var></dt>
            <dd>Staff member information.</dd>
            <dt>array <var>dt_date</var></dt>
            <dd>The session date/time in UTC.</dd>
            <dt>array <var>k_class_period</var></dt>
            <dd>The session key.</dd>
            </dl><br/>            <b><i>a_staff</i></b> - Staff member list data.
            
            This will be `null` if data isn't loaded yet.<br/>            <b><i>a_visits_required</i></b> - A list of classes and events that clients should visit before this one.
            
            <dl>
            <dt>int <var>i_count</var></dt>
            <dd>The number of visits.</dd>
            <dt>bool <var>is_event</var></dt>
            <dd>This will be `true` if this is an event. Otherwise, this will be `false` if this is a class.</dd>
            <dt>string <var>k_class</var></dt>
            <dd>The key of the class or event.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The name of the class or event.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_asset:
                    type: object
                    example: []
                  a_class:
                    type: object
                    example: []
                  a_location:
                    type: object
                    example: []
                  a_session_result:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  a_visits_required:
                    type: object
                    example: []
    post:
      tags:
      - Schedule
      summary: Gets information about a specified class session.
      description: >-
        Gets information about a specified class session.
        <br /><br />
        A class listing can be retrieved from the [Wl\Schedule\ClassList\ClassListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassList/ClassListModel.php) endpoint.
      parameters:
        - name: a_session_request
          description: >-
            A list of sessions to get information for. Every element has the following keys:
            <dl>
            <dt>string <var>dt_date</var></dt>
            <dd>The date/time of the session in UTC.</dd>
            <dt>string <var>k_class_period</var></dt>
            <dd>The session key.</dd>
            </dl>
            
            `null` if requesting a single session.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date/time of the session.

          in: query
          schema:
            type: string
        - name: k_class_period
          description: >-
            The class period key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>s_session_request</i></b> -
          A list of sessions to get information for.
          A serialized array. See [Wl\Schedule\ClassView\ClassViewModel::$a_session_request](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassView/ClassViewModel.php) for the array structure.
          Serialization and sending by POST is necessary to send big lists.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                s_session_request:
                  description: >- 
                    A list of sessions to get information for.
                    A serialized array. See [Wl\Schedule\ClassView\ClassViewModel::$a_session_request](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ClassView/ClassViewModel.php) for the array structure.
                    Serialization and sending by POST is necessary to send big lists.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>a_asset</i></b> - Asset list data.<br/>            <b><i>a_class</i></b> - Detailed information about the class. When loaded, it contains the following fields:
            <dl>
            <dt>array <var>a_image</var></dt>
            <dd>Information describing a class image.<dl>
            <dt>int <var>i_height</var></dt>
            <dd>The image height.</dd>
            <dt>int <var>i_width</var></dt>
            <dd>The image width.</dd>
            <dt>bool <var>is_empty</var></dt>
            <dd>This will be `true` if there's no image and a default is used.</dd>
            <dt>bool|null <var>is_own</var></dt>
            <dd>This field will be `true` if the image used for the class is an image uploaded in class setup. If the image is
            not uploaded in the class setup, but there is at least one image in Setup->Locations image slider,
            this field will be `false`. `null` if class image is not uploaded, and there are no images in location slider,
            in this case empty image is used.</dd>
            <dt>string <var>s_url</var></dt>
            <dd>The URL link to the image.</dd>
            </dl></dd>
            <dt>int[] <var>a_tag</var></dt>
            <dd>A list of tags that can be used to describe the class in the catalog.</dd>
            <dt>bool <var>can_book</var></dt>
            <dd>Determines whether the current client can book this class.</dd>
            <dt>string <var>dt_date_global</var></dt>
            <dd>The session date/time in UTC.</dd>
            <dt>string <var>dt_date_local</var></dt>
            <dd>The start date in the local time zone.</dd>
            <dt>string <var>html_deny_reason</var></dt>
            <dd>The reason why the client can't book this class.
            This will be set only if <var>can_book</var> is `false`.</dd>
            <dt>string <var>html_description</var></dt>
            <dd>The class description.</dd>
            <dt>string <var>html_special</var></dt>
            <dd>The special instructions.</dd>
            <dt>int|null <var>i_age_from</var></dt>
            <dd>The lower bound of age permitted in the class. This will be `null` there's no age limit set.</dd>
            <dt>int|null <var>i_age_to</var></dt>
            <dd>The upper bound of age permitted in the class. This will be `null` there's no age limit.</dd>
            <dt>int <var>i_book</var></dt>
            <dd>The count of booked visits.</dd>
            <dt>int <var>i_capacity</var></dt>
            <dd>The class capacity.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The class duration in minutes.</dd>
            <dt>
            int <var>id_deny_reason</var>
            </dt>
            <dd>
            ID of deny reason. One of [\Wl\Schedule\ClassView\DenyReasonSid](https://github.com/wellnessliving/wl-sdk/blob/master/Wl/Schedule/ClassView/DenyReasonSid.php) constants.
            </dd>
            <dt>bool <var>is_book</var></dt>
            <dd>This will be `true` if the current class was booked by the current client.</dd>
            <dt>bool <var>is_cancel</var></dt>
            <dd>This will be `true` if the class period was canceled. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_promotion_only</var></dt>
            <dd>This will be `true` if this class can only be paid for using a Purchase Option. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_wait_list</var></dt>
            <dd>This will be `true` if user is only on the wait list. Otherwise, this will be `false`.</dd>
            <dt>bool <var>is_wait_list_enabled</var></dt>
            <dd>This will be `true` if the wait list is enabled for this class. Otherwise, this will be `false`.</dd>
            <dt>string <var>m_price</var></dt>
            <dd>The session price.</dd>
            <dt>string <var>s_duration</var></dt>
            <dd>The class duration in a human readable format.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The class name.</dd>
            <dt>string <var>text_room</var></dt>
            <dd>The class room.</dd>
            </dl>
            
            This will be `null` if data isn't loaded yet.<br/>            <b><i>a_location</i></b> - Location data.
            
            This will be `null` if data isn't loaded yet.<br/>            <b><i>a_session_result</i></b> - A list of sessions with information, received in a multiple session mode.
            Every element has the following keys:
            <dl>
            <dt>array <var>a_class</var></dt>
            <dd>Class information.</dd>
            <dt>array <var>a_location</var></dt>
            <dd>Location information.</dd>
            <dt>array <var>a_staff</var></dt>
            <dd>Staff member information.</dd>
            <dt>array <var>dt_date</var></dt>
            <dd>The session date/time in UTC.</dd>
            <dt>array <var>k_class_period</var></dt>
            <dd>The session key.</dd>
            </dl><br/>            <b><i>a_staff</i></b> - Staff member list data.
            
            This will be `null` if data isn't loaded yet.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_asset:
                    type: object
                    example: []
                  a_class:
                    type: object
                    example: []
                  a_location:
                    type: object
                    example: []
                  a_session_result:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []

  /Wl/Schedule/Page/PageElementModel:
    get:
      tags:
      - Schedule
      summary: Returns information about a specified visit.
      description: >-
        Returns information about a specified visit.
      parameters:
        - name: k_business
          description: >-
            Key of the business to which the visit belongs.

          in: query
          schema:
            type: string
        - name: k_visit
          description: >-
            Visit key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_appointment_visit_info</i></b> - Additional visit information about this appointment. Empty array if it's not an appointment. <dl>
            <dt>
            int <var>id_visit</var>
            </dt>
            <dd>
            Visit status. One of [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.
            </dd>
            <dt>
            bool <var>is_confirmed</var>
            </dt>
            <dd>
            `true` means that appointment was requested and confirmed by the staff.
            </dd>
            <dt>
            bool <var>is_deny</var>
            </dt>
            <dd>
            `true` means that appointment was requested and denied by the staff.
            </dd>
            <dt>
            bool <var>is_notify_request_accept</var>
            </dt>
            <dd>
            `true` means that the client will receive a notification, if appointment will be confirmed by the staff.
            </dd>
            <dt>
            bool <var>is_notify_request_deny</var>
            </dt>
            <dd>
            `true` means that the client will receive a notification, if appointment will be denied by the staff.
            </dd>
            <dt>
            bool <var>is_request</var>
            </dt>
            <dd>
            `true` means that appointment was requested, but not confirmed by the staff.
            </dd>
            </dl><br/>            <b><i>a_asset</i></b> - List of assets: <dl>
            <dt>string <var>s_name</var></dt>
            <dd>Asset title that consists of the asset title itself concatenated with its index (in case of multiple assets) by '#'.</dd>
            <dt>string <var>i_count</var></dt>
            <dd>Number of sessions.</dd>
            </dl>.<br/>            <b><i>a_class_info</i></b> - Class data:<dl>
            <dt>int <var>i_book_active</var></dt>
            <dd>A total number of booked visits in the class, including all lists: active and waitlist.</dd>
            <dt>int <var>i_capacity</var></dt>
            <dd>Class capacity.</dd>
            <dt>int <var>i_wait</var></dt>
            <dd>A total number of booked visits in the waitlist.</dd>
            </dl>
            
            <tt>null</tt> if it isn't class visit.<br/>            <b><i>a_staff</i></b> - A list of staff members involved in the visit.
            Each element is an array with the following elements:
            <dl>
            <dt>
            string <var>k_staff</var>
            </dt>
            <dd>
            The staff member key.
            </dd>
            <dt>
            string <var>s_family</var>
            </dt>
            <dd>
            The surname of the staff member.
            </dd>
            <dt>
            string <var>s_name</var>
            </dt>
            <dd>
            The first name of the staff member.
            </dd>
            </dl><br/>            <b><i>dt_cancel</i></b> - The latest date and time for when the visit can be canceled without penalty.<br/>            <b><i>dt_date_global</i></b> - The date and time of the visit in UTC.<br/>            <b><i>dt_date_local</i></b> - The date and time of the visit in the local time zone.<br/>            <b><i>dtl_location</i></b> - Session date/time in timezone of the location where it takes place.<br/>            <b><i>html_special</i></b> - The special instructions for the service.<br/>            <b><i>i_duration</i></b> - The scheduled duration of the visit.
            <tt>0</tt> means that session duration is hidden.<br/>            <b><i>i_wait_spot</i></b> - Estimated place of reservation on the waiting list.<br/>            <b><i>id_note</i></b> - The note type ID. This will be set to `null` if notes aren't allowed.
            This is one of the [Wl\Visit\Note\Sid\NoteSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/Note/Sid/NoteSid.php) constants.
            
            This will be `null` if notes aren't allowed.<br/>            <b><i>id_virtual_provider</i></b> - The virtual provider ID. One of the [Wl\Virtual\VirtualProviderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Virtual/VirtualProviderSid.php) constants.
            
            This will be `null` for non-virtual services.<br/>            <b><i>id_visit</i></b> - The visit type ID. One of the [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.
            
            This will be `null` if not loaded yet.<br/>            <b><i>is_checkin</i></b> - If `true`, then this visit is ready to be checked in. If `false`, then this visit can't be checked in.<br/>            <b><i>is_enable_client_cancel</i></b> - This will be `true` if clients can cancel the session. Otherwise, this will be `false`.<br/>            <b><i>is_event</i></b> - If `true`, then this visit is a part of a larger event. If `false`, then this visit is an individual session.<br/>            <b><i>is_in_progress</i></b> - <tt>true</tt> - service is in progress; <tt>false</tt> - otherwise.<br/>            <b><i>is_virtual</i></b> - <tt>true</tt> - service is virtual; <tt>false</tt> - otherwise.<br/>            <b><i>k_appointment</i></b> - The appointment key.
            This will be set only if the visit is an appointment. If the visit is a class or event, this will be `null`.<br/>            <b><i>k_class</i></b> - The class key. This will be set only if the visit is a class or an event.
            If the visit is an appointment, this will be `null`.<br/>            <b><i>k_class_period</i></b> - The class period key. This will be set only if the visit is a class or an event.
            If the visit is an appointment, this will be `null`.<br/>            <b><i>k_location</i></b> - The location key.<br/>            <b><i>k_service</i></b> - Session key.<br/>            <b><i>s_title</i></b> - The name of class or service.<br/>            <b><i>text_location</i></b> - Location title.<br/>            <b><i>text_room</i></b> - Room where session takes place.<br/>            <b><i>text_timezone</i></b> - Timezone abbreviation.<br/>            <b><i>uid</i></b> - The user key.<br/>            <b><i>url_virtual_join</i></b> - Url to wait page is the beginning of an online service.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_appointment_visit_info:
                    type: object
                    example: []
                  a_asset:
                    type: object
                    example: []
                  a_class_info:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  dt_cancel:
                    type: string
                    example: ""
                  dt_date_global:
                    type: string
                    example: ""
                  dt_date_local:
                    type: string
                    example: ""
                  dtl_location:
                    type: string
                    example: ""
                  html_special:
                    type: string
                    example: ""
                  i_duration:
                    type: integer
                    example: 0
                  i_wait_spot:
                    type: integer
                    example: 0
                  id_note:
                    type: integer
                    example: 0
                  id_virtual_provider:
                    type: integer
                    example: 0
                  id_visit:
                    type: integer
                    example: 0
                  is_checkin:
                    type: integer
                    example: 0
                  is_enable_client_cancel:
                    type: integer
                    example: 0
                  is_event:
                    type: integer
                    example: 0
                  is_in_progress:
                    type: integer
                    example: 0
                  is_virtual:
                    type: integer
                    example: 0
                  k_appointment:
                    type: string
                    example: ""
                  k_class:
                    type: string
                    example: ""
                  k_class_period:
                    type: string
                    example: ""
                  k_location:
                    type: string
                    example: ""
                  k_service:
                    type: string
                    example: ""
                  s_title:
                    type: string
                    example: ""
                  text_location:
                    type: string
                    example: ""
                  text_room:
                    type: string
                    example: ""
                  text_timezone:
                    type: string
                    example: ""
                  uid:
                    type: string
                    example: ""
                  url_virtual_join:
                    type: string
                    example: ""

  /Wl/Schedule/Page/PageListModel:
    get:
      tags:
      - Schedule
      summary: Returns a list of either previous or upcoming visits for a specific user.
      description: >-
        Returns a list of either previous or upcoming visits for a specific user.
        <br /><br />
        A visit can be for an appointment, class, or an event.
      parameters:
        - name: dtu_end
          description: >-
            If the date is set, a list of services before this date will be returned.
            The date and time is in UTC and in MySQL format.
            If left as `null`, then a list of services that aren't limited to the end date will be returned.

          in: query
          schema:
            type: string
        - name: dtu_start
          description: >-
            If the date is set, a list of services after this date will be returned.
            The date and time is in UTC and in MySQL format.
            If left as `null`, then a list of services that aren't limited to the start date will be returned.

          in: query
          schema:
            type: string
        - name: is_past
          description: >-
            If `true`, then all the client previous visits will be retrieved.
            If `false` or left as `null`, then all the client upcoming visits will be retrieved.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The user key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_visit</i></b> - Elements of user's schedule. Every element has next keys:
            <dl>
            <dt>string <var>k_business</var></dt>
            <dd>
            Key of the business in which this visit was made.
            </dd>
            <dt>
            string <var>k_visit</var>
            </dt>
            <dd>
            Key of a book/visit.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_visit:
                    type: object
                    example: []

  /Wl/Schedule/ScheduleList/StaffApp/ScheduleListByTokenModel:
    get:
      tags:
      - Schedule
      summary: Returns information about a business schedule for a specified date.
      description: >-
        Returns information about a business schedule for a specified date.
        Version of [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) for access validation by security token.
      parameters:
        - name: dl_end
          description: >-
            The end date of the range from which the list of schedule sessions should be retrieved.
            
            This will be `null` if the range has no end date.

          in: query
          schema:
            type: string
        - name: dl_start
          description: >-
            The start date of the range from which the list of scheduled sessions should be retrieved.
            
            This will be `null` if the range has no start date.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date of the sessions in Coordinated Universal Time (UTC) and MySQL format.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: text_token
          description: >-
            The security token.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_schedule</i></b> - The sessions present on the business schedule. These are sorted chronologically in ascending order.
            Every element has the following keys:
            
            <dl>
            <dt>
            string[] <var>a_note</var>
            </dt>
            <dd>
            List of notes.
            </dd>
            <dt>
            array <var>a_appointment_visit_info</var>
            </dt>
            <dd>
            Additional visit information about this appointment. Empty array if it's a class.
            <dl>
            <dt>
            int <var>id_visit</var>
            </dt>
            <dd>
            Visit id. One of [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.
            </dd>
            <dt>
            bool <var>is_confirmed</var>
            </dt>
            <dd>
            `true` means that appointment was requested and confirmed by the staff.
            </dd>
            <dt>
            bool <var>is_deny</var>
            </dt>
            <dd>
            `true` means that appointment was requested and denied by the staff.
            </dd>
            <dt>
            bool <var>is_notify_request_accept</var>
            </dt>
            <dd>
            `true` means that the client will receive a notification, if appointment will be confirmed by the staff.
            </dd>
            <dt>
            bool <var>is_notify_request_deny</var>
            </dt>
            <dd>
            `true` means that the client will receive a notification, if appointment will be denied by the staff.
            </dd>
            <dt>
            bool <var>is_request</var>
            </dt>
            <dd>
            `true` means that appointment was requested, but not confirmed by the staff.
            </dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_resource</var>
            </dt>
            <dd>
            A list of assets involved in the session.
            </dd>
            <dt>
            string[] <var>a_staff</var>
            </dt>
            <dd>
            A list of staff members who will conduct the session.
            Deprecated, use <var>a_staff_list</var> instead.
            </dd>
            <dt>
            array <var>a_staff_info</var>
            </dt>
            <dd>
            Information about staff members who conduct this session.
            Values are array with data:
            <dl>
            <dt>
            string <var>text_staff</var>
            </dt>
            <dd>
            Staff full name.
            </dd>
            <dt>
            bool <var>is_staff_change</var>
            </dt>
            <dd>
            <tt>true</tt> means staff is substituted, <tt>false</tt> simple staff member.
            </dd>
            <dt>
            string <var>k_staff</var>
            </dt>
            <dd>
            Staff key.
            </dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_user</var>
            </dt>
            <dd>
            For appointments, this is a list of the names of users who are scheduled to attend the session.
            </dd>
            <dt>
            string[] <var>a_virtual_location</var>
            </dt>
            <dd>
            List of virtual locations. Each value is primary key in {@link \RsLocationSql} table.
            </dd>
            <dt>
            string <var>dt_date</var>
            </dt>
            <dd>
            The date/time of the session in UTC.
            </dd>
            <dt>
            string <var>dt_date_cancel</var>
            </dt>
            <dd>
            The date/time when the session was canceled in UTC. Only used for appointments.
            </dd>
            <dt>
            string <var>dt_date_local</var>
            </dt>
            <dd>
            The date/time of the session in local time.
            </dd>
            <dt>
            int <var>i_book</var>
            </dt>
            <dd>
            The number of clients booked into the session.
            </dd>
            <dt>
            int <var>i_capacity</var>
            </dt>
            <dd>
            The maximum capacity of the session.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The duration of the session in minutes.
            </dd>
            <dt>
            int <var>i_padding_after</var>
            </dt>
            <dd>
            The padding time after the session in minutes. Only used for appointments.
            </dd>
            <dt>
            int <var>i_padding_before</var>
            </dt>
            <dd>
            The padding time before the session in minutes. Only used for appointments.
            </dd>
            <dt>
            int <var>i_start</var>
            </dt>
            <dd>
            The start time in minutes after midnight.
            For example, a class starting at 10:30 in the morning local time will have an `i_start` value of 630.
            </dd>
            <dt>
            int <var>i_wait</var>
            </dt>
            <dd>
            Count clients on waitlist.
            </dd>
            <dt>
            int <var>id_service</var>
            </dt>
            <dd>
            The ID of the service type. One of [WlServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlServiceSid.php) constants.
            </dd>
            <dt>
            bool <var>is_arrive</var>
            </dt>
            <dd>
            For appointments: <tt>true</tt> if user has checked-in; <tt>false</tt> otherwise.
            For classes always <tt>null</tt>.
            </dd>
            <dt>
            bool <var>is_pay</var>
            </dt>
            <dd>
            For appointments: <tt>true</tt> if appointment is paid; <tt>false</tt> otherwise.
            For classes always <tt>null</tt>.
            </dd>
            <dt>
            bool <var>is_repeat</var>
            </dt>
            <dd>
            For appointments: <tt>true</tt> if appointment is recurring; <tt>false</tt> otherwise.
            For classes always <tt>null</tt>.
            </dd>
            <dt>
            string <var>k_appointment</var>
            </dt>
            <dd>
            The appointment key.
            If the session isn't an appointment, this will be `0`.
            </dd>
            <dt>
            string <var>k_class</var>
            </dt>
            <dd>
            The class key.
            If the session isn't a class, this will be `0`.
            </dd>
            <dt>
            string <var>k_class_period</var>
            </dt>
            <dd>
            The class period key.
            If the session isn't a class, this will be `0`.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The location key for where the session takes place.
            </dd>
            <dt>
            string <var>k_service</var>
            </dt>
            <dd>
            This is the key of the appointment type, while `k_appointment` is the specific instance.
            For other cases, this will be `0`.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The name of the session.
            </dd>
            <dt>
            string <var>text_alert</var>
            </dt>
            <dd>
            Alert message.
            </dd>
            <dt>
            string <var>text_color_background</var>
            </dt>
            <dd>
            The background color in hex representation as used on WellnessLiving.
            </dd>
            <dt>
            string <var>text_color_border</var>
            </dt>
            <dd>
            The border color in hex representation as used on WellnessLiving.
            </dd>
            <dt>
            bool<var>is_virtual_service</var>
            </dt>
            <dd>
            <tt>true</tt> - If the business has at least one virtual service, <tt>false</tt> - otherwise.
            </dd>
            <dt>
            string<var>url_image</var>
            </dt>
            <dd>
            URL to image. Empty if image not exist.
            </dd>
            </dl><br/>            <b><i>is_virtual_service</i></b> - <tt>true</tt> - If the business has at least one virtual service, <tt>false</tt> - otherwise.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_schedule:
                    type: object
                    example: []
                  is_virtual_service:
                    type: integer
                    example: 0
    delete:
      tags:
      - Schedule
      summary: Returns information about a business schedule for a specified date.
      description: >-
        Returns information about a business schedule for a specified date.
        Version of [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) for access validation by security token.
      parameters:
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Schedule
      summary: Returns information about a business schedule for a specified date.
      description: >-
        Returns information about a business schedule for a specified date.
        Version of [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) for access validation by security token.
      parameters:
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    put:
      tags:
      - Schedule
      summary: Returns information about a business schedule for a specified date.
      description: >-
        Returns information about a business schedule for a specified date.
        Version of [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) for access validation by security token.
      parameters:
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel:
    get:
      tags:
      - Schedule
      summary: Gets information about sessions (both classes and appointments) at a business on a given day.
      description: >-
        Gets information about sessions (both classes and appointments) at a business on a given day.
      parameters:
        - name: dl_end
          description: >-
            The end date of the range from which the list of schedule sessions should be retrieved.
            
            This will be `null` if the range has no end date. If this value is used,
            [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel::$dt_date](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) should not be set.

          in: query
          schema:
            type: string
        - name: dl_start
          description: >-
            The start date of the range from which the list of scheduled sessions should be retrieved.
            
            This will be `null` if the range has no start date. If this value is used,
            [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel::$dt_date](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) should not be set.

          in: query
          schema:
            type: string
        - name: dt_date
          description: >-
            The date of the sessions in Coordinated Universal Time (UTC) and MySQL format.
            
            If this value is used, then
            [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel::$dl_end](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) and
            [Wl\Schedule\ScheduleList\StaffApp\ScheduleListModel::$dl_start](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Schedule/ScheduleList/StaffApp/ScheduleListModel.php) should not be set.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_schedule</i></b> - The sessions present on the business schedule. These are sorted chronologically in ascending order.
            Every element has the following keys:
            
            <dl>
            <dt>
            string[] <var>a_note</var>
            </dt>
            <dd>
            List of notes.
            </dd>
            <dt>
            array <var>a_appointment_visit_info</var>
            </dt>
            <dd>
            Additional visit information about this appointment. Empty array if it's a class.
            <dl>
            <dt>
            int <var>id_visit</var>
            </dt>
            <dd>
            Visit id. One of [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.
            </dd>
            <dt>
            bool <var>is_confirmed</var>
            </dt>
            <dd>
            `true` means that appointment was requested and confirmed by the staff.
            </dd>
            <dt>
            bool <var>is_deny</var>
            </dt>
            <dd>
            `true` means that appointment was requested and denied by the staff.
            </dd>
            <dt>
            bool <var>is_notify_request_accept</var>
            </dt>
            <dd>
            `true` means that the client will receive a notification, if appointment will be confirmed by the staff.
            </dd>
            <dt>
            bool <var>is_notify_request_deny</var>
            </dt>
            <dd>
            `true` means that the client will receive a notification, if appointment will be denied by the staff.
            </dd>
            <dt>
            bool <var>is_request</var>
            </dt>
            <dd>
            `true` means that appointment was requested, but not confirmed by the staff.
            </dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_resource</var>
            </dt>
            <dd>
            A list of assets involved in the session.
            </dd>
            <dt>
            string[] <var>a_staff</var>
            </dt>
            <dd>
            A list of staff members who will conduct the session.
            Deprecated, use <var>a_staff_list</var> instead.
            </dd>
            <dt>
            array <var>a_staff_info</var>
            </dt>
            <dd>
            Information about staff members who conduct this session.
            Values are array with data:
            <dl>
            <dt>
            string <var>text_staff</var>
            </dt>
            <dd>
            Staff full name.
            </dd>
            <dt>
            bool <var>is_staff_change</var>
            </dt>
            <dd>
            <tt>true</tt> means staff is substituted, <tt>false</tt> simple staff member.
            </dd>
            <dt>
            string <var>k_staff</var>
            </dt>
            <dd>
            Staff key.
            </dd>
            </dl>
            </dd>
            <dt>
            string[] <var>a_user</var>
            </dt>
            <dd>
            For appointments, this is a list of the names of users who are scheduled to attend the session.
            </dd>
            <dt>
            string[] <var>a_virtual_location</var>
            </dt>
            <dd>
            List of virtual locations.
            </dd>
            <dt>
            string <var>dt_date</var>
            </dt>
            <dd>
            The date/time of the session in UTC.
            </dd>
            <dt>
            string <var>dt_date_cancel</var>
            </dt>
            <dd>
            The date/time when the session was canceled in UTC. Only used for appointments.
            </dd>
            <dt>
            string <var>dt_date_local</var>
            </dt>
            <dd>
            The date/time of the session in local time.
            </dd>
            <dt>
            int <var>i_book</var>
            </dt>
            <dd>
            The number of clients booked into the session.
            </dd>
            <dt>
            int <var>i_capacity</var>
            </dt>
            <dd>
            The maximum capacity of the session.
            </dd>
            <dt>
            int <var>i_duration</var>
            </dt>
            <dd>
            The duration of the session in minutes.
            </dd>
            <dt>
            int <var>i_padding_after</var>
            </dt>
            <dd>
            The padding time after the session in minutes. Only used for appointments.
            </dd>
            <dt>
            int <var>i_padding_before</var>
            </dt>
            <dd>
            The padding time before the session in minutes. Only used for appointments.
            </dd>
            <dt>
            int <var>i_start</var>
            </dt>
            <dd>
            The start time in minutes after midnight.
            For example, a class starting at 10:30 in the morning local time will have an `i_start` value of 630.
            </dd>
            <dt>
            int <var>i_wait</var>
            </dt>
            <dd>
            Count clients on waitlist.
            </dd>
            <dt>
            int <var>id_service</var>
            </dt>
            <dd>
            The ID of the service type. One of [WlServiceSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/WlServiceSid.php) constants.
            </dd>
            <dt>
            bool <var>is_arrive</var>
            </dt>
            <dd>
            For appointments: <tt>true</tt> if user has checked-in; <tt>false</tt> otherwise.
            For classes always <tt>null</tt>.
            </dd>
            <dt>
            bool <var>is_pay</var>
            </dt>
            <dd>
            For appointments: <tt>true</tt> if appointment is paid; <tt>false</tt> otherwise.
            For classes always <tt>null</tt>.
            </dd>
            <dt>
            bool <var>is_repeat</var>
            </dt>
            <dd>
            For appointments: <tt>true</tt> if appointment is recurring; <tt>false</tt> otherwise.
            For classes always <tt>null</tt>.
            </dd>
            <dt>
            string <var>k_appointment</var>
            </dt>
            <dd>
            The appointment key.
            If the session isn't an appointment, this will be `0`.
            </dd>
            <dt>
            string <var>dt_confirm</var>
            </dt>
            <dd>
            Confirmation date for appointment in MySQL format. Will be zero date + time in case appointment
            is not yet confirmed by client.
            </dd>
            <dt>
            string <var>k_class</var>
            </dt>
            <dd>
            The class key.
            If the session isn't a class, this will be `0`.
            </dd>
            <dt>
            string <var>k_class_period</var>
            </dt>
            <dd>
            The class period key.
            If the session isn't a class, this will be `0`.
            </dd>
            <dt>
            string <var>k_location</var>
            </dt>
            <dd>
            The location key for where the session takes place.
            </dd>
            <dt>
            string <var>k_service</var>
            </dt>
            <dd>
            This is the key of the appointment type, while `k_appointment` is the specific instance.
            For other cases, this will be `0`.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The name of the session.
            </dd>
            <dt>
            string <var>text_alert</var>
            </dt>
            <dd>
            Alert message.
            </dd>
            <dt>
            string <var>text_color_background</var>
            </dt>
            <dd>
            The background color in hex representation as used on WellnessLiving.
            </dd>
            <dt>
            string <var>text_color_border</var>
            </dt>
            <dd>
            The border color in hex representation as used on WellnessLiving.
            </dd>
            <dt>
            bool<var>is_virtual_service</var>
            </dt>
            <dd>
            <tt>true</tt> - If the business has at least one virtual service, <tt>false</tt> - otherwise.
            </dd>
            <dt>
            string<var>url_image</var>
            </dt>
            <dd>
            URL to image. Empty if image not exist.
            </dd>
            </dl><br/>            <b><i>is_virtual_service</i></b> - <tt>true</tt> - If the business has at least one virtual service, <tt>false</tt> - otherwise.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_schedule:
                    type: object
                    example: []
                  is_virtual_service:
                    type: integer
                    example: 0
    delete:
      tags:
      - Schedule
      summary: Gets information about sessions (both classes and appointments) at a business on a given day.
      description: >-
        Gets information about sessions (both classes and appointments) at a business on a given day.
      parameters:
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Schedule
      summary: Gets information about sessions (both classes and appointments) at a business on a given day.
      description: >-
        Gets information about sessions (both classes and appointments) at a business on a given day.
      parameters:
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    put:
      tags:
      - Schedule
      summary: Gets information about sessions (both classes and appointments) at a business on a given day.
      description: >-
        Gets information about sessions (both classes and appointments) at a business on a given day.
      parameters:
        - name: k_business
          description: >-
            Business key.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Schedule/Tab/TabModel:
    get:
      tags:
      - Schedule
      summary: Retrieves a list of tabs for bookable services specific to the user and the location.
      description: >-
        Retrieves a list of tabs for bookable services specific to the user and the location.
        <br /><br />
        The names and contents of these tabs can be customized by the business. For example, a business may have tabs named
        ‘Appointments’, ‘Group Appointments’, and ‘Room Rentals’.
      parameters:
        - name: is_widget
          description: >-
            Whether we are inside the widget or not.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the current business.

          in: query
          schema:
            type: string
        - name: k_location
          description: >-
            The key of the current location.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the current user.
            This isn't used on the back end as the back end uses the current user to build a list of tabs.
            Therefore, the model must depend on the current user ID.
            If changed to a relative (the current user is changed, but the application isn't restarted),
            information about the booking tabs for this user's relative will be requested.
            
            This will be `null` if not set yet.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_tab</i></b> - An array containing information about tabs to present to the user.
            Each array index corresponds to a tab.
            Each array element is an array that contains the following fields:
            <dl>
            <dt>
            int <var>id_class_tab_object</var>
            </dt>
            <dd>
            The tab type ID which is one of the [Wl\Classes\Tab\TabSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/Tab/TabSid.php) constants.
            </dd>
            <dt>
            int|null <var>id_class_tab_system</var>
            </dt>
            <dd>
            If this tab has redefined a default system Class Tab then it references a constant defined in
            [Wl\Classes\Tab\TabSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Classes/Tab/TabSid.php).
            
            Otherwise, this will be `null`.
            </dd>
            <dt>
            string|null <var>k_class_tab</var>
            </dt>
            <dd>
            The class tab key. This will be `null` if it's a system tab.
            </dd>
            <dt>
            string <var>k_id</var>
            </dt>
            <dd>
            A unique identifier in the list.
            </dd>
            <dt>
            string <var>s_title</var>
            </dt>
            <dd>
            The tab title.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_tab:
                    type: object
                    example: []

  /Wl/Search/Tag/SearchTagListModel:
    get:
      tags:
      - Search
      summary: Returns a list of all existing search tags in the system.
      description: >-
        Returns a list of all existing search tags in the system.
        <br /><br />
        Search tags can be used for quick searches between businesses and services (mainly in the directories).
      responses:
        '200':
          description: >-
            <b><i>a_search_tag</i></b> - A list of all the search tags.
            
            Each element is an array with the following keys:
            <dl>
            <dt>int <var>id_business_category</var></dt>
            <dd>
            The business category that can use this search tag.
            One of the [Wl\Business\BusinessCategorySid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/BusinessCategorySid.php) constants.
            This can be found in the business information found in [Wl\Business\DataModel::$id_category](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/DataModel.php).
            </dd>
            <dt>string <var>k_search_tag</var></dt>
            <dd>The key of the tag. The primary key in the table of tags.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The name of the tag.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_search_tag:
                    type: object
                    example: []

  /Wl/Shop/Category/CategoryModel:
    get:
      tags:
      - Shop
      summary: Returns a list of all categories in a business’s store.
      description: >-
        Returns a list of all categories in a business’s store.
      parameters:
        - name: k_business
          description: >-
            The key of the business to get shop categories for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_shop_category</i></b> - An array containing information about all store categories.
            Each array element is an array containing the following fields:
            <dl>
            <dt>
            bool <var>is_default</var>
            </dt>
            <dd>
            Whether category is selected as default.
            </dd>
            <dt>
            int <var>i_order</var>
            </dt>
            <dd>
            The display order for the category.
            </dd>
            <dt>
            string <var>k_shop_category</var>
            </dt>
            <dd>
            The shop category key.
            </dd>
            <dt>
            string <var>text_description</var>
            </dt>
            <dd>
            The category description.
            </dd>
            <dt>
            string <var>text_title</var>
            </dt>
            <dd>
            The category name.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_shop_category:
                    type: object
                    example: []
    post:
      tags:
      - Shop
      summary: Returns a list of all categories in a business’s store.
      description: >-
        Returns a list of all categories in a business’s store.
      parameters:
        - name: k_business
          description: >-
            The key of the business to get shop categories for.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_title</i></b> -
          Title of new category.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_title:
                  description: >- 
                    Title of new category.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_shop_category</i></b> - Key of the created shop category.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_shop_category:
                    type: string
                    example: ""

  /Wl/Skin/Application/Resource/ApplicationResourceModel:
    get:
      tags:
      - Skin
      summary: Returns information used to generate application sources.
      description: >-
        Returns information used to generate application sources.
      parameters:
        - name: k_business
          description: >-
            The business key.
            Empty to get data for all businesses.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_application</i></b> - The application data.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_application:
                    type: object
                    example: []

  /Wl/Skin/Application/SkinModel:
    get:
      tags:
      - Skin
      summary: Retrieves customized skin settings for the client view.
      description: >-
        Retrieves customized skin settings for the client view.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_skin</i></b> - Skin information.<br/>            <b><i>has_pay</i></b> - Determines current business account contains amount for the application customisation.<br/>            <b><i>s_link</i></b> - Name of the link to default application skin.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_skin:
                    type: object
                    example: []
                  has_pay:
                    type: integer
                    example: 0
                  s_link:
                    type: string
                    example: ""
    delete:
      tags:
      - Skin
      summary: Retrieves customized skin settings for the client view.
      description: >-
        Retrieves customized skin settings for the client view.
      parameters:
        - name: is_billing_confirm
          description: >-
            Whether customization billing is confirmed.
            
            <tt>true</tt> to finish delete process even if customization fee will be billed.
            <tt>false</tt> if customization fee should be required for confirmation.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>s_link</i></b> - Name of the link to default application skin.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  s_link:
                    type: string
                    example: ""

  /Wl/Staff/Privilege/PrivilegeListModel:
    get:
      tags:
      - Staff
      summary: Can return list of admin or staff privileges of the current user.
      description: >-
        Can return list of admin or staff privileges of the current user.
        <br /><br />
        Cannot be used to check privileges of another user.
      parameters:
        - name: k_business
          description: >-
            Key of business to get privileges for.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            User key to get privileges for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_privilege_passport</i></b> - List of privileges, if user is administrator.
            
            There is no certain list of admin privileges, as they are name-based. If you need to check access to certain place
            contact WellnessLiving integration team.<br/>            <b><i>a_privilege_staff</i></b> - List of privileges, if the given user is a staff member in the give business.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_privilege_passport:
                    type: object
                    example: []
                  a_privilege_staff:
                    type: object
                    example: []

  /Wl/Staff/StaffElementModel:
    post:
      tags:
      - Staff
      summary: Can create or edit a staff member in a business.
      description: >-
        Can create or edit a staff member in a business.
        <br /><br />
        You can also use this endpoint to get information about a staff member's activity in another business when using
        the [Wl\Business\BusinessModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Business/BusinessModel.php) endpoint.
      parameters:
        - name: k_staff
          description: >-
            The key of the staff member who is being created or edited.
            
            This will be `null` in cases where a new staff member is created.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_location</i></b> -
          The list of locations where the staff member works. Each element is a location key.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>dl_end</i></b> -
          Employment end date.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>dl_start</i></b> -
          Employment start date.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>id_gender</i></b> -
          Gender of staff member. One of [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
          
          `null` means to not change the current value of the field or set gender by default for new staff.
          <br/>
          <b><i>id_role</i></b> -
          ID of the default system role from [RsPrivilegeRoleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsPrivilegeRoleSid.php).
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>is_employ</i></b> -
          Whether the staff is currently employed.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>is_microsite</i></b> -
          Determines whether the staff member be shown on the directory site of the business.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>is_uid</i></b> -
          Whether the staff member can to sign in.
          <br/>
          <b><i>k_business</i></b> -
          The key of the business in which the staff member is being created or edited.
          This field is required.
          <br/>
          <b><i>k_business_role</i></b> -
          Business role key.
          
          `null` if not set.
          <br/>
          <b><i>k_city</i></b> -
          City key.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>k_location</i></b> -
          Home location key.
          
          `null` if not set.
          <br/>
          <b><i>text_address</i></b> -
          Address.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>text_biography</i></b> -
          Staff biography.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>text_city</i></b> -
          Custom city title.
          
          `null` means to not change the current value of the field or <var>k_city</var> is specified.
          <br/>
          <b><i>text_email</i></b> -
          The staff member's email address.
          This field is required when creating a new staff member.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>text_first_name</i></b> -
          The staff member's first name.
          This field is required when creating a new staff member.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>text_last_name</i></b> -
          The staff member's last name.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>text_password</i></b> -
          The password.
          This field is required when creating a new staff member.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>text_password_confirm</i></b> -
          Confirmation of the password.
          This field is required when creating a new staff member.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>text_phone_home</i></b> -
          Home phone.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>text_phone_mobile</i></b> -
          Cell phone.
          
          `null` means to not change the current value of the field.
          <br/>
          <b><i>text_position</i></b> -
          The staff member's job title.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>
          <b><i>text_postal</i></b> -
          The staff member's job title.
          
          If `null`, the current value of the field shouldn't be changed.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_location:
                  description: >- 
                    The list of locations where the staff member works. Each element is a location key.
                    
                    `null` means to not change the current value of the field.

                  type: object
                dl_end:
                  description: >- 
                    Employment end date.
                    
                    `null` means to not change the current value of the field.

                  type: string
                dl_start:
                  description: >- 
                    Employment start date.
                    
                    `null` means to not change the current value of the field.

                  type: string
                id_gender:
                  description: >- 
                    Gender of staff member. One of [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
                    
                    `null` means to not change the current value of the field or set gender by default for new staff.

                  type: integer
                id_role:
                  description: >- 
                    ID of the default system role from [RsPrivilegeRoleSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/RsPrivilegeRoleSid.php).
                    
                    `null` means to not change the current value of the field.

                  type: integer
                is_employ:
                  description: >- 
                    Whether the staff is currently employed.
                    
                    `null` means to not change the current value of the field.

                  type: integer
                is_microsite:
                  description: >- 
                    Determines whether the staff member be shown on the directory site of the business.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: integer
                is_uid:
                  description: >- 
                    Whether the staff member can to sign in.

                  type: integer
                k_business:
                  description: >- 
                    The key of the business in which the staff member is being created or edited.
                    This field is required.

                  type: string
                k_business_role:
                  description: >- 
                    Business role key.
                    
                    `null` if not set.

                  type: string
                k_city:
                  description: >- 
                    City key.
                    
                    `null` means to not change the current value of the field.

                  type: string
                k_location:
                  description: >- 
                    Home location key.
                    
                    `null` if not set.

                  type: string
                text_address:
                  description: >- 
                    Address.
                    
                    `null` means to not change the current value of the field.

                  type: string
                text_biography:
                  description: >- 
                    Staff biography.
                    
                    `null` means to not change the current value of the field.

                  type: string
                text_city:
                  description: >- 
                    Custom city title.
                    
                    `null` means to not change the current value of the field or <var>k_city</var> is specified.

                  type: string
                text_email:
                  description: >- 
                    The staff member's email address.
                    This field is required when creating a new staff member.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
                text_first_name:
                  description: >- 
                    The staff member's first name.
                    This field is required when creating a new staff member.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
                text_last_name:
                  description: >- 
                    The staff member's last name.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
                text_password:
                  description: >- 
                    The password.
                    This field is required when creating a new staff member.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
                text_password_confirm:
                  description: >- 
                    Confirmation of the password.
                    This field is required when creating a new staff member.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
                text_phone_home:
                  description: >- 
                    Home phone.
                    
                    `null` means to not change the current value of the field.

                  type: string
                text_phone_mobile:
                  description: >- 
                    Cell phone.
                    
                    `null` means to not change the current value of the field.

                  type: string
                text_position:
                  description: >- 
                    The staff member's job title.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
                text_postal:
                  description: >- 
                    The staff member's job title.
                    
                    If `null`, the current value of the field shouldn't be changed.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_staff</i></b> - The key of the staff member who is being created or edited.
            
            This will be `null` in cases where a new staff member is created.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_staff:
                    type: string
                    example: ""

  /Wl/Staff/StaffList/StaffListModel:
    get:
      tags:
      - Staff
      summary: Returns a list of all staff members working for a business.
      description: >-
        Returns a list of all staff members working for a business.
      parameters:
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_staff</i></b> - Information about staff members.
            Each array index is the staff member keys.
            Each array element is an array containing the following fields:
            <dl>
            <dt>
            string[] <var>a_pay_rate</var>
            </dt>
            <dd>
            A list of internal pay rate keys applicable to the staff member.
            </dd>
            <dt>
            string <var>html_name</var>
            </dt>
            <dd>
            Staff name.
            </dd>
            <dt>
            int <var>i_order</var>
            </dt>
            <dd>
            Order for sorting.
            </dd>
            <dt>
            string <var>k_staff</var>
            </dt>
            <dd>
            The staff key.
            </dd>
            <dt>
            string <var>s_name</var>
            </dt>
            <dd>
            The staff member first name.
            </dd>
            <dt>
            string <var>s_position</var>
            </dt>
            <dd>
            The staff member position in the organization.
            </dd>
            <dt>
            string <var>s_surname</var>
            </dt>
            <dd>
            The first letter of the staff member surname.
            </dd>
            <dt>
            string|null <var>s_surname_full</var>
            </dt>
            <dd>
            The entire surname of the staff member. This will be `null` if private staff member information isn't accessible.
            </dd>
            <dt>
            string <var>uid</var>
            </dt>
            <dd>
            The user key.
            Each staff member in WellnessLiving can also access the system as a client of their business.
            This is the key used to represent the staff member as a client.
            </dd>
            <dt>
            string <var>url_image</var>
            </dt>
            <dd>
            Url link to user photo, or empty string, if photo is not loaded.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_staff:
                    type: object
                    example: []

  /Wl/Staff/StaffView/StaffViewModel:
    get:
      tags:
      - Staff
      summary: Returns information about a specified staff member.
      description: >-
        Returns information about a specified staff member.
        <br /><br />
        This method can accept one staff key [Wl\Staff\StaffView\StaffViewModel::$k_staff](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Staff/StaffView/StaffViewModel.php) or a staff list
        [Wl\Staff\StaffView\StaffViewModel::$a_staff_list](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Staff/StaffView/StaffViewModel.php) but not both (an exception would be thrown).
      parameters:
        - name: a_staff_list
          description: >-
            A list of staff keys.

          in: query
          schema:
            type: string
        - name: i_image_height
          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 image will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: i_image_width
          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 will have default thumbnail size.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business to show information for.

          in: query
          schema:
            type: string
        - name: k_staff
          description: >-
            The staff member key.
            A staff member can work for more than one business. This key can be found using the
            [Wl\Staff\StaffList\StaffListModel](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Staff/StaffList/StaffListModel.php) endpoint.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_class_day</i></b> - An array containing information about the classes this staff member is running.
            Each element contains another array with three elements:
            
            <dl>
            <dt>
            array <var>a_class_period</var>
            </dt>
            <dd>
            A list of sessions in the day:
            <dl>
            <dt>string <var>dt_time</var></dt>
            <dd>The session start time in MySQL format.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The session duration in seconds.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The class name.</dd>
            </dl>
            </dd>
            <dt>int <var>i_day</var></dt>
            <dd>The day of week. One of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.</dd>
            </dl><br/>            <b><i>a_result_list</i></b> - An array listing the class sessions the staff member provides at each location.
            
            <dl>
            <dt>array <var>a_class_day</var></dt>
            <dd>
            Contains a schedule of classes per day:
            <dl>
            <dt>array <var>a_class_period</var></dt>
            <dd>A list of sessions in the day:<dl>
            <dt>string <var>dt_time</var></dt>
            <dd>The session start time in MySQL format.</dd>
            <dt>int <var>i_duration</var></dt>
            <dd>The session duration in seconds.</dd>
            <dt>string <var>s_title</var></dt>
            <dd>The class name.</dd>
            </dl></dd>
            <dt>int <var>i_day</var></dt>
            <dd>The day of week. One of [Core\a\ADateWeekSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/ADateWeekSid.php) constants.</dd>
            </dl>
            </dd>
            <dt>array <var>a_staff</var></dt>
            <dd>
            Staff information:
            <dl>
            <dt>int <var>id_gender</var></dt>
            <dd>The staff member's gender. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.</dd>
            <dt>string <var>s_biography</var></dt>
            <dd>A description of the staff member. This description can include HTML tags.</dd>
            <dt>string <var>s_family</var></dt>
            <dd>The staff member surname.</dd>
            <dt>string <var>s_name</var></dt>
            <dd>The staff member first name.</dd>
            <dt>string <var>s_position</var></dt>
            <dd>The staff member position in the organization.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The user ID. Each staff member in WellnessLiving can also access the system as a client of their business.
            This is the ID number used to represent the staff member as a client.</dd>
            </dl>
            </dd>
            </dl><br/>            <b><i>a_staff</i></b> - An array containing information about the staff member.
            
            <dl>
            <dt>array <var>a_photo</var></dt>
            <dd>Staff`s photo.</dd>
            <dt>int <var>id_gender</var></dt>
            <dd>The staff member's gender. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.</dd>
            <dt>string <var>k_location</var></dt>
            <dd>Staff`s current location.</dd>
            <dt>string <var>s_biography</var></dt>
            <dd>A description of the staff member. This description can include HTML tags.</dd>
            <dt>string <var>s_family</var></dt>
            <dd>The staff member surname.</dd>
            <dt>string <var>s_name</var></dt>
            <dd>The staff member first name.</dd>
            <dt>string <var>s_position</var></dt>
            <dd>The staff member position in the organization.</dd>
            <dt>string <var>uid</var></dt>
            <dd>
            The user ID. Each staff member in WellnessLiving can also access the system as a client of their business.
            This is the ID number used to represent the staff member as a client.
            </dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_class_day:
                    type: object
                    example: []
                  a_result_list:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []

  /Wl/Tag/TagListModel:
    get:
      tags:
      - Tag
      summary: Gets tags for a business.
      description: >-
        Gets tags for a business.
      parameters:
        - name: k_business
          description: >-
            The business key of the tags.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list</i></b> - The tag list.
            
            Each element has the next structure:<dl>
            <dt>string <var>k_tag</var> </dt>
            <dd>The tag key.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The tag title.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list:
                    type: object
                    example: []

  /Wl/Tax/TaxListModel:
    get:
      tags:
      - Tax
      summary: Retrieves a list of taxes for a business.
      description: >-
        Retrieves a list of taxes for a business.
      parameters:
        - name: k_business
          description: >-
            The key of the business for which to get a list of taxes.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list</i></b> - A list of taxes.
            
            Each element has the following structure:<dl>
            <dt>float <var>f_value</var> </dt>
            <dd>The amount of the tax.</dd>
            <dt>string <var>k_tax</var> </dt>
            <dd>The type of the tax, one of the [Wl\Tax\WlTaxSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Tax/WlTaxSid.php) constants.</dd>
            <dt>string <var>k_tax</var> </dt>
            <dd>The tax key.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The name of the tax.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list:
                    type: object
                    example: []

  /Wl/Tax/TaxModel:
    get:
      tags:
      - Tax
      summary: Returns tax information for a business.
      description: >-
        Returns tax information for a business.
      parameters:
        - name: k_tax
          description: >-
            The tax key to get information for.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>text_tax</i></b> - The tax title.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  text_tax:
                    type: string
                    example: ""

  /Wl/User/Info/UserInfoModel:
    get:
      tags:
      - User
      summary: Retrieves information about a WellnessLiving user.
      description: >-
        Retrieves information about a WellnessLiving user.
      parameters:
        - name: a_user_list
          description: >-
            A list of user keys.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The key of the business.
            This may be empty if system-wide information is needed.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            The key of the user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_photo</i></b> - Information about the user's photo. The information returned has the following structure:<dl>
            <dt>int <var>i_height</var></dt>
            <dd>The height of the photo.</dd>
            
            <dt>int <var>i_width</var></dt>
            <dd>The width of the photo.</dd>
            
            <dt>string <var>url_photo</var></dt>
            <dd>The URL of the photo.</dd>
            </dl><br/>            <b><i>a_result_list</i></b> - List of user's data.
            
            <dl>
            <dt>array <var>a_photo</var></dt>
            <dd>Information about the user's photo.</dd>
            <dt>string <var>dt_add</var></dt>
            <dd>The date the user was added, given in UTC time.</dd>
            <dt>string <var>dt_birth</var></dt>
            <dd>
            The user's birthday. This will be `null` if the birthday isn't set yet.
            </dd>
            <dt>int <var>id_gender</var></dt>
            <dd>The ID of the user's gender. One of the [\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/AGenderSid.php) constants.</dd>
            <dt>bool <var>is_customer_new</var></dt>
            <dd>
            This will be `true` if the user has never made purchases or reservations in this business.
            Otherwise, this will be `false`.
            </dd>
            <dt>bool <var>is_traveller</var></dt>
            <dd>
            This will be `true` if the user is a traveler. A traveler is someone whose home location isn't the current location
            in the Enterprise business.
            </dd>
            <dt>string <var>k_business</var></dt>
            <dd>
            The key of the business.
            This may be empty if system-wide information is needed.
            </dd>
            <dt>string <var>k_login_type</var></dt>
            <dd>The key of the login type. The login type describes the user's client type in this business.</dd>
            <dt>string <var>s_first_name</var></dt>
            <dd>The user's first name.</dd>
            <dt>string <var>s_last_name</var></dt>
            <dd>The user's last name.</dd>
            <dt>string <var>s_mail</var></dt>
            <dd>The user's email address.</dd>
            <dt>string <var>s_member</var></dt>
            <dd>
            The user's member ID in the business. Also referred to as the client ID in the client's profile. This value
            is set by the business and separate from the <var>uid</var> value.
            </dd>
            <dt>string <var>s_phone</var></dt>
            <dd>
            The user's phone number.
            </dd>
            <dt>string <var>s_phone_home</var></dt>
            <dd>The user's home phone number.</dd>
            <dt>string <var>s_phone_work</var></dt>
            <dd>The user's work phone number.</dd>
            <dt>string <var>uid</var></dt>
            <dd>The key of the user.</dd>
            <dt>string <var>url_photo</var></dt>
            <dd>The URL for the user's photo.</dd>
            </dl><br/>            <b><i>dt_add</i></b> - The date the user was added, given in UTC time.<br/>            <b><i>dt_birth</i></b> - The user's birthday. This will be `null` if the birthday isn't set yet.<br/>            <b><i>id_gender</i></b> - The ID of the user's gender. One of the [Core\a\AGenderSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/a/AGenderSid.php) constants.
            
            This will be `null` if the gender isn't set yet.<br/>            <b><i>is_customer_new</i></b> - This will be `true` if the user has never made purchases or reservations in this business.
            Otherwise, this will be `false`.<br/>            <b><i>is_traveller</i></b> - This will be `true` if the user is a traveler. A traveler is someone whose home location isn't the current location
            in the Enterprise business.<br/>            <b><i>k_login_type</i></b> - The key of the login type. The login type describes the user's client type in this business.<br/>            <b><i>s_first_name</i></b> - The user's first name.<br/>            <b><i>s_last_name</i></b> - The user's last name.<br/>            <b><i>s_mail</i></b> - The user's email address.<br/>            <b><i>s_member</i></b> - The user's member ID in the business. Also referred to as the client ID in the client's profile. This value
            is set by the business and separate from the <var>uid</var> value.<br/>            <b><i>s_phone</i></b> - The user's phone number.<br/>            <b><i>uid</i></b> - The key of the user.<br/>            <b><i>url_photo</i></b> - The URL for the user's photo.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_photo:
                    type: object
                    example: []
                  a_result_list:
                    type: object
                    example: []
                  dt_add:
                    type: string
                    example: ""
                  dt_birth:
                    type: string
                    example: ""
                  id_gender:
                    type: integer
                    example: 0
                  is_customer_new:
                    type: integer
                    example: 0
                  is_traveller:
                    type: integer
                    example: 0
                  k_login_type:
                    type: string
                    example: ""
                  s_first_name:
                    type: string
                    example: ""
                  s_last_name:
                    type: string
                    example: ""
                  s_mail:
                    type: string
                    example: ""
                  s_member:
                    type: string
                    example: ""
                  s_phone:
                    type: string
                    example: ""
                  uid:
                    type: string
                    example: ""
                  url_photo:
                    type: string
                    example: ""

  /Wl/User/Info/UserIntegrationModel:
    get:
      tags:
      - User
      summary: An endpoint that return the information about the integrations the user is connected to.
      description: >-
        An endpoint that return the information about the integrations the user is connected to.
      parameters:
        - name: k_business
          description: >-
            The key of the business.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            Key of the user.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_integration</i></b> - Information about the integrations the user is connected to. The information returned has the following structure:
            <dl>
            <dt>bool <var>is_classpass</var></dt>
            <dd>`true` if user use the Classpass integration, `false` - otherwise.</dd>
            <dt>bool <var>is_gympass</var></dt>
            <dd>`true` if user use the Gympass integration, `false` - otherwise.</dd>
            <dt>bool <var>is_reserve_with_google</var></dt>
            <dd>`true` if user use the Reserve With Google integration, `false` - otherwise.</dd>
            </dl>
            `null` if the user does not belong to any integration.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_integration:
                    type: object
                    example: []

  /Wl/User/Referrer/ReferrerModel:
    get:
      tags:
      - User
      summary: Searches for a referrer using a string.
      description: >-
        Searches for a referrer using a string.
      parameters:
        - name: k_business
          description: >-
            The key of the current business.

          in: query
          schema:
            type: string
        - name: s_search
          description: >-
            The string to be used for searching for a referrer.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_photo</i></b> - Information about the referrer's photo. The information returned has the following structure:
            <dl>
            <dt>
            int <var>i_height</var>
            </dt>
            <dd>
            The height of the photo.
            </dd>
            <dt>
            int <var>i_width</var>
            </dt>
            <dd>
            The width of the photo.
            </dd>
            <dt>
            string <var>url_photo</var>
            </dt>
            <dd>
            The URL of the photo.
            </dd>
            </dl><br/>            <b><i>s_email</i></b> - The email address of the referrer.<br/>            <b><i>s_member</i></b> - The business client ID of the referrer.<br/>            <b><i>s_name_first</i></b> - The first name of the referrer.<br/>            <b><i>s_name_last</i></b> - The last name of the referrer.<br/>            <b><i>s_phone</i></b> - The phone number of the referrer.<br/>            <b><i>uid_referrer</i></b> - The referrer's user key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_photo:
                    type: object
                    example: []
                  s_email:
                    type: string
                    example: ""
                  s_member:
                    type: string
                    example: ""
                  s_name_first:
                    type: string
                    example: ""
                  s_name_last:
                    type: string
                    example: ""
                  s_phone:
                    type: string
                    example: ""
                  uid_referrer:
                    type: string
                    example: ""

  /Wl/Video/Category/CategoryElementModel:
    get:
      tags:
      - Video
      summary: Saves video categories.
      description: >-
        Saves video categories.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_category
          description: >-
            The category key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_login_type</i></b> - A list of client and member types who can access videos from the category.<br/>            <b><i>a_member_group</i></b> - A list of member groups who can access videos from the category.<br/>            <b><i>i_order</i></b> - The category's placement in the business's list of categories.<br/>            <b><i>is_cloud_recording</i></b> - This will be `true` if the video category is for cloud session recordings. Otherwise, this will be `false`.<br/>            <b><i>is_login_type</i></b> - This will be `true` if some client or member types can grant access to the video category. Otherwise, this will be
            `false`.<br/>            <b><i>is_member_group</i></b> - This will be `true` if some member groups can grant access to the video category.
            Otherwise, this will be `false` if no member groups can grant access to the video category.<br/>            <b><i>k_video_category</i></b> - The category key.<br/>            <b><i>text_title</i></b> - The category name.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_login_type:
                    type: object
                    example: []
                  a_member_group:
                    type: object
                    example: []
                  i_order:
                    type: integer
                    example: 0
                  is_cloud_recording:
                    type: integer
                    example: 0
                  is_login_type:
                    type: integer
                    example: 0
                  is_member_group:
                    type: integer
                    example: 0
                  k_video_category:
                    type: string
                    example: ""
                  text_title:
                    type: string
                    example: ""
    put:
      tags:
      - Video
      summary: Saves video categories.
      description: >-
        Saves video categories.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_category
          description: >-
            The category key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_login_type</i></b> -
          A list of client and member types who can access videos from the category.
          <br/>
          <b><i>a_member_group</i></b> -
          A list of member groups who can access videos from the category.
          <br/>
          <b><i>is_cloud_recording</i></b> -
          This will be `true` if the video category is for cloud session recordings. Otherwise, this will be `false`.
          <br/>
          <b><i>is_login_type</i></b> -
          This will be `true` if some client or member types can grant access to the video category. Otherwise, this will be
          `false`.
          <br/>
          <b><i>is_member_group</i></b> -
          This will be `true` if some member groups can grant access to the video category.
          Otherwise, this will be `false` if no member groups can grant access to the video category.
          <br/>
          <b><i>text_title</i></b> -
          The category name.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_login_type:
                  description: >- 
                    A list of client and member types who can access videos from the category.

                  type: object
                a_member_group:
                  description: >- 
                    A list of member groups who can access videos from the category.

                  type: object
                is_cloud_recording:
                  description: >- 
                    This will be `true` if the video category is for cloud session recordings. Otherwise, this will be `false`.

                  type: integer
                is_login_type:
                  description: >- 
                    This will be `true` if some client or member types can grant access to the video category. Otherwise, this will be
                    `false`.

                  type: integer
                is_member_group:
                  description: >- 
                    This will be `true` if some member groups can grant access to the video category.
                    Otherwise, this will be `false` if no member groups can grant access to the video category.

                  type: integer
                text_title:
                  description: >- 
                    The category name.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_video_category</i></b> - The category key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_video_category:
                    type: string
                    example: ""
    delete:
      tags:
      - Video
      summary: Saves video categories.
      description: >-
        Saves video categories.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_category
          description: >-
            The category key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Video/Category/CategoryListModel:
    put:
      tags:
      - Video
      summary: Returns a list of video categories.
      description: >-
        Returns a list of video categories.
      parameters:
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_order</i></b> -
          A list of shared video category keys displayed in the order to be saved.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_order:
                  description: >- 
                    A list of shared video category keys displayed in the order to be saved.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Video
      summary: Returns a list of video categories.
      description: >-
        Returns a list of video categories.
      parameters:
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: is_skip_empty_group
          description: >-
            If `true`, groups that are missing videos won't be displayed. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: text_filter
          description: >-
            The filter phrase used to filter categories by name.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_video_category</i></b> - The business video library categories as found in [Wl\Video\Category\CategoryListModel::$k_business](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/Category/CategoryListModel.php).
            
            Each element has the following structure: <dl>
            <dt>bool <var>can_delete</var></dt>
            <dd>Determines whether the video category can be deleted.</dd>
            <dt>int <var>i_video</var></dt>
            <dd>The number of videos.</dd>
            <dt>string <var>k_video_category</var></dt>
            <dd>The key of the video category.</dd>
            <dt>string <var>k_video_category_full</var></dt>
            <dd>The string key of the video category.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The title of the category.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_video_category:
                    type: object
                    example: []

  /Wl/Video/Level/LevelListModel:
    get:
      tags:
      - Video
      summary: Changes the order of video levels.
      description: >-
        Changes the order of video levels.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_level_list</i></b> - A list of video levels with the following structure: <dl>
            <dt>string <var>k_video_level</var></dt>
            <dd>The video level key.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The video level title.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_level_list:
                    type: object
                    example: []
    put:
      tags:
      - Video
      summary: Changes the order of video levels.
      description: >-
        Changes the order of video levels.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_order</i></b> -
          A list of video level keys in the order to be saved.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_order:
                  description: >- 
                    A list of video level keys in the order to be saved.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Video/Level/LevelModel:
    delete:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video level.
      description: >-
        Retrieves, changes, or deletes a video level.
      parameters:
        - name: is_delete_confirm
          description: >-
            If `true`, confirmation is required to delete videos. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_level
          description: >-
            The video level key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video level.
      description: >-
        Retrieves, changes, or deletes a video level.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_level
          description: >-
            The video level key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video level.
      description: >-
        Retrieves, changes, or deletes a video level.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_level
          description: >-
            The video level key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_title</i></b> -
          The video level title.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_title:
                  description: >- 
                    The video level title.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_video_level</i></b> - The video level key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_video_level:
                    type: string
                    example: ""
    put:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video level.
      description: >-
        Retrieves, changes, or deletes a video level.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_level
          description: >-
            The video level key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_title</i></b> -
          The video level title.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_title:
                  description: >- 
                    The video level title.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Video/Tag/TagListModel:
    get:
      tags:
      - Video
      summary: Retrieves video tags.
      description: >-
        Retrieves video tags.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_tag_list</i></b> - A list of video tags with the following structure: <dl>
            <dt>string <var>k_video_tag</var></dt>
            <dd>The video tag key.</dd>
            <dt>string <var>text_title</var></dt>
            <dd>The video tag title.</dd>
            </dl><br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_tag_list:
                    type: object
                    example: []

  /Wl/Video/Tag/TagModel:
    delete:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video tag.
      description: >-
        Retrieves, changes, or deletes a video tag.
      parameters:
        - name: is_delete_confirm
          description: >-
            If `true`, confirmation is required to delete videos. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_tag
          description: >-
            The video tag key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    get:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video tag.
      description: >-
        Retrieves, changes, or deletes a video tag.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_tag
          description: >-
            The video tag key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video tag.
      description: >-
        Retrieves, changes, or deletes a video tag.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_tag
          description: >-
            The video tag key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_title</i></b> -
          The video tag title.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_title:
                  description: >- 
                    The video tag title.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_video_tag</i></b> - The video tag key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_video_tag:
                    type: string
                    example: ""
    put:
      tags:
      - Video
      summary: Retrieves, changes, or deletes a video tag.
      description: >-
        Retrieves, changes, or deletes a video tag.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video_tag
          description: >-
            The video tag key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>text_title</i></b> -
          The video tag title.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text_title:
                  description: >- 
                    The video tag title.

                  type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Video/VideoElementModel:
    get:
      tags:
      - Video
      summary: Returns a list of video categories.
      description: >-
        Returns a list of video categories.
      parameters:
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video
          description: >-
            The video key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_location</i></b> - The keys of the locations where this video is available.<br/>            <b><i>a_staff</i></b> - The keys of the staff members who are on the video.<br/>            <b><i>a_staff_info</i></b> - A list of staff members associated with the video. Every item has the following structure:<dl>
            <dt>string <var>k_staff</var></dt>
            <dd>The staff member key.</dd>
            <dt>string <var>text_name</var></dt>
            <dd>The staff member's full name.</dd>
            </dl><br/>            <b><i>a_video_category</i></b> - The video category keys where this video can be found.<br/>            <b><i>a_video_tag</i></b> - The video tag keys.<br/>            <b><i>dtl_publish</i></b> - The date and time when the video was published.
            
            This will be `null` if the published date is not set yet.<br/>            <b><i>dtl_unpublish</i></b> - The date and time when the video was unpublished.
            
            This will be `null` if the unpublished date is not set yet.<br/>            <b><i>dtl_upload</i></b> - The date when the video was uploaded.<br/>            <b><i>i_calorie</i></b> - The count of burned calories associated with the video.<br/>            <b><i>i_current_percent</i></b> - The current time as a percentage of the video duration at which the user is at in the video.<br/>            <b><i>i_current_time</i></b> - The current time in seconds at which the user is at in the video.<br/>            <b><i>i_duration</i></b> - The video duration in seconds.<br/>            <b><i>i_watch</i></b> - The number of video views.<br/>            <b><i>id_location_select</i></b> - [Core\Sid\YesNoSid::NO](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Sid/YesNoSid.php) if the video is available in all locations.
            [Core\Sid\YesNoSid::YES](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Sid/YesNoSid.php) if the video is available only in certain locations.<br/>            <b><i>is_calorie</i></b> - If `true`, the calorie count will be displayed on the video.
            If `false`, the calorie count will be hidden on the video.<br/>            <b><i>is_converted</i></b> - If `true`, the video is converted.
            If `false`, the video isn't converted.<br/>            <b><i>is_published</i></b> - If `true`, the video is published. Otherwise, this will be `false`.<br/>            <b><i>is_video_level</i></b> - If `true`, the video level for the video is enabled.
            If `false`, the video level for the video is disabled.<br/>            <b><i>k_video_category_primary</i></b> - The video category primary key.<br/>            <b><i>k_video_level</i></b> - The video level key.
            This will be `0` if `All Levels` is selected.<br/>            <b><i>s_preview_video_key</i></b> - The string representation of the video's key.
            
            This will be `null` if the video doesn't have a thumbnail image.<br/>            <b><i>show_calorie</i></b> - If `false`, the calorie count for videos is hidden. Otherwise, this will be `true`.<br/>            <b><i>show_level</i></b> - If `false`, video levels are hidden. Otherwise, this will be `true`.<br/>            <b><i>show_view</i></b> - If `false`, the number of views for videos is hidden. Otherwise, this will be `true`.<br/>            <b><i>text_level_title</i></b> - The video level name.<br/>            <b><i>text_title</i></b> - The video name.<br/>            <b><i>url_thumbnail</i></b> - The URL of the video thumbnail.<br/>            <b><i>url_video</i></b> - The URL of the video on a WellnessLiving page.<br/>            <b><i>url_video_direct</i></b> - The direct URL of the video.<br/>            <b><i>url_video_frame</i></b> - The direct URL of the video for iframe.<br/>            <b><i>xml_description</i></b> - The video description.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_location:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  a_staff_info:
                    type: object
                    example: []
                  a_video_category:
                    type: object
                    example: []
                  a_video_tag:
                    type: object
                    example: []
                  dtl_publish:
                    type: string
                    example: ""
                  dtl_unpublish:
                    type: string
                    example: ""
                  dtl_upload:
                    type: string
                    example: ""
                  i_calorie:
                    type: integer
                    example: 0
                  i_current_percent:
                    type: integer
                    example: 0
                  i_current_time:
                    type: integer
                    example: 0
                  i_duration:
                    type: integer
                    example: 0
                  i_watch:
                    type: integer
                    example: 0
                  id_location_select:
                    type: integer
                    example: 0
                  is_calorie:
                    type: integer
                    example: 0
                  is_converted:
                    type: integer
                    example: 0
                  is_published:
                    type: integer
                    example: 0
                  is_video_level:
                    type: integer
                    example: 0
                  k_video_category_primary:
                    type: string
                    example: ""
                  k_video_level:
                    type: string
                    example: ""
                  s_preview_video_key:
                    type: string
                    example: ""
                  show_calorie:
                    type: integer
                    example: 0
                  show_level:
                    type: integer
                    example: 0
                  show_view:
                    type: integer
                    example: 0
                  text_level_title:
                    type: string
                    example: ""
                  text_title:
                    type: string
                    example: ""
                  url_thumbnail:
                    type: string
                    example: ""
                  url_video:
                    type: string
                    example: ""
                  url_video_direct:
                    type: string
                    example: ""
                  url_video_frame:
                    type: string
                    example: ""
                  xml_description:
                    type: string
                    example: ""
    post:
      tags:
      - Video
      summary: Returns a list of video categories.
      description: >-
        Returns a list of video categories.
      parameters:
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: is_converted
          description: >-
            If `true`, the video is converted.
            If `false`, the video isn't converted.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video
          description: >-
            The video key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_location</i></b> -
          The keys of the locations where this video is available.
          <br/>
          <b><i>a_staff</i></b> -
          The keys of the staff members who are on the video.
          <br/>
          <b><i>a_video_category</i></b> -
          The video category keys where this video can be found.
          <br/>
          <b><i>a_video_tag</i></b> -
          The video tag keys.
          <br/>
          <b><i>dtl_publish</i></b> -
          The date and time when the video was published.
          
          This will be `null` if the published date is not set yet.
          <br/>
          <b><i>dtl_unpublish</i></b> -
          The date and time when the video was unpublished.
          
          This will be `null` if the unpublished date is not set yet.
          <br/>
          <b><i>file_video</i></b> -
          Video file.
          This property is not used, but need for correct generate model.
          <br/>
          <b><i>i_calorie</i></b> -
          The count of burned calories associated with the video.
          <br/>
          <b><i>i_duration</i></b> -
          The video duration in seconds.
          <br/>
          <b><i>i_file_upload_size</i></b> -
          The size of the uploaded file.
          
          If the file will be uploaded in parts, its size will be set.
          
          In this case, the file will not be uploaded to this API.
          Method [Wl\Video\VideoElementModel::_fileVideoGet()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/VideoElementModel.php) will not return the result.
          <br/>
          <b><i>id_location_select</i></b> -
          [Core\Sid\YesNoSid::NO](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Sid/YesNoSid.php) if the video is available in all locations.
          [Core\Sid\YesNoSid::YES](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Sid/YesNoSid.php) if the video is available only in certain locations.
          <br/>
          <b><i>is_calorie</i></b> -
          If `true`, the calorie count will be displayed on the video.
          If `false`, the calorie count will be hidden on the video.
          <br/>
          <b><i>is_video_level</i></b> -
          If `true`, the video level for the video is enabled.
          If `false`, the video level for the video is disabled.
          <br/>
          <b><i>k_video_category_primary</i></b> -
          The video category primary key.
          <br/>
          <b><i>k_video_level</i></b> -
          The video level key.
          This will be `0` if `All Levels` is selected.
          <br/>
          <b><i>s_command</i></b> -
          The name of the command that has been executing when the exception occurred.
          <br/>
          <b><i>s_file_upload_id</i></b> -
          ID of the uploaded file.
          If the file will be uploaded in parts, upload ID will be set.
          
          In this case, the file will not be uploaded to this API.
          Method [Wl\Video\VideoElementModel::_fileVideoGet()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/VideoElementModel.php) will not return the result.
          <br/>
          <b><i>s_file_upload_name</i></b> -
          The real name of the uploaded file.
          
          If the file will be uploaded in parts, its name will be set.
          
          In this case, the file won't be uploaded to this API and the POST method won't
          return the result.
          <br/>
          <b><i>s_thumbnail</i></b> -
          The video thumbnail.
          <br/>
          <b><i>text_title</i></b> -
          The video name.
          <br/>
          <b><i>xml_description</i></b> -
          The video description.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_location:
                  description: >- 
                    The keys of the locations where this video is available.

                  type: object
                a_staff:
                  description: >- 
                    The keys of the staff members who are on the video.

                  type: object
                a_video_category:
                  description: >- 
                    The video category keys where this video can be found.

                  type: object
                a_video_tag:
                  description: >- 
                    The video tag keys.

                  type: object
                dtl_publish:
                  description: >- 
                    The date and time when the video was published.
                    
                    This will be `null` if the published date is not set yet.

                  type: string
                dtl_unpublish:
                  description: >- 
                    The date and time when the video was unpublished.
                    
                    This will be `null` if the unpublished date is not set yet.

                  type: string
                file_video:
                  description: >- 
                    Video file.
                    This property is not used, but need for correct generate model.

                  type: string
                i_calorie:
                  description: >- 
                    The count of burned calories associated with the video.

                  type: integer
                i_duration:
                  description: >- 
                    The video duration in seconds.

                  type: integer
                i_file_upload_size:
                  description: >- 
                    The size of the uploaded file.
                    
                    If the file will be uploaded in parts, its size will be set.
                    
                    In this case, the file will not be uploaded to this API.
                    Method [Wl\Video\VideoElementModel::_fileVideoGet()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/VideoElementModel.php) will not return the result.

                  type: integer
                id_location_select:
                  description: >- 
                    [Core\Sid\YesNoSid::NO](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Sid/YesNoSid.php) if the video is available in all locations.
                    [Core\Sid\YesNoSid::YES](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Core/Sid/YesNoSid.php) if the video is available only in certain locations.

                  type: integer
                is_calorie:
                  description: >- 
                    If `true`, the calorie count will be displayed on the video.
                    If `false`, the calorie count will be hidden on the video.

                  type: integer
                is_video_level:
                  description: >- 
                    If `true`, the video level for the video is enabled.
                    If `false`, the video level for the video is disabled.

                  type: integer
                k_video_category_primary:
                  description: >- 
                    The video category primary key.

                  type: string
                k_video_level:
                  description: >- 
                    The video level key.
                    This will be `0` if `All Levels` is selected.

                  type: string
                s_command:
                  description: >- 
                    The name of the command that has been executing when the exception occurred.

                  type: string
                s_file_upload_id:
                  description: >- 
                    ID of the uploaded file.
                    If the file will be uploaded in parts, upload ID will be set.
                    
                    In this case, the file will not be uploaded to this API.
                    Method [Wl\Video\VideoElementModel::_fileVideoGet()](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/VideoElementModel.php) will not return the result.

                  type: string
                s_file_upload_name:
                  description: >- 
                    The real name of the uploaded file.
                    
                    If the file will be uploaded in parts, its name will be set.
                    
                    In this case, the file won't be uploaded to this API and the POST method won't
                    return the result.

                  type: string
                s_thumbnail:
                  description: >- 
                    The video thumbnail.

                  type: string
                text_title:
                  description: >- 
                    The video name.

                  type: string
                xml_description:
                  description: >- 
                    The video description.

                  type: string
      responses:
        '200':
          description: >-
            <b><i>k_video</i></b> - The video key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_video:
                    type: string
                    example: ""
    delete:
      tags:
      - Video
      summary: Returns a list of video categories.
      description: >-
        Returns a list of video categories.
      parameters:
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_video
          description: >-
            The video key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Video/VideoListModel:
    get:
      tags:
      - Video
      summary: Returns a list of videos.
      description: >-
        Returns a list of videos.
      parameters:
        - name: a_calorie
          description: >-
            The calorie range ascribed to the video to use for the search.
            
            <dl>
            <dt>int [<var>i_from</var>]</dt>
            <dd>The minimum number of calories.</dd>
            <dt>int [<var>i_to</var>]</dt>
            <dd>The maximum number of calories.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: a_duration
          description: >-
            The duration range ascribed to the video to use for the search.
            The interval is set in seconds.
            
            <dl>
            <dt>int [<var>i_from</var>]</dt>
            <dd>The minimum duration. </dd>
            <dt>int [<var>i_to</var>]</dt>
            <dd>The maximum duration.</dd>
            </dl>

          in: query
          schema:
            type: string
        - name: a_level
          description: >-
            A list of levels to show videos for. A level can refer to the difficulty ascribed to the video.

          in: query
          schema:
            type: string
        - name: a_location
          description: >-
            A list of locations to show videos from.

          in: query
          schema:
            type: string
        - name: a_staff
          description: >-
            A list of staff members who appear in videos.

          in: query
          schema:
            type: string
        - name: a_video_category
          description: >-
            A list of video categories to show videos from.

          in: query
          schema:
            type: string
        - name: a_video_tag
          description: >-
            A list of video tags to show videos for.

          in: query
          schema:
            type: string
        - name: id_sort
          description: >-
            The sorting type.
            A constant from [Wl\Video\Catalog\Filter\Sort\FilterSortSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/Catalog/Filter/Sort/FilterSortSid.php).

          in: query
          schema:
            type: string
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: text_search
          description: >-
            The filter phrase to filter videos by name.

          in: query
          schema:
            type: string
        - name: uid
          description: >-
            UID of the client who request list of videos.
            
            `null` if user is not signed in.
            
            *NOTE: Not used directly in API, needed for [Wl\Video\VideoListModel::KEY](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Video/VideoListModel.php) constant.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_list</i></b> - A list of videos.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_list:
                    type: object
                    example: []
    put:
      tags:
      - Video
      summary: Returns a list of videos.
      description: >-
        Returns a list of videos.
      parameters:
        - name: is_backend
          description: >-
            If `true`, the API is being used from backend. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>a_order</i></b> -
          A list of shared video keys in their saved order.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                a_order:
                  description: >- 
                    A list of shared video keys in their saved order.

                  type: object
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Video/Watch/WatchModel:
    post:
      tags:
      - Video
      summary: Saves information about a watched video.
      description: >-
        Saves information about a watched video.

      requestBody:
        description: >-
              <b><i>i_current_time</i></b> -
              The current time in seconds the user is at in the video.
              <br/>
              <b><i>id_source</i></b> -
              The source ID.
              <br/>
              <b><i>k_business</i></b> -
              The business key.
              <br/>
              <b><i>k_video</i></b> -
              The video string key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    i_current_time:
                      description: >- 
                        The current time in seconds the user is at in the video.

                      type: integer
                    id_source:
                      description: >- 
                        The source ID.

                      type: integer
                    k_business:
                      description: >- 
                        The business key.

                      type: string
                    k_video:
                      description: >- 
                        The video string key.

                      type: string
      responses:
        '200':
          description: >-
            <b><i>k_video_watch</i></b> - The video watch key.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  k_video_watch:
                    type: string
                    example: ""
    put:
      tags:
      - Video
      summary: Saves information about a watched video.
      description: >-
        Saves information about a watched video.

      requestBody:
        description: >-
              <b><i>i_current_time</i></b> -
              The current time in seconds the user is at in the video.
              <br/>
              <b><i>i_watched</i></b> -
              The duration in seconds the user has watched the video for.
              <br/>
              <b><i>k_business</i></b> -
              The business key.
              <br/>
              <b><i>k_video_watch</i></b> -
              The video watch key.
              <br/>

        required: true
        content:
              application/json:
                schema:
                  type: object
                  properties:
                    i_current_time:
                      description: >- 
                        The current time in seconds the user is at in the video.

                      type: integer
                    i_watched:
                      description: >- 
                        The duration in seconds the user has watched the video for.

                      type: integer
                    k_business:
                      description: >- 
                        The business key.

                      type: string
                    k_video_watch:
                      description: >- 
                        The video watch key.

                      type: string
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

  /Wl/Visit/VisitStatusModel:
    get:
      tags:
      - Visit
      summary: Views or changes the visit status.
      description: >-
        Views or changes the visit status.
      parameters:
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_timezone
          description: >-
            The time zone key.
            
            This will be `null` if not set yet (use the client's default time zone).

          in: query
          schema:
            type: string
        - name: k_visit
          description: >-
            The visit key.

          in: query
          schema:
            type: string
      responses:
        '200':
          description: >-
            <b><i>a_resource</i></b> - An array of service resources.
            
            The key refers to the `k_resource_type`.
            The value is an array with the following key: `k_resource`.
            The array element contains a nested array with `i_index` and `i_quantity`.
            
            This will be empty if not set yet.<br/>            <b><i>a_staff</i></b> - The list of keys of staff members that conduct the class.<br/>            <b><i>dt_date</i></b> - The visit date and time in UTC and in MySQL format.<br/>            <b><i>dtl_date</i></b> - The visit date in the location's time zone and in MySQL format.<br/>            <b><i>i_duration</i></b> - The service duration (in minutes).<br/>            <b><i>i_wait_spot</i></b> - The client's place in a waiting list.<br/>            <b><i>id_mode</i></b> - The source of the visit or the visit change.
            One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
            If you're unsure about the value to use, keep the default value.<br/>            <b><i>id_visit</i></b> - The status of the visit.
            One of the [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.<br/>            <b><i>is_event</i></b> - Determines whether the visit is from an event.<br/>            <b><i>k_class</i></b> - The class key.<br/>            <b><i>k_class_period</i></b> - The class period key.<br/>            <b><i>k_service</i></b> - The service key.
            If 'null', the visit isn't from an appointment.<br/>            <b><i>k_staff</i></b> - The key of the staff providing the appointment.
            If `null`, the visit isn't from an appointment (for example, the visit is from an asset).<br/>            <b><i>s_calendar_file_content</i></b> - The .ics file for adding the service to a phone calendar.<br/>            <b><i>text_abbr_timezone</i></b> - The text abbreviation of the time zone.<br/>            <b><i>text_location</i></b> - The full address of the location for the visit (not the name of the location).<br/>            <b><i>text_staff</i></b> - The full name of the staff member who conducts this visit.
            If there are several staff members conducting the visit, their names will all be listed and separated by commas.<br/>            <b><i>text_title</i></b> - The service title.<br/>
          content:
            application/json:
              schema:
                type: object
                properties:
                  a_resource:
                    type: object
                    example: []
                  a_staff:
                    type: object
                    example: []
                  dt_date:
                    type: string
                    example: ""
                  dtl_date:
                    type: string
                    example: ""
                  i_duration:
                    type: integer
                    example: 0
                  i_wait_spot:
                    type: integer
                    example: 0
                  id_mode:
                    type: integer
                    example: 0
                  id_visit:
                    type: integer
                    example: 0
                  is_event:
                    type: integer
                    example: 0
                  k_class:
                    type: string
                    example: ""
                  k_class_period:
                    type: string
                    example: ""
                  k_service:
                    type: string
                    example: ""
                  k_staff:
                    type: string
                    example: ""
                  s_calendar_file_content:
                    type: string
                    example: ""
                  text_abbr_timezone:
                    type: string
                    example: ""
                  text_location:
                    type: string
                    example: ""
                  text_staff:
                    type: string
                    example: ""
                  text_title:
                    type: string
                    example: ""
    post:
      tags:
      - Visit
      summary: Views or changes the visit status.
      description: >-
        Views or changes the visit status.
      parameters:
        - name: is_charge_fee
          description: >-
            The staff decision to charge (or not charge) a penalty when a client meets late cancel/no-show requirements.
            
            If `true`, a late cancel fee should be charged. Otherwise, this will be `false`.

          in: query
          schema:
            type: string
        - name: k_business
          description: >-
            The business key.

          in: query
          schema:
            type: string
        - name: k_mail_pattern_live
          description: >-
            The email pattern key.
            If `null`, the live email pattern shouldn't be used.

          in: query
          schema:
            type: string
        - name: k_visit
          description: >-
            The visit key.

          in: query
          schema:
            type: string
        - name: text_reason
          description: >-
            The reason the visit was canceled.

          in: query
          schema:
            type: string

      requestBody:
        description: >-
          <b><i>id_mode</i></b> -
          The source of the visit or the visit change.
          One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
          If you're unsure about the value to use, keep the default value.
          <br/>
          <b><i>id_visit</i></b> -
          The status of the visit.
          One of the [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.
          <br/>
          <b><i>id_visit_from</i></b> -
          The status of the visit from which the transition is made. One of the [Wl\Visit\WlVisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/WlVisitSid.php) constants.
          
          If the visit status is passed, it will be used to check with the actual status in the database.
          If `null`, the visit hasn't yet passed.
          
          If the status of this parameter is out of date, the API call will refresh it.
          <br/>

        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id_mode:
                  description: >- 
                    The source of the visit or the visit change.
                    One of the [Wl\Mode\ModeSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Mode/ModeSid.php) constants.
                    If you're unsure about the value to use, keep the default value.

                  type: integer
                id_visit:
                  description: >- 
                    The status of the visit.
                    One of the [Wl\Visit\VisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/VisitSid.php) constants.

                  type: integer
                id_visit_from:
                  description: >- 
                    The status of the visit from which the transition is made. One of the [Wl\Visit\WlVisitSid](https://github.com/wellnessliving/wl-sdk/blob/master/WellnessLiving/Wl/Visit/WlVisitSid.php) constants.
                    
                    If the visit status is passed, it will be used to check with the actual status in the database.
                    If `null`, the visit hasn't yet passed.
                    
                    If the status of this parameter is out of date, the API call will refresh it.

                  type: integer
      responses:
        '200':
          description: >-

          content:
            application/json:
              schema:
                type: object

