Company Onboarding Overview

Create client companies, collect everything Everee needs to onboard them, and get them signed, all through the API.

The Company Onboarding API lets a platform partner create client companies in Everee and take them through onboarding without sending anyone to Everee's own sign-up flow. You collect the company's information in your own product and send it to Everee through the API. The person who signs for the company reviews and signs Everee's agreements in an embedded experience inside your product. Everee reviews the result and tells you the outcome with webhooks.

This API is for partners. If you are adding workers to a company that has already been onboarded, see Worker Onboarding.

How it fits together

Your platform                                   Everee
     |                                             |
     |  1. Create the company ───────────────────▶ |  draft company
     |  ◀── company ID, company API key,           |
     |      webhook signing key                    |
     |                                             |
     |  2. Fill in the draft ────────────────────▶ |  details, payroll profile,
     |     (as many calls as you like)             |  contacts, signer, owners, taxes
     |                                             |
     |                    Everee sets the contract terms (pricing) for the company
     |                                             |
     |  ◀── company-onboarding.signature-requested |  the draft is complete and
     |                                             |  the terms are loaded
     |  3. Create an embedded signing session ───▶ |
     |     show it to the company's signer         |  signer reviews three documents,
     |  ◀── company-onboarding.contract-signed     |  chooses the funding bank account
     |                                             |  and signs once
     |  4. Submit for review ────────────────────▶ |  UNDER_REVIEW
     |  ◀── identity-verification-changed,         |  identity checks and Everee's review
     |      request-created                        |
     |  5. Answer any requests ──────────────────▶ |
     |  ◀── contract-executed                      |  Everee countersigns
     |  ◀── status-changed (APPROVED / DECLINED)   |
  1. Create the company. You receive its ID and an API key for the company.
  2. Complete the draft. Everee tells you exactly what is still missing at any point.
  3. Get the agreements signed in the embedded signing experience.
  4. Submit for review and respond to Everee.
  5. Once the company is approved, use its company API key with the rest of the Everee API (for example to add workers and run payroll).

Authentication

Everee gives your platform a partner API key. It begins with prtk_ and is shown once when it is created, so store it like any other secret. Send it the same way you send a company API token to the rest of the Everee API: as an HTTP Basic credential, with the key as the user name and no password.

Authorization: Basic base64(prtk_xxxxxxxxxxxxxxxxxxxx:)

The value after Basic is the Base64 encoding of your key. A trailing colon is optional, so base64(prtk_…) works too. Do not send the unencoded key after Basic. Most HTTP tools encode it for you: with curl, use -u "$KEY:" (as the examples in these guides do).

You can only see and change the companies you created.

Creating a company also returns a separate company API key (apiKey). It is shown only in that response. Keep it with the company's record in your system: after approval it is what you use to call the rest of the Everee API for that company.

Statuses

Every company has an onboarding status.

StatusMeaningWhat you can do
DRAFTYou are collecting information.Create and change everything. Submit when the readiness check is complete. Withdraw at any time.
UNDER_REVIEWSubmitted. Everee is verifying identities and reviewing the company.Respond to requests from Everee. Other data is locked.
APPROVEDEveree approved the company and has countersigned the agreements.Use the company API key to call the rest of the Everee API.
DECLINEDEveree declined the company. decision.reasonCode has a generic reason.Nothing. Contact your Everee representative.
WITHDRAWNYou withdrew the onboarding.Nothing.

Read the current status, and what is missing, with Get onboarding status. You also receive a company-onboarding.status-changed webhook whenever it changes.

The readiness check

The status response includes a readiness object: complete is true when nothing is missing, and missing lists a code for each gap.

CodeWhat to do
LEGAL_ENTITY_TYPESet legalEntityType on the company.
FORMATION_STATESet formationState on the company.
BUSINESS_ADDRESSSet the company's address.
WORKER_TYPESSay whether the company pays W-2 employees, contractors, or both in the payroll profile.
EMPLOYEE_COUNTGive employeeCount when the company pays employees.
CONTRACTOR_COUNTGive contractorCount when the company pays contractors.
PAY_FREQUENCYSet payFrequency in the payroll profile.
PAY_PERIOD_START_DAYSet payPeriodStartDay for weekly and bi-weekly pay frequencies.
ANNUAL_REVENUESet annualRevenue in the payroll profile.
NATURE_OF_BUSINESSSet natureOfBusiness in the payroll profile.
NAICS_CODESet naicsCode in the payroll profile.
CONTACTSAdd at least one company contact.
PRIMARY_CONTACTMark one contact as the primary contact.
SIGNERProvide the person who signs the agreements.
SIGNER_IDENTITYProvide identity details for a signer who is not a control person or owner.
SIGNER_RELATIONSHIPThe signer says they are the control person or an owner, but no matching person is on file. Fix the signer or add that person.
CONTROL_PERSONProvide the control person.
OWNERSHIP_DECLARATIONDeclare whether anyone else owns 25% or more of the company.
OWNERSHIP_TOTALThe ownership percentages you gave are inconsistent. Fix the owners you provided.
TAX_STATESSet the states the company withholds taxes in (needed when it pays employees).
BANK_ACCOUNTThe signer chooses the funding bank account while signing.
SIGNED_CONTRACTThe signer has not signed the agreements yet.
CERTIFICATE_OF_AUTHORITYUpload the certificate of authority when the signer is not a control person or owner.

SIGNED_CONTRACT and BANK_ACCOUNT are completed in the embedded signing experience, and the draft must otherwise be complete before a signature can be requested. See Signing the agreements.

Conventions

  • Requests and responses are JSON, except file uploads, which are multipart/form-data with a file part.
  • PATCH endpoints change only the fields you send. PUT endpoints replace the resource.
  • Validation problems return 400 or 422 with a message that names the field. A request that is not allowed in the company's current state (for example, changing data that has been signed, or submitting before the draft is complete) returns 409 or 422 with an explanation.
  • Everything in the draft is editable until the agreements are signed. Signing locks the information that appears on the documents; see Changing data after signing.

Where to next


Did this page help you?