Own the employee onboarding UI/UX and send Zeal the employee information as needed

In order for an employee to be onboarded, please provide the following:

  1. Employee Profile Information
  2. Federal Tax Information (optional)
  3. State Tax Information (optional)
  4. Bank Account Information

📘

Work Location

Before creating the employee using the employee endpoint you must create a workLocation after resolving a taxable location. Please refer back to the Quickstart Guide for the overview on how this is done via Zeal's API.

Create Employee Endpoint


Please provide as many fields possible for the employee up front. Although many fields are optional, we will require you to fill out the following fields before you can set an employee to be onboarded:
Create Employee

  • email
  • first_name
  • last_name
  • default_pay_schedule
  • title
  • start_date
  • working_state
  • street1
  • city
  • state
  • zip
  • ssn
  • dob
curl --location --request POST 'https://api.joinpuzzl.com/employees'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer <YOUR API KEY>'
--data-raw '{
   "companyID": "1b5n28nrideucd24",
   "new_employees": [
      {
         "email": "[email protected]",
         "first_name":"Erlich",
         "last_name":"Bachman",
         "default_pay_schedule": "daily",
         "title": "Brand Ambassador",
         "start_date": "2019-11-01",
         "working_state": "CA",
         "default_wage": 20,
         "overtime_rate": 1.6,
         "double_time_rate": 2.1,
         "ssn": "182563748",
         "phone_number": "8716738956"
      }
   ]
}'

Call this endpoint with the jurisdictions relevant to your employee's taxable status. You will get back a codified version of the tax documents the employee will need to fill.

curl --location --request POST 'https://api.joinpuzzl.com/employees/getTaxParameterDefinitions'
--header 'Authorization: Bearer <YOUR API KEY>'
--data-raw '{
   "jurisdiction": ["US", "CA"]
}'

Once you've collected information for the tax documents, us this endpoint to submit a codified version of the tax information so that Zeal can properly calculate taxes for payroll.

curl --location --request POST 'https://api.joinpuzzl.com/employees/setTaxParameters'
--header 'Authorization: Bearer <YOUR API KEY>'
--data-raw '{
 "employeeID": "61606599da9640326646f668",
 "companyID": "fc235f012bae46aa8a082f357715bcfa",
 "federalParameters": [
    {
       "code": "FILINGSTATUS",
       "jurisdiction": "US",
       "value": "H"
    }
 ],
 "stateParameters": [
    {
       "code": "FILINGSTATUS",
       "jurisdiction": "CA",
       "value": "H"
    },
    {
       "code": "REGULAR_ALLOWANCES",
       "jurisdiction": "CA",
       "value": "1"
    }
 ]
}'

Zeal needs the account number and routing number of the employee's bank account in order to distribute net pay to the employee.

curl --location --request POST 'https://api.joinpuzzl.com/bankaccount'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer <YOUR API KEY>'
--data-raw '{
   "companyID": "0987654321",
   "id": "0982354562734",
   "institution_name": "Chase",
   "account_number": "1243686537",
   "routing_number": "09876283743",
   "type": "checking"
}'

Set onboarded to true to set the employee as onboarded. Setting this field yourself will only work if a bank account has been created for the employee and if the following employee profile fields have been completed: first name, last name, dob, start date, default pay schedule, email, working state, ssn, address, city, state, and zip. Otherwise, Zeal will return an error indicating that some fields are missing. Once the employee is onboarded successfully, they can get paid!

curl --location --request POST 'https://api.joinpuzzl.com/employees/setOnboardedStatusToTrue'
--header 'Authorization: Bearer <YOUR API KEY>'
--data-raw '{
   "employeeID": "61606599da9640326646f668"
   "companyID": "fc235f012bae46aa8a082f357715bcfa"
}'

Did this page help you?