This guide will demonstrate how to create Companies, Workplaces, Employees, and Payrolls—the minimum necessary steps to pay a W2 employee.
The first step is to create a company, the employer paying their workers. Each company is a separate tax entity with a single Employer Identification Number (EIN). Your customer may own multiple companies under a single brand (e.g. Restaurants or franchises) or multiple companies under separate brands. Each company must be created separately but they can be associated with each other through a corporation entity in the EncompassFi API.
curl -X POST \
https://sandbox.encompassfi.com/companies \
-H 'Content-Type: application/json' \
-H 'X-API-key: <API_KEY>' \
-d '{
"legalName": "Big Box Store Co.",
"tradeName": "Big Box Store",
"email": "[email protected]",
"phone": "5555555555",
"address": {
"street1": "2450 St Rose Pkwy",
"street2": "Suite 120",
"city": "Henderson",
"zipcode": "89074",
"state": "NV",
"country": "US"
}
}'curl -i -X POST \
'https://sandbox.encompassfi.com/companies/<companyId>/start_payroll' \
-H 'Content-Type: application/json' \
-d '{
"startDate": "2019-08-24",
"legalName": "string",
"tradeName": "string",
"email": "string",
"phone": "string",
"website": "string",
"type": "LLC",
"industry": "GeneralConstructionGeneralContracting",
"payFrequency": "Weekly",
"employeeW2DeliveryMethod": "PrintAndMailAll",
"contractor1099DeliveryMethod": "PrintAndMailAll"
}'The next step is to create a workplace. EncompassFi needs to know the physical location where the employee does their work. This can be a office location or the employee's residential address (if they work from home). Workplace address is ofter the same as the company address but many companies are registered at a different location than their workers work from. Companies can have multiple workplaces in multiple states.
curl -X POST \
https://sandbox.encompassfi.com/companies/<companyId>/workplaces \
-H 'Content-Type: application/json' \
-H 'X-API-key: <API_KEY>' \
-d '{
"name": "Henderson Office",
"active": true,
"address": {
"street1": "2450 St Rose Pkwy",
"street2": "Suite 120",
"city": "Henderson",
"zipcode": "89074",
"state": "NV",
"country": "US"
}
}'The easiest way to connect a company bank account is using our pre-built onboarding system. Call the EncompassFi API to get a bank setup onboard link. This bank account will be used to withdrawal any money to pay direct deposits and taxes on behalf of the company.
curl -X POST \
https://sandbox.encompassfi.com/companies/<companyId>/onboard/connect_bank_account \
-H 'Content-Type: application/json' \
-H 'X-API-key: <API_KEY>' \
-d '{
"signerName": "John Smith",
"signerTitle": "CEO",
"signerEmail": "[email protected]"
}'Employees are persons that will be paid on a W2. Unlike contractors (1099) employees can only be a person. If the company needs to pay another business, they can create a contractor instead. Employees must be assigned to one or multiple workplaces. Their assigned workplaces will determine their tax setup and how EncompassFi calculates their tax and tax requirements.
curl -X POST \
https://sandbox.encompassfi.com/companies/<companyId>/employees \
-H 'Content-Type: application/json' \
-H 'X-API-key: <API_KEY>' \
-d '{
"firstName": "Jane",
"lastName": "Doe",
"ssn": "333224444",
"active": true,
"primaryWorkplaceId": "<workplaceId>",
"workplaces": [
"<workplaceId>"
],
"dateOfBirth": "2000-01-01",
"startDate": "2019-08-24",
"defaultPaymentMethod": "Manual",
"residence": {
"street1": "string",
"street2": "string",
"city": "string",
"zipcode": "string",
"state": "AL",
"country": "US"
}
}'A payroll can be generated when a company needs to pay its workers. The company will need to specify who is being paid, for how much, and when. To payout a payroll, the company will need to preview the payroll to review earnings and tax payments then approve that payroll.
curl -X POST \
https://sandbox.encompassfi.com/companies/<companyId>/payrolls \
-H 'Content-Type: application/json' \
-H 'X-API-key: <API_KEY>' \
-d '{
"periodStart": "2019-08-1",
"periodEnd": "2019-08-15",
"payday": "2019-08-15",
"type": "Regular",
"frequency": "Semimonthly",
"processingPeriod": "FourDay",
"employeeItems": [
{
"employeeId": "<employeeId>",
"paymentMethod": "Manual",
"flsaOvertimeExemption": "NonExempt",
"supplementalTaxMethod": "Flat",
"payments": [
{
"workplaceId": "<workplaceId>",
"isSalaryRate": false,
"payRate": 15,
"regularHours": 86.33,
}
]
}
]
}'curl -X GET \
https://sandbox.encompassfi.com/companies/<companyId>/payrolls/<payrollId>/preview \
-H 'X-API-key: <API_KEY>'curl -X POST \
https://sandbox.encompassfi.com/companies/<companyId>/payrolls/<payrollId>/approve \
-H 'Content-Type: application/json' \
-H 'X-API-key: <API_KEY>'