---
title: "Create employee for embedded onboarding"
method: POST
path: "/integration/v1/embedded/workers/employee"
---

# Create employee for embedded onboarding

`POST /integration/v1/embedded/workers/employee`

## Request

- Base URL: `https://api.everee.com`
- URL: `https://api.everee.com/integration/v1/embedded/workers/employee`
- Auth: API key in header `Authorization`

The rest of the employee’s information will be captured during the embedded onboarding process. Note that this operation will designate the worker as a W2-issued employee with a formal employment relationship.

## Request body

- object
  - `firstName` string, required
  - `middleName` string
  - `lastName` string, required
  - `phoneNumber` string, required: 10 digits
  - `email` string, required: email format
  - `payType` string, required: one of: “HOURLY”, “SALARY”
  - `payRate` object, required: Money
    - `amount` string, required: decimal amount, like "100.00"
    - `currency` string, required: always "USD"
  - `typicalWeeklyHours` integer, required: integer in range 1-40 inclusive
  - `hireDate` string, date, required: ISO8601 date
  - `legalWorkAddress` object, required
    - `useHomeAddress` boolean, required: whether to use the worker's Home Address as their legal work location
    - `workLocationId` integer: the ID of an existing Work Location; ignored if "useHomeAddress" is "true"
  - `homeAddress` object, required
    - `line1` string, required
    - `line2` string
    - `city` string, required
    - `state` string, required: two-letter ISO-3166:2 code (like "CA")
    - `postalCode` string, required: 5-digit postal code
  - `externalWorkerId` string
  - `approvalGroupId` integer
  - `timeOffPolicyId` integer: The Leave Policy ID in which to enroll this employee. Enrollment is effective on the 'hireDate' of this employee.
  - `paySchedule` 'SEMI_MONTHLY' | 'BI_WEEKLY' | 'WEEKLY' | 'DAILY': The pay cycle for this employee.
  - `socCode` string: The Standard Occupational Classification code this employee will be assigned to. For multi-job staffing scenarios, you should provide the code that most closely matches the majority of their expected work. Multiple SOC codes are not supported in employer filings, and are not supported in Everee as a result.
  - `costCenters` object[]: The worker's default cost centers, each as a type key and value, with at most one entry per type. They're used for any cost center type that a shift, time card, or other wage item doesn't specify itself. Each `type` must be the key of an active cost center; see the [Cost Centers guide](ref:cost-centers-guide). Leave out for no defaults.
    - `type` string, required: The cost center type key (for example, "jobType"). Must be the key of an active cost center.
    - `value` string, required: The cost center value within that type (for example, "packer").

## Response `201`

201

- Worker: The Worker data structure. Fields that have not been recorded yet (for example while a worker is still onboarding) are returned as null or omitted. This is the same structure returned by every endpoint that responds with a worker.
  - `id` string: The worker's identifier: your external worker ID if one has been set, otherwise Everee's generated worker ID. Use this value in the `{id}` path parameter of worker endpoints.
  - `firstName` string
  - `middleName` string
  - `lastName` string
  - `phoneNumber` string: 10 digits
  - `email` string: email format
  - `onboardingComplete` boolean
  - `hireDate` string, date: ISO8601 date
  - `terminationDate` string, date: ISO8601 date. Only present once the worker has been separated.
  - `dateOfBirth` string, date: ISO8601 date
  - `taxpayerIdentifier` string: 9-digit numeric string (no hyphens or other characters)
  - `tinVerificationStatus` 'NEEDS_VERIFICATION' | 'SENT_FOR_VERIFICATION' | 'VERIFIED' | 'VERIFICATION_FAILED' | 'UNABLE_TO_VERIFY': "NEEDS_VERIFICATION": TIN is pending verification "SENT_FOR_VERIFICATION": TIN has been submitted for verification "VERIFIED": TIN was verified successfully "VERIFICATION_FAILED": TIN failed verification and requires update "UNABLE_TO_VERIFY": TIN could not be submitted for verification
  - `typicalWeeklyHours` integer: integer in range 1-40 inclusive (employees only)
  - `preferredPaymentMethod` 'DIRECT_DEPOSIT' | 'PAY_CARD': "DIRECT_DEPOSIT": worker is paid via ACH to a bank account "PAY_CARD": worker is paid on an Everee-managed pay card
  - `approvalGroup` object: The worker's approval group, if assigned.
    - `id` string
    - `name` string
  - `documentGroups` string[]: Names of the company document groups assigned to the worker.
  - `position` object: The worker's current position and compensation.
    - `payType` 'HOURLY' | 'SALARY': one of: "HOURLY", "SALARY"
    - `payRate` WorkerMoney: A monetary amount.
      - `amount` string: decimal number with format "d+.dd"
      - `currency` string: ISO4217 currency code
    - `title` string
    - `workersCompClassCode` string: The worker's compensation class code, if assigned.
    - `costCenters` object[]: The worker's default cost centers, each as a type key and value.
      - `type` string: The cost center type key.
      - `value` string: The cost center value within that type.
  - `homeAddress` object: The worker's current home address.
    - `line1` string
    - `line2` string
    - `city` string
    - `state` string: 2-letter state abbreviation
    - `postalCode` string: 5-digit ZIP code
  - `bankAccounts` object[]
    - `bankName` string: The bank's name, determined from `routingNumber` and formatted as the Federal Reserve publishes it, for example `BANK OF AMERICA, N.A.`. Read-only: it can't be set.
    - `accountName` string
    - `accountType` 'CHECKING' | 'SAVINGS': one of: "CHECKING", "SAVINGS"
    - `routingNumber` string: 9 digits
    - `accountNumberLast4` string: last 4 digits of the account number
  - `withholdingSettings` object: The worker's current federal W-4 withholding settings.
    - `haveExactlyTwoJobs` boolean
    - `countOfChildren` integer
    - `countOfOtherDependents` integer
    - `otherIncomeAnnually` WorkerMoney: A monetary amount.
      - `amount` string: decimal number with format "d+.dd"
      - `currency` string: ISO4217 currency code
    - `deductionsAnnually` WorkerMoney: A monetary amount.
      - `amount` string: decimal number with format "d+.dd"
      - `currency` string: ISO4217 currency code
    - `extraWithholdingAmount` WorkerMoney: A monetary amount.
      - `amount` string: decimal number with format "d+.dd"
      - `currency` string: ISO4217 currency code
    - `exempt` boolean
    - `maritalStatus` 'HEAD_OF_HOUSEHOLD' | 'MARRIED_FILING_JOINTLY' | 'SINGLE_OR_MARRIED_FILING_SEPARATELY'
  - `legalWorkAddress` object: The worker's current legal work location.
    - `useHomeAddress` boolean
    - `name` string: The name of the work location.
    - `workLocationId` string: The company work location's ID. Omitted if `useHomeAddress` is true.
    - `address` object
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string: 2-letter state abbreviation
      - `postalCode` string: 5-digit ZIP code

## Other responses

- `400`: The request can't be applied. For example: `payeeType` isn't a valid value, or a `documentGroups` entry doesn't match an active document group.
- `422`: An ID field isn't a numeric string. For example: `approvalGroupId`, `timeOffPolicyId`, `workLocationId`, or `stateUnemploymentTaxLocationId` is `abc`.

---

[API](https://skmtc.dev/everee/apis/everee-embed.md) - [All operations](https://skmtc.dev/everee/apis/everee-embed/llms.txt) - [OpenAPI document](https://skmtc.dev/everee/apis/everee-embed/revisions/7b4f6f4912d4?raw)
