Contractor Onboarding

1099 Contractors can be onboarded to the payroll solution via the API or white-label components. Thankfully, since employers aren’t responsible for paying taxes on or withholding taxes from a contractor’s pay, much less information needs to be collected to onboard a contractor than a W-2 Employee.

In this guide

  • How to create a Contractor
  • How to submit a W-9 form
  • How to add a contractor Bank Account
  • How to onboard a contractor using white-label components

API

Create a Contractor

Call Create Contractor.

πŸ””

Note

Remember to replace the placeholders such as {{testApiKey}} in the code samples below.

curl --request POST \
     --url https://api.zeal.com/contractors \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{testApiKey}}' \
     --header 'Content-Type: application/json' \
     --data '
{
     "new_contractors": [
          {
               "email": "[email protected]",
               "first_name": "Monica",
               "middle_name": "string",
               "last_name": "Hall",
               "type": "individual",
               "ssn": "123456789",
               "ein": "string",
               "business_name": "string",
               "address": "1 Market St.",
               "city": "San Francisco",
               "state": "CA",
               "zip": "94110",
               "onboarded": false
          }
     ],
     "companyID": "{{companyID}}"
}
'

Gather a W-9

Gather a signature from the contractor and convert it to a base64 string and included it in a call to Get Contractor Paperwork in order to display/save the W-9 form.

curl --request POST \
     --url https://api.zeal.com/paperwork/contractorPaperwork \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{testApiKey}}' \
     --header 'Content-Type: application/json' \
     --data '
{
     "companyID": "{{companyID}}",
     "contractorID": "{{contractorID}}",
     "signature_text": "iVBORw23goAAAANSUhEUgAAAtsAAABdCAYAAAB0BqpEAAABRmlDQ1BJQ0MgUHJvZmlscccKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8bAwiDLwMfAxSCYmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsispF"
}
'

Add a Bank Account (optional)

πŸ“

Note

This is an optional step. A Contractor onboarded without a bank account can still be paid with any disbursement method other than direct_deposit.

Call Create Bank Account to create the contractor bank account.

curl --request POST \
     --url https://api.zeal.com/bankaccount \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{testApiKey}}' \
     --header 'Content-Type: application/json' \
     --data '
{
     "companyID": "{companyID}",
     "id": "{{contractorID}}",
     "institution_name": "Chase",
     "account_number": "123456789",
     "routing_number": "267084131",
     "type": "checking"
}
'

Set onboarded to true

Call Set Onboarded Status to True.

curl --request POST \
     --url https://api.zeal.com/contractors/setOnboardedStatusToTrue \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {{testApiKey}}' \
     --header 'Content-Type: application/json' \
     --data '
{
     "contractorID": "{{contractorID}}",
     "companyID": "{{companyID}}"
}
'

With the onboarded status updated, the contractor is considered onboarded and can start receiving payments.


White-Label

Access the Employer Dashboard

Navigate to your Partner Dashboard and ensure that Test Mode is enabled. Then, click on a Company to access the Employer Dashboard as an Admin.

Zeal Partner Dashboard in Test Mode

Add a Contractor

Navigate to the People page, click the Contractors tab, then click Add contractor .

Fill the contractor information and click Add Contractor.

Send the onboarding link

Back on the People page, find the Contractor and click Copy onboarding link then click Send link to contractor's email.

πŸͺ„

Tip

The link can also be accessed programmatically by calling Generate Contractor Onboarding Link.

Complete the onboarding flow

When the contractor navigates to the page, they see the white-label component on your domain with your logo.

Contractor Onboarding

The contractor completes the onboarding flow. You can view the information in the Admin/Employer Dashboard.

πŸ“

Note

When the Contractor Onboarding flow is completed successfully through the white-label, data about the Contractor is sent to the webhook established for the Contractor Event Webhook.


Recap

  • To onboard a contractor, personal information and a W-9 form should be collected
  • Bank account details don't need to be submitted, but the contractor can't be paid by direct deposit without them
  • Employers can create Contractors from the Employer Dashboard
  • Contractor can complete onboarding through the Contractor Onboarding component

What’s Next

Now that we've onboarded our first contractor, the next step is to pay them.