Employees
Create Employee
Create one or more W-2 employees under a company in Zeal.
POST
/
employees
Create Employee
curl --request POST \
--url https://api.zeal.com/employees \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "<string>",
"new_employees": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"default_pay_schedule": "<string>",
"default_wage": 123,
"workLocationID": "<string>",
"overtime_rate": 1.5,
"doubletime_rate": 2,
"start_date": "2023-12-25",
"dob": "2023-12-25",
"ssn": "<string>",
"phone_number": "<string>",
"address": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"is_943": false,
"is_scheduleH": false,
"external_id": "<string>",
"metadata": {},
"work_week_start": "<string>",
"is_salary": true,
"salary": 123,
"is_regular": true,
"soc_code": "<string>"
}
]
}
'import requests
url = "https://api.zeal.com/employees"
payload = {
"companyID": "<string>",
"new_employees": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"default_pay_schedule": "<string>",
"default_wage": 123,
"workLocationID": "<string>",
"overtime_rate": 1.5,
"doubletime_rate": 2,
"start_date": "2023-12-25",
"dob": "2023-12-25",
"ssn": "<string>",
"phone_number": "<string>",
"address": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"is_943": False,
"is_scheduleH": False,
"external_id": "<string>",
"metadata": {},
"work_week_start": "<string>",
"is_salary": True,
"salary": 123,
"is_regular": True,
"soc_code": "<string>"
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyID: '<string>',
new_employees: [
{
email: '<string>',
first_name: '<string>',
last_name: '<string>',
title: '<string>',
default_pay_schedule: '<string>',
default_wage: 123,
workLocationID: '<string>',
overtime_rate: 1.5,
doubletime_rate: 2,
start_date: '2023-12-25',
dob: '2023-12-25',
ssn: '<string>',
phone_number: '<string>',
address: '<string>',
address_line2: '<string>',
city: '<string>',
state: '<string>',
zip: '<string>',
is_943: false,
is_scheduleH: false,
external_id: '<string>',
metadata: {},
work_week_start: '<string>',
is_salary: true,
salary: 123,
is_regular: true,
soc_code: '<string>'
}
]
})
};
fetch('https://api.zeal.com/employees', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zeal.com/employees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'companyID' => '<string>',
'new_employees' => [
[
'email' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'title' => '<string>',
'default_pay_schedule' => '<string>',
'default_wage' => 123,
'workLocationID' => '<string>',
'overtime_rate' => 1.5,
'doubletime_rate' => 2,
'start_date' => '2023-12-25',
'dob' => '2023-12-25',
'ssn' => '<string>',
'phone_number' => '<string>',
'address' => '<string>',
'address_line2' => '<string>',
'city' => '<string>',
'state' => '<string>',
'zip' => '<string>',
'is_943' => false,
'is_scheduleH' => false,
'external_id' => '<string>',
'metadata' => [
],
'work_week_start' => '<string>',
'is_salary' => true,
'salary' => 123,
'is_regular' => true,
'soc_code' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.zeal.com/employees"
payload := strings.NewReader("{\n \"companyID\": \"<string>\",\n \"new_employees\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"default_pay_schedule\": \"<string>\",\n \"default_wage\": 123,\n \"workLocationID\": \"<string>\",\n \"overtime_rate\": 1.5,\n \"doubletime_rate\": 2,\n \"start_date\": \"2023-12-25\",\n \"dob\": \"2023-12-25\",\n \"ssn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"address\": \"<string>\",\n \"address_line2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"zip\": \"<string>\",\n \"is_943\": false,\n \"is_scheduleH\": false,\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"work_week_start\": \"<string>\",\n \"is_salary\": true,\n \"salary\": 123,\n \"is_regular\": true,\n \"soc_code\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.zeal.com/employees")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyID\": \"<string>\",\n \"new_employees\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"default_pay_schedule\": \"<string>\",\n \"default_wage\": 123,\n \"workLocationID\": \"<string>\",\n \"overtime_rate\": 1.5,\n \"doubletime_rate\": 2,\n \"start_date\": \"2023-12-25\",\n \"dob\": \"2023-12-25\",\n \"ssn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"address\": \"<string>\",\n \"address_line2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"zip\": \"<string>\",\n \"is_943\": false,\n \"is_scheduleH\": false,\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"work_week_start\": \"<string>\",\n \"is_salary\": true,\n \"salary\": 123,\n \"is_regular\": true,\n \"soc_code\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/employees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyID\": \"<string>\",\n \"new_employees\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"default_pay_schedule\": \"<string>\",\n \"default_wage\": 123,\n \"workLocationID\": \"<string>\",\n \"overtime_rate\": 1.5,\n \"doubletime_rate\": 2,\n \"start_date\": \"2023-12-25\",\n \"dob\": \"2023-12-25\",\n \"ssn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"address\": \"<string>\",\n \"address_line2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"zip\": \"<string>\",\n \"is_943\": false,\n \"is_scheduleH\": false,\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"work_week_start\": \"<string>\",\n \"is_salary\": true,\n \"salary\": 123,\n \"is_regular\": true,\n \"soc_code\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"employeeID": "1234567890",
"companyID": "1b5n28nrideucd24",
"onboarded": false,
"email": "erlich@zeal.com",
"first_name": "erlich",
"last_name": "bachman",
"default_pay_schedule": "daily",
"title": "Brand Ambassador",
"employment_status": "live",
"term_date": null,
"start_date": "2019-11-01",
"working_state": "CA",
"workLocationID": "531fece70b6d0b5d29c9f352",
"default_wage": 20,
"default_ot_wage": 32,
"default_dt_wage": 42,
"dob": null,
"ssn": "182563748",
"phone_number": "8716738956",
"address": null,
"address_line2": null,
"city": null,
"state": null,
"zip": null,
"is_943": false,
"is_scheduleH": false,
"is_salary": true,
"salary": 100000,
"paycard_requested": false,
"paycard_enabled": false,
"kyc_status": "approved",
"ssn_verification_status": null,
"soc_code": "41-3011"
},
{
"employeeID": "974675839",
"companyID": "1b5n28nrideucd24",
"onboarded": false,
"email": "richard@zeal.com",
"first_name": "richard",
"last_name": "hendricks",
"default_pay_schedule": "biweekly",
"title": "Caterer",
"employment_status": "live",
"term_date": null,
"start_date": "2019-11-01",
"working_state": "AZ",
"workLocationID": "531fece70b6d0b5d29c9f352",
"default_wage": 25,
"default_ot_wage": 37.5,
"default_dt_wage": 50,
"dob": null,
"ssn": null,
"phone_number": null,
"address": null,
"address_line2": null,
"city": null,
"state": null,
"zip": null,
"is_salary": false,
"salary": null,
"paycard_requested": false,
"paycard_enabled": false,
"kyc_status": null,
"ssn_verification_status": null,
"soc_code": "35-9011"
},
{
"employeeID": "0987654321",
"companyID": "1b5n28nrideucd24",
"onboarded": false,
"email": "peter@zeal.com",
"first_name": "peter",
"last_name": "gregory",
"default_pay_schedule": "weekly",
"title": "Staffing Manager",
"employment_status": "live",
"term_date": null,
"start_date": "2019-11-01",
"working_state": "AL",
"workLocationID": "531fece70b6d0b5d29c9f352",
"default_wage": 23,
"default_ot_wage": 34.5,
"default_dt_wage": 46,
"dob": null,
"ssn": null,
"phone_number": null,
"address": null,
"address_line2": null,
"city": null,
"state": null,
"zip": null,
"is_salary": true,
"salary": 100000,
"paycard_requested": false,
"paycard_enabled": false,
"kyc_status": null,
"ssn_verification_status": null,
"soc_code": "11-9199"
}
]
}{
"success": false,
"error": true,
"message": "No companyID in the request body",
"code": 3
}See the Employee Object for the full field reference.
⌘I
Create Employee
curl --request POST \
--url https://api.zeal.com/employees \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"companyID": "<string>",
"new_employees": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"default_pay_schedule": "<string>",
"default_wage": 123,
"workLocationID": "<string>",
"overtime_rate": 1.5,
"doubletime_rate": 2,
"start_date": "2023-12-25",
"dob": "2023-12-25",
"ssn": "<string>",
"phone_number": "<string>",
"address": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"is_943": false,
"is_scheduleH": false,
"external_id": "<string>",
"metadata": {},
"work_week_start": "<string>",
"is_salary": true,
"salary": 123,
"is_regular": true,
"soc_code": "<string>"
}
]
}
'import requests
url = "https://api.zeal.com/employees"
payload = {
"companyID": "<string>",
"new_employees": [
{
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"default_pay_schedule": "<string>",
"default_wage": 123,
"workLocationID": "<string>",
"overtime_rate": 1.5,
"doubletime_rate": 2,
"start_date": "2023-12-25",
"dob": "2023-12-25",
"ssn": "<string>",
"phone_number": "<string>",
"address": "<string>",
"address_line2": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"is_943": False,
"is_scheduleH": False,
"external_id": "<string>",
"metadata": {},
"work_week_start": "<string>",
"is_salary": True,
"salary": 123,
"is_regular": True,
"soc_code": "<string>"
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
companyID: '<string>',
new_employees: [
{
email: '<string>',
first_name: '<string>',
last_name: '<string>',
title: '<string>',
default_pay_schedule: '<string>',
default_wage: 123,
workLocationID: '<string>',
overtime_rate: 1.5,
doubletime_rate: 2,
start_date: '2023-12-25',
dob: '2023-12-25',
ssn: '<string>',
phone_number: '<string>',
address: '<string>',
address_line2: '<string>',
city: '<string>',
state: '<string>',
zip: '<string>',
is_943: false,
is_scheduleH: false,
external_id: '<string>',
metadata: {},
work_week_start: '<string>',
is_salary: true,
salary: 123,
is_regular: true,
soc_code: '<string>'
}
]
})
};
fetch('https://api.zeal.com/employees', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zeal.com/employees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'companyID' => '<string>',
'new_employees' => [
[
'email' => '<string>',
'first_name' => '<string>',
'last_name' => '<string>',
'title' => '<string>',
'default_pay_schedule' => '<string>',
'default_wage' => 123,
'workLocationID' => '<string>',
'overtime_rate' => 1.5,
'doubletime_rate' => 2,
'start_date' => '2023-12-25',
'dob' => '2023-12-25',
'ssn' => '<string>',
'phone_number' => '<string>',
'address' => '<string>',
'address_line2' => '<string>',
'city' => '<string>',
'state' => '<string>',
'zip' => '<string>',
'is_943' => false,
'is_scheduleH' => false,
'external_id' => '<string>',
'metadata' => [
],
'work_week_start' => '<string>',
'is_salary' => true,
'salary' => 123,
'is_regular' => true,
'soc_code' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.zeal.com/employees"
payload := strings.NewReader("{\n \"companyID\": \"<string>\",\n \"new_employees\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"default_pay_schedule\": \"<string>\",\n \"default_wage\": 123,\n \"workLocationID\": \"<string>\",\n \"overtime_rate\": 1.5,\n \"doubletime_rate\": 2,\n \"start_date\": \"2023-12-25\",\n \"dob\": \"2023-12-25\",\n \"ssn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"address\": \"<string>\",\n \"address_line2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"zip\": \"<string>\",\n \"is_943\": false,\n \"is_scheduleH\": false,\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"work_week_start\": \"<string>\",\n \"is_salary\": true,\n \"salary\": 123,\n \"is_regular\": true,\n \"soc_code\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.zeal.com/employees")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyID\": \"<string>\",\n \"new_employees\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"default_pay_schedule\": \"<string>\",\n \"default_wage\": 123,\n \"workLocationID\": \"<string>\",\n \"overtime_rate\": 1.5,\n \"doubletime_rate\": 2,\n \"start_date\": \"2023-12-25\",\n \"dob\": \"2023-12-25\",\n \"ssn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"address\": \"<string>\",\n \"address_line2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"zip\": \"<string>\",\n \"is_943\": false,\n \"is_scheduleH\": false,\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"work_week_start\": \"<string>\",\n \"is_salary\": true,\n \"salary\": 123,\n \"is_regular\": true,\n \"soc_code\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/employees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyID\": \"<string>\",\n \"new_employees\": [\n {\n \"email\": \"<string>\",\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"title\": \"<string>\",\n \"default_pay_schedule\": \"<string>\",\n \"default_wage\": 123,\n \"workLocationID\": \"<string>\",\n \"overtime_rate\": 1.5,\n \"doubletime_rate\": 2,\n \"start_date\": \"2023-12-25\",\n \"dob\": \"2023-12-25\",\n \"ssn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"address\": \"<string>\",\n \"address_line2\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"zip\": \"<string>\",\n \"is_943\": false,\n \"is_scheduleH\": false,\n \"external_id\": \"<string>\",\n \"metadata\": {},\n \"work_week_start\": \"<string>\",\n \"is_salary\": true,\n \"salary\": 123,\n \"is_regular\": true,\n \"soc_code\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
{
"employeeID": "1234567890",
"companyID": "1b5n28nrideucd24",
"onboarded": false,
"email": "erlich@zeal.com",
"first_name": "erlich",
"last_name": "bachman",
"default_pay_schedule": "daily",
"title": "Brand Ambassador",
"employment_status": "live",
"term_date": null,
"start_date": "2019-11-01",
"working_state": "CA",
"workLocationID": "531fece70b6d0b5d29c9f352",
"default_wage": 20,
"default_ot_wage": 32,
"default_dt_wage": 42,
"dob": null,
"ssn": "182563748",
"phone_number": "8716738956",
"address": null,
"address_line2": null,
"city": null,
"state": null,
"zip": null,
"is_943": false,
"is_scheduleH": false,
"is_salary": true,
"salary": 100000,
"paycard_requested": false,
"paycard_enabled": false,
"kyc_status": "approved",
"ssn_verification_status": null,
"soc_code": "41-3011"
},
{
"employeeID": "974675839",
"companyID": "1b5n28nrideucd24",
"onboarded": false,
"email": "richard@zeal.com",
"first_name": "richard",
"last_name": "hendricks",
"default_pay_schedule": "biweekly",
"title": "Caterer",
"employment_status": "live",
"term_date": null,
"start_date": "2019-11-01",
"working_state": "AZ",
"workLocationID": "531fece70b6d0b5d29c9f352",
"default_wage": 25,
"default_ot_wage": 37.5,
"default_dt_wage": 50,
"dob": null,
"ssn": null,
"phone_number": null,
"address": null,
"address_line2": null,
"city": null,
"state": null,
"zip": null,
"is_salary": false,
"salary": null,
"paycard_requested": false,
"paycard_enabled": false,
"kyc_status": null,
"ssn_verification_status": null,
"soc_code": "35-9011"
},
{
"employeeID": "0987654321",
"companyID": "1b5n28nrideucd24",
"onboarded": false,
"email": "peter@zeal.com",
"first_name": "peter",
"last_name": "gregory",
"default_pay_schedule": "weekly",
"title": "Staffing Manager",
"employment_status": "live",
"term_date": null,
"start_date": "2019-11-01",
"working_state": "AL",
"workLocationID": "531fece70b6d0b5d29c9f352",
"default_wage": 23,
"default_ot_wage": 34.5,
"default_dt_wage": 46,
"dob": null,
"ssn": null,
"phone_number": null,
"address": null,
"address_line2": null,
"city": null,
"state": null,
"zip": null,
"is_salary": true,
"salary": 100000,
"paycard_requested": false,
"paycard_enabled": false,
"kyc_status": null,
"ssn_verification_status": null,
"soc_code": "11-9199"
}
]
}{
"success": false,
"error": true,
"message": "No companyID in the request body",
"code": 3
}