Support for paying contractors

October 6, 2020
Nicole Lee

by 
Nicole Lee

Today we’re excited to announce support for independent contractors. Your customers will now be able to pay their entire workforce through the Check API, while we handle all 1099 form filing.

Thanks to Eric Little, our PM intern this summer, who shepherded this project from the earliest stages.

The contractor object

To create a contractor, make a POST request to the /contractors endpoint. For example:

A contractor object can be updated by making a PATCH request to /contractors/:id with the fields to update included in the request body.

To retrieve a contractor, make a GET request to /contractors/:id. To retrieve a list of contractors, make a GET request to /contractors, optionally including the company query parameter to list a specific company’s contractors. For example:

Each contractor will have the following fields.

  • type: a string value representing the entity type of the contractor. Required for 1099 filing. Possible values are individual and business.
  • company: the company the contractor performs work for
  • first_name: the first name of the individual or of the business’s primary contact
  • middle_name: the middle name of the individual or of the business’s primary contact
  • last_name: the last name of the individual or of the business’s primary contact
  • business_name: the business name of the contractor if they are a business entity
  • email: the contractor’s primary email
  • bank_accounts: array of ids representing the contractor’s linked bank accounts
  • ssn_last_four: a read-only field with the last four digits of the individual’s Social Security Number
  • ein: the EIN of the contractor if they are a business entity
  • address: the contractor’s primary address

Note that even if the contractor type is business, the primary contact's name is needed. This is for 1099 filing purposes.

The contractor payment object

To represent the non-employee compensation paid from a company to a contractor, we’ve created the contractor payment object, which can be defined using the following fields:

  • contractor: the contractor who is being paid
  • payment_method: the way the contractor will be paid, direct_deposit if they should be paid through Check or manual if they will be paid outside of our system, via paper check for example
  • amount: the amount the contractor should be paid. If the contractor is paid multiple amounts during a particular period, add them together and set this field to the total.
  • reimbursement_amount: amount to reimburse the contractor, 0 by default. This is a convenience field that will not be reported on the contractor’s 1099.

The following is an example contractor payment object

To create contractor payments, leverage the existing payroll object and define them in the contractor_payments list field. Note that contractors and employees can either be paid together or separately. To pay separately simply add elements to only the contractor_payments list field or the items list fields, respectively.

The following is an example request to create a payroll to pay a single contractor.

When previewing or approving a payroll, a net_pay field will be available on each contractor payment object. We’ve also added the following aggregate fields to the payroll.total object, which will also be populated on previewed and approved payrolls.

  • contractor_gross: the total amount of contractor pay
  • contractor_reimbursements: the total amount of contractor reimbursements
  • contractor_net: the amount transferred from the company to contractors; the sum of contractor_gross and contractor_reimbursements

Check out the contractor payment docs for more details.

More from the Check blog

September 13, 2023

Back to School: Multi-state Taxation for Temporary Residents

Navigating taxes when you are living and working outside of your resident state can be confusing. As we enter back to school season, we dive into how college students attending school out of state should think about taxes.

Read more >

August 17, 2023

Launching payroll with Check: A closer look

Launching payroll is no small feat. In this blog, Sid walks through the steps to get payroll up and running and how Check supports our partners in that process. We are with our partners every step of the way: implementing, selling, and growing their product.

Read more >