Employer Readiness

Learn how to track an employer's readiness to pay employees and contractors.

Before an employer can start paying workers, they must complete two milestones: capturing business and employment data, and passing the Salsa compliance and risk assessment. The capture of business and employment data is monitored through the Employer and Pay Worker Readiness field, while the compliance and risk assessment progress is tracked using the Employer Account Standing field.

How to track readiness

Employer and Pay Worker Readiness data can be accessed from:

The Salsa Dashboard under employer profile
The Employer Capabilities API
The Webhook event: Employer.PayWorkersReadiness.statusChanged

This is an example of pay workers readiness as seen in the Salsa Dashboard under employer profile.

This is an example of pay workers readiness as seen in the Salsa Dashboard under employer profile.

Statuses

Use the following states to track an employer's readiness to pay workers:

Status

Description

ONBOARDING

When an employer is created, they initially enter the ONBOARDING state. During this phase, you can use either the hosted or embedded onboarding flow to collect essential employer information and invite workers. Upon completion of this stage, the system assesses whether the implementation step is necessary.

IMPLEMENTATION

After completing the onboarding and declaring prior payroll totals, employers enter the IMPLEMENTATION state. In this stage, Salsa actively engages with the employer to assist in importing these totals.

  • Note:* In a Sandbox environment, employers automatically bypass this step and advance directly to the READY state.

READY

When all requirements are met, an employer reaches the READY state, where they can run payroll for their workers.

PARTIALLY_READY

An employer transitions from READY to the PARTIALLY_READY status when no longer meets all readiness requirements due to a change in their configuration. This typically occurs when the employer changes their workforce type from contractor-only to include both employees and contractors, requiring a pay group with a recurring schedule, or when their tax setup becomes incomplete. While in this state, the employer can continue limited payroll operations but must resolve the outstanding requirements. Upon completing the missing requirements, the account returns to the READY status.

The following is the typical flow to onboard and pay workers:

graph LR

  %% Nodes
  Employer_Created((Employer Created))
  ONBOARDING["ONBOARDING"]
  IMPLEMENTATION["IMPLEMENTATION"]
  READY["READY"]
  PARTIALLY_READY["PARTIALLY_READY"]

  %% Flow
  Employer_Created --> ONBOARDING
  ONBOARDING --> IMPLEMENTATION
  IMPLEMENTATION --> READY
  READY --> PARTIALLY_READY

  %% Loop back
  PARTIALLY_READY --> READY


  %% Node styles (matching the image)
  style Employer_Created fill:#6a1b9a,color:#ffffff
  style ONBOARDING fill:#ffeb3b,color:#000000
  style IMPLEMENTATION fill:#2196f3,color:#000000
  style READY fill:#8bc34a,color:#000000
  style PARTIALLY_READY fill:#f28c28,color:#000000


  %% Theme-safe link styles (grey arrows like the image)
  linkStyle 0 stroke:#9e9e9e,stroke-width:3px
  linkStyle 1 stroke:#9e9e9e,stroke-width:3px
  linkStyle 2 stroke:#9e9e9e,stroke-width:3px
  linkStyle 3 stroke:#9e9e9e,stroke-width:3px
  linkStyle 4 stroke:#9e9e9e,stroke-width:3px

How to track account standing

Employer Account Standing data can be accessed from:

  • The Salsa Dashboard
  • The Webhook event Employer.AccountStanding.statusChanged
Account Standing in the Salsa Dashboard. It can be found in the employer profile

This is an example of account standing status as seen in the Salsa Dashboard under the employer profile.

Statuses

Use the following states to track an employer's account standing:

Status

Description

NEW_ACCOUNT

When an employer is created, they initially enter the NEW_ACCOUNT state and remain there until they complete all requirements necessary for Salsa to initiate KYB and AML processes. The necessary data to start these processes can either be collected directly from the employer using the onboarding component or imported using Paystream if it has already been gathered.

IN_REVIEW

