openapi: 3.0.0
servers:
  - url: https://api.paylocity.com/api
info:
  contact:
    email: webservices@paylocity.com
  description: "For general questions and support of the API, contact: webservices@paylocity.com\r

    # Overview\r

    \r

    Paylocity Web Services API is an externally facing RESTful Internet protocol. The Paylocity API uses HTTP verbs and a RESTful endpoint structure. OAuth 2.0 is used as the API Authorization framework. Request and response payloads are formatted as JSON.\r

    Paylocity supports v1 and v2 versions of its API endpoints. v1, while supported, won't be enhanced with additional functionality. For direct link to v1 documentation, please click [here](https://docs.paylocity.com/weblink/guides/Paylocity_Web_Services_API/v1/Paylocity_Web_Services_API.htm). For additional resources regarding v1/v2 differences and conversion path, please contact webservices@paylocity.com.\r

    \r

    ##### Setup\r

    \r

    Paylocity will provide the secure client credentials and set up the scope (type of requests and allowed company numbers). You will receive the unique client id, secret, and Paylocity public key for the data encryption. The secret will expire in 365 days. \r

    * Paylocity will send you an e-mail 10 days prior to the expiration date for the current secret. If not renewed, the second e-mail notification will be sent 5 days prior to secret's expiration. Each email will contain the code necessary to renew the client secret. \r

    * You can obtain the new secret by calling API endpoint using your current not yet expired credentials and the code that was sent with the notification email. For details on API endpoint, please see Client Credentials section. \r

    * Both the current secret value and the new secret value will be recognized during the transition period. After the current secret expires, you must use the new secret. \r

    * If you were unable to renew the secret via API endpoint, you can still contact Service and they will email you new secret via secure email.\r

    \r

    \r

    When validating the request, Paylocity API will honor the defaults and required fields set up for the company default New Hire Template as defined in Web Pay.\r

    \r

    \r

    # Authorization\r

    \r

    Paylocity Web Services API uses OAuth2.0 Authentication with JSON Message Format.\r

    \r

    \r

    All requests of the Paylocity Web Services API require a bearer token which can be obtained by authenticating the client with the Paylocity Web Services API via OAuth 2.0.\r

    \r

    \r

    The client must request a bearer token from the authorization endpoint:\r

    \r

    \r

    auth-server for production: https://api.paylocity.com/IdentityServer/connect/token\r

    \r

    \r

    auth-server for testing: https://apisandbox.paylocity.com/IdentityServer/connect/token\r

    \r

    Paylocity reserves the right to impose rate limits on the number of calls made to our APIs. Changes to API features/functionality may be made at anytime with or without prior notice.\r

    \r

    ##### Authorization Header\r

    \r

    The request is expected to be in the form of a basic authentication request, with the \"Authorization\" header containing the client-id and client-secret. This means the standard base-64 encoded user:password, prefixed with \"Basic\" as the value for the Authorization header, where user is the client-id and password is the client-secret.\r

    \r

    ##### Content-Type Header\r

    \r

    The \"Content-Type\" header is required to be \"application/x-www-form-urlencoded\".\r

    \r

    ##### Additional Values\r

    \r

    The request must post the following form encoded values within the request body:\r

    \r

    \    grant_type = client_credentials\r

    \    scope = WebLinkAPI\r

    \r

    ##### Responses\r

    \r

    Success will return HTTP 200 OK with JSON content:\r

    \r

    \    {\r

    \      \"access_token\": \"xxx\",\r

    \      \"expires_in\": 3600,\r

    \      \"token_type\": \"Bearer\"\r

    \    }\r

    \r

    # Encryption\r

    \r

    Paylocity uses a combination of RSA and AES cryptography. As part of the setup, each client is issued a public RSA key.\r

    \r

    Paylocity recommends the encryption of the incoming requests as additional protection of the sensitive data. Clients can opt-out of the encryption during the initial setup process. Opt-out will allow Paylocity to process unencrypted requests.\r

    \r

    The Paylocity Public Key has the following properties:\r

    \r

    * 2048 bit key size\r

    \r

    * PKCS1 key format\r

    \r

    * PEM encoding\r

    \r

    ##### Properties\r

    \r

    * key (base 64 encoded): The AES symmetric key encrypted with the Paylocity Public Key. It is the key used to encrypt the content. Paylocity will decrypt the AES key using RSA decryption and use it to decrypt the content.\r

    \r

    * iv (base 64 encoded): The AES IV (Initialization Vector) used when encrypting the content.\r

    \r

    * content (base 64 encoded): The AES encrypted request. The key and iv provided in the secureContent request are used by Paylocity for decryption of the content.\r

    \r

    We suggest using the following for the AES:\r

    \r

    * CBC cipher mode\r

    \r

    * PKCS7 padding\r

    \r

    * 128 bit block size\r

    \r

    * 256 bit key size\r

    \r

    ##### Encryption Flow\r

    \r

    * Generate the unencrypted JSON payload to POST/PUT\r

    * Encrypt this JSON payload using your _own key and IV_ (NOT with the Paylocity public key)\r

    * RSA encrypt the _key_ you used in step 2 with the Paylocity Public Key, then, base64 encode the result\r

    * Base64 encode the IV used to encrypt the JSON payload in step 2\r

    * Put together a \"securecontent\" JSON object:\r

    \ \r

    {\r

    \  'secureContent' : {\r

    \    'key' : -- RSA-encrypted & base64 encoded key from step 3,\r

    \    'iv' : -- base64 encoded iv from step 4\r

    \    'content' -- content encrypted with your own key from step 2, base64 encoded\r

    \  }\r

    }\r

    \r

    ##### Sample Example\r

    \r

    \    {\r

    \      \"secureContent\": {\r

    \        \"key\": \"eS3aw6H/qzHMJ00gSi6gQ3xa08DPMazk8BFY96Pd99ODA==\",\r

    \        \"iv\": \"NLyXMGq9svw0XO5aI9BzWw==\",\r

    \        \"content\": \"gAEOiQltO1w+LzGUoIK8FiYbU42hug94EasSl7N+Q1w=\"\r

    \      }\r

    \    }\r

    \r

    ##### Sample C# Code\r

    \r

    \    using Newtonsoft.Json;\r

    \    using System;\r

    \    using System.IO;\r

    \    using System.Security.Cryptography;\r

    \    using System.Text;\r

    \r

    \    public class SecuredContent\r

    \    {\r

    \      [JsonProperty(\"key\")]\r

    \      public string Key { get; set; }\r

    \r

    \      [JsonProperty(\"iv\")]\r

    \      public string Iv { get; set; }\r

    \r

    \      [JsonProperty(\"content\")]\r

    \      public string Content { get; set; }\r

    \r

    \    }\r

    \r

    \    public class EndUserSecureRequestExample\r

    \    {\r

    \      public string CreateSecuredRequest(FileInfo paylocityPublicKey, string unsecuredJsonRequest)\r

    \      {\r

    \        string publicKeyXml = File.ReadAllText(paylocityPublicKey.FullName, Encoding.UTF8);\r

    \r

    \        SecuredContent secureContent = this.CreateSecuredContent(publicKeyXml, unsecuredJsonRequest);\r

    \r

    \        string secureRequest = JsonConvert.SerializeObject(new { secureContent });\r

    \r

    \        return secureRequest;\r

    \      }\r

    \r

    \      private SecuredContent CreateSecuredContent(string publicKeyXml, string request)\r

    \      {\r

    \        using (AesCryptoServiceProvider aesCsp = new AesCryptoServiceProvider())\r

    \        {\r

    \          aesCsp.Mode = CipherMode.CBC;\r

    \          aesCsp.Padding = PaddingMode.PKCS7;\r

    \          aesCsp.BlockSize = 128;\r

    \          aesCsp.KeySize = 256;\r

    \r

    \          using (ICryptoTransform crt = aesCsp.CreateEncryptor(aesCsp.Key, aesCsp.IV))\r

    \          {\r

    \            using (MemoryStream outputStream = new MemoryStream())\r

    \            {\r

    \              using (CryptoStream encryptStream = new CryptoStream(outputStream, crt, CryptoStreamMode.Write))\r

    \              {\r

    \                byte[] encodedRequest = Encoding.UTF8.GetBytes(request);\r

    \                encryptStream.Write(encodedRequest, 0, encodedRequest.Length);\r

    \                encryptStream.FlushFinalBlock();\r

    \                byte[] encryptedRequest = outputStream.ToArray();\r

    \r

    \                using (RSACryptoServiceProvider crp = new RSACryptoServiceProvider())\r

    \                {\r

    \                  crp.FromXmlstring(publicKeyXml);\r

    \                  byte[] encryptedKey = crp.Encrypt(aesCsp.Key, false);\r

    \r

    \                  return new SecuredContent()\r

    \                  {\r

    \                    Key = Convert.ToBase64string(encryptedKey),\r

    \                    Iv = Convert.ToBase64string(aesCsp.IV),\r

    \                    Content = Convert.ToBase64string(encryptedRequest)\r

    \                  };\r

    \                }\r

    \              }\r

    \            }\r

    \          }\r

    \        }\r

    \      }\r

    \    }\r

    \r

    ## Support\r

    \r

    Questions about using the Paylocity API? Please contact webservices@paylocity.com.\r

    \r

    # Deductions (v1)\r

    \r

    Deductions API provides endpoints to retrieve, add, update and delete deductions for a company's employees. For schema details, click <a href=\"https://docs.paylocity.com/weblink/guides/Paylocity_Web_Services_API/v1/Paylocity_Web_Services_API.htm\" target=\"_blank\">here</a>.\r

    \r

    # OnBoarding (v1)\r

    \r

    Onboarding API sends employee data into Paylocity Onboarding to help ensure an easy and accurate hiring process for subsequent completion into Web Pay. For schema details, click <a href=\"https://docs.paylocity.com/weblink/guides/Paylocity_Web_Services_API/v1/Paylocity_Web_Services_API.htm\" target=\"_blank\">here</a>."
  title: Paylocity API
  version: "2"
  x-apisguru-categories:
    - financial
  x-logo:
    url: https://twitter.com/paylocity/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://api.paylocity.com/api/v2/openapi
      version: "3.0"
  x-providerName: paylocity.com
paths:
  "/v2/companies/{companyId}/codes/{codeResource}":
    get:
      description: Get All Company Codes for the selected company and resource
      operationId: Get All Company Codes and Descriptions by Resource
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Type of Company Code. Common values costcenter1, costcenter2, costcenter3, deductions, earnings, taxes, paygrade, positions.
          in: path
          name: codeResource
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/companyCodes"
                type: array
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Invalid Code Resource
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get All Company Codes
      tags:
        - Company Codes
  "/v2/companies/{companyId}/customfields/{category}":
    get:
      description: Get All Custom Fields for the selected company
      operationId: Get All Custom Fields by category
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Custom Fields Category
          in: path
          name: category
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/customFieldDefinition"
                type: array
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Invalid Category
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get All Custom Fields
      tags:
        - Custom Fields
  "/v2/companies/{companyId}/employees":
    post:
      description: New Employee API sends new employee data directly to Web Pay. Companies who use the New Hire Template in Web Pay may require additional fields when hiring employees. New Employee API Requests will honor these required fields.
      operationId: Add employee
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/employee"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employeeIdResponse"
          description: Successfully added
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add new employee
      tags:
        - Employee
  "/v2/companies/{companyId}/employees/":
    get:
      description: Get All Employees API will return employee data currently available in Web Pay.
      operationId: Get all employees
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Number of records per page. Default value is 25.
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
        - description: Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0.
          in: query
          name: pagenumber
          required: false
          schema:
            type: integer
        - description: Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true.
          in: query
          name: includetotalcount
          required: false
          schema:
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/employeeInfo"
                type: array
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The company does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get all employees
      tags:
        - Employee
  "/v2/companies/{companyId}/employees/{employeeId}":
    get:
      description: Get Employee API will return employee data currently available in Web Pay.
      operationId: Get employee
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employee"
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The employee does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get employee
      tags:
        - Employee
    patch:
      description: Update Employee API will update existing employee data in WebPay.
      operationId: Update employee
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/employee"
      responses:
        "200":
          description: Successfully Updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Update employee
      tags:
        - Employee
  "/v2/companies/{companyId}/employees/{employeeId}/additionalRates":
    put:
      description: Sends new or updated employee additional rates information directly to Web Pay.
      operationId: Add or update additional rates
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/additionalRate"
        description: Additional Rate Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/update additional rates
      tags:
        - Additional Rates
  "/v2/companies/{companyId}/employees/{employeeId}/benefitSetup":
    put:
      description: Sends new or updated employee benefit setup information directly to Web Pay.
      operationId: Update or add employee benefit setup
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/benefitSetup"
        description: BenefitSetup Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/update employee's benefit setup
      tags:
        - Employee Benefit Setup
  "/v2/companies/{companyId}/employees/{employeeId}/directDeposit":
    get:
      description: Get All Direct Deposit returns main direct deposit and all additional direct depositsfor the selected employee.
      operationId: Get All Direct Deposit
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/directDeposit"
                type: array
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The employee, or direct deposit does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get All Direct Deposit
      tags:
        - Direct Deposit
  "/v2/companies/{companyId}/employees/{employeeId}/earnings":
    get:
      description: Get All Earnings returns all earnings for the selected employee.
      operationId: Get All Earnings
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/earning"
                type: array
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get All Earnings
      tags:
        - Earnings
    put:
      description: Add/Update Earning API sends new or updated employee earnings information directly to Web Pay.
      operationId: Add or update an employee earning
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/earning"
        description: Earning Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/Update Earning
      tags:
        - Earnings
  "/v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode}":
    get:
      description: Get Earnings returns all earnings with the provided earning code for the selected employee.
      operationId: Get Earnings by Earning Code
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: Earning Code
          in: path
          name: earningCode
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/earning"
                type: array
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get Earnings by Earning Code
      tags:
        - Earnings
  "/v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode}/{startDate}":
    delete:
      description: Delete Earning by Earning Code and Start Date
      operationId: Delete Earning by Earning Code and Start Date
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: Earning Code
          in: path
          name: earningCode
          required: true
          schema:
            type: string
        - description: Start Date
          in: path
          name: startDate
          required: true
          schema:
            type: string
      responses:
        "204":
          description: Successfully deleted
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist, or the specified earningCode-startDate combination does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Delete Earning by Earning Code and Start Date
      tags:
        - Earnings
    get:
      description: Get Earnings returns the single earning with the provided earning code and start date for the selected employee.
      operationId: Get Earning by Earning Code and Start Date
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: Earning Code
          in: path
          name: earningCode
          required: true
          schema:
            type: string
        - description: Start Date
          in: path
          name: startDate
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/earning"
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist, or the specified earningCode-startDate combination does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get Earning by Earning Code and Start Date
      tags:
        - Earnings
  "/v2/companies/{companyId}/employees/{employeeId}/emergencyContacts":
    put:
      description: Sends new or updated employee emergency contacts directly to Web Pay.
      operationId: Add or update emergency contacts
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/emergencyContact"
        description: Emergency Contact Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/update emergency contacts
      tags:
        - Emergency Contacts
  "/v2/companies/{companyId}/employees/{employeeId}/localTaxes":
    get:
      description: Returns all local taxes for the selected employee.
      operationId: Get all local taxes
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/localTax"
                type: array
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get all local taxes
      tags:
        - Local Taxes
    post:
      description: Sends new employee local tax information directly to Web Pay.
      operationId: Add local tax
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/localTax"
        description: LocalTax Model
        required: true
      responses:
        "201":
          description: Successfully added
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add new local tax
      tags:
        - Local Taxes
  "/v2/companies/{companyId}/employees/{employeeId}/localTaxes/{taxCode}":
    delete:
      description: Delete local tax by tax code
      operationId: Delete local tax by tax code
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: Tax Code
          in: path
          name: taxCode
          required: true
          schema:
            type: string
      responses:
        "204":
          description: Successfully deleted
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist, or the specified tax code does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Delete local tax by tax code
      tags:
        - Local Taxes
    get:
      description: Returns all local taxes with the provided tax code for the selected employee.
      operationId: Get local tax by tax code
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: Tax Code
          in: path
          name: taxCode
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/localTax"
                type: array
          description: Successfully retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: The employee does not exist, or the specified tax code does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get local taxes by tax code
      tags:
        - Local Taxes
  "/v2/companies/{companyId}/employees/{employeeId}/nonprimaryStateTax":
    put:
      description: Sends new or updated employee non-primary state tax information directly to Web Pay.
      operationId: Add or update non-primary state tax
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/nonPrimaryStateTax"
        description: Non-Primary State Tax Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/update non-primary state tax
      tags:
        - Non-Primary State Tax
  "/v2/companies/{companyId}/employees/{employeeId}/paystatement/details/{year}":
    get:
      description: Get pay statement details API will return employee pay statement details data currently available in Web Pay for the specified year.
      operationId: Gets employee pay statement detail data based on the specified year
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: The year for which to retrieve pay statement data
          in: path
          name: year
          required: true
          schema:
            type: string
        - description: Number of records per page. Default value is 25.
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
        - description: Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0.
          in: query
          name: pagenumber
          required: false
          schema:
            type: integer
        - description: Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true.
          in: query
          name: includetotalcount
          required: false
          schema:
            type: boolean
        - description: Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW.
          in: query
          name: codegroup
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/payStatementDetails"
                type: array
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The employee, specified year, or check date does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get employee pay statement details data for the specified year.
      tags:
        - PayStatements
  "/v2/companies/{companyId}/employees/{employeeId}/paystatement/details/{year}/{checkDate}":
    get:
      description: Get pay statement details API will return employee pay statement detail data currently available in Web Pay for the specified year and check date.
      operationId: Gets employee pay statement detail data based on the specified year and check date
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: The year for which to retrieve pay statement data
          in: path
          name: year
          required: true
          schema:
            type: string
        - description: The check date for which to retrieve pay statement data
          in: path
          name: checkDate
          required: true
          schema:
            type: string
        - description: Number of records per page. Default value is 25.
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
        - description: Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0.
          in: query
          name: pagenumber
          required: false
          schema:
            type: integer
        - description: Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true.
          in: query
          name: includetotalcount
          required: false
          schema:
            type: boolean
        - description: Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW.
          in: query
          name: codegroup
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/payStatementDetails"
                type: array
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The employee, specified year, or check date does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get employee pay statement details data for the specified year and check date.
      tags:
        - PayStatements
  "/v2/companies/{companyId}/employees/{employeeId}/paystatement/summary/{year}":
    get:
      description: Get pay statement summary API will return employee pay statement summary data currently available in Web Pay for the specified year.
      operationId: Gets employee pay statement summary data based on the specified year
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: The year for which to retrieve pay statement data
          in: path
          name: year
          required: true
          schema:
            type: string
        - description: Number of records per page. Default value is 25.
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
        - description: Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0.
          in: query
          name: pagenumber
          required: false
          schema:
            type: integer
        - description: Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true.
          in: query
          name: includetotalcount
          required: false
          schema:
            type: boolean
        - description: Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW.
          in: query
          name: codegroup
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/payStatementSummary"
                type: array
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The employee, specified year, or check date does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get employee pay statement summary data for the specified year.
      tags:
        - PayStatements
  "/v2/companies/{companyId}/employees/{employeeId}/paystatement/summary/{year}/{checkDate}":
    get:
      description: Get pay statement summary API will return employee pay statement summary data currently available in Web Pay for the specified year and check date.
      operationId: Gets employee pay statement summary data based on the specified year and check date
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
        - description: The year for which to retrieve pay statement data
          in: path
          name: year
          required: true
          schema:
            type: string
        - description: The check date for which to retrieve pay statement data
          in: path
          name: checkDate
          required: true
          schema:
            type: string
        - description: Number of records per page. Default value is 25.
          in: query
          name: pagesize
          required: false
          schema:
            type: integer
        - description: Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0.
          in: query
          name: pagenumber
          required: false
          schema:
            type: integer
        - description: Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true.
          in: query
          name: includetotalcount
          required: false
          schema:
            type: boolean
        - description: Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW.
          in: query
          name: codegroup
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/payStatementSummary"
                type: array
          description: Successfully Retrieved
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: The employee, specified year, or check date does not exist
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get employee pay statement summary data for the specified year and check date.
      tags:
        - PayStatements
  "/v2/companies/{companyId}/employees/{employeeId}/primaryStateTax":
    put:
      description: Sends new or updated employee primary state tax information directly to Web Pay.
      operationId: Add or update primary state tax
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/stateTax"
        description: Primary State Tax Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/update primary state tax
      tags:
        - Primary State Tax
  "/v2/companies/{companyId}/employees/{employeeId}/sensitivedata":
    get:
      description: Gets employee sensitive data information directly from Web Pay.
      operationId: Get sensitive data
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/sensitiveData"
                type: array
          description: Successfully Retrieved
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get sensitive data
      tags:
        - Sensitive Data
    put:
      description: Sends new or updated employee sensitive data information directly to Web Pay.
      operationId: Add or update Sensitive Data
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
        - description: Employee Id
          in: path
          name: employeeId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/sensitiveData"
        description: Sensitive Data Model
        required: true
      responses:
        "200":
          description: Successfully added or updated
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add/update sensitive data
      tags:
        - Sensitive Data
  "/v2/companies/{companyId}/openapi":
    get:
      description: The company-specific Open API endpoint allows the client to GET an Open API document for the Paylocity API that is customized with company-specific resource schemas. These customized resource schemas define certain properties as enumerations of pre-defined values that correspond to the company's setup with Web Pay. The customized schemas also indicate which properties are required by the company within Web Pay.<br  />To learn more about Open API, click [here](https://www.openapis.org/)
      operationId: Get company-specific Open API documentation
      parameters:
        - description: Bearer + JWT
          in: header
          name: Authorization
          required: true
          schema:
            type: string
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successfully retrieved
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Get Company-Specific Open API Documentation
      tags:
        - Company-Specific Schema
  /v2/credentials/secrets:
    post:
      description: Obtain new client secret for Paylocity-issued client id. See Setup section for details.
      operationId: Add Client Secret
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/addClientSecret"
        description: Add Client Secret Model
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/clientCredentialsResponse"
                type: array
          description: Successfully added
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Obtain new client secret.
      tags:
        - Client Credentials
  "/v2/weblinkstaging/companies/{companyId}/employees/newemployees":
    post:
      description: Add new employee to Web Link will send partially completed or potentially erroneous new hire record to Web Link, where it can be corrected and competed by company administrator or authorized Paylocity Service Bureau employee.
      operationId: Add new employee to Web Link
      parameters:
        - description: Company Id
          in: path
          name: companyId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/stagedEmployee"
        description: StagedEmployee Model
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/trackingNumberResponse"
                type: array
          description: Successfully Added
        "400":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Bad Request
        "403":
          description: Forbidden
        "429":
          description: Too Many Requests
        "500":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/error"
                type: array
          description: Internal Server Error
      security:
        - paylocity_auth:
            - WebLinkAPI
      summary: Add new employee to Web Link
      tags:
        - Employee Staging
components:
  requestBodies:
    employee:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/employee"
      description: Employee Model
      required: true
  schemas:
    addClientSecret:
      description: The Add Client Secret Request Model
      properties:
        code:
          description: "A value sent with the 'ACTION NEEDED: Web Link API Credentials Expiring Soon.' email notification."
          type: string
      required:
        - code
      type: object
    additionalRate:
      additionalProperties: false
      description: The additional pay rate model
      properties:
        changeReason:
          description: Not required. If populated, must match one of the system coded values available in the Additional Rates Change Reason drop down.<br />
          nullable: true
          type: string
        costCenter1:
          description: Not required. Valid values must match one of the system coded cost centers available in the Additional Rates Cost Center level 1 drop down. This cell must be in a text format.<br />
          nullable: true
          type: string
        costCenter2:
          description: Not required. Valid values must match one of the system coded cost centers available in the Additional Rates Cost Center level 2 drop down. This cell must be in a text format.<br />
          nullable: true
          type: string
        costCenter3:
          description: Not required. Valid values must match one of the system coded cost centers available in the Additional Rates Cost Center level 3 drop down. This cell must be in a text format.<br />
          nullable: true
          type: string
        effectiveDate:
          description: Required. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
          format: paylocity-date
          nullable: true
          type: string
        endCheckDate:
          description: Not required. Must match one of the system coded check dates available in the Additional Rates End Check Date drop down. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
          format: paylocity-date
          nullable: true
          type: string
        job:
          description: Not required. If populated, must match one of the system coded values available in the Additional Rates Job drop down.<br />
          nullable: true
          type: string
        rate:
          description: Required. Enter dollar amount that corresponds to the Per selection.<br />
          nullable: true
          type: number
        rateCode:
          description: Required. If populated, must match one of the system coded values available in the Additional Rates Rate Code drop down.<br />
          nullable: true
          type: string
        rateNotes:
          description: "Not required.<br  />Max length: 4000<br />"
          nullable: true
          type: string
        ratePer:
          description: Required. Valid values are HOUR or WEEK.<br />
          nullable: true
          type: string
        shift:
          description: Not required. If populated, must match one of the system coded values available in the Additional Rates Shift drop down.<br />
          nullable: true
          type: string
      type: object
    benefitSetup:
      additionalProperties: false
      description: The benefit setup model
      properties:
        benefitClass:
          description: "Benefit Class code. Values are configured in Web Pay Company > Setup > Benefits > Classes.<br  />Max length: 30"
          nullable: true
          type: string
        benefitClassEffectiveDate:
          description: Date when Benefit Class takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
          format: paylocity-date
          nullable: true
          type: string
        benefitSalary:
          description: Salary used to configure benefits.<br  />Decimal(12,2)
          nullable: true
          type: number
        benefitSalaryEffectiveDate:
          description: Date when Benefit Salary takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
          format: paylocity-date
          nullable: true
          type: string
        doNotApplyAdministrativePeriod:
          description: Applicable only for HR Enhanced clients and Benefit Classes with ACA Employment Type of Full Time.
          nullable: true
          type: boolean
        isMeasureAcaEligibility:
          description: Only valid for HR Enhanced clients and Benefit Classes that are ACA Employment Type of Full Time.
          nullable: true
          type: boolean
      type: object
    clientCredentialsResponse:
      additionalProperties: false
      description: The Client Credentials Response Model
      properties:
        clientSecret:
          description: The client's secret
          nullable: true
          type: string
        clientSecretExpirationDate:
          description: The client's secret expiration date
          format: paylocity-date
          nullable: true
          type: string
      type: object
    companyCodes:
      additionalProperties: false
      description: The Company Codes model
      properties:
        code:
          description: "Code.<br  /> Max length: 40"
          nullable: true
          type: string
        description:
          description: "Description. <br  /> Max length: 150"
          nullable: true
          type: string
      type: object
    customFieldDefinition:
      description: ""
      properties:
        category:
          description: The custom field category.
          type: string
        defaultValue:
          description: Specifies the default value of the custom field.
          type: string
        isRequired:
          description: Indicates whether the custom field is required.
          type: boolean
        label:
          description: The custom field label.
          type: string
        type:
          description: The custom field type.
          type: string
        values:
          description: A set of values that are applicable to the custom field.
          items:
            description: ""
            properties:
              code:
                description: The custom field code.
                type: string
              description:
                description: The custom field description.
                type: string
            type: object
          type: array
      type: object
    directDeposit:
      additionalProperties: false
      description: The Direct Deposit model
      properties:
        additionalDirectDeposit:
          description: Additional Direct Deposits that are not the main Direct Deposit.
          items:
            additionalProperties: false
            description: The additional direct deposit model
            properties:
              accountNumber:
                description: "Account number, entered without special characters and spaces. <br  />Max length: 17<br />"
                nullable: true
                type: string
              accountType:
                description: "Account type. Valid values are *C* (Checking), *S* (Saving), *P* (Pay Card). <br   />Max length: 1<br />"
                nullable: true
                type: string
              amount:
                description: Amount value to be deposited to the account.<br  />Decimal (12,2)<br />
                nullable: true
                type: number
              amountType:
                description: "Amount type to indicate the context of the amount. Common values are *F* (FLAT), *F-* (Net Minus), *P* (Percent). <br  /> Max length: 5<br />"
                nullable: true
                type: string
              blockSpecial:
                description: Indicates if direct deposit should be blocked when special check types such as Bonus are processed.<br />
                nullable: true
                type: boolean
              isSkipPreNote:
                description: Indicates if account will not pre-note.<br />
                nullable: true
                type: boolean
              nameOnAccount:
                description: "Name on the bank account. Defaults to employee's name. <br  />Max length: 30<br />"
                nullable: true
                type: string
              preNoteDate:
                description: Date to end the pre-note of the account. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
                format: paylocity-date
                nullable: true
                type: string
              routingNumber:
                description: "ABA Transit Routing Number, entered without dashes or spaces. <br  />Max length: 9<br />"
                nullable: true
                type: string
            type: object
          type: array
        mainDirectDeposit:
          additionalProperties: false
          description: The main Direct Deposit account.
          properties:
            accountNumber:
              description: "Account number, entered without special characters and spaces. <br  />Max length: 17"
              nullable: true
              type: string
            accountType:
              description: "Account type. Valid values are *C* (Checking), *S* (Saving), *P* (Pay Card). <br   />Max length: 1"
              nullable: true
              type: string
            blockSpecial:
              description: Indicates if direct deposit should be blocked when special check types such as Bonus are processed.<br />
              nullable: true
              type: boolean
            isSkipPreNote:
              description: Indicates if account will not pre-note.
              nullable: true
              type: boolean
            nameOnAccount:
              description: "Name on the bank account. Defaults to employee's name. <br  />Max length: 30<br />"
              nullable: true
              type: string
            preNoteDate:
              description: Date to end the pre-note of the account. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            routingNumber:
              description: "ABA Transit Routing Number, entered without dashes or spaces. <br  />Max length: 9"
              nullable: true
              type: string
          type: object
      type: object
    earning:
      additionalProperties: false
      description: The employee earning model
      properties:
        agency:
          description: "Third-party agency associated with earning. Must match Company setup.<br  />Max length: 10"
          nullable: true
          type: string
        amount:
          description: Value that matches CalculationCode to add to gross wages. For percentage (%), enter whole number (10 = 10%).  <br  />Decimal(12,2)
          nullable: true
          type: number
        annualMaximum:
          description: Year to Date dollar amount not to be exceeded for an earning in the calendar year. Used only with company driven maximums. <br  />Decimal(12,2)
          nullable: true
          type: number
        calculationCode:
          description: "Defines how earnings are calculated. Common values are *% (percentage of gross), flat (flat dollar amount)*. Defaulted to the Company setup calcCode for earning. <br  />Max length: 20"
          nullable: true
          type: string
        costCenter1:
          description: "Cost Center associated with earning. Must match Company setup.<br  /> Max length: 10"
          nullable: true
          type: string
        costCenter2:
          description: "Cost Center associated with earning. Must match Company setup.<br  /> Max length: 10"
          nullable: true
          type: string
        costCenter3:
          description: "Cost Center associated with earning. Must match Company setup.<br  /> Max length: 10"
          nullable: true
          type: string
        earningCode:
          description: "Earning code. Must match Company setup. <br  />Max length: 10"
          nullable: true
          type: string
        effectiveDate:
          description: Date earning is active. Defaulted to run date or check date based on Company setup. Common formats are MM-DD-CCYY, CCYY-MM-DD.
          format: paylocity-date
          nullable: true
          type: string
        endDate:
          description: Stop date of an earning. Common formats are MM-DD-CCYY, CCYY-MM-DD.
          format: paylocity-date
          nullable: true
          type: string
        frequency:
          description: "Needed if earning is applied differently from the payroll frequency (one time earning for example).<br  /> Max length: 5"
          nullable: true
          type: string
        goal:
          description: Dollar amount. The employee earning will stop when the goal amount is reached.<br  /> Decimal(12,2)
          nullable: true
          type: number
        hoursOrUnits:
          description: The value is used in conjunction with the Rate field. When entering Group Term Life Insurance (GTL), it should contain the full amount of the group term life insurance policy. <br  /> Decimal(12,2)
          nullable: true
          type: number
        isSelfInsured:
          description: Used for ACA. If not entered, defaulted to Company earning setup.
          nullable: true
          type: boolean
        jobCode:
          description: "Job code associated with earnings. Must match Company setup.<br  /> Max length: 20"
          nullable: true
          type: string
        miscellaneousInfo:
          description: "Information to print on the check stub if agency is set up for this earning. <br  />Max length: 50"
          nullable: true
          type: string
        paidTowardsGoal:
          description: Amount already paid to employee toward goal. <br  /> Decimal(12,2)
          nullable: true
          type: number
        payPeriodMaximum:
          description: Maximum amount of the earning on a single paycheck. <br  /> Decimal(12,2)
          nullable: true
          type: number
        payPeriodMinimum:
          description: Minimum amount of the earning on a single paycheck. <br  /> Decimal(12,2)
          nullable: true
          type: number
        rate:
          description: Rate is used in conjunction with the hoursOrUnits field. <br  /> Decimal(12,2)
          nullable: true
          type: number
        rateCode:
          description: "Rate Code applies to additional pay rates entered for an employee. Must match Company setup. <br  /> Max length: 10"
          nullable: true
          type: string
        startDate:
          description: Start date of an earning based on payroll calendar. Common formats are MM-DD-CCYY, CCYY-MM-DD.
          format: paylocity-date
          nullable: true
          type: string
      required:
        - earningCode
        - startDate
      type: object
    emergencyContact:
      additionalProperties: false
      description: The emergency contact model
      properties:
        address1:
          description: 1st address line.
          nullable: true
          type: string
        address2:
          description: 2nd address line.
          nullable: true
          type: string
        city:
          description: City.
          nullable: true
          type: string
        country:
          description: County.
          nullable: true
          type: string
        county:
          description: Country.  Must be a valid 3 character country code.  Common values are *USA* (United States), *CAN* (Canada).
          nullable: true
          type: string
        email:
          description: Contact email.  Must be valid email address format.
          nullable: true
          type: string
        firstName:
          description: "Required. Contact first name. <br  />Max length: 40"
          nullable: true
          type: string
        homePhone:
          description: "Contact Home Phone.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
          nullable: true
          type: string
        lastName:
          description: "Required. Contact last name. <br  />Max length: 40"
          nullable: true
          type: string
        mobilePhone:
          description: "Contact Mobile Phone.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
          nullable: true
          type: string
        notes:
          description: "Notes. <br  />Max length: 1000"
          nullable: true
          type: string
        pager:
          description: "Contact Pager.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
          nullable: true
          type: string
        primaryPhone:
          description: Required. Contact primary phone type.  Must match Company setup.  Valid  values are H (Home), M (Mobile), P (Pager), W (Work)
          nullable: true
          type: string
        priority:
          description: Required. Contact priority. Valid values are *P* (Primary) or *S* (Secondary).
          nullable: true
          type: string
        relationship:
          description: Required. Contact relationship.  Must match Company setup.  Common values are Spouse, Mother, Father.
          nullable: true
          type: string
        state:
          description: State or Province.  If U.S. address, must be valid 2 character state code.  Common values are *IL* (Illinois), *CA* (California).
          nullable: true
          type: string
        syncEmployeeInfo:
          description: Valid values are *true* or *false*.
          type: boolean
        workExtension:
          description: Work Extension.
          nullable: true
          type: string
        workPhone:
          description: "Contact Work Phone.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
          nullable: true
          type: string
        zip:
          description: Postal code.  If U.S. address, must be a valid zip code.
          nullable: true
          type: string
      required:
        - firstName
        - lastName
      type: object
    employee:
      additionalProperties: false
      description: The employee model
      properties:
        additionalDirectDeposit:
          description: "Add up to 19 direct deposit accounts in addition to the main direct deposit account. IMPORTANT: A direct deposit update will remove ALL existing main and additional direct deposit information in WebPay and replace with information provided on the request. GET API will not return direct deposit data."
          items:
            additionalProperties: false
            description: The additional direct deposit model
            properties:
              accountNumber:
                description: "Account number, entered without special characters and spaces. <br  />Max length: 17<br />"
                nullable: true
                type: string
              accountType:
                description: "Account type. Valid values are *C* (Checking), *S* (Saving), *P* (Pay Card). <br   />Max length: 1<br />"
                nullable: true
                type: string
              amount:
                description: Amount value to be deposited to the account.<br  />Decimal (12,2)<br />
                nullable: true
                type: number
              amountType:
                description: "Amount type to indicate the context of the amount. Common values are *F* (FLAT), *F-* (Net Minus), *P* (Percent). <br  /> Max length: 5<br />"
                nullable: true
                type: string
              blockSpecial:
                description: Indicates if direct deposit should be blocked when special check types such as Bonus are processed.<br />
                nullable: true
                type: boolean
              isSkipPreNote:
                description: Indicates if account will not pre-note.<br />
                nullable: true
                type: boolean
              nameOnAccount:
                description: "Name on the bank account. Defaults to employee's name. <br  />Max length: 30<br />"
                nullable: true
                type: string
              preNoteDate:
                description: Date to end the pre-note of the account. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
                format: paylocity-date
                nullable: true
                type: string
              routingNumber:
                description: "ABA Transit Routing Number, entered without dashes or spaces. <br  />Max length: 9<br />"
                nullable: true
                type: string
            type: object
          maxItems: 19
          type: array
        additionalRate:
          description: Add Additional Rates.
          items:
            additionalProperties: false
            description: The additional pay rate model
            properties:
              changeReason:
                description: Not required. If populated, must match one of the system coded values available in the Additional Rates Change Reason drop down.<br />
                nullable: true
                type: string
              costCenter1:
                description: Not required. Valid values must match one of the system coded cost centers available in the Additional Rates Cost Center level 1 drop down. This cell must be in a text format.<br />
                nullable: true
                type: string
              costCenter2:
                description: Not required. Valid values must match one of the system coded cost centers available in the Additional Rates Cost Center level 2 drop down. This cell must be in a text format.<br />
                nullable: true
                type: string
              costCenter3:
                description: Not required. Valid values must match one of the system coded cost centers available in the Additional Rates Cost Center level 3 drop down. This cell must be in a text format.<br />
                nullable: true
                type: string
              effectiveDate:
                description: Required. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
                format: paylocity-date
                nullable: true
                type: string
              endCheckDate:
                description: Not required. Must match one of the system coded check dates available in the Additional Rates End Check Date drop down. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
                format: paylocity-date
                nullable: true
                type: string
              job:
                description: Not required. If populated, must match one of the system coded values available in the Additional Rates Job drop down.<br />
                nullable: true
                type: string
              rate:
                description: Required. Enter dollar amount that corresponds to the Per selection.<br />
                nullable: true
                type: number
              rateCode:
                description: Required. If populated, must match one of the system coded values available in the Additional Rates Rate Code drop down.<br />
                nullable: true
                type: string
              rateNotes:
                description: "Not required.<br  />Max length: 4000<br />"
                nullable: true
                type: string
              ratePer:
                description: Required. Valid values are HOUR or WEEK.<br />
                nullable: true
                type: string
              shift:
                description: Not required. If populated, must match one of the system coded values available in the Additional Rates Shift drop down.<br />
                nullable: true
                type: string
            type: object
          type: array
        benefitSetup:
          additionalProperties: false
          description: " Add or update setup values used for employee benefits integration, insurance plan settings, and ACA reporting."
          properties:
            benefitClass:
              description: "Benefit Class code. Values are configured in Web Pay Company > Setup > Benefits > Classes.<br  />Max length: 30"
              nullable: true
              type: string
            benefitClassEffectiveDate:
              description: Date when Benefit Class takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            benefitSalary:
              description: Salary used to configure benefits.<br  />Decimal(12,2)
              nullable: true
              type: number
            benefitSalaryEffectiveDate:
              description: Date when Benefit Salary takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            doNotApplyAdministrativePeriod:
              description: Applicable only for HR Enhanced clients and Benefit Classes with ACA Employment Type of Full Time.
              nullable: true
              type: boolean
            isMeasureAcaEligibility:
              description: Only valid for HR Enhanced clients and Benefit Classes that are ACA Employment Type of Full Time.
              nullable: true
              type: boolean
          type: object
        birthDate:
          description: Employee birthdate. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
          format: paylocity-date
          nullable: true
          type: string
        coEmpCode:
          description: "Unique idenifier for SSO.<br  />Max length: 20"
          nullable: true
          type: string
        companyFEIN:
          description: "Company FEIN as defined in Web Pay, applicable with GET requests only.<br  /> Max length: 20"
          nullable: true
          type: string
        companyName:
          description: "Company name as defined in Web Pay, applicable with GET requests only.<br  /> Max length: 50"
          nullable: true
          type: string
        currency:
          description: "Employee is paid in this currency. <br  />Max length: 30"
          nullable: true
          type: string
        customBooleanFields:
          description: Up to 8 custom fields of boolean (checkbox) type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated. Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: The custom boolean field value.
                nullable: true
                type: boolean
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customDateFields:
          description: Up to 8 custom fields of the date type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: The custom date field value.  Common formats include MM-DD-CCYY, CCYY-MM-DD.
                format: paylocity-date
                nullable: true
                type: string
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customDropDownFields:
          description: Up to 8 custom fields of the dropdown type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: "The custom dropdown field value.  Values are configured in Web Pay Company > Setup > List Values > Lookup Values > Custom Fields: PayrollAndHR.  Max length: 10."
                nullable: true
                type: string
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customNumberFields:
          description: Up to 8 custom fields of numeric type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: The custom number field value.  Decimal (18,6).
                nullable: true
                type: number
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customTextFields:
          description: Up to 8 custom fields of text type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: "The custom text field value.  Max length: 255."
                nullable: true
                type: string
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        departmentPosition:
          additionalProperties: false
          description: Add or update home department cost center, position, supervisor, reviewer, employment type, EEO class, pay settings, and union information.
          properties:
            changeReason:
              description: "Employee department/position change reason. Must match Company setup. <br  />Max length: 15"
              nullable: true
              type: string
            clockBadgeNumber:
              description: "Employee clock badge number. Defaults to employeeId. <br  />Max length: 10"
              nullable: true
              type: string
            costCenter1:
              description: "Employer defined location, like *branch, division, department*, etc. Must match Company setup. <br  />Max length: 10"
              nullable: true
              type: string
            costCenter2:
              description: "Employer defined location, like *branch, division, department*, etc. Must match Company setup. <br  />Max length: 10"
              nullable: true
              type: string
            costCenter3:
              description: "Employer defined location, like *branch, division, department*, etc. Must match Company setup. <br  />Max length: 10"
              nullable: true
              type: string
            effectiveDate:
              description: The date the position takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            employeeType:
              description: "Employee current employment type. Common values *RFT (Regular Full Time), RPT (Regular Part Time), SNL (Seasonal), TFT (Temporary Full Time), TPT (Temporary Part Time)*. <br  />Max length: 10"
              nullable: true
              type: string
            equalEmploymentOpportunityClass:
              description: "Values are configured in Company > Setup > HR > EEO Classes.<br  /> Max length: 10"
              nullable: true
              type: string
            isMinimumWageExempt:
              description: Indicates if employee is exempt from minimum wage.
              nullable: true
              type: boolean
            isOvertimeExempt:
              description: Indicates if employee is exempt from overtime.
              nullable: true
              type: boolean
            isSupervisorReviewer:
              description: Indicates if employee is a supervisor or reviewer.
              nullable: true
              type: boolean
            isUnionDuesCollected:
              description: Indicates if union dues are collected.
              nullable: true
              type: boolean
            isUnionInitiationCollected:
              description: Indicates if initiations fees are collected.
              nullable: true
              type: boolean
            jobTitle:
              description: "Employee current job title. <br  />Max length: 50"
              nullable: true
              type: string
            payGroup:
              description: "Employee pay group. Must match Company setup. <br  /> Max length: 20"
              nullable: true
              type: string
            positionCode:
              description: "Employee position code. Must match Company setup.<br  />Max length: 20"
              nullable: true
              type: string
            reviewerCompanyNumber:
              description: "Company number of reviewer.<br />Max length: 9"
              nullable: true
              type: string
            reviewerEmployeeId:
              description: "Employee id of the reviewer.<br />Max length: 10"
              nullable: true
              type: string
            shift:
              description: "Employee work shift.<br  />Max length: 255"
              nullable: true
              type: string
            supervisorCompanyNumber:
              description: "Supervisor's company number. Defaults to employee company number.<br  />Max length: 9"
              nullable: true
              type: string
            supervisorEmployeeId:
              description: "EmployeeId of the supervisor. <br  />Max length: 10"
              nullable: true
              type: string
            tipped:
              description: Indicates if employee receives tips.
              nullable: true
              type: string
            unionAffiliationDate:
              description: Employee union affiliation effective date. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            unionCode:
              description: "Employee union code. Must match Company setup. <br  />Max length: 10"
              nullable: true
              type: string
            unionPosition:
              description: "Employee union position. Must match Company setup. <br  />Max length: 30"
              nullable: true
              type: string
            workersCompensation:
              description: "Employee worker compensation code. Must match Company setup.<br  /> Max length: 10"
              nullable: true
              type: string
          type: object
        disabilityDescription:
          description: Indicates if employee has disability status.
          nullable: true
          type: string
        emergencyContacts:
          description: Add or update Emergency Contacts.
          items:
            additionalProperties: false
            description: The emergency contact model
            properties:
              address1:
                description: 1st address line.
                nullable: true
                type: string
              address2:
                description: 2nd address line.
                nullable: true
                type: string
              city:
                description: City.
                nullable: true
                type: string
              country:
                description: County.
                nullable: true
                type: string
              county:
                description: Country.  Must be a valid 3 character country code.  Common values are *USA* (United States), *CAN* (Canada).
                nullable: true
                type: string
              email:
                description: Contact email.  Must be valid email address format.
                nullable: true
                type: string
              firstName:
                description: "Required. Contact first name. <br  />Max length: 40"
                nullable: true
                type: string
              homePhone:
                description: "Contact Home Phone.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
                nullable: true
                type: string
              lastName:
                description: "Required. Contact last name. <br  />Max length: 40"
                nullable: true
                type: string
              mobilePhone:
                description: "Contact Mobile Phone.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
                nullable: true
                type: string
              notes:
                description: "Notes. <br  />Max length: 1000"
                nullable: true
                type: string
              pager:
                description: "Contact Pager.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
                nullable: true
                type: string
              primaryPhone:
                description: Required. Contact primary phone type.  Must match Company setup.  Valid  values are H (Home), M (Mobile), P (Pager), W (Work)
                nullable: true
                type: string
              priority:
                description: Required. Contact priority. Valid values are *P* (Primary) or *S* (Secondary).
                nullable: true
                type: string
              relationship:
                description: Required. Contact relationship.  Must match Company setup.  Common values are Spouse, Mother, Father.
                nullable: true
                type: string
              state:
                description: State or Province.  If U.S. address, must be valid 2 character state code.  Common values are *IL* (Illinois), *CA* (California).
                nullable: true
                type: string
              syncEmployeeInfo:
                description: Valid values are *true* or *false*.
                type: boolean
              workExtension:
                description: Work Extension.
                nullable: true
                type: string
              workPhone:
                description: "Contact Work Phone.  Valid phone format  *(###) #######* or *######-####* or *### ### ####* or *##########* or, if international, starts with *+#*, only spaces and digits allowed."
                nullable: true
                type: string
              zip:
                description: Postal code.  If U.S. address, must be a valid zip code.
                nullable: true
                type: string
            required:
              - firstName
              - lastName
            type: object
          type: array
        employeeId:
          description: "Leave blank to have Web Pay automatically assign the next available employee ID.<br  />Max length: 9"
          nullable: true
          type: string
        ethnicity:
          description: "Employee ethnicity.<br  /> Max length: 10"
          nullable: true
          type: string
        federalTax:
          additionalProperties: false
          description: Add or update federal tax amount type (taxCalculationCode), amount or percentage, filing status, and exemptions.
          properties:
            amount:
              description: Tax amount. <br  />Decimal (12,2)
              nullable: true
              type: number
            deductionsAmount:
              description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
              type: number
            dependentsAmount:
              description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
              type: number
            exemptions:
              description: Federal tax exemptions value. <br  />Decimal (12,2)
              nullable: true
              type: number
            filingStatus:
              description: "Employee federal filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
              nullable: true
              type: string
            higherRate:
              description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
              type: boolean
            otherIncomeAmount:
              description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
              type: number
            percentage:
              description: Tax percentage. <br  />Decimal (12,2)
              nullable: true
              type: number
            taxCalculationCode:
              description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
              nullable: true
              type: string
            w4FormYear:
              description: The federal W4 form year <br  />Integer
              type: integer
          type: object
        firstName:
          description: "Employee first name. <br  />Max length: 40"
          nullable: true
          type: string
        gender:
          description: "Employee gender. Common values *M* (Male), *F* (Female). <br  />Max length: 1"
          nullable: true
          type: string
        homeAddress:
          additionalProperties: false
          description: Add or update employee's home address, personal phone numbers, and personal email.
          properties:
            address1:
              description: "1st address line.<br  /> Max length: 40"
              nullable: true
              type: string
            address2:
              description: "2nd address line. <br  /> Max length: 40"
              nullable: true
              type: string
            city:
              description: "City.<br  /> Max length: 40"
              nullable: true
              type: string
            country:
              description: "Country.<br  /> Max length: 30"
              nullable: true
              type: string
            county:
              description: "County.<br  /> Max length: 30"
              nullable: true
              type: string
            emailAddress:
              description: "Email. <br  />Max length: 50"
              nullable: true
              type: string
            mobilePhone:
              description: "Mobile phone number.<br  /> Max length: 20"
              nullable: true
              type: string
            phone:
              description: "Phone number.<br  /> Max length: 20"
              nullable: true
              type: string
            postalCode:
              description: "Postal code.<br  /> Max length: 10"
              nullable: true
              type: string
            state:
              description: "State or province.<br  /> Max length: 2"
              nullable: true
              type: string
          type: object
        isHighlyCompensated:
          description: Indicates if employee meets the highly compensated employee criteria.
          type: boolean
        isSmoker:
          description: Indicates if employee is a smoker.
          type: boolean
        lastName:
          description: "Employee last name. <br  />Max length: 40"
          nullable: true
          type: string
        localTax:
          description: Add, update, or delete local tax code, filing status, and exemptions including  PA-PSD taxes.
          items:
            additionalProperties: false
            description: The Local Tax model
            properties:
              exemptions:
                description: Local tax exemptions value.<br  />Decimal (12,2)
                nullable: true
                type: number
              exemptions2:
                description: Local tax exemptions 2 value.<br  />Decimal (12,2)
                nullable: true
                type: number
              filingStatus:
                description: "Employee local tax filing status. Must match specific local tax setup. <br  /> Max length: 50"
                nullable: true
                type: string
              residentPSD:
                description: "Resident PSD (political subdivision code) applicable in PA. Must match Company setup.<br  /> Max length: 9"
                nullable: true
                type: string
              taxCode:
                description: "Local tax code.<br  />Max length: 50"
                nullable: true
                type: string
              workPSD:
                description: "Work location PSD. Must match Company setup. <br  /> Max length: 9"
                nullable: true
                type: string
            type: object
          maxItems: 5
          type: array
        mainDirectDeposit:
          additionalProperties: false
          description: "Add the main direct deposit account. After deposits are made to any additional direct deposit accounts, the remaining net check is deposited in the main direct deposit account. IMPORTANT: A direct deposit update will remove ALL existing main and additional direct deposit information in WebPay and replace with what is provided on the request. GET API will not return direct deposit data."
          properties:
            accountNumber:
              description: "Account number, entered without special characters and spaces. <br  />Max length: 17"
              nullable: true
              type: string
            accountType:
              description: "Account type. Valid values are *C* (Checking), *S* (Saving), *P* (Pay Card). <br   />Max length: 1"
              nullable: true
              type: string
            blockSpecial:
              description: Indicates if direct deposit should be blocked when special check types such as Bonus are processed.<br />
              nullable: true
              type: boolean
            isSkipPreNote:
              description: Indicates if account will not pre-note.
              nullable: true
              type: boolean
            nameOnAccount:
              description: "Name on the bank account. Defaults to employee's name. <br  />Max length: 30<br />"
              nullable: true
              type: string
            preNoteDate:
              description: Date to end the pre-note of the account. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            routingNumber:
              description: "ABA Transit Routing Number, entered without dashes or spaces. <br  />Max length: 9"
              nullable: true
              type: string
          type: object
        maritalStatus:
          description: "Employee marital status. Common values *D (Divorced), M (Married), S (Single), W (Widowed)*. <br  />Max length: 10"
          nullable: true
          type: string
        middleName:
          description: "Employee middle name.<br  /> Max length: 20"
          nullable: true
          type: string
        nonPrimaryStateTax:
          additionalProperties: false
          description: Add or update non-primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, supplemental check (specialCheckCalc), and reciprocity code information.
          properties:
            amount:
              description: "State tax code.<br  /> Max length: 50"
              nullable: true
              type: number
            deductionsAmount:
              description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
              type: number
            dependentsAmount:
              description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
              type: number
            exemptions:
              description: State tax exemptions value.<br  />Decimal (12,2)
              nullable: true
              type: number
            exemptions2:
              description: State tax exemptions 2 value.<br  />Decimal (12,2)
              nullable: true
              type: number
            filingStatus:
              description: "Employee state tax filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
              nullable: true
              type: string
            higherRate:
              description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
              type: boolean
            otherIncomeAmount:
              description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
              type: number
            percentage:
              description: State Tax percentage. <br  />Decimal (12,2)
              nullable: true
              type: number
            reciprocityCode:
              description: "Non-primary state tax reciprocity code.<br  /> Max length: 50"
              nullable: true
              type: string
            specialCheckCalc:
              description: "Supplemental check calculation code. Common values are *Blocked* (Taxes blocked on Supplemental checks), *Supp* (Use supplemental Tax Rate-Code). <br  />Max length: 10"
              nullable: true
              type: string
            taxCalculationCode:
              description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
              nullable: true
              type: string
            taxCode:
              description: "State tax code.<br  /> Max length: 50"
              nullable: true
              type: string
            w4FormYear:
              description: The state W4 form year <br  />Integer
              type: integer
          type: object
        ownerPercent:
          description: Percentage of employee's ownership in the company, entered as a whole number. <br  /> Decimal (12,2)
          nullable: true
          type: number
        preferredName:
          description: "Employee preferred display name.<br  /> Max length: 20"
          nullable: true
          type: string
        primaryPayRate:
          additionalProperties: false
          description: Add or update hourly or salary pay rate, effective date, and pay frequency.
          properties:
            annualSalary:
              description: Employee annual salary.<br />Decimal (12,6)
              nullable: true
              type: number
            baseRate:
              description: Employee base rate, used for Hourly employees. <br  />Decimal (12,6)
              nullable: true
              type: number
            beginCheckDate:
              description: The date of the first check on which the new pay rate will appear. This value is only applicable when updating an existing employee. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            changeReason:
              description: "Pay rate change reason.<br  /> Max length: 30"
              nullable: true
              type: string
            defaultHours:
              description: Employee default hours consistently worked. If autoPayType is set to D, employee will be paid hourly base rate for the defaultHours. <br  />Decimal (12,2)
              nullable: true
              type: number
            effectiveDate:
              description: The date the employee's pay rate takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            isAutoPay:
              description: If set to *True*, employee will be paid automatically using deafultHours.
              nullable: true
              type: boolean
            payFrequency:
              description: "Employee current pay frequency. Common values are *A (Annual), B (Bi-Weekly), D (Daily), M (Monthly), S (Semi-Monthly), Q (Quarterly), W (Weekly)*. <br  />Max length: 5"
              nullable: true
              type: string
            payGrade:
              description: "Employee pay grade. Must match Company setup. <br  /> Max length: 10"
              nullable: true
              type: string
            payRateNote:
              description: "Pay rate notes regarding employee.<br  /> Max length: 250"
              nullable: true
              type: string
            payType:
              description: "Employee pay type (rate code). Valid values are *Hourly* or *Salary*. <br  />Max length: 10"
              nullable: true
              type: string
            ratePer:
              description: "Employee base rate frequency used with payType Hourly. Common values are *Hour, Week*. Default is Hour. <br  />Max length: 10"
              nullable: true
              type: string
            salary:
              description: Employee gross salary per pay period used with payType Salary.<br  />Decimal (12,6)
              nullable: true
              type: number
          type: object
        primaryStateTax:
          additionalProperties: false
          description: Add or update primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, and supplemental check (specialCheckCalc) information. Only one primary state is allowed. Sending an updated primary state will replace the current primary state.
          properties:
            amount:
              description: "State tax code.<br  /> Max length: 50"
              nullable: true
              type: number
            deductionsAmount:
              description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
              type: number
            dependentsAmount:
              description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
              type: number
            exemptions:
              description: State tax exemptions value.<br  />Decimal (12,2)
              nullable: true
              type: number
            exemptions2:
              description: State tax exemptions 2 value.<br  />Decimal (12,2)
              nullable: true
              type: number
            filingStatus:
              description: "Employee state tax filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
              nullable: true
              type: string
            higherRate:
              description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
              type: boolean
            otherIncomeAmount:
              description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
              type: number
            percentage:
              description: State Tax percentage. <br  />Decimal (12,2)
              nullable: true
              type: number
            specialCheckCalc:
              description: "Supplemental check calculation code. Common values are *Blocked* (Taxes blocked on Supplemental checks), *Supp* (Use supplemental Tax Rate-Code). <br  />Max length: 10"
              nullable: true
              type: string
            taxCalculationCode:
              description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
              nullable: true
              type: string
            taxCode:
              description: "State tax code.<br  /> Max length: 50"
              nullable: true
              type: string
            w4FormYear:
              description: The state W4 form year <br  />Integer
              type: integer
          type: object
        priorLastName:
          description: "Prior last name if applicable.<br  />Max length: 40"
          nullable: true
          type: string
        salutation:
          description: "Employee preferred salutation. <br  />Max length: 10"
          nullable: true
          type: string
        ssn:
          description: "Employee social security number. Leave it blank if valid social security number not available. <br  />Max length: 11"
          nullable: true
          type: string
        status:
          additionalProperties: false
          description: Add or update employee status, change reason, effective date, and adjusted seniority date. Note that companies that are still in Implementation cannot hire future employees.
          properties:
            adjustedSeniorityDate:
              description: Adjusted seniority date. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            changeReason:
              description: "Employee status change reason. Must match Company setup.<br  /> Max length: 15"
              nullable: true
              type: string
            effectiveDate:
              description: Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            employeeStatus:
              description: "Employee current work status. Common values are *A* (Active), *L* (Leave of Absence), *T* (Terminated). <br  />Max length: 20"
              nullable: true
              type: string
            hireDate:
              description: Employee hired date. Updates to hire date are not allowed and will be ignored. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            isEligibleForRehire:
              description: Indicates if employee eligible for rehire.
              nullable: true
              type: boolean
            reHireDate:
              description: Rehire date if employee is rehired.  Updates to re-hire date are not allowed and will be ignored. Common formats are *MM-DD-CCYY, CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            statusType:
              description: The Status Type associated with the Employee Status code. Each Employee Status  code for a company is assigned to one of the Status Type values of  A (Active), L (Leave of Absence), T (Terminated).
              nullable: true
              type: string
            terminationDate:
              description: Employee termination date. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
          type: object
        suffix:
          description: "Employee name suffix. Common values are *Jr, Sr, II*.<br  />Max length: 30"
          nullable: true
          type: string
        taxSetup:
          additionalProperties: false
          description: Add tax form, 1099 exempt reasons and notes, and 943 agricultural employee information. Once the employee receives wages, this information cannot be updated. Add or update SUI tax state, retirement plan, and statutory information.
          properties:
            fitwExemptNotes:
              description: "Notes for FITW exemption.<br  /> Max length: 250"
              nullable: true
              type: string
            fitwExemptReason:
              description: "Reason code for FITW exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
              nullable: true
              type: string
            futaExemptNotes:
              description: "Notes for FUTA exemption.<br  /> Max length: 250"
              nullable: true
              type: string
            futaExemptReason:
              description: "Reason code for FUTA exemption. Common values are *501* (5019c)(3) Organization), *IC* (Independent Contractor).<br  /> Max length: 30"
              nullable: true
              type: string
            isEmployee943:
              description: Indicates if employee in agriculture or farming.
              type: boolean
            isPension:
              description: Indicates if employee is eligible for pension.
              type: boolean
            isStatutory:
              description: Indicates if employee is statutory.
              type: boolean
            medExemptNotes:
              description: "Notes for Medicare exemption.<br  /> Max length: 250"
              nullable: true
              type: string
            medExemptReason:
              description: "Reason code for Medicare exemption. Common values are *501* (5019c)(3) Organization), *IC* (Independent Contractor).<br  /> Max length: 30"
              nullable: true
              type: string
            sitwExemptNotes:
              description: "Notes for SITW exemption.<br  /> Max length: 250"
              nullable: true
              type: string
            sitwExemptReason:
              description: "Reason code for SITW exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
              nullable: true
              type: string
            ssExemptNotes:
              description: "Notes for Social Security exemption.<br  /> Max length: 250"
              nullable: true
              type: string
            ssExemptReason:
              description: "Reason code for Social Security exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
              nullable: true
              type: string
            suiExemptNotes:
              description: "Notes for SUI exemption.<br  /> Max length: 250"
              nullable: true
              type: string
            suiExemptReason:
              description: "Reason code for SUI exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
              nullable: true
              type: string
            suiState:
              description: "Employee SUI (State Unemployment Insurance) state. <br  />Max length: 2"
              nullable: true
              type: string
            taxDistributionCode1099R:
              description: "Employee 1099R distribution code. Common values are *7* (Normal Distribution), *F* (Charitable Gift Annuity). <br  />Max length: 1"
              nullable: true
              type: string
            taxForm:
              description: "Employee tax form for reporting income. Valid values are *W2, 1099M, 1099R*. Default is W2. <br  />Max length: 15"
              nullable: true
              type: string
          type: object
        veteranDescription:
          description: Indicates if employee is a veteran.
          nullable: true
          type: string
        webTime:
          additionalProperties: false
          description: Add or update Web Time badge number and charge rate and synchronize Web Pay and Web Time employee data.
          properties:
            badgeNumber:
              description: "Badge number usually issued for time and attendance system use. <br  />Max length: 50"
              nullable: true
              type: string
            chargeRate:
              description: Rate to be charged to third party for time worked by the employee. It is most commonly referenced in the Cost Center Charge, Cost Center Charge vs. Cost Reports, and the Customer Invoice time and attendance reports. <br  />Decimal (12,2)
              nullable: true
              type: number
            isTimeLaborEnabled:
              description: If set to true, changes to employee data will be reflected in Web Time.
              nullable: true
              type: boolean
          type: object
        workAddress:
          additionalProperties: false
          description: Add or update employee's work address, phone numbers, and email. Work Location drop down field is not included.
          properties:
            address1:
              description: "1st address line.<br  /> Max length: 40"
              nullable: true
              type: string
            address2:
              description: "2nd address line. <br  /> Max length: 40"
              nullable: true
              type: string
            city:
              description: "City.<br  /> Max length: 40"
              nullable: true
              type: string
            country:
              description: "Country.<br  /> Max length: 30"
              nullable: true
              type: string
            county:
              description: "County.<br  /> Max length: 30"
              nullable: true
              type: string
            emailAddress:
              description: "Email. <br  />Max length: 50"
              nullable: true
              type: string
            location:
              description: "Work Location name. <br />Max length: 50"
              nullable: true
              type: string
            mailStop:
              description: "Employee mail stop.<br  /> Max length: 10"
              nullable: true
              type: string
            mobilePhone:
              description: "Mobile phone number.<br  /> Max length: 20"
              nullable: true
              type: string
            pager:
              description: "Employee pager number.<br  /> Max length: 20"
              nullable: true
              type: string
            phone:
              description: "Phone number.<br  /> Max length: 20"
              nullable: true
              type: string
            phoneExtension:
              description: "Phone number extension.<br  /> Max length: 10"
              nullable: true
              type: string
            postalCode:
              description: "Postal code.<br  /> Max length: 10"
              nullable: true
              type: string
            state:
              description: "State or province.<br  /> Max length: 2"
              nullable: true
              type: string
          type: object
        workEligibility:
          additionalProperties: false
          description: Add or update I-9 work authorization information.
          properties:
            alienOrAdmissionDocumentNumber:
              description: Employee USCIS or Admission Number. <br  /> Must be 7-10 characters and may begin with an 'A'
              nullable: true
              type: string
            attestedDate:
              description: The date the I-9 Verification form was attested by Employer or Authorized representative. Common formats are *MM-DD-CCYY, CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            countryOfIssuance:
              description: "If Foreign Passport number is provided, provide its country of issuance. Must match Paylocity setup.<br  /> Max length: 30"
              nullable: true
              type: string
            foreignPassportNumber:
              description: "Foreign Passport Number.<br  /> Max length: 50"
              nullable: true
              type: string
            i94AdmissionNumber:
              description: Form I-94 admission number.<br  /> Must be 11 numeric characters
              nullable: true
              type: string
            i9DateVerified:
              description: Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            i9Notes:
              description: "Notes regarding employee's i9.<br  /> Max length: 4000"
              nullable: true
              type: string
            isI9Verified:
              description: Indicates if employee I9 is verified.
              nullable: true
              type: boolean
            isSsnVerified:
              description: Indicates if employee SSN is verified.
              nullable: true
              type: boolean
            ssnDateVerified:
              description: The date of employer verification of employee SSN. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
            ssnNotes:
              description: "Notes regarding employee's SSN.<br  /> Max length: 4000"
              nullable: true
              type: string
            visaType:
              description: "Employee Visa type. Must match one of the system coded values.<br  /> Max length: 100"
              nullable: true
              type: string
            workAuthorization:
              description: "Employee work authorization. Must match one of the system coded values.<br  /> Max length: 100"
              nullable: true
              type: string
            workUntil:
              description: End date of employee work eligibility.  Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
              format: paylocity-date
              nullable: true
              type: string
          type: object
      type: object
    employeeIdResponse:
      description: The EmployeeId Response Model
      properties:
        employeeId:
          description: The EmployeeId
          type: string
      type: object
    employeeInfo:
      additionalProperties: false
      description: The employee info model
      properties:
        employeeId:
          description: "Employee Id.<br  /> Max length: 10"
          nullable: true
          type: string
        statusCode:
          description: "Employee current work status. Common values are *A* (Active), *L* (Leave of Absence), *T* (Terminated). <br  />Max length: 20"
          nullable: true
          type: string
        statusTypeCode:
          description: "Employee current work status type. <br  />Max length: 10"
          nullable: true
          type: string
      type: object
    error:
      description: The error model
      properties:
        field:
          description: The name of the field, or property in the request message that contains an error.
          type: string
        message:
          description: The error message.
          type: string
        options:
          description: A list of options associated with this error. These options may indicate valid values for the field, or property that contains an error.
          items:
            description: The error option model
            properties:
              code:
                description: The code associated with this option.
                type: string
              description:
                description: The description of the option.
                type: string
            type: object
          type: array
        path:
          description: The JSON path of the field, or property, that contains an error in the request message.
          type: string
      type: object
    localTax:
      additionalProperties: false
      description: The Local Tax model
      properties:
        exemptions:
          description: Local tax exemptions value.<br  />Decimal (12,2)
          nullable: true
          type: number
        exemptions2:
          description: Local tax exemptions 2 value.<br  />Decimal (12,2)
          nullable: true
          type: number
        filingStatus:
          description: "Employee local tax filing status. Must match specific local tax setup. <br  /> Max length: 50"
          nullable: true
          type: string
        residentPSD:
          description: "Resident PSD (political subdivision code) applicable in PA. Must match Company setup.<br  /> Max length: 9"
          nullable: true
          type: string
        taxCode:
          description: "Local tax code.<br  />Max length: 50"
          nullable: true
          type: string
        workPSD:
          description: "Work location PSD. Must match Company setup. <br  /> Max length: 9"
          nullable: true
          type: string
      type: object
    nonPrimaryStateTax:
      additionalProperties: false
      description: The Non-Primary State Tax model
      properties:
        amount:
          description: "State tax code.<br  /> Max length: 50"
          nullable: true
          type: number
        deductionsAmount:
          description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
          type: number
        dependentsAmount:
          description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
          type: number
        exemptions:
          description: State tax exemptions value.<br  />Decimal (12,2)
          nullable: true
          type: number
        exemptions2:
          description: State tax exemptions 2 value.<br  />Decimal (12,2)
          nullable: true
          type: number
        filingStatus:
          description: "Employee state tax filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
          nullable: true
          type: string
        higherRate:
          description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
          type: boolean
        otherIncomeAmount:
          description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
          type: number
        percentage:
          description: State Tax percentage. <br  />Decimal (12,2)
          nullable: true
          type: number
        reciprocityCode:
          description: "Non-primary state tax reciprocity code.<br  /> Max length: 50"
          nullable: true
          type: string
        specialCheckCalc:
          description: "Supplemental check calculation code. Common values are *Blocked* (Taxes blocked on Supplemental checks), *Supp* (Use supplemental Tax Rate-Code). <br  />Max length: 10"
          nullable: true
          type: string
        taxCalculationCode:
          description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
          nullable: true
          type: string
        taxCode:
          description: "State tax code.<br  /> Max length: 50"
          nullable: true
          type: string
        w4FormYear:
          description: The state W4 form year <br  />Integer
          type: integer
      type: object
    payStatementDetails:
      additionalProperties: false
      description: The pay statement details model
      properties:
        amount:
          description: .<br />
          nullable: true
          type: number
        checkDate:
          description: .<br />
          format: paylocity-date
          nullable: true
          type: string
        det:
          description: .<br />
          nullable: true
          type: string
        detCode:
          description: .<br />
          nullable: true
          type: string
        detType:
          description: .<br />
          nullable: true
          type: string
        eligibleCompensation:
          description: .<br />
          nullable: true
          type: number
        hours:
          description: .<br />
          nullable: true
          type: number
        rate:
          description: .<br />
          nullable: true
          type: number
        transactionNumber:
          description: <br />
          type: integer
        transactionType:
          description: .<br />
          nullable: true
          type: string
        year:
          description: .<br />
          type: integer
      type: object
    payStatementSummary:
      additionalProperties: false
      description: The pay statement summary model
      properties:
        autoPay:
          description: .<br />
          type: boolean
        beginDate:
          description: .<br />
          format: paylocity-date
          nullable: true
          type: string
        checkDate:
          description: .<br />
          format: paylocity-date
          nullable: true
          type: string
        checkNumber:
          description: .<br />
          type: integer
        directDepositAmount:
          description: .<br />
          nullable: true
          type: number
        endDate:
          description: .<br />
          format: paylocity-date
          nullable: true
          type: string
        grossPay:
          description: .<br />
          nullable: true
          type: number
        hours:
          description: .<br />
          nullable: true
          type: number
        netCheck:
          description: .<br />
          nullable: true
          type: number
        netPay:
          description: .<br />
          nullable: true
          type: number
        overtimeDollars:
          description: .<br />
          nullable: true
          type: number
        overtimeHours:
          description: .<br />
          nullable: true
          type: number
        process:
          description: .<br />
          type: integer
        regularDollars:
          description: .<br />
          nullable: true
          type: number
        regularHours:
          description: .<br />
          nullable: true
          type: number
        transactionNumber:
          description: <br />
          type: integer
        voucherNumber:
          description: .<br />
          type: integer
        workersCompCode:
          description: .<br />
          nullable: true
          type: string
        year:
          description: .<br />
          type: integer
      type: object
    sensitiveData:
      additionalProperties: false
      description: The sensitive data model
      properties:
        disability:
          additionalProperties: false
          description: Add or update disability data.
          properties:
            disability:
              description: "Description of employee's disability or accommodation.<br  />Max length: 50"
              nullable: true
              type: string
            disabilityClassifications:
              description: Add or update employee's disability classifications
              items:
                description: The disabilty classifications model
                properties:
                  classification:
                    description: Indicates the type of disability. This field is only allowed if hasDisability is set to 1=Yes. Values include:<br  /><br  />Auditory<br  />Cognitive, learning, and neurological<br  />Physical<br  />Speech<br  />Vision<br  />Prefer not to say<br  /><br  />Valid values can be obtained from Company Codes endpoint, codeResource = disabilityClassification
                    nullable: true
                    type: string
                type: object
              type: array
            hasDisability:
              description: Indicates if the employee has a disability. Values include:<br  /><br  />0 = No<br  />1 = Yes<br  />2 = Prefer not to say
              nullable: true
              type: string
          type: object
        ethnicity:
          additionalProperties: false
          description: Add or update ethnicity data.
          properties:
            ethnicRacialIdentities:
              description: Add or update Ethnic Racial Identity
              items:
                description: The ethnic racial identity model
                properties:
                  description:
                    description: "Employee's preferred or chosen ethnicity or race.<br  />Max length: 40."
                    nullable: true
                    type: string
                type: object
              type: array
            ethnicity:
              description: Employee's legal ethnicity or race.<br  />A = Asian<br  />B = Black<br  />H = Hispanic<br  />I = American Indian<br  />N = Native Hawaiian or Pacific Islander<br  />T = Two or More Races<br  />W = White<br  /><br  />Valid values can be obtained from Company Codes endpoint, codeResource = ethnicity
              nullable: true
              type: string
          type: object
        gender:
          additionalProperties: false
          description: Add or update gender data.
          properties:
            displayPronouns:
              description: Specifies whether employee's preferred pronouns will be displayed to co-workers in Community, Directory, etc. Values include:<br  /><br  />0 = No<br  />1 = Yes
              nullable: true
              type: boolean
            genderIdentityDescription:
              description: "Employee's preferred or chosen gender identification.<br  />Max length: 40"
              nullable: true
              type: string
            identifyAsLegalGender:
              description: Employee's self-identification of legal gender. Numerical values include:<br  /><br  />0 = No<br  />1 = Yes<br  />2 = Prefer not to say
              nullable: true
              type: string
            legalGender:
              description: Employee's legal gender. Values include:<br  /><br  />M = Male<br  />F = Female<br  /><br  />Valid values can be obtained from Company Codes endpoint, codeResource = legalGender
              nullable: true
              type: string
            pronouns:
              description: Employee's preferred or chosen pronouns. Values include:<br  /><br  />He / Him / His<br  />She / Her / Hers<br  />They / Them / Theirs<br  />Prefer not to say<br  /><br  />Valid values can be obtained from Company Codes endpoint, codeResource = preferredPronouns
              nullable: true
              type: string
            sexualOrientation:
              description: Employee's self-identification of sexual orientation. Values may include values below. Additionally, any custom value may be provided.<br  /><br  />Asexual<br  />Gay / Lesbian<br  />Heterosexual / Straight<br  />Pansexual<br  />Queer<br  />Bisexual<br  />Prefer not to say
              nullable: true
              type: string
          type: object
        veteran:
          additionalProperties: false
          description: Add or update veteran data.
          properties:
            isVeteran:
              description: Indicates if the employee is a veteran.  Values include:<br  /><br  />0 = No<br  />1 = Yes<br  />2 = Prefer not to say
              nullable: true
              type: string
            veteran:
              description: "Employee's Veteran Notes<br  />Max length: 50"
              nullable: true
              type: string
          type: object
      type: object
    stagedEmployee:
      additionalProperties: false
      description: The staged employee model
      properties:
        additionalDirectDeposit:
          description: "Add up to 19 direct deposit accounts in addition to the main direct deposit account. IMPORTANT: A direct deposit update will remove ALL existing main and additional direct deposit information in WebPay and replace with information provided on the request. GET API will not return direct deposit data."
          items:
            additionalProperties: false
            description: The additional direct deposit model
            properties:
              accountNumber:
                description: "Account number, entered without special characters and spaces. <br  />Max length: 17<br />"
                nullable: true
                type: string
              accountType:
                description: "Account type. Valid values are *C* (Checking), *S* (Saving), *P* (Pay Card). <br   />Max length: 1<br />"
                nullable: true
                type: string
              amount:
                description: Amount value to be deposited to the account.<br  />Decimal (12,2)<br />
                nullable: true
                type: number
              amountType:
                description: "Amount type to indicate the context of the amount. Common values are *F* (FLAT), *F-* (Net Minus), *P* (Percent). <br  /> Max length: 5<br />"
                nullable: true
                type: string
              isSkipPreNote:
                description: Indicates if account will not pre-note.<br />
                nullable: true
                type: boolean
              preNoteDate:
                description: Date to end the pre-note of the account. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.<br />
                format: paylocity-date
                nullable: true
                type: string
              routingNumber:
                description: "ABA Transit Routing Number, entered without dashes or spaces. <br  />Max length: 9<br />"
                nullable: true
                type: string
            type: object
          maxItems: 4
          type: array
        benefitSetup:
          description: Add setup values used for employee benefits integration, insurance plan settings, and ACA reporting.
          items:
            additionalProperties: false
            description: The benefit setup model
            properties:
              benefitClass:
                description: "Benefit Class code. Values are configured in Web Pay Company > Setup > Benefits > Classes.<br  />Max length: 30"
                nullable: true
                type: string
              benefitClassEffectiveDate:
                description: Date when Benefit Class takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              benefitSalary:
                description: Salary used to configure benefits.<br  />Decimal(12,2)
                nullable: true
                type: number
              benefitSalaryEffectiveDate:
                description: Date when Benefit Salary takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              doNotApplyAdministrativePeriod:
                description: Applicable only for ACA Enhanced clients and Benefit Classes with ACA Employment Type of Full Time.
                nullable: true
                type: boolean
              isMeasureAcaEligibility:
                description: Only valid for ACA Enhanced clients and Benefit Classes that are ACA Employment Type of Full Time.
                nullable: true
                type: boolean
            type: object
          maxItems: 1
          type: array
        birthDate:
          description: Employee birthdate. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
          format: paylocity-date
          nullable: true
          type: string
        customBooleanFields:
          description: Up to 8 custom fields of boolean (checkbox) type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated. Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: The custom boolean field value.
                nullable: true
                type: boolean
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customDateFields:
          description: Up to 8 custom fields of the date type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: The custom date field value.  Common formats include MM-DD-CCYY, CCYY-MM-DD.
                format: paylocity-date
                nullable: true
                type: string
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customDropDownFields:
          description: Up to 8 custom fields of the dropdown type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: "The custom dropdown field value.  Values are configured in Web Pay Company > Setup > List Values > Lookup Values > Custom Fields: PayrollAndHR.  Max length: 10."
                nullable: true
                type: string
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customNumberFields:
          description: Up to 8 custom fields of numeric type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: The custom number field value.  Decimal (18,6).
                nullable: true
                type: number
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        customTextFields:
          description: Up to 8 custom fields of text type value.
          items:
            additionalProperties: false
            description: ""
            properties:
              category:
                description: The custom field category.  Acceptable value is 'PayrollAndHR'.
                enum:
                  - PayrollAndHR
                type: string
              label:
                description: "The custom field label whose value is to be added/updated.  Must match to the label defined in Web Pay Custom Fields setup.  Max length: 255."
                nullable: true
                type: string
              value:
                description: "The custom text field value.  Max length: 255."
                nullable: true
                type: string
            required:
              - category
              - label
              - value
            type: object
          maxItems: 8
          type: array
        departmentPosition:
          description: Add home department cost center, position, supervisor, reviewer, employment type, EEO class, pay settings, and union information.
          items:
            additionalProperties: false
            description: The Department Position model
            properties:
              changeReason:
                description: "Employee department/position change reason. Must match Company setup. <br  />Max length: 15"
                nullable: true
                type: string
              clockBadgeNumber:
                description: "Employee clock badge number. Defaults to employeeId. <br  />Max length: 10"
                nullable: true
                type: string
              costCenter1:
                description: "Employer defined location, like *branch, division, department*, etc. Must match Company setup. <br  />Max length: 10"
                nullable: true
                type: string
              costCenter2:
                description: "Employer defined location, like *branch, division, department*, etc. Must match Company setup. <br  />Max length: 10"
                nullable: true
                type: string
              costCenter3:
                description: "Employer defined location, like *branch, division, department*, etc. Must match Company setup. <br  />Max length: 10"
                nullable: true
                type: string
              effectiveDate:
                description: The date the position takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              employeeType:
                description: "Employee current employment type. Common values *RFT (Regular Full Time), RPT (Regular Part Time), SNL (Seasonal), TFT (Temporary Full Time), TPT (Temporary Part Time)*. <br  />Max length: 10"
                nullable: true
                type: string
              equalEmploymentOpportunityClass:
                description: "Values are configured in Company > Setup > HR > EEO Classes.<br  /> Max length: 10"
                nullable: true
                type: string
              isMinimumWageExempt:
                description: Indicates if employee is exempt from minimum wage.
                nullable: true
                type: boolean
              isOvertimeExempt:
                description: Indicates if employee is exempt from overtime.
                nullable: true
                type: boolean
              isSupervisorReviewer:
                description: Indicates if employee is a supervisor or reviewer.
                nullable: true
                type: boolean
              isUnionDuesCollected:
                description: Indicates if union dues are collected.
                nullable: true
                type: boolean
              isUnionInitiationCollected:
                description: Indicates if initiations fees are collected.
                nullable: true
                type: boolean
              jobTitle:
                description: "Employee current job title. <br  />Max length: 50"
                nullable: true
                type: string
              payGroup:
                description: "Employee pay group. Must match Company setup. <br  /> Max length: 20"
                nullable: true
                type: string
              positionCode:
                description: "Employee position code. Must match Company setup.<br  />Max length: 20"
                nullable: true
                type: string
              shift:
                description: "Employee work shift.<br  />Max length: 255"
                nullable: true
                type: string
              supervisorCompanyNumber:
                description: "Supervisor's company number. Defaults to employee company number.<br  />Max length: 9"
                nullable: true
                type: string
              supervisorEmployeeId:
                description: "EmployeeId of the supervisor. <br  />Max length: 10"
                nullable: true
                type: string
              tipped:
                description: Indicates if employee receives tips.
                nullable: true
                type: string
              unionAffiliationDate:
                description: Employee union affiliation effective date. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              unionCode:
                description: "Employee union code. Must match Company setup. <br  />Max length: 10"
                nullable: true
                type: string
              unionPosition:
                description: "Employee union position. Must match Company setup. <br  />Max length: 30"
                nullable: true
                type: string
              workersCompensation:
                description: "Employee worker compensation code. Must match Company setup.<br  /> Max length: 10"
                nullable: true
                type: string
            type: object
          maxItems: 1
          type: array
        disabilityDescription:
          description: Indicates if employee has disability status.
          nullable: true
          type: string
        employeeId:
          description: "Leave blank to have Web Pay automatically assign the next available employee ID.<br  /> Max length: 10"
          nullable: true
          type: string
        ethnicity:
          description: "Employee ethnicity.<br  /> Max length: 10"
          nullable: true
          type: string
        federalTax:
          description: Add federal tax amount type (taxCalculationCode), amount or percentage, filing status, and exemptions.
          items:
            additionalProperties: false
            description: The Federal Tax model
            properties:
              amount:
                description: Tax amount. <br  />Decimal (12,2)
                nullable: true
                type: number
              deductionsAmount:
                description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
                type: number
              dependentsAmount:
                description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
                type: number
              exemptions:
                description: Federal tax exemptions value. <br  />Decimal (12,2)
                nullable: true
                type: number
              filingStatus:
                description: "Employee federal filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
                nullable: true
                type: string
              higherRate:
                description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
                type: boolean
              otherIncomeAmount:
                description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
                type: number
              percentage:
                description: Tax percentage. <br  />Decimal (12,2)
                nullable: true
                type: number
              taxCalculationCode:
                description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
                nullable: true
                type: string
              w4FormYear:
                description: The federal W4 form year <br  />Integer
                type: integer
            type: object
          maxItems: 1
          type: array
        firstName:
          description: "Employee first name. <br  />Max length: 40"
          nullable: true
          type: string
        fitwExemptReason:
          description: "Reason code for FITW exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
          nullable: true
          type: string
        futaExemptReason:
          description: "Reason code for FUTA exemption. Common values are *501* (5019c)(3) Organization), *IC* (Independent Contractor).<br  /> Max length: 30"
          nullable: true
          type: string
        gender:
          description: "Employee gender. Common values *M* (Male), *F* (Female). <br  />Max length: 1"
          nullable: true
          type: string
        homeAddress:
          description: Add employee's home address, personal phone numbers, and personal email.
          items:
            additionalProperties: false
            description: The address model
            properties:
              address1:
                description: "1st address line.<br  /> Max length: 40"
                nullable: true
                type: string
              address2:
                description: "2nd address line. <br  /> Max length: 40"
                nullable: true
                type: string
              city:
                description: "City.<br  /> Max length: 40"
                nullable: true
                type: string
              country:
                description: "Country.<br  /> Max length: 30"
                nullable: true
                type: string
              county:
                description: "County.<br  /> Max length: 30"
                nullable: true
                type: string
              emailAddress:
                description: "Email. <br  />Max length: 50"
                nullable: true
                type: string
              mobilePhone:
                description: "Mobile phone number.<br  /> Max length: 12"
                nullable: true
                type: string
              phone:
                description: "Phone number.<br  /> Max length: 12"
                nullable: true
                type: string
              postalCode:
                description: "Postal code.<br  /> Max length: 10"
                nullable: true
                type: string
              state:
                description: "State or province.<br  /> Max length: 2"
                nullable: true
                type: string
            type: object
          maxItems: 1
          type: array
        isEmployee943:
          description: Indicates if employee in agriculture or farming.
          nullable: true
          type: boolean
        isSmoker:
          description: Indicates if employee is a smoker.
          nullable: true
          type: boolean
        lastName:
          description: "Employee last name. <br  />Max length: 40"
          nullable: true
          type: string
        localTax:
          description: Add local tax code, filing status, and exemptions including PA-PSD taxes.
          items:
            additionalProperties: false
            description: The Local Tax model
            properties:
              exemptions:
                description: Local tax exemptions value.<br  />Decimal (12,2)
                nullable: true
                type: number
              exemptions2:
                description: Local tax exemptions 2 value.<br  />Decimal (12,2)
                nullable: true
                type: number
              filingStatus:
                description: "Employee local tax filing status. Must match specific local tax setup. <br  /> Max length: 50"
                nullable: true
                type: string
              residentPSD:
                description: "Resident PSD (political subdivision code) applicable in PA. Must match Company setup.<br  /> Max length: 9"
                nullable: true
                type: string
              taxCode:
                description: "Local tax code.<br  />Max length: 50"
                nullable: true
                type: string
              workPSD:
                description: "Work location PSD. Must match Company setup. <br  /> Max length: 9"
                nullable: true
                type: string
            type: object
          maxItems: 5
          type: array
        mainDirectDeposit:
          description: "Add the main direct deposit account. After deposits are made to any additional direct deposit accounts, the remaining net check is deposited in the main direct deposit account. IMPORTANT: A direct deposit update will remove ALL existing main and additional direct deposit information in WebPay and replace with what is provided on the request. GET API will not return direct deposit data."
          items:
            additionalProperties: false
            description: The Main Direct Deposit model
            properties:
              accountNumber:
                description: "Account number, entered without special characters and spaces. <br  />Max length: 17"
                nullable: true
                type: string
              accountType:
                description: "Account type. Valid values are *C* (Checking), *S* (Saving), *P* (Pay Card). <br   />Max length: 1"
                nullable: true
                type: string
              isSkipPreNote:
                description: Indicates if account will not pre-note.
                nullable: true
                type: boolean
              preNoteDate:
                description: Date to end the pre-note of the account. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              routingNumber:
                description: "ABA Transit Routing Number, entered without dashes or spaces. <br  />Max length: 9"
                nullable: true
                type: string
            type: object
          maxItems: 1
          type: array
        maritalStatus:
          description: "Employee marital status. Common values *D (Divorced), M (Married), S (Single), W (Widowed)*. <br  />Max length: 10"
          nullable: true
          type: string
        medExemptReason:
          description: "Reason code for Medicare exemption. Common values are *501* (5019c)(3) Organization), *IC* (Independent Contractor).<br  /> Max length: 30"
          nullable: true
          type: string
        middleName:
          description: "Employee middle name.<br  /> Max length: 20"
          nullable: true
          type: string
        nonPrimaryStateTax:
          description: Add non-primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, supplemental check (specialCheckCalc), and reciprocity code information.
          items:
            additionalProperties: false
            description: The Non-Primary State Tax model
            properties:
              amount:
                description: "State tax code.<br  /> Max length: 50"
                nullable: true
                type: number
              deductionsAmount:
                description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
                type: number
              dependentsAmount:
                description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
                type: number
              exemptions:
                description: State tax exemptions value.<br  />Decimal (12,2)
                nullable: true
                type: number
              exemptions2:
                description: State tax exemptions 2 value.<br  />Decimal (12,2)
                nullable: true
                type: number
              filingStatus:
                description: "Employee state tax filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
                nullable: true
                type: string
              higherRate:
                description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
                type: boolean
              otherIncomeAmount:
                description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
                type: number
              percentage:
                description: State Tax percentage. <br  />Decimal (12,2)
                nullable: true
                type: number
              reciprocityCode:
                description: "Non-primary state tax reciprocity code.<br  /> Max length: 50"
                nullable: true
                type: string
              specialCheckCalc:
                description: "Supplemental check calculation code. Common values are *Blocked* (Taxes blocked on Supplemental checks), *Supp* (Use supplemental Tax Rate-Code). <br  />Max length: 10"
                nullable: true
                type: string
              taxCalculationCode:
                description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
                nullable: true
                type: string
              taxCode:
                description: "State tax code.<br  /> Max length: 50"
                nullable: true
                type: string
              w4FormYear:
                description: The state W4 form year <br  />Integer
                type: integer
            type: object
          maxItems: 1
          type: array
        preferredName:
          description: "Employee preferred display name.<br  /> Max length: 20"
          nullable: true
          type: string
        primaryPayRate:
          description: Add hourly or salary pay rate, effective date, and pay frequency.
          items:
            additionalProperties: false
            description: The Primary Pay Rate model
            properties:
              baseRate:
                description: Employee base rate, used for Hourly employees. <br  />Decimal (12,2)
                nullable: true
                type: number
              changeReason:
                description: "Pay rate change reason.<br  /> Max length: 30"
                nullable: true
                type: string
              defaultHours:
                description: Employee default hours consistently worked. If autoPayType is set to D, employee will be paid hourly base rate for the defaultHours. <br  />Decimal (12,2)
                nullable: true
                type: number
              effectiveDate:
                description: The date the employee's pay rate takes effect. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              isAutoPay:
                description: If set to *True*, employee will be paid automatically using deafultHours.
                nullable: true
                type: boolean
              payFrequency:
                description: "Employee current pay frequency. Common values are *A (Annual), B (Bi-Weekly), D (Daily), M (Monthly), S (Semi-Monthly), Q (Quarterly), W (Weekly)*. <br  />Max length: 5"
                nullable: true
                type: string
              payGrade:
                description: "Employee pay grade. Must match Company setup. <br  /> Max length: 10"
                nullable: true
                type: string
              payType:
                description: "Employee pay type (rate code). Valid values are *Hourly* or *Salary*. <br  />Max length: 10"
                nullable: true
                type: string
              ratePer:
                description: "Employee base rate frequency used with payType Hourly. Common values are *Hour, Week*. Default is Hour. <br  />Max length: 10"
                nullable: true
                type: string
              salary:
                description: Employee gross salary per pay period used with payType Salary.<br  />Decimal (12,6)
                nullable: true
                type: number
            type: object
          maxItems: 1
          type: array
        primaryStateTax:
          description: Add primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, and supplemental check (specialCheckCalc) information. Only one primary state is allowed.
          items:
            additionalProperties: false
            description: The State Tax model
            properties:
              amount:
                description: "State tax code.<br  /> Max length: 50"
                nullable: true
                type: number
              deductionsAmount:
                description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
                type: number
              dependentsAmount:
                description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
                type: number
              exemptions:
                description: State tax exemptions value.<br  />Decimal (12,2)
                nullable: true
                type: number
              exemptions2:
                description: State tax exemptions 2 value.<br  />Decimal (12,2)
                nullable: true
                type: number
              filingStatus:
                description: "Employee state tax filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
                nullable: true
                type: string
              higherRate:
                description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
                type: boolean
              otherIncomeAmount:
                description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
                type: number
              percentage:
                description: State Tax percentage. <br  />Decimal (12,2)
                nullable: true
                type: number
              specialCheckCalc:
                description: "Supplemental check calculation code. Common values are *Blocked* (Taxes blocked on Supplemental checks), *Supp* (Use supplemental Tax Rate-Code). <br  />Max length: 10"
                nullable: true
                type: string
              taxCalculationCode:
                description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
                nullable: true
                type: string
              taxCode:
                description: "State tax code.<br  /> Max length: 50"
                nullable: true
                type: string
              w4FormYear:
                description: The state W4 form year <br  />Integer
                type: integer
            type: object
          maxItems: 1
          type: array
        priorLastName:
          description: "Prior last name if applicable.<br  />Max length: 40"
          nullable: true
          type: string
        salutation:
          description: "Employee preferred salutation. <br  />Max length: 10"
          nullable: true
          type: string
        sitwExemptReason:
          description: "Reason code for SITW exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
          nullable: true
          type: string
        ssExemptReason:
          description: "Reason code for Social Security exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
          nullable: true
          type: string
        ssn:
          description: "Employee social security number. Leave it blank if valid social security number not available. <br  />Max length: 11"
          nullable: true
          type: string
        status:
          description: Add employee status, change reason, effective date, and adjusted seniority date. Note that companies that are still in Implementation cannot hire future employees.
          items:
            additionalProperties: false
            description: The employee status model
            properties:
              adjustedSeniorityDate:
                description: Adjusted seniority date. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              changeReason:
                description: "Employee status change reason. Must match Company setup.<br  /> Max length: 15"
                nullable: true
                type: string
              effectiveDate:
                description: Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              employeeStatus:
                description: "Employee current work status. Common values are *A* (Active), *L* (Leave of Absence), *T* (Terminated). <br  />Max length: 20"
                nullable: true
                type: string
              hireDate:
                description: Employee hired date. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              isEligibleForRehire:
                description: Indicates if employee eligible for rehire.
                nullable: true
                type: boolean
            type: object
          maxItems: 1
          type: array
        suffix:
          description: "Employee name suffix. Common values are *Jr, Sr, II*.<br  />Max length: 30"
          nullable: true
          type: string
        suiExemptReason:
          description: "Reason code for SUI exemption. Common values are *SE* (Statutory employee), *CR* (clergy/Religious). <br  /> Max length: 30"
          nullable: true
          type: string
        suiState:
          description: "Employee SUI (State Unemployment Insurance) state. <br  />Max length: 2"
          nullable: true
          type: string
        taxDistributionCode1099R:
          description: "Employee 1099R distribution code. Common values are *7* (Normal Distribution), *F* (Charitable Gift Annuity). <br  />Max length: 1"
          nullable: true
          type: string
        taxForm:
          description: "Employee tax form for reporting income. Valid values are *W2, 1099M, 1099R*. Default is W2. <br  />Max length: 15"
          nullable: true
          type: string
        veteranDescription:
          description: Indicates if employee is a veteran.
          nullable: true
          type: string
        webTime:
          additionalProperties: false
          description: Add Web Time badge number and charge rate and synchronize Web Pay and Web Time employee data.
          properties:
            badgeNumber:
              description: "Badge number usually issued for time and attendance system use. <br  />Max length: 50"
              nullable: true
              type: string
            chargeRate:
              description: Rate to be charged to third party for time worked by the employee. It is most commonly referenced in the Cost Center Charge, Cost Center Charge vs. Cost Reports, and the Customer Invoice time and attendance reports. <br  />Decimal (12,2)
              nullable: true
              type: number
            isTimeLaborEnabled:
              description: If set to true, changes to employee data will be reflected in Web Time.
              nullable: true
              type: boolean
          type: object
        workAddress:
          description: Add employee's work address, phone numbers, and email. Work Location drop down field is not included.
          items:
            additionalProperties: false
            description: The address model
            properties:
              address1:
                description: "1st address line.<br  /> Max length: 40"
                nullable: true
                type: string
              address2:
                description: "2nd address line. <br  /> Max length: 40"
                nullable: true
                type: string
              city:
                description: "City.<br  /> Max length: 40"
                nullable: true
                type: string
              country:
                description: "Country.<br  /> Max length: 30"
                nullable: true
                type: string
              county:
                description: "County.<br  /> Max length: 30"
                nullable: true
                type: string
              emailAddress:
                description: "Email. <br  />Max length: 50"
                nullable: true
                type: string
              mobilePhone:
                description: "Mobile phone number.<br  /> Max length: 12"
                nullable: true
                type: string
              pager:
                description: "Employee pager number.<br  /> Max length: 20"
                nullable: true
                type: string
              phone:
                description: "Phone number.<br  /> Max length: 12"
                nullable: true
                type: string
              phoneExtension:
                description: "Phone number extension.<br  /> Max length: 10"
                nullable: true
                type: string
              postalCode:
                description: "Postal code.<br  /> Max length: 10"
                nullable: true
                type: string
              state:
                description: "State or province.<br  /> Max length: 2"
                nullable: true
                type: string
            type: object
          maxItems: 1
          type: array
        workEligibility:
          description: Add I-9 work authorization information.
          items:
            additionalProperties: false
            description: The Work Eligibility model
            properties:
              alienOrAdmissionDocumentNumber:
                description: Employee USCIS or Admission Number. <br  /> Must be 7-10 characters and may begin with an 'A'
                nullable: true
                type: string
              attestedDate:
                description: The date the I-9 Verification form was attested by Employer or Authorized representative. Common formats are *MM-DD-CCYY, CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              countryOfIssuance:
                description: "If Foreign Passport number is provided, provide its country of issuance. Must match Paylocity setup.<br  /> Max length: 30"
                nullable: true
                type: string
              foreignPassportNumber:
                description: "Foreign Passport Number.<br  /> Max length: 50"
                nullable: true
                type: string
              i94AdmissionNumber:
                description: Form I-94 admission number.<br  /> Must be 11 numeric characters
                nullable: true
                type: string
              i9DateVerified:
                description: Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              i9Notes:
                description: "Notes regarding employee's i9.<br  /> Max length: 4000"
                nullable: true
                type: string
              isI9Verified:
                description: Indicates if employee I9 is verified.
                nullable: true
                type: boolean
              isSsnVerified:
                description: Indicates if employee SSN is verified.
                nullable: true
                type: boolean
              ssnDateVerified:
                description: The date of employer verification of employee SSN. Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
              ssnNotes:
                description: "Notes regarding employee's SSN.<br  /> Max length: 4000"
                nullable: true
                type: string
              visaType:
                description: "Employee Visa type. Must match one of the system coded values.<br  /> Max length: 100"
                nullable: true
                type: string
              workAuthorization:
                description: "Employee work authorization. Must match one of the system coded values.<br  /> Max length: 100"
                nullable: true
                type: string
              workUntil:
                description: End date of employee work eligibility.  Common formats include *MM-DD-CCYY*, *CCYY-MM-DD*.
                format: paylocity-date
                nullable: true
                type: string
            type: object
          maxItems: 1
          type: array
      type: object
    stateTax:
      additionalProperties: false
      description: The State Tax model
      properties:
        amount:
          description: "State tax code.<br  /> Max length: 50"
          nullable: true
          type: number
        deductionsAmount:
          description: "Box 4(b) on form W4 (year 2020 or later): Deductions amount. <br  />Decimal (12,2)"
          type: number
        dependentsAmount:
          description: "Box 3 on form W4 (year 2020 or later): Total dependents amount. <br  />Decimal (12,2)"
          type: number
        exemptions:
          description: State tax exemptions value.<br  />Decimal (12,2)
          nullable: true
          type: number
        exemptions2:
          description: State tax exemptions 2 value.<br  />Decimal (12,2)
          nullable: true
          type: number
        filingStatus:
          description: "Employee state tax filing status. Common values are *S* (Single), *M* (Married).<br  />Max length: 50"
          nullable: true
          type: string
        higherRate:
          description: "Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. <br  />Boolean"
          type: boolean
        otherIncomeAmount:
          description: "Box 4(a) on form W4 (year 2020 or later): Other income amount. <br  />Decimal (12,2)"
          type: number
        percentage:
          description: State Tax percentage. <br  />Decimal (12,2)
          nullable: true
          type: number
        specialCheckCalc:
          description: "Supplemental check calculation code. Common values are *Blocked* (Taxes blocked on Supplemental checks), *Supp* (Use supplemental Tax Rate-Code). <br  />Max length: 10"
          nullable: true
          type: string
        taxCalculationCode:
          description: "Tax calculation code. Common values are *F* (Flat), *P* (Percentage), *FDFP* (Flat Dollar Amount plus Fixed Percentage). <br  />Max length: 10"
          nullable: true
          type: string
        taxCode:
          description: "State tax code.<br  /> Max length: 50"
          nullable: true
          type: string
        w4FormYear:
          description: The state W4 form year <br  />Integer
          type: integer
      type: object
    trackingNumberResponse:
      description: The Tracking Number Response model
      properties:
        trackingNumber:
          description: The unique tracking number
          type: string
      type: object
  securitySchemes:
    paylocity_auth:
      flows:
        clientCredentials:
          scopes:
            WebLinkAPI: Web Link Api
          tokenUrl: https://api.paylocity.com/IdentityServer/connect/token
      type: oauth2
