Error Codes

All of Zeal's responses follow HTTP Status Codes.

HTTP StatusMeaning
200 - OKEverything worked as expected
400 - Bad RequestThe request was unacceptable, often due to a missing or incorrect required parameter
401 - UnauthorizedNo valid API Key provided
402 - Request FailedThe parameters were valid but the request failed
403 - ForbiddenThe API key doesn't have permission to perform the request
404 - Not FoundThe requested resource doesn't exist
409 - ConflictThe request conflicts with another request
429 - Too Many RequestsToo many requests hit the API too quickly. We recommend an exponential backoff of your requests
500, 502, 503, 504 - Server ErrorsSomething went wrong on Zeal's end

Zeal API error messages are returned in JSON format.

{
  "success": false,
  "errors": [
    {
      "message": "Employee does not exist",
      "code": 30
    }
  ]
}

Error Code

Message

Description

0

This account does not have access to live payroll. You may only use Test Keys/Test Mode for now

Corresponds with HTTP 403

The account does not have access to live payroll yet. Please contact [email protected] to gain access.

1

No Authorization Header

Corresponds with HTTP 400

No authorization header or Bearer Token was found in the request

2

No companyID in the request query

Corresponds with HTTP 400

No companyID was found in the query of request when expected.

3

No companyID in the request body

Corresponds with HTTP 400

No companyID was found in the body of the request when expected.

4

No user with this companyID exists

Corresponds with HTTP 400

No user with the given companyID exists.

6

No partnerID in the body or query of request

Corresponds with HTTP 400

No partnerID was found in the body or query of the request when expected

7

No Zeal Partner with this partnerID exists

Corresponds with HTTP 400

No Zeal Partner with the given partner ID exists.

8

Error with Key

Corresponds with HTTP 401

Given API key does not exist for Zeal partner with given partnerID

9

Invalid format for the time given in the query

Corresponds with HTTP 400

The format of the time parameter for the request does not adhere to the ISO-8601 format.

10

Reporting Period with this ID does not exist

Corresponds with HTTP 400

No Reporting Period with this ID exists.

11

No 'shifts' array found in the body of the request

Corresponds with HTTP 400

12

Worker(s) with given employeeID(s) in the body of the request does not exist

Corresponds with HTTP 400

13

Object(s) is missing required fields or have improperly formatted data

Corresponds with HTTP 400.
Consult API reference for proper formatting.

14

Shift(s) with given shiftID(s) is not found for this user

Corresponds with HTTP 404

This could have occurred because of an improperly formatted shiftID.

16

No employeeCheckID found in the query of the request

Corresponds with HTTP 400

17

Object with this ID does not exist

Corresponds with HTTP 400

18

No end date found in the query of the request

Corresponds with HTTP 400

19

No start date found in the query of the request

Corresponds with HTTP 400

20

Dates provided in the query of request are invalid/inappropriately formatted

Corresponds with HTTP 400. Please format dates as YYYY-MM-DD

21

End Date occurs before Start Date

Corresponds with HTTP 400

22

No 'employees' array found in the body of the request

Corresponds with HTTP 400

23

Employee with this employeeID does not exist

Corresponds with HTTP 400

24

Zeal Partner does not have access to this company's information

Corresponds with HTTP 400

25

This is only a Live Mode feature. Test Key does not have permission to perform this request

Corresponds with HTTP 403.

26

No shiftID in the query of request

Corresponds with HTTP 400

27

No 'new_employees' array found in the body of the request

Corresponds with HTTP 400

28

Employee object(s) are missing the required fields.

Corresponds with HTTP 400

29

Worker(s) with given email(s) already exist. Please try again

Corresponds with HTTP 404

30

Employee is already onboarded/on leave/terminated

Corresponds with HTTP 404

31

No Pending Employee Check exists within the given employeeCheckID

Corresponds with HTTP 404

32

Employee Check for this employee and check date already exists. Error object will include an employeeID and check date

Corresponds with HTTP 400

33

This employee is working in a state for which a State Payroll Tax Number has not been submitted. This error only applies in Live Mode

Corresponds with HTTP 400

34

The address provided is not suitable for taxation. Address fields where wholly invalid or resolved to a taxable location with is_suitable_for_taxation equal to false. Use the Resolve Taxable Location endpoint for more details

Corresponds with HTTP 400

35

No contractorID in the body/query of the request

Corresponds with HTTP 400

36

Object(s) does not have a bank account

Corresponds with HTTP 400

37

Cannot onboard employee: missing property

Corresponds with HTTP 400

38

Employee is already onboarded

Corresponds with HTTP 400

39

Internal Server Error

Corresponds with 500. Message will relay actual server error.

40

CompanyID mismatch in body and query of request

Corresponds with HTTP 400

41

Key is not authorized to perform this request

Corresponds with HTTP 403

42

No contractorID or employeeID in the body/query of the request

Corresponds with HTTP 400

43

Employee Check with this check ID does not exist

Corresponds with HTTP 400

44

Date is not a valid date

Corresponds with HTTP 400

45

Date must not be in the past

Corresponds with HTTP 400

46