The account transitions to the IN_REVIEW status once it meets all new account requirements, at which point both the employer and their workers are screened and verified. Upon successful verification, the account moves to the ACTIVE status.

  • Note:* In the Sandbox environment, all employers are automatically approved and directly moved to ACTIVE.

ACTIVE

Once approved and with no outstanding requirements, the employer’s account status is updated to an ACTIVE state where they can operate without restrictions.

  • Note:* In the Sandbox environment, all employers automatically transition to this unrestricted state upon completion of requirements.

CONDITIONAL

When an employer receives conditional approval, they enter the CONDITIONAL state while Salsa performs additional due diligence. During this period, there may be outstanding requirements for the employer or some workers. This status often applies to employers who have previously made payments to workers but have added new workers or undergone screenings that Salsa has marked as conditional.

RESTRICTED

An account enters the RESTRICTED state if it has outstanding requirements that prevent the company from paying workers. In this situation, employers might receive a Request for Information (RFI) that is escalated to your customer support team. After the necessary information is submitted, Salsa reassesses the employer and their workers to potentially lift the restrictions.

REJECTED

An account enters the REJECTED state if it operates at an extremely high risk level or within an industry that Salsa cannot serve. Although it is rare for companies to reach this state, the likelihood varies based on the industry vertical served and the volume of employers being onboarded.

The following is the typical account standing flow:

graph LR

%% Nodes
Employer_Created((Employer created))
NEW_ACCOUNT["NEW_ACCOUNT"]
IN_REVIEW["IN_REVIEW"]

RESTRICTED["RESTRICTED"]
CONDITIONAL["CONDITIONAL"]
ACTIVE["ACTIVE"]

REJECTED["REJECTED"]

%% Flow
Employer_Created --> NEW_ACCOUNT
NEW_ACCOUNT --> IN_REVIEW

%% Review outcomes
IN_REVIEW --> REJECTED
IN_REVIEW --> RESTRICTED
IN_REVIEW --> CONDITIONAL
IN_REVIEW --> ACTIVE

%% Restricted transitions
RESTRICTED --> REJECTED
RESTRICTED --> CONDITIONAL
RESTRICTED --> ACTIVE

%% Conditional transitions
CONDITIONAL --> RESTRICTED
CONDITIONAL --> REJECTED
CONDITIONAL --> ACTIVE

%% Active transitions
ACTIVE --> RESTRICTED
ACTIVE --> CONDITIONAL
ACTIVE --> REJECTED


%% Node styles
style Employer_Created fill:#6a1b9a,color:#ffffff
style NEW_ACCOUNT fill:#ffeb3b,color:#000000
style IN_REVIEW fill:#2196f3,color:#ffffff
style RESTRICTED fill:#f44336,color:#ffffff
style CONDITIONAL fill:#fbc02d,color:#000000
style ACTIVE fill:#8bc34a,color:#000000
style REJECTED fill:#000000,color:#ffffff


%% Theme-safe link styles
%% NEW_ACCOUNT
linkStyle 0 stroke:#d4c84a

%% IN_REVIEW
linkStyle 1 stroke:#4fa3e3

%% To REJECTED (neutral)
linkStyle 2 stroke:#9e9e9e

%% To RESTRICTED
linkStyle 3 stroke:#e57373

%% To CONDITIONAL
linkStyle 4 stroke:#e6c55a

%% To ACTIVE
linkStyle 5 stroke:#9ccc65

%% To REJECTED
linkStyle 6 stroke:#9e9e9e

%% To CONDITIONAL
linkStyle 7 stroke:#e6c55a

%% To ACTIVE
linkStyle 8 stroke:#9ccc65

%% To RESTRICTED
linkStyle 9 stroke:#e57373

%% To REJECTED
linkStyle 10 stroke:#9e9e9e

%% To ACTIVE
linkStyle 11 stroke:#9ccc65

%% To RESTRICTED
linkStyle 12 stroke:#e57373

%% To CONDITIONAL
linkStyle 13 stroke:#e6c55a