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

Form analysis 0 forms found in the DOM

Text 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
      
      }
   
   }

]