Guide to the Requirements API

A requirement is something that must be fixed before a company's payroll can process: a worker without a bank account, a funding account that's been disconnected, a company that isn't approved yet. The Requirements API lists them for the whole company, so you can prompt the right person to fix each one before payroll day. A payroll run's blockers show the same requirements for one run.

EndpointWhat it does
List requirementsLists the company's open requirements, newest first
Retrieve a requirementRetrieves one requirement, open or resolved

Subjects

Each requirement is about a worker or the company:

subjectTypesubjectId
WORKERThe worker's externalWorkerId, or their workerId when they have none. workerId and externalWorkerId are also set.
COMPANYThe company's ID

The list is newest first and cursor-paginated, like every list in the Payroll Run API: see Listing and paging.

To list one subject's requirements, send subject-type and subject-id. For a worker, subject-id can be an externalWorkerId or a workerId: an externalWorkerId is matched first.

Resolving requirements

Follow resolutionInstructions. Most requirements resolve on their own once the fix is made: for example, when the worker's bank account is updated. Everee sends requirement.resolved when one does, and a payroll run it was blocking goes back to OPEN to be calculated again.

Some requirements are checked again on a schedule rather than when something changes. earliestRecheckAt is the earliest time Everee checks one again.

Requirement types

Most types are requirements, listed by this API and shown as blockers on the runs they affect. The rest come from a payment's own error: they only appear as blockers on a payroll run, with no requirementId, and clear when the run is calculated again after the fix.

Requirements

typesourceDomainMeaning and fix
MISSING_BANK_ACCOUNTWORKER_PROFILEAdd a direct deposit bank account for the worker, or choose a different payment method.
INVALID_BANK_ACCOUNTWORKER_PROFILEUpdate the worker's direct deposit bank account with a valid routing and account number.
MISSING_PAY_CARDWORKER_PROFILEHave the worker sign up for a pay card, or choose a different payment method.
CLOSED_PAY_CARDWORKER_PROFILEThe worker's pay card is closed. Add a direct deposit bank account or a new pay card for the worker.
MISSING_OR_INVALID_ADDRESSWORKER_PROFILEUpdate the worker's home address with a complete, valid street address.
MISSING_TAX_PAYER_IDENTIFIERWORKER_PROFILEAdd a valid SSN or TIN for the worker.
MISSING_EMPLOYEE_POSITIONWORKER_PROFILEAssign the worker a position with compensation details.
MISSING_SOC_CODEWORKER_PROFILEAssign a valid SOC code to the worker's position.
MISSING_UNEMPLOYMENT_RATESCOMPANY_CONFIGURATIONContact Everee support to set up unemployment insurance rates for the worker's state.
COMPANY_NOT_APPROVEDCOMPANY_CONFIGURATIONFinish setting up the company and wait for Everee to approve it before running payroll.
FUNDING_ACCOUNT_DISCONNECTEDCOMPANY_FUNDINGReconnect the company's funding bank account so payroll can be debited.
INSUFFICIENT_FUNDSCOMPANY_FUNDINGThe funding account can't cover a payroll run. Add funds, then calculate the run again.
WIRE_FUNDING_REQUIREDCOMPANY_FUNDINGThe run is funded by wire. Send the wire for the funding amount before the run's processing-blocked deadline.
FUNDING_FAILEDCOMPANY_FUNDINGA funding debit was returned. If it reopened a payroll run, make sure the account has enough money, then calculate and approve the run again. Otherwise contact support to repay it: until it's repaid, no payroll run can be approved.

Payment errors (blockers only)

typeBlocker subjectMeaning and fix
NEGATIVE_NETWORKERAdjust the worker's earnings or deductions so their net pay isn't negative.
EMPLOYMENT_NOT_STARTEDWORKERCheck the worker's start date. Workers can't be paid before their employment starts.
INSUFFICIENT_NET_FOR_ACH_FEEPAYMENTThe worker's net pay doesn't cover the ACH fee. Combine this payment with a future payment.
MISSING_OR_INVALID_PAY_PERIODPAYMENTCheck the worker's pay schedule, or contact Everee support.
PREVIOUS_NOT_FINALIZEDPAYMENTApprove all earlier payroll runs for this worker, then try again.
FUTURE_FINALIZEDPAYMENTA later payment has already been finalized. Contact Everee support.
MISSING_CONTRIBUTION_DEDUCTION_LIMITSPAYMENTContact Everee support.
FAILED_VALIDATIONPAYMENTReview the payment details and correct any invalid values.
UNEXPECTEDPAYMENTContact Everee support.

A WORKER payment-error blocker has the source WORKER_PROFILE, and a PAYMENT one has the source SYSTEM_ISSUE.

Webhook events

EventSent when
requirement.createdA requirement opens
requirement.resolvedA requirement is resolved

Each event's data.object is the requirement, as the API returns it. See Payroll Run Events.