prod.cdn.paylocity.com
Open in
urlscan Pro
2600:9000:20eb:c00:a:d31:3540:93a1
Public Scan
Submitted URL: https://api.paylocity.com/
Effective URL: https://prod.cdn.paylocity.com/developer/index.html
Submission: On January 27 via manual from US — Scanned from DE
Effective URL: https://prod.cdn.paylocity.com/developer/index.html
Submission: On January 27 via manual from US — Scanned from DE
Form analysis
0 forms found in the DOMText Content
* Overview * Authorization * Encryption * Support * Deductions (v1) * OnBoarding (v1) * Document Management * Pay Entry * Authentication * Additional Rates * Add/update additional rates * Client Credentials * Obtain new client secret. * Company Codes * Get All Company Codes * Company-Specific Schema * Get Company-Specific Open API Documentation * Custom Fields * Get All Custom Fields * Direct Deposit * Get All Direct Deposit * Earnings * Add/Update Earning * Get All Earnings * Delete Earning by Earning Code and Start Date * Get Earning by Earning Code and Start Date * Get Earnings by Earning Code * Emergency Contacts * Add/update emergency contacts * Employee Benefit Setup * Add/update employee's benefit setup * Employee Staging * Add new employee to Web Link * Employee * Add new employee * Get all employees * Get employee * Update employee * Local Taxes * Add new local tax * Get all local taxes * Delete local tax by tax code * Get local taxes by tax code * Non-Primary State Tax * Add/update non-primary state tax * PayStatements * Get employee pay statement details data for the specified year and check date. * Get employee pay statement details data for the specified year. * Get employee pay statement summary data for the specified year and check date. * Get employee pay statement summary data for the specified year. * Primary State Tax * Add/update primary state tax * Sensitive Data * Add/update sensitive data * Get sensitive data PAYLOCITY API (2) Download OpenAPI specification:Download E-mail: webservices@paylocity.com Terms of Service For general questions and support of the API, contact: webservices@paylocity.com OVERVIEW 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. 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. For additional resources regarding v1/v2 differences and conversion path, please contact webservices@paylocity.com. SETUP 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. * 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. * 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. * 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. * 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. 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. AUTHORIZATION Paylocity Web Services API uses OAuth2.0 Authentication with JSON Message Format. 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. The client must request a bearer token from the authorization endpoint: auth-server for production: https://api.paylocity.com/IdentityServer/connect/token auth-server for testing: https://apisandbox.paylocity.com/IdentityServer/connect/token 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. AUTHORIZATION HEADER 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. CONTENT-TYPE HEADER The "Content-Type" header is required to be "application/x-www-form-urlencoded". ADDITIONAL VALUES The request must post the following form encoded values within the request body: grant_type = client_credentials scope = WebLinkAPI RESPONSES Success will return HTTP 200 OK with JSON content: { "access_token": "xxx", "expires_in": 3600, "token_type": "Bearer" } ENCRYPTION Paylocity uses a combination of RSA and AES cryptography. As part of the setup, each client is issued a public RSA key. 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. The Paylocity Public Key has the following properties: * 2048 bit key size * PKCS1 key format * PEM encoding PROPERTIES * 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. * iv (base 64 encoded): The AES IV (Initialization Vector) used when encrypting the content. * 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. We suggest using the following for the AES: * CBC cipher mode * PKCS7 padding * 128 bit block size * 256 bit key size ENCRYPTION FLOW * Generate the unencrypted JSON payload to POST/PUT * Encrypt this JSON payload using your own key and IV (NOT with the Paylocity public key) * RSA encrypt the key you used in step 2 with the Paylocity Public Key, then, base64 encode the result * Base64 encode the IV used to encrypt the JSON payload in step 2 * Put together a "securecontent" JSON object: { 'secureContent' : { 'key' : -- RSA-encrypted & base64 encoded key from step 3, 'iv' : -- base64 encoded iv from step 4 'content' -- content encrypted with your own key from step 2, base64 encoded } } SAMPLE EXAMPLE { "secureContent": { "key": "eS3aw6H/qzHMJ00gSi6gQ3xa08DPMazk8BFY96Pd99ODA==", "iv": "NLyXMGq9svw0XO5aI9BzWw==", "content": "gAEOiQltO1w+LzGUoIK8FiYbU42hug94EasSl7N+Q1w=" } } SAMPLE C# CODE using Newtonsoft.Json; using System; using System.IO; using System.Security.Cryptography; using System.Text; public class SecuredContent { [JsonProperty("key")] public string Key { get; set; } [JsonProperty("iv")] public string Iv { get; set; } [JsonProperty("content")] public string Content { get; set; } } public class EndUserSecureRequestExample { public string CreateSecuredRequest(FileInfo paylocityPublicKey, string unsecuredJsonRequest) { string publicKeyXml = File.ReadAllText(paylocityPublicKey.FullName, Encoding.UTF8); SecuredContent secureContent = this.CreateSecuredContent(publicKeyXml, unsecuredJsonRequest); string secureRequest = JsonConvert.SerializeObject(new { secureContent }); return secureRequest; } private SecuredContent CreateSecuredContent(string publicKeyXml, string request) { using (AesCryptoServiceProvider aesCsp = new AesCryptoServiceProvider()) { aesCsp.Mode = CipherMode.CBC; aesCsp.Padding = PaddingMode.PKCS7; aesCsp.BlockSize = 128; aesCsp.KeySize = 256; using (ICryptoTransform crt = aesCsp.CreateEncryptor(aesCsp.Key, aesCsp.IV)) { using (MemoryStream outputStream = new MemoryStream()) { using (CryptoStream encryptStream = new CryptoStream(outputStream, crt, CryptoStreamMode.Write)) { byte[] encodedRequest = Encoding.UTF8.GetBytes(request); encryptStream.Write(encodedRequest, 0, encodedRequest.Length); encryptStream.FlushFinalBlock(); byte[] encryptedRequest = outputStream.ToArray(); using (RSACryptoServiceProvider crp = new RSACryptoServiceProvider()) { crp.FromXmlstring(publicKeyXml); byte[] encryptedKey = crp.Encrypt(aesCsp.Key, false); return new SecuredContent() { Key = Convert.ToBase64string(encryptedKey), Iv = Convert.ToBase64string(aesCsp.IV), Content = Convert.ToBase64string(encryptedRequest) }; } } } } } } } SUPPORT Questions about using the Paylocity API? Please contact webservices@paylocity.com. DEDUCTIONS (V1) Deductions API provides endpoints to retrieve, add, update and delete deductions for a company's employees. For schema details, click here. ONBOARDING (V1) 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 here. DOCUMENT MANAGEMENT The Document Management API provides tools for managing documents that you would normally find in the Document Library. Click here for details. PAY ENTRY Pay Entry API allows you to send a time import file containing time tracking, earnings, and deductions data into Payroll to create a new batch or merge into an existing batch. Click here for Pay Entry documentation. AUTHENTICATION PAYLOCITY_AUTH Security scheme type: OAuth2 clientCredentials OAuth Flow Token URL: https://api.paylocity.com/IdentityServer/connect/token Scopes: * WebLinkAPI - Web Link Api ADDITIONAL RATES ADD/UPDATE ADDITIONAL RATES Sends new or updated employee additional rates information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON changeReason any Not required. If populated, must match one of the system coded values available in the Additional Rates Change Reason drop down. costCenter1 any 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. costCenter2 any 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. costCenter3 any 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. effectiveDate any <paylocity-date> Required. Common formats include MM-DD-CCYY, CCYY-MM-DD. endCheckDate any <paylocity-date> 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. job any Not required. If populated, must match one of the system coded values available in the Additional Rates Job drop down. rate any Required. Enter dollar amount that corresponds to the Per selection. rateCode any Required. If populated, must match one of the system coded values available in the Additional Rates Rate Code drop down. rateNotes any Not required. Max length: 4000 ratePer any Required. Valid values are HOUR or WEEK. shift any Not required. If populated, must match one of the system coded values available in the Additional Rates Shift drop down. RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/additionalRates https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/additionalRates REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "changeReason": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "endCheckDate": null, * "job": null, * "rate": null, * "rateCode": null, * "rateNotes": null, * "ratePer": null, * "shift": null } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] CLIENT CREDENTIALS OBTAIN NEW CLIENT SECRET. Obtain new client secret for Paylocity-issued client id. See Setup section for details. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) REQUEST BODY SCHEMA: APPLICATION/JSON code required string A value sent with the 'ACTION NEEDED: Web Link API Credentials Expiring Soon.' email notification. RESPONSES 200 Successfully added 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error post /v2/credentials/secrets https://api.paylocity.com/api/v2/credentials/secrets REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "code": "string" } RESPONSE SAMPLES * 200 * 400 * 500 application/json Copy Expand all Collapse all [ * { * "clientSecret": null, * "clientSecretExpirationDate": null } ] COMPANY CODES GET ALL COMPANY CODES Get All Company Codes for the selected company and resource AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id codeResource required string Type of Company Code. Common values costcenter1, costcenter2, costcenter3, deductions, earnings, taxes, paygrade, positions. RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 Invalid Code Resource 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/codes/{codeResource} https://api.paylocity.com/api/v2/companies/{companyId}/codes/{codeResource} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "code": null, * "description": null } ] COMPANY-SPECIFIC SCHEMA GET COMPANY-SPECIFIC OPEN API DOCUMENTATION 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. To learn more about Open API, click here AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id HEADER PARAMETERS Authorization required string Bearer + JWT RESPONSES 200 Successfully retrieved 400 Bad Request 403 Forbidden 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/openapi https://api.paylocity.com/api/v2/companies/{companyId}/openapi RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] CUSTOM FIELDS GET ALL CUSTOM FIELDS Get All Custom Fields for the selected company AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id category required string Custom Fields Category RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 Invalid Category 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/customfields/{category} https://api.paylocity.com/api/v2/companies/{companyId}/customfields/{category} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "category": "string", * "defaultValue": "string", * "isRequired": true, * "label": "string", * "type": "string", * "values": [ * { * "code": "string", * "description": "string" } ] } ] DIRECT DEPOSIT GET ALL DIRECT DEPOSIT Get All Direct Deposit returns main direct deposit and all additional direct depositsfor the selected employee. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The employee, or direct deposit does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/directDeposit https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/directDeposit RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "additionalDirectDeposit": [ * { * "accountNumber": null, * "accountType": null, * "amount": null, * "amountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null } ], * "mainDirectDeposit": { * "accountNumber": null, * "accountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null } } ] EARNINGS ADD/UPDATE EARNING Add/Update Earning API sends new or updated employee earnings information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON agency any Third-party agency associated with earning. Must match Company setup. Max length: 10 amount any Value that matches CalculationCode to add to gross wages. For percentage (%), enter whole number (10 = 10%). Decimal(12,2) annualMaximum any Year to Date dollar amount not to be exceeded for an earning in the calendar year. Used only with company driven maximums. Decimal(12,2) calculationCode any Defines how earnings are calculated. Common values are % (percentage of gross), flat (flat dollar amount). Defaulted to the Company setup calcCode for earning. Max length: 20 costCenter1 any Cost Center associated with earning. Must match Company setup. Max length: 10 costCenter2 any Cost Center associated with earning. Must match Company setup. Max length: 10 costCenter3 any Cost Center associated with earning. Must match Company setup. Max length: 10 earningCode required any Earning code. Must match Company setup. Max length: 10 effectiveDate any <paylocity-date> Date earning is active. Defaulted to run date or check date based on Company setup. Common formats are MM-DD-CCYY, CCYY-MM-DD. endDate any <paylocity-date> Stop date of an earning. Common formats are MM-DD-CCYY, CCYY-MM-DD. frequency any Needed if earning is applied differently from the payroll frequency (one time earning for example). Max length: 5 goal any Dollar amount. The employee earning will stop when the goal amount is reached. Decimal(12,2) hoursOrUnits any 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. Decimal(12,2) isSelfInsured any Used for ACA. If not entered, defaulted to Company earning setup. jobCode any Job code associated with earnings. Must match Company setup. Max length: 20 miscellaneousInfo any Information to print on the check stub if agency is set up for this earning. Max length: 50 paidTowardsGoal any Amount already paid to employee toward goal. Decimal(12,2) payPeriodMaximum any Maximum amount of the earning on a single paycheck. Decimal(12,2) payPeriodMinimum any Minimum amount of the earning on a single paycheck. Decimal(12,2) rate any Rate is used in conjunction with the hoursOrUnits field. Decimal(12,2) rateCode any Rate Code applies to additional pay rates entered for an employee. Must match Company setup. Max length: 10 startDate required any <paylocity-date> Start date of an earning based on payroll calendar. Common formats are MM-DD-CCYY, CCYY-MM-DD. RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/earnings https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/earnings REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "agency": null, * "amount": null, * "annualMaximum": null, * "calculationCode": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "earningCode": null, * "effectiveDate": null, * "endDate": null, * "frequency": null, * "goal": null, * "hoursOrUnits": null, * "isSelfInsured": null, * "jobCode": null, * "miscellaneousInfo": null, * "paidTowardsGoal": null, * "payPeriodMaximum": null, * "payPeriodMinimum": null, * "rate": null, * "rateCode": null, * "startDate": null } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] GET ALL EARNINGS Get All Earnings returns all earnings for the selected employee. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 The employee does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/earnings https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/earnings RESPONSE SAMPLES * 200 * 500 application/json Copy Expand all Collapse all [ * { * "agency": null, * "amount": null, * "annualMaximum": null, * "calculationCode": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "earningCode": null, * "effectiveDate": null, * "endDate": null, * "frequency": null, * "goal": null, * "hoursOrUnits": null, * "isSelfInsured": null, * "jobCode": null, * "miscellaneousInfo": null, * "paidTowardsGoal": null, * "payPeriodMaximum": null, * "payPeriodMinimum": null, * "rate": null, * "rateCode": null, * "startDate": null } ] DELETE EARNING BY EARNING CODE AND START DATE Delete Earning by Earning Code and Start Date AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id earningCode required string Earning Code startDate required string Start Date RESPONSES 204 Successfully deleted 400 Bad Request 401 Unauthorized 403 Forbidden 404 The employee does not exist, or the specified earningCode-startDate combination does not exist 429 Too Many Requests 500 Internal Server Error delete /v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode}/{startDate} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode}/{startDate} RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] GET EARNING BY EARNING CODE AND START DATE Get Earnings returns the single earning with the provided earning code and start date for the selected employee. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id earningCode required string Earning Code startDate required string Start Date RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 The employee does not exist, or the specified earningCode-startDate combination does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode}/{startDate} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode}/{startDate} RESPONSE SAMPLES * 200 * 500 application/json Copy Expand all Collapse all { * "agency": null, * "amount": null, * "annualMaximum": null, * "calculationCode": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "earningCode": null, * "effectiveDate": null, * "endDate": null, * "frequency": null, * "goal": null, * "hoursOrUnits": null, * "isSelfInsured": null, * "jobCode": null, * "miscellaneousInfo": null, * "paidTowardsGoal": null, * "payPeriodMaximum": null, * "payPeriodMinimum": null, * "rate": null, * "rateCode": null, * "startDate": null } GET EARNINGS BY EARNING CODE Get Earnings returns all earnings with the provided earning code for the selected employee. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id earningCode required string Earning Code RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 The employee does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/earnings/{earningCode} RESPONSE SAMPLES * 200 * 500 application/json Copy Expand all Collapse all [ * { * "agency": null, * "amount": null, * "annualMaximum": null, * "calculationCode": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "earningCode": null, * "effectiveDate": null, * "endDate": null, * "frequency": null, * "goal": null, * "hoursOrUnits": null, * "isSelfInsured": null, * "jobCode": null, * "miscellaneousInfo": null, * "paidTowardsGoal": null, * "payPeriodMaximum": null, * "payPeriodMinimum": null, * "rate": null, * "rateCode": null, * "startDate": null } ] EMERGENCY CONTACTS ADD/UPDATE EMERGENCY CONTACTS Sends new or updated employee emergency contacts directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON address1 any 1st address line. address2 any 2nd address line. city any City. country any County. county any Country. Must be a valid 3 character country code. Common values are USA (United States), CAN (Canada). email any Contact email. Must be valid email address format. firstName required any Required. Contact first name. Max length: 40 homePhone any Contact Home Phone. Valid phone format (###) ####### or ######-#### or ### ### #### or ########## or, if international, starts with +#, only spaces and digits allowed. lastName required any Required. Contact last name. Max length: 40 mobilePhone any Contact Mobile Phone. Valid phone format (###) ####### or ######-#### or ### ### #### or ########## or, if international, starts with +#, only spaces and digits allowed. notes any Notes. Max length: 1000 pager any Contact Pager. Valid phone format (###) ####### or ######-#### or ### ### #### or ########## or, if international, starts with +#, only spaces and digits allowed. primaryPhone any Required. Contact primary phone type. Must match Company setup. Valid values are H (Home), M (Mobile), P (Pager), W (Work) priority any Required. Contact priority. Valid values are P (Primary) or S (Secondary). relationship any Required. Contact relationship. Must match Company setup. Common values are Spouse, Mother, Father. state any State or Province. If U.S. address, must be valid 2 character state code. Common values are IL (Illinois), CA (California). syncEmployeeInfo boolean Valid values are true or false. workExtension any Work Extension. workPhone any Contact Work Phone. Valid phone format (###) ####### or ######-#### or ### ### #### or ########## or, if international, starts with +#, only spaces and digits allowed. zip any Postal code. If U.S. address, must be a valid zip code. RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/emergencyContacts https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/emergencyContacts REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "email": null, * "firstName": null, * "homePhone": null, * "lastName": null, * "mobilePhone": null, * "notes": null, * "pager": null, * "primaryPhone": null, * "priority": null, * "relationship": null, * "state": null, * "syncEmployeeInfo": true, * "workExtension": null, * "workPhone": null, * "zip": null } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] EMPLOYEE BENEFIT SETUP ADD/UPDATE EMPLOYEE'S BENEFIT SETUP Sends new or updated employee benefit setup information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON benefitClass any Benefit Class code. Values are configured in Web Pay Company > Setup > Benefits > Classes. Max length: 30 benefitClassEffectiveDate any <paylocity-date> Date when Benefit Class takes effect. Common formats include MM-DD-CCYY, CCYY-MM-DD. benefitSalary any Salary used to configure benefits. Decimal(12,2) benefitSalaryEffectiveDate any <paylocity-date> Date when Benefit Salary takes effect. Common formats include MM-DD-CCYY, CCYY-MM-DD. doNotApplyAdministrativePeriod any Applicable only for HR Enhanced clients and Benefit Classes with ACA Employment Type of Full Time. isMeasureAcaEligibility any Only valid for HR Enhanced clients and Benefit Classes that are ACA Employment Type of Full Time. RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/benefitSetup https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/benefitSetup REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "benefitClass": null, * "benefitClassEffectiveDate": null, * "benefitSalary": null, * "benefitSalaryEffectiveDate": null, * "doNotApplyAdministrativePeriod": null, * "isMeasureAcaEligibility": null } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] EMPLOYEE STAGING ADD NEW EMPLOYEE TO WEB LINK 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. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id REQUEST BODY SCHEMA: APPLICATION/JSON additionalDirectDeposit Array of object 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. benefitSetup Array of object Add setup values used for employee benefits integration, insurance plan settings, and ACA reporting. birthDate any <paylocity-date> Employee birthdate. Common formats include MM-DD-CCYY, CCYY-MM-DD. customBooleanFields Array of object Up to 8 custom fields of boolean (checkbox) type value. customDateFields Array of object Up to 8 custom fields of the date type value. customDropDownFields Array of object Up to 8 custom fields of the dropdown type value. customNumberFields Array of object Up to 8 custom fields of numeric type value. customTextFields Array of object Up to 8 custom fields of text type value. departmentPosition Array of object Add home department cost center, position, supervisor, reviewer, employment type, EEO class, pay settings, and union information. disabilityDescription any Indicates if employee has disability status. employeeId any Leave blank to have Web Pay automatically assign the next available employee ID. Max length: 10 ethnicity any Employee ethnicity. Max length: 10 federalTax Array of object Add federal tax amount type (taxCalculationCode), amount or percentage, filing status, and exemptions. firstName any Employee first name. Max length: 40 fitwExemptReason any Reason code for FITW exemption. Common values are SE (Statutory employee), CR (clergy/Religious). Max length: 30 futaExemptReason any Reason code for FUTA exemption. Common values are 501 (5019c)(3) Organization), IC (Independent Contractor). Max length: 30 gender any Employee gender. Common values M (Male), F (Female). Max length: 1 homeAddress Array of object Add employee's home address, personal phone numbers, and personal email. isEmployee943 any Indicates if employee in agriculture or farming. isSmoker any Indicates if employee is a smoker. lastName any Employee last name. Max length: 40 localTax Array of object Add local tax code, filing status, and exemptions including PA-PSD taxes. mainDirectDeposit Array of object 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. maritalStatus any Employee marital status. Common values D (Divorced), M (Married), S (Single), W (Widowed). Max length: 10 medExemptReason any Reason code for Medicare exemption. Common values are 501 (5019c)(3) Organization), IC (Independent Contractor). Max length: 30 middleName any Employee middle name. Max length: 20 nonPrimaryStateTax Array of object Add non-primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, supplemental check (specialCheckCalc), and reciprocity code information. preferredName any Employee preferred display name. Max length: 20 primaryPayRate Array of object Add hourly or salary pay rate, effective date, and pay frequency. primaryStateTax Array of object 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. priorLastName any Prior last name if applicable. Max length: 40 salutation any Employee preferred salutation. Max length: 10 sitwExemptReason any Reason code for SITW exemption. Common values are SE (Statutory employee), CR (clergy/Religious). Max length: 30 ssExemptReason any Reason code for Social Security exemption. Common values are SE (Statutory employee), CR (clergy/Religious). Max length: 30 ssn any Employee social security number. Leave it blank if valid social security number not available. Max length: 11 status Array of object Add employee status, change reason, effective date, and adjusted seniority date. Note that companies that are still in Implementation cannot hire future employees. suffix any Employee name suffix. Common values are Jr, Sr, II. Max length: 30 suiExemptReason any Reason code for SUI exemption. Common values are SE (Statutory employee), CR (clergy/Religious). Max length: 30 suiState any Employee SUI (State Unemployment Insurance) state. Max length: 2 taxDistributionCode1099R any Employee 1099R distribution code. Common values are 7 (Normal Distribution), F (Charitable Gift Annuity). Max length: 1 taxForm any Employee tax form for reporting income. Valid values are W2, 1099M, 1099R. Default is W2. Max length: 15 veteranDescription any Indicates if employee is a veteran. webTime object Add Web Time badge number and charge rate and synchronize Web Pay and Web Time employee data. workAddress Array of object Add employee's work address, phone numbers, and email. Work Location drop down field is not included. workEligibility Array of object Add I-9 work authorization information. RESPONSES 201 Successfully Added 400 Bad Request 403 Forbidden 429 Too Many Requests 500 Internal Server Error post /v2/weblinkstaging/companies/{companyId}/employees/newemployees https://api.paylocity.com/api/v2/weblinkstaging/companies/{companyId}/employees/newemployees REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "additionalDirectDeposit": [ * { * "accountNumber": null, * "accountType": null, * "amount": null, * "amountType": null, * "isSkipPreNote": null, * "preNoteDate": null, * "routingNumber": null } ], * "benefitSetup": [ * { * "benefitClass": null, * "benefitClassEffectiveDate": null, * "benefitSalary": null, * "benefitSalaryEffectiveDate": null, * "doNotApplyAdministrativePeriod": null, * "isMeasureAcaEligibility": null } ], * "birthDate": null, * "customBooleanFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDateFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDropDownFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customNumberFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customTextFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "departmentPosition": [ * { * "changeReason": null, * "clockBadgeNumber": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "employeeType": null, * "equalEmploymentOpportunityClass": null, * "isMinimumWageExempt": null, * "isOvertimeExempt": null, * "isSupervisorReviewer": null, * "isUnionDuesCollected": null, * "isUnionInitiationCollected": null, * "jobTitle": null, * "payGroup": null, * "positionCode": null, * "shift": null, * "supervisorCompanyNumber": null, * "supervisorEmployeeId": null, * "tipped": null, * "unionAffiliationDate": null, * "unionCode": null, * "unionPosition": null, * "workersCompensation": null } ], * "disabilityDescription": null, * "employeeId": null, * "ethnicity": null, * "federalTax": [ * { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "taxCalculationCode": null, * "w4FormYear": 0 } ], * "firstName": null, * "fitwExemptReason": null, * "futaExemptReason": null, * "gender": null, * "homeAddress": [ * { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "mobilePhone": null, * "phone": null, * "postalCode": null, * "state": null } ], * "isEmployee943": null, * "isSmoker": null, * "lastName": null, * "localTax": [ * { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } ], * "mainDirectDeposit": [ * { * "accountNumber": null, * "accountType": null, * "isSkipPreNote": null, * "preNoteDate": null, * "routingNumber": null } ], * "maritalStatus": null, * "medExemptReason": null, * "middleName": null, * "nonPrimaryStateTax": [ * { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "reciprocityCode": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 } ], * "preferredName": null, * "primaryPayRate": [ * { * "baseRate": null, * "changeReason": null, * "defaultHours": null, * "effectiveDate": null, * "isAutoPay": null, * "payFrequency": null, * "payGrade": null, * "payType": null, * "ratePer": null, * "salary": null } ], * "primaryStateTax": [ * { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 } ], * "priorLastName": null, * "salutation": null, * "sitwExemptReason": null, * "ssExemptReason": null, * "ssn": null, * "status": [ * { * "adjustedSeniorityDate": null, * "changeReason": null, * "effectiveDate": null, * "employeeStatus": null, * "hireDate": null, * "isEligibleForRehire": null } ], * "suffix": null, * "suiExemptReason": null, * "suiState": null, * "taxDistributionCode1099R": null, * "taxForm": null, * "veteranDescription": null, * "webTime": { * "badgeNumber": null, * "chargeRate": null, * "isTimeLaborEnabled": null }, * "workAddress": [ * { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "mobilePhone": null, * "pager": null, * "phone": null, * "phoneExtension": null, * "postalCode": null, * "state": null } ], * "workEligibility": [ * { * "alienOrAdmissionDocumentNumber": null, * "attestedDate": null, * "countryOfIssuance": null, * "foreignPassportNumber": null, * "i94AdmissionNumber": null, * "i9DateVerified": null, * "i9Notes": null, * "isI9Verified": null, * "isSsnVerified": null, * "ssnDateVerified": null, * "ssnNotes": null, * "visaType": null, * "workAuthorization": null, * "workUntil": null } ] } RESPONSE SAMPLES * 201 * 400 * 500 application/json Copy Expand all Collapse all [ * { * "trackingNumber": "string" } ] EMPLOYEE ADD NEW EMPLOYEE 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. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id REQUEST BODY SCHEMA: APPLICATION/JSON additionalDirectDeposit Array of object 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. additionalRate Array of object Add Additional Rates. benefitSetup object Add or update setup values used for employee benefits integration, insurance plan settings, and ACA reporting. birthDate any <paylocity-date> Employee birthdate. Common formats include MM-DD-CCYY, CCYY-MM-DD. companyFEIN any Company FEIN as defined in Web Pay, applicable with GET requests only. Max length: 20 companyName any Company name as defined in Web Pay, applicable with GET requests only. Max length: 50 currency any Employee is paid in this currency. Max length: 30 customBooleanFields Array of object Up to 8 custom fields of boolean (checkbox) type value. customDateFields Array of object Up to 8 custom fields of the date type value. customDropDownFields Array of object Up to 8 custom fields of the dropdown type value. customNumberFields Array of object Up to 8 custom fields of numeric type value. customTextFields Array of object Up to 8 custom fields of text type value. departmentPosition object Add or update home department cost center, position, supervisor, reviewer, employment type, EEO class, pay settings, and union information. disabilityDescription any Indicates if employee has disability status. emergencyContacts Array of object Add or update Emergency Contacts. employeeId any Leave blank to have Web Pay automatically assign the next available employee ID. Max length: 10 ethnicity any Employee ethnicity. Max length: 10 federalTax object Add or update federal tax amount type (taxCalculationCode), amount or percentage, filing status, and exemptions. firstName any Employee first name. Max length: 40 gender any Employee gender. Common values M (Male), F (Female). Max length: 1 homeAddress object Add or update employee's home address, personal phone numbers, and personal email. isHighlyCompensated boolean Indicates if employee meets the highly compensated employee criteria. isSmoker boolean Indicates if employee is a smoker. lastName any Employee last name. Max length: 40 localTax Array of object Add, update, or delete local tax code, filing status, and exemptions including PA-PSD taxes. mainDirectDeposit object 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. maritalStatus any Employee marital status. Common values D (Divorced), M (Married), S (Single), W (Widowed). Max length: 10 middleName any Employee middle name. Max length: 20 nonPrimaryStateTax object Add or update non-primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, supplemental check (specialCheckCalc), and reciprocity code information. ownerPercent any Percentage of employee's ownership in the company, entered as a whole number. Decimal (12,2) preferredName any Employee preferred display name. Max length: 20 primaryPayRate object Add or update hourly or salary pay rate, effective date, and pay frequency. primaryStateTax object 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. priorLastName any Prior last name if applicable. Max length: 40 salutation any Employee preferred salutation. Max length: 10 ssn any Employee social security number. Leave it blank if valid social security number not available. Max length: 11 status object 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. suffix any Employee name suffix. Common values are Jr, Sr, II. Max length: 30 taxSetup object 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. veteranDescription any Indicates if employee is a veteran. webTime object Add or update Web Time badge number and charge rate and synchronize Web Pay and Web Time employee data. workAddress object Add or update employee's work address, phone numbers, and email. Work Location drop down field is not included. workEligibility object Add or update I-9 work authorization information. RESPONSES 201 Successfully added 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error post /v2/companies/{companyId}/employees https://api.paylocity.com/api/v2/companies/{companyId}/employees REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "additionalDirectDeposit": [ * { * "accountNumber": null, * "accountType": null, * "amount": null, * "amountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null } ], * "additionalRate": [ * { * "changeReason": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "endCheckDate": null, * "job": null, * "rate": null, * "rateCode": null, * "rateNotes": null, * "ratePer": null, * "shift": null } ], * "benefitSetup": { * "benefitClass": null, * "benefitClassEffectiveDate": null, * "benefitSalary": null, * "benefitSalaryEffectiveDate": null, * "doNotApplyAdministrativePeriod": null, * "isMeasureAcaEligibility": null }, * "birthDate": null, * "companyFEIN": null, * "companyName": null, * "currency": null, * "customBooleanFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDateFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDropDownFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customNumberFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customTextFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "departmentPosition": { * "changeReason": null, * "clockBadgeNumber": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "employeeType": null, * "equalEmploymentOpportunityClass": null, * "isMinimumWageExempt": null, * "isOvertimeExempt": null, * "isSupervisorReviewer": null, * "isUnionDuesCollected": null, * "isUnionInitiationCollected": null, * "jobTitle": null, * "payGroup": null, * "positionCode": null, * "reviewerCompanyNumber": null, * "reviewerEmployeeId": null, * "shift": null, * "supervisorCompanyNumber": null, * "supervisorEmployeeId": null, * "tipped": null, * "unionAffiliationDate": null, * "unionCode": null, * "unionPosition": null, * "workersCompensation": null }, * "disabilityDescription": null, * "emergencyContacts": [ * { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "email": null, * "firstName": null, * "homePhone": null, * "lastName": null, * "mobilePhone": null, * "notes": null, * "pager": null, * "primaryPhone": null, * "priority": null, * "relationship": null, * "state": null, * "syncEmployeeInfo": true, * "workExtension": null, * "workPhone": null, * "zip": null } ], * "employeeId": null, * "ethnicity": null, * "federalTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "taxCalculationCode": null, * "w4FormYear": 0 }, * "firstName": null, * "gender": null, * "homeAddress": { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "mobilePhone": null, * "phone": null, * "postalCode": null, * "state": null }, * "isHighlyCompensated": true, * "isSmoker": true, * "lastName": null, * "localTax": [ * { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } ], * "mainDirectDeposit": { * "accountNumber": null, * "accountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null }, * "maritalStatus": null, * "middleName": null, * "nonPrimaryStateTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "reciprocityCode": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 }, * "ownerPercent": null, * "preferredName": null, * "primaryPayRate": { * "annualSalary": null, * "baseRate": null, * "beginCheckDate": null, * "changeReason": null, * "defaultHours": null, * "effectiveDate": null, * "isAutoPay": null, * "payFrequency": null, * "payGrade": null, * "payRateNote": null, * "payType": null, * "ratePer": null, * "salary": null }, * "primaryStateTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 }, * "priorLastName": null, * "salutation": null, * "ssn": null, * "status": { * "adjustedSeniorityDate": null, * "changeReason": null, * "effectiveDate": null, * "employeeStatus": null, * "hireDate": null, * "isEligibleForRehire": null, * "reHireDate": null, * "statusType": null, * "terminationDate": null }, * "suffix": null, * "taxSetup": { * "fitwExemptNotes": null, * "fitwExemptReason": null, * "futaExemptNotes": null, * "futaExemptReason": null, * "isEmployee943": true, * "isPension": true, * "isStatutory": true, * "medExemptNotes": null, * "medExemptReason": null, * "sitwExemptNotes": null, * "sitwExemptReason": null, * "ssExemptNotes": null, * "ssExemptReason": null, * "suiExemptNotes": null, * "suiExemptReason": null, * "suiState": null, * "taxDistributionCode1099R": null, * "taxForm": null }, * "veteranDescription": null, * "webTime": { * "badgeNumber": null, * "chargeRate": null, * "isTimeLaborEnabled": null }, * "workAddress": { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "location": null, * "mailStop": null, * "mobilePhone": null, * "pager": null, * "phone": null, * "phoneExtension": null, * "postalCode": null, * "state": null }, * "workEligibility": { * "alienOrAdmissionDocumentNumber": null, * "attestedDate": null, * "countryOfIssuance": null, * "foreignPassportNumber": null, * "i94AdmissionNumber": null, * "i9DateVerified": null, * "i9Notes": null, * "isI9Verified": null, * "isSsnVerified": null, * "ssnDateVerified": null, * "ssnNotes": null, * "visaType": null, * "workAuthorization": null, * "workUntil": null } } RESPONSE SAMPLES * 201 * 400 * 500 application/json Copy Expand all Collapse all [ * { * "employeeId": "string" } ] GET ALL EMPLOYEES Get All Employees API will return employee data currently available in Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id QUERY PARAMETERS pagesize integer Number of records per page. Default value is 25. pagenumber integer Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0. includetotalcount boolean Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true. RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The company does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees https://api.paylocity.com/api/v2/companies/{companyId}/employees RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "employeeId": null, * "statusCode": null, * "statusTypeCode": null } ] GET EMPLOYEE Get Employee API will return employee data currently available in Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The employee does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "additionalDirectDeposit": [ * { * "accountNumber": null, * "accountType": null, * "amount": null, * "amountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null } ], * "additionalRate": [ * { * "changeReason": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "endCheckDate": null, * "job": null, * "rate": null, * "rateCode": null, * "rateNotes": null, * "ratePer": null, * "shift": null } ], * "benefitSetup": { * "benefitClass": null, * "benefitClassEffectiveDate": null, * "benefitSalary": null, * "benefitSalaryEffectiveDate": null, * "doNotApplyAdministrativePeriod": null, * "isMeasureAcaEligibility": null }, * "birthDate": null, * "companyFEIN": null, * "companyName": null, * "currency": null, * "customBooleanFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDateFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDropDownFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customNumberFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customTextFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "departmentPosition": { * "changeReason": null, * "clockBadgeNumber": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "employeeType": null, * "equalEmploymentOpportunityClass": null, * "isMinimumWageExempt": null, * "isOvertimeExempt": null, * "isSupervisorReviewer": null, * "isUnionDuesCollected": null, * "isUnionInitiationCollected": null, * "jobTitle": null, * "payGroup": null, * "positionCode": null, * "reviewerCompanyNumber": null, * "reviewerEmployeeId": null, * "shift": null, * "supervisorCompanyNumber": null, * "supervisorEmployeeId": null, * "tipped": null, * "unionAffiliationDate": null, * "unionCode": null, * "unionPosition": null, * "workersCompensation": null }, * "disabilityDescription": null, * "emergencyContacts": [ * { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "email": null, * "firstName": null, * "homePhone": null, * "lastName": null, * "mobilePhone": null, * "notes": null, * "pager": null, * "primaryPhone": null, * "priority": null, * "relationship": null, * "state": null, * "syncEmployeeInfo": true, * "workExtension": null, * "workPhone": null, * "zip": null } ], * "employeeId": null, * "ethnicity": null, * "federalTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "taxCalculationCode": null, * "w4FormYear": 0 }, * "firstName": null, * "gender": null, * "homeAddress": { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "mobilePhone": null, * "phone": null, * "postalCode": null, * "state": null }, * "isHighlyCompensated": true, * "isSmoker": true, * "lastName": null, * "localTax": [ * { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } ], * "mainDirectDeposit": { * "accountNumber": null, * "accountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null }, * "maritalStatus": null, * "middleName": null, * "nonPrimaryStateTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "reciprocityCode": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 }, * "ownerPercent": null, * "preferredName": null, * "primaryPayRate": { * "annualSalary": null, * "baseRate": null, * "beginCheckDate": null, * "changeReason": null, * "defaultHours": null, * "effectiveDate": null, * "isAutoPay": null, * "payFrequency": null, * "payGrade": null, * "payRateNote": null, * "payType": null, * "ratePer": null, * "salary": null }, * "primaryStateTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 }, * "priorLastName": null, * "salutation": null, * "ssn": null, * "status": { * "adjustedSeniorityDate": null, * "changeReason": null, * "effectiveDate": null, * "employeeStatus": null, * "hireDate": null, * "isEligibleForRehire": null, * "reHireDate": null, * "statusType": null, * "terminationDate": null }, * "suffix": null, * "taxSetup": { * "fitwExemptNotes": null, * "fitwExemptReason": null, * "futaExemptNotes": null, * "futaExemptReason": null, * "isEmployee943": true, * "isPension": true, * "isStatutory": true, * "medExemptNotes": null, * "medExemptReason": null, * "sitwExemptNotes": null, * "sitwExemptReason": null, * "ssExemptNotes": null, * "ssExemptReason": null, * "suiExemptNotes": null, * "suiExemptReason": null, * "suiState": null, * "taxDistributionCode1099R": null, * "taxForm": null }, * "veteranDescription": null, * "webTime": { * "badgeNumber": null, * "chargeRate": null, * "isTimeLaborEnabled": null }, * "workAddress": { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "location": null, * "mailStop": null, * "mobilePhone": null, * "pager": null, * "phone": null, * "phoneExtension": null, * "postalCode": null, * "state": null }, * "workEligibility": { * "alienOrAdmissionDocumentNumber": null, * "attestedDate": null, * "countryOfIssuance": null, * "foreignPassportNumber": null, * "i94AdmissionNumber": null, * "i9DateVerified": null, * "i9Notes": null, * "isI9Verified": null, * "isSsnVerified": null, * "ssnDateVerified": null, * "ssnNotes": null, * "visaType": null, * "workAuthorization": null, * "workUntil": null } } ] UPDATE EMPLOYEE Update Employee API will update existing employee data in WebPay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON additionalDirectDeposit Array of object 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. additionalRate Array of object Add Additional Rates. benefitSetup object Add or update setup values used for employee benefits integration, insurance plan settings, and ACA reporting. birthDate any <paylocity-date> Employee birthdate. Common formats include MM-DD-CCYY, CCYY-MM-DD. companyFEIN any Company FEIN as defined in Web Pay, applicable with GET requests only. Max length: 20 companyName any Company name as defined in Web Pay, applicable with GET requests only. Max length: 50 currency any Employee is paid in this currency. Max length: 30 customBooleanFields Array of object Up to 8 custom fields of boolean (checkbox) type value. customDateFields Array of object Up to 8 custom fields of the date type value. customDropDownFields Array of object Up to 8 custom fields of the dropdown type value. customNumberFields Array of object Up to 8 custom fields of numeric type value. customTextFields Array of object Up to 8 custom fields of text type value. departmentPosition object Add or update home department cost center, position, supervisor, reviewer, employment type, EEO class, pay settings, and union information. disabilityDescription any Indicates if employee has disability status. emergencyContacts Array of object Add or update Emergency Contacts. employeeId any Leave blank to have Web Pay automatically assign the next available employee ID. Max length: 10 ethnicity any Employee ethnicity. Max length: 10 federalTax object Add or update federal tax amount type (taxCalculationCode), amount or percentage, filing status, and exemptions. firstName any Employee first name. Max length: 40 gender any Employee gender. Common values M (Male), F (Female). Max length: 1 homeAddress object Add or update employee's home address, personal phone numbers, and personal email. isHighlyCompensated boolean Indicates if employee meets the highly compensated employee criteria. isSmoker boolean Indicates if employee is a smoker. lastName any Employee last name. Max length: 40 localTax Array of object Add, update, or delete local tax code, filing status, and exemptions including PA-PSD taxes. mainDirectDeposit object 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. maritalStatus any Employee marital status. Common values D (Divorced), M (Married), S (Single), W (Widowed). Max length: 10 middleName any Employee middle name. Max length: 20 nonPrimaryStateTax object Add or update non-primary state tax code, amount type (taxCalculationCode), amount or percentage, filing status, exemptions, supplemental check (specialCheckCalc), and reciprocity code information. ownerPercent any Percentage of employee's ownership in the company, entered as a whole number. Decimal (12,2) preferredName any Employee preferred display name. Max length: 20 primaryPayRate object Add or update hourly or salary pay rate, effective date, and pay frequency. primaryStateTax object 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. priorLastName any Prior last name if applicable. Max length: 40 salutation any Employee preferred salutation. Max length: 10 ssn any Employee social security number. Leave it blank if valid social security number not available. Max length: 11 status object 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. suffix any Employee name suffix. Common values are Jr, Sr, II. Max length: 30 taxSetup object 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. veteranDescription any Indicates if employee is a veteran. webTime object Add or update Web Time badge number and charge rate and synchronize Web Pay and Web Time employee data. workAddress object Add or update employee's work address, phone numbers, and email. Work Location drop down field is not included. workEligibility object Add or update I-9 work authorization information. RESPONSES 200 Successfully Updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error patch /v2/companies/{companyId}/employees/{employeeId} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId} REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "additionalDirectDeposit": [ * { * "accountNumber": null, * "accountType": null, * "amount": null, * "amountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null } ], * "additionalRate": [ * { * "changeReason": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "endCheckDate": null, * "job": null, * "rate": null, * "rateCode": null, * "rateNotes": null, * "ratePer": null, * "shift": null } ], * "benefitSetup": { * "benefitClass": null, * "benefitClassEffectiveDate": null, * "benefitSalary": null, * "benefitSalaryEffectiveDate": null, * "doNotApplyAdministrativePeriod": null, * "isMeasureAcaEligibility": null }, * "birthDate": null, * "companyFEIN": null, * "companyName": null, * "currency": null, * "customBooleanFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDateFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customDropDownFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customNumberFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "customTextFields": [ * { * "category": "PayrollAndHR", * "label": null, * "value": null } ], * "departmentPosition": { * "changeReason": null, * "clockBadgeNumber": null, * "costCenter1": null, * "costCenter2": null, * "costCenter3": null, * "effectiveDate": null, * "employeeType": null, * "equalEmploymentOpportunityClass": null, * "isMinimumWageExempt": null, * "isOvertimeExempt": null, * "isSupervisorReviewer": null, * "isUnionDuesCollected": null, * "isUnionInitiationCollected": null, * "jobTitle": null, * "payGroup": null, * "positionCode": null, * "reviewerCompanyNumber": null, * "reviewerEmployeeId": null, * "shift": null, * "supervisorCompanyNumber": null, * "supervisorEmployeeId": null, * "tipped": null, * "unionAffiliationDate": null, * "unionCode": null, * "unionPosition": null, * "workersCompensation": null }, * "disabilityDescription": null, * "emergencyContacts": [ * { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "email": null, * "firstName": null, * "homePhone": null, * "lastName": null, * "mobilePhone": null, * "notes": null, * "pager": null, * "primaryPhone": null, * "priority": null, * "relationship": null, * "state": null, * "syncEmployeeInfo": true, * "workExtension": null, * "workPhone": null, * "zip": null } ], * "employeeId": null, * "ethnicity": null, * "federalTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "taxCalculationCode": null, * "w4FormYear": 0 }, * "firstName": null, * "gender": null, * "homeAddress": { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "mobilePhone": null, * "phone": null, * "postalCode": null, * "state": null }, * "isHighlyCompensated": true, * "isSmoker": true, * "lastName": null, * "localTax": [ * { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } ], * "mainDirectDeposit": { * "accountNumber": null, * "accountType": null, * "blockSpecial": null, * "isSkipPreNote": null, * "nameOnAccount": null, * "preNoteDate": null, * "routingNumber": null }, * "maritalStatus": null, * "middleName": null, * "nonPrimaryStateTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "reciprocityCode": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 }, * "ownerPercent": null, * "preferredName": null, * "primaryPayRate": { * "annualSalary": null, * "baseRate": null, * "beginCheckDate": null, * "changeReason": null, * "defaultHours": null, * "effectiveDate": null, * "isAutoPay": null, * "payFrequency": null, * "payGrade": null, * "payRateNote": null, * "payType": null, * "ratePer": null, * "salary": null }, * "primaryStateTax": { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 }, * "priorLastName": null, * "salutation": null, * "ssn": null, * "status": { * "adjustedSeniorityDate": null, * "changeReason": null, * "effectiveDate": null, * "employeeStatus": null, * "hireDate": null, * "isEligibleForRehire": null, * "reHireDate": null, * "statusType": null, * "terminationDate": null }, * "suffix": null, * "taxSetup": { * "fitwExemptNotes": null, * "fitwExemptReason": null, * "futaExemptNotes": null, * "futaExemptReason": null, * "isEmployee943": true, * "isPension": true, * "isStatutory": true, * "medExemptNotes": null, * "medExemptReason": null, * "sitwExemptNotes": null, * "sitwExemptReason": null, * "ssExemptNotes": null, * "ssExemptReason": null, * "suiExemptNotes": null, * "suiExemptReason": null, * "suiState": null, * "taxDistributionCode1099R": null, * "taxForm": null }, * "veteranDescription": null, * "webTime": { * "badgeNumber": null, * "chargeRate": null, * "isTimeLaborEnabled": null }, * "workAddress": { * "address1": null, * "address2": null, * "city": null, * "country": null, * "county": null, * "emailAddress": null, * "location": null, * "mailStop": null, * "mobilePhone": null, * "pager": null, * "phone": null, * "phoneExtension": null, * "postalCode": null, * "state": null }, * "workEligibility": { * "alienOrAdmissionDocumentNumber": null, * "attestedDate": null, * "countryOfIssuance": null, * "foreignPassportNumber": null, * "i94AdmissionNumber": null, * "i9DateVerified": null, * "i9Notes": null, * "isI9Verified": null, * "isSsnVerified": null, * "ssnDateVerified": null, * "ssnNotes": null, * "visaType": null, * "workAuthorization": null, * "workUntil": null } } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] LOCAL TAXES ADD NEW LOCAL TAX Sends new employee local tax information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON exemptions any Local tax exemptions value. Decimal (12,2) exemptions2 any Local tax exemptions 2 value. Decimal (12,2) filingStatus any Employee local tax filing status. Must match specific local tax setup. Max length: 50 residentPSD any Resident PSD (political subdivision code) applicable in PA. Must match Company setup. Max length: 9 taxCode any Local tax code. Max length: 50 workPSD any Work location PSD. Must match Company setup. Max length: 9 RESPONSES 201 Successfully added 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error post /v2/companies/{companyId}/employees/{employeeId}/localTaxes https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/localTaxes REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] GET ALL LOCAL TAXES Returns all local taxes for the selected employee. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 The employee does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/localTaxes https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/localTaxes RESPONSE SAMPLES * 200 * 500 application/json Copy Expand all Collapse all [ * { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } ] DELETE LOCAL TAX BY TAX CODE Delete local tax by tax code AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id taxCode required string Tax Code RESPONSES 204 Successfully deleted 400 Bad Request 401 Unauthorized 403 Forbidden 404 The employee does not exist, or the specified tax code does not exist 429 Too Many Requests 500 Internal Server Error delete /v2/companies/{companyId}/employees/{employeeId}/localTaxes/{taxCode} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/localTaxes/{taxCode} RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] GET LOCAL TAXES BY TAX CODE Returns all local taxes with the provided tax code for the selected employee. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id taxCode required string Tax Code RESPONSES 200 Successfully retrieved 401 Unauthorized 403 Forbidden 404 The employee does not exist, or the specified tax code does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/localTaxes/{taxCode} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/localTaxes/{taxCode} RESPONSE SAMPLES * 200 * 500 application/json Copy Expand all Collapse all [ * { * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "residentPSD": null, * "taxCode": null, * "workPSD": null } ] NON-PRIMARY STATE TAX ADD/UPDATE NON-PRIMARY STATE TAX Sends new or updated employee non-primary state tax information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON amount any State tax code. Max length: 50 deductionsAmount number Box 4(b) on form W4 (year 2020 or later): Deductions amount. Decimal (12,2) dependentsAmount number Box 3 on form W4 (year 2020 or later): Total dependents amount. Decimal (12,2) exemptions any State tax exemptions value. Decimal (12,2) exemptions2 any State tax exemptions 2 value. Decimal (12,2) filingStatus any Employee state tax filing status. Common values are S (Single), M (Married). Max length: 50 higherRate boolean Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. Boolean otherIncomeAmount number Box 4(a) on form W4 (year 2020 or later): Other income amount. Decimal (12,2) percentage any State Tax percentage. Decimal (12,2) reciprocityCode any Non-primary state tax reciprocity code. Max length: 50 specialCheckCalc any Supplemental check calculation code. Common values are Blocked (Taxes blocked on Supplemental checks), Supp (Use supplemental Tax Rate-Code). Max length: 10 taxCalculationCode any Tax calculation code. Common values are F (Flat), P (Percentage), FDFP (Flat Dollar Amount plus Fixed Percentage). Max length: 10 taxCode any State tax code. Max length: 50 w4FormYear integer The state W4 form year Integer RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/nonprimaryStateTax https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/nonprimaryStateTax REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "reciprocityCode": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] PAYSTATEMENTS GET EMPLOYEE PAY STATEMENT DETAILS DATA FOR THE SPECIFIED YEAR AND CHECK DATE. Get pay statement details API will return employee pay statement detail data currently available in Web Pay for the specified year and check date. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id year required string The year for which to retrieve pay statement data checkDate required string The check date for which to retrieve pay statement data QUERY PARAMETERS pagesize integer Number of records per page. Default value is 25. pagenumber integer Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0. includetotalcount boolean Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true. codegroup string Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW. RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The employee, specified year, or check date does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/paystatement/details/{year}/{checkDate} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/paystatement/details/{year}/{checkDate} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "amount": null, * "checkDate": null, * "det": null, * "detCode": null, * "detType": null, * "eligibleCompensation": null, * "hours": null, * "rate": null, * "transactionNumber": 0, * "transactionType": null, * "year": 0 } ] GET EMPLOYEE PAY STATEMENT DETAILS DATA FOR THE SPECIFIED YEAR. Get pay statement details API will return employee pay statement details data currently available in Web Pay for the specified year. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id year required string The year for which to retrieve pay statement data QUERY PARAMETERS pagesize integer Number of records per page. Default value is 25. pagenumber integer Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0. includetotalcount boolean Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true. codegroup string Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW. RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The employee, specified year, or check date does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/paystatement/details/{year} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/paystatement/details/{year} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "amount": null, * "checkDate": null, * "det": null, * "detCode": null, * "detType": null, * "eligibleCompensation": null, * "hours": null, * "rate": null, * "transactionNumber": 0, * "transactionType": null, * "year": 0 } ] GET EMPLOYEE PAY STATEMENT SUMMARY DATA FOR THE SPECIFIED YEAR AND CHECK DATE. Get pay statement summary API will return employee pay statement summary data currently available in Web Pay for the specified year and check date. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id year required string The year for which to retrieve pay statement data checkDate required string The check date for which to retrieve pay statement data QUERY PARAMETERS pagesize integer Number of records per page. Default value is 25. pagenumber integer Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0. includetotalcount boolean Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true. codegroup string Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW. RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The employee, specified year, or check date does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/paystatement/summary/{year}/{checkDate} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/paystatement/summary/{year}/{checkDate} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "autoPay": true, * "beginDate": null, * "checkDate": null, * "checkNumber": 0, * "directDepositAmount": null, * "endDate": null, * "grossPay": null, * "hours": null, * "netCheck": null, * "netPay": null, * "overtimeDollars": null, * "overtimeHours": null, * "process": 0, * "regularDollars": null, * "regularHours": null, * "transactionNumber": 0, * "voucherNumber": 0, * "workersCompCode": null, * "year": 0 } ] GET EMPLOYEE PAY STATEMENT SUMMARY DATA FOR THE SPECIFIED YEAR. Get pay statement summary API will return employee pay statement summary data currently available in Web Pay for the specified year. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id year required string The year for which to retrieve pay statement data QUERY PARAMETERS pagesize integer Number of records per page. Default value is 25. pagenumber integer Page number to retrieve; page numbers are 0-based (so to get the first page of results, pass pagenumber=0). Default value is 0. includetotalcount boolean Whether to include the total record count in the header's X-Pcty-Total-Count property. Default value is true. codegroup string Retrieve pay statement details related to specific deduction, earning or tax types. Common values include 401k, Memo, Reg, OT, Cash Tips, FED and SITW. RESPONSES 200 Successfully Retrieved 401 Unauthorized 403 Forbidden 404 The employee, specified year, or check date does not exist 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/paystatement/summary/{year} https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/paystatement/summary/{year} RESPONSE SAMPLES * 200 * 404 * 500 application/json Copy Expand all Collapse all [ * { * "autoPay": true, * "beginDate": null, * "checkDate": null, * "checkNumber": 0, * "directDepositAmount": null, * "endDate": null, * "grossPay": null, * "hours": null, * "netCheck": null, * "netPay": null, * "overtimeDollars": null, * "overtimeHours": null, * "process": 0, * "regularDollars": null, * "regularHours": null, * "transactionNumber": 0, * "voucherNumber": 0, * "workersCompCode": null, * "year": 0 } ] PRIMARY STATE TAX ADD/UPDATE PRIMARY STATE TAX Sends new or updated employee primary state tax information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON amount any State tax code. Max length: 50 deductionsAmount number Box 4(b) on form W4 (year 2020 or later): Deductions amount. Decimal (12,2) dependentsAmount number Box 3 on form W4 (year 2020 or later): Total dependents amount. Decimal (12,2) exemptions any State tax exemptions value. Decimal (12,2) exemptions2 any State tax exemptions 2 value. Decimal (12,2) filingStatus any Employee state tax filing status. Common values are S (Single), M (Married). Max length: 50 higherRate boolean Box 2(c) on form W4 (year 2020 or later): Multiple Jobs or Spouse Works. Boolean otherIncomeAmount number Box 4(a) on form W4 (year 2020 or later): Other income amount. Decimal (12,2) percentage any State Tax percentage. Decimal (12,2) specialCheckCalc any Supplemental check calculation code. Common values are Blocked (Taxes blocked on Supplemental checks), Supp (Use supplemental Tax Rate-Code). Max length: 10 taxCalculationCode any Tax calculation code. Common values are F (Flat), P (Percentage), FDFP (Flat Dollar Amount plus Fixed Percentage). Max length: 10 taxCode any State tax code. Max length: 50 w4FormYear integer The state W4 form year Integer RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/primaryStateTax https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/primaryStateTax REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "amount": null, * "deductionsAmount": 0, * "dependentsAmount": 0, * "exemptions": null, * "exemptions2": null, * "filingStatus": null, * "higherRate": true, * "otherIncomeAmount": 0, * "percentage": null, * "specialCheckCalc": null, * "taxCalculationCode": null, * "taxCode": null, * "w4FormYear": 0 } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] SENSITIVE DATA ADD/UPDATE SENSITIVE DATA Sends new or updated employee sensitive data information directly to Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id REQUEST BODY SCHEMA: APPLICATION/JSON disability object Add or update disability data. ethnicity object Add or update ethnicity data. gender object Add or update gender data. veteran object Add or update veteran data. RESPONSES 200 Successfully added or updated 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error put /v2/companies/{companyId}/employees/{employeeId}/sensitivedata https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/sensitivedata REQUEST SAMPLES * Payload application/json Copy Expand all Collapse all { * "disability": { * "disability": null, * "disabilityClassifications": [ * { * "classification": null } ], * "hasDisability": null }, * "ethnicity": { * "ethnicity": null, * "ethnicRacialIdentities": [ * { * "description": null } ] }, * "gender": { * "displayPronouns": null, * "genderIdentityDescription": null, * "identifyAsLegalGender": null, * "legalGender": null, * "pronouns": null, * "sexualOrientation": null }, * "veteran": { * "isVeteran": null, * "veteran": null } } RESPONSE SAMPLES * 400 * 500 application/json Copy Expand all Collapse all [ * { * "field": "string", * "message": "string", * "options": [ * { * "code": "string", * "description": "string" } ], * "path": "string" } ] GET SENSITIVE DATA Gets employee sensitive data information directly from Web Pay. AUTHORIZATIONS: paylocity_auth (WebLinkAPI) PATH PARAMETERS companyId required string Company Id employeeId required string Employee Id RESPONSES 200 Successfully Retrieved 400 Bad Request 401 Unauthorized 403 Forbidden 429 Too Many Requests 500 Internal Server Error get /v2/companies/{companyId}/employees/{employeeId}/sensitivedata https://api.paylocity.com/api/v2/companies/{companyId}/employees/{employeeId}/sensitivedata RESPONSE SAMPLES * 200 * 400 * 500 application/json Copy Expand all Collapse all [ * { * "disability": { * "disability": null, * "disabilityClassifications": [ * { * "classification": null } ], * "hasDisability": null }, * "ethnicity": { * "ethnicity": null, * "ethnicRacialIdentities": [ * { * "description": null } ] }, * "gender": { * "displayPronouns": null, * "genderIdentityDescription": null, * "identifyAsLegalGender": null, * "legalGender": null, * "pronouns": null, * "sexualOrientation": null }, * "veteran": { * "isVeteran": null, * "veteran": null } } ]