Contractor Payment with this payment ID does not exist

Contractor Payment with this payment ID does not exist

47

Validation Error

Corresponds with HTTP 403

48

The address provided is not a valid, mail-deliverable address

Corresponds with HTTP 400

49

Company must be live

Corresponds with HTTP 403

50

Must provide a valid companyID

Corresponds with HTTP 400

51

No company with this companyID exists

Corresponds with HTTP 404

52

No document with this document ID exists

Corresponds with HTTP 404

53

No document of this type within the given scope exists

Corresponds with HTTP 404

54

No document with this jurisdiction and company ID has been submitted

Corresponds with HTTP 404

55

Shifts with negative wages not currently supported

Corresponds with HTTP 400

56

Routing number is invalid

Corresponds with HTTP 400

57

Employee or contractor has not finished onboarding

Corresponds with HTTP 400

58

Work Location(s) not found

Corresponds with HTTP 400

59

Failed to update/upsert Work Location

Corresponds with HTTP 400

60

Failed to create Work Location

Corresponds with HTTP 400

61

Another employee in this company already has the same SSN

Corresponds with HTTP 400

62

Create employees payload contains duplicate SSNs

Corresponds with HTTP 400

63

SSN must be an optional property or of type string

Corresponds with HTTP 400

64

Request is not of the expected shape

Corresponds with HTTP 400

65

Maximum number of allowed checks exceeded

Corresponds with HTTP 400

66

Only pending checks can be previewed. Received non-pending check(s)

Corresponds with HTTP 400

67

No workLocationID in the body of the request

Corresponds with HTTP 400

68

Bank Account with this employeeID or contractorID does not exist

Corresponds with HTTP 400

69

Another employee in this company already has the same external ID

Corresponds with HTTP 400

70

Another contractor in this company already has the same external ID

Corresponds with HTTP 400

71

No W-4 exists for this jurisdiction

Corresponds with HTTP 400

72

Employee or Contractor ID is not formatted correctly

Corresponds with HTTP 400

73

Contractor with this contractorID does not exist

Corresponds with HTTP 400

74

Invalid check date

Corresponds with HTTP 400

75

Must be valid SSN format - eg. XXXYYZZZZ

Corresponds with HTTP 400

76

Another contractor in this company already has the same SSN

Corresponds with HTTP 409

77

Start date cannot be after end date

Corresponds with HTTP 400

78

Email already exists

Corresponds with HTTP 409

79

Migration failed

Corresponds with HTTP 400

80

Please provide a file to upload

Corresponds with HTTP 400

81

Contractor Payment for this contractor and pay date already exists. Error object will include a contractorID and pay_date

Corresponds with HTTP 400

82

CompanyID was not found

Corresponds with HTTP 400

83

Failed to retrieve Partner Information by ID

Corresponds with HTTP 400

84

Email or password is incorrect

Corresponds with HTTP 401

85

Partner not found

Corresponds with HTTP 400

86

Either document ID or type, jurisdiction, and scope are required

Corresponds with HTTP 400

87

Employee has missing or invalid residency

Corresponds with HTTP 422

88

Contractor is already onboarded

Corresponds with HTTP 400

89

The given date is on a weekend/bank holiday or the current time is after 2 PM two days before the given date. Please correct the date and resubmit

Corresponds with HTTP 400

90

Only able to regenerate requirement for state-scoped requirements

Corresponds with HTTP 400

91

Invalid tax parameter jurisdiction

Corresponds with HTTP 400

92

Invalid tax requirement ID

Corresponds with HTTP 400

93

Invalid tax parameter value

Corresponds with HTTP 400

94

Employee's default wage has not been set so please provide an appropriate wage in the shifts object(s)

Corresponds with HTTP 400

95

The requested feature is disabled

Corresponds with HTTP 403

96

Value must be positive

Corresponds with HTTP 400

97

Email must be valid

Corresponds with HTTP 400

98

This account does not have access to this endpoint

Corresponds with HTTP 403

99

This employee is not onboarded

Corresponds with HTTP 400

100

This employee is on leave/terminated

Corresponds with HTTP 400

101

Forbidden

Corresponds with HTTP 403

102

You must create between 1 and 100 checks

Corresponds with HTTP 400

103

Unauthorized

Corresponds with HTTP 401

104

Provided deduction template id(s) not found under companyID

Corresponds with HTTP 404

105

Parameter is expected to be of type objectid string

Corresponds with HTTP 400

106

Net pay negative - this check will fail

Corresponds with HTTP 422

107

Bad Form Data

Corresponds with HTTP 422

108

Provided check is invalid

Corresponds with HTTP 400

109

Accrual policy with this policy code not found

Corresponds with HTTP 404

110

Historical shift would be modified by overtime calculation

Corresponds with HTTP 422

111

Value for earning type must be less than 0

Corresponds with HTTP 400

112

Value must be negative

Corresponds with HTTP 400

113

Jurisdiction does not exist

Corresponds with HTTP 404

114

Company not setup for regular payroll

Corresponds with HTTP 400

115

Account not found

Corresponds with HTTP 404

116

Value must be a decimal

Corresponds with HTTP 400