Represents an individual or a business that receives non-employee compensation from a company.
When including contractors in payroll, Check will automatically file all associated 1099 forms.
{
"id": "ctr_CyQIKSp6YvU6mBe2a6iq",
"type": "individual",
"company": "com_EkIJ9RewumnQLODHv1vl",
"workplaces": [
"wrk_ZquJLY48hvpLDSTT6JBn"
],
"primary_workplace": "wrk_ZquJLY48hvpLDSTT6JBn",
"first_name": "Bruce",
"middle_name": "Frederick Joseph",
"last_name": "Springsteen",
"business_name": null,
"dob": "1970-05-29",
"start_date": "2019-03-01",
"termination_date": null,
"email": "[email protected]",
"bank_accounts": ["bnk_rLXONRICxgyyeUaS16"],
"ssn_last_four": "0000",
"ssn_validation_status": "validated",
"ein": null,
"default_net_pay_split": "nps_lk218jk9082mjkjljT1c",
"payment_method_preference": null,
"onboard": {
"status": "needs_attention",
"blocking_steps": [],
"remaining_steps": [
"payment_method"
],
"payment_method": [
"payment_method_preference_set",
"bank_account_exists",
"bank_account_verified",
],
},
"address": {
"line1": "913 Ocean Ave",
"line2": null,
"city": "Asbury Park",
"state": "NJ",
"postal_code": "07712",
"country": "US"
},
"mailing_address": null,
"1099_nec_electronic_consent_provided": false,
"metadata": {}
}| Attribute | Description |
|---|---|
idstring | Unique identifier for the contractor. |
typestring | individual if the contractor is a person. business if not a person. |
companystring | ID of the company the contractor performs work for. |
workplacesarray of strings | IDs of workplaces where the contractor works. |
primary_workplacestring | ID of the contractor's primary workplace. |
first_namestring | Contractor's first name. If contractor type is business, a primary contact is needed for 1099 filing so use the first name of the business's primary contact. |
middle_namestring | Contractor's middle name. If contractor type is business, a primary contact is needed for 1099 filing so use the middle name of the business's primary contact, if it exists. |
last_namestring | Contractor's last name. If contractor type is business, a primary contact is needed for 1099 filing so use the last name of the business's primary contact. |
business_namestring | Contractor's business name if they are a business entity. |
dobYYYY-MM-DD | Contractor's date of birth. |
start_dateYYYY-MM-DD | Most recent start date of contract. To cancel a contractor who never started, see Start and termination dates. |
termination_dateYYYY-MM-DD | Most recent termination date of contract. Must be null, or on or after start_date, which must be set. To rehire, send termination_date: null with the new start_date. See Start and termination dates. |
emailstring | Contractor's email address. |
bank_accountsarray of strings | Read only. An array of bank account IDs. |
ssn_last_fourstring | The last four digits of the contractor’s SSN. |
ssn_validation_statusstring | The validation status of the contractor's SSN. Either pending indicating validation in progress, validated indicating the SSN passes our validation criteria, or invalid indicating the SSN is not valid. For more details see SSN Validation . |
einstring | Contractor's Employer Identification Number. |
default_net_pay_splitstring | ID of the net pay split currently active on the contractor. |
onboardobject | Structured information about the onboard status of the contractor. |
addressobject | Legal address of contractor on file with the federal government. If the contractor has a type of business, then you should use the address of the business. |
mailing_addressobject | Mailing address for paper correspondence. Separate from the contractor's legal address and not used for tax calculations. Pass null to clear. |
payment_method_preferencestring | Either manual or direct_deposit if the contractor has a linked bank account. |
1099_nec_electronic_consent_providedboolean | Indicates whether the contractor has opted into electronic delivery of Copy B of 1099-NEC. |
metadataobject | Additional loosely structured information to associate with the contractor. |
Start and termination dates
Starting November 19, 2026, Check enforces these rules on every API version. They apply to Create a contractor, including bulk create, and Update a contractor whenever the request sends start_date or termination_date. A request that sends neither date is not checked against them.
- A termination date can't be earlier than the start date. The request returns a
400error ontermination_datewith the message "Termination date cannot be earlier than the start date.", and nothing in the request is saved. Atermination_dateon or after thestart_dateis valid, including a date in the future. - To rehire a contractor, clear the old termination date. Send the new
start_datewithtermination_date: nullin the same request. If a request movesstart_datepast the existingtermination_datewithout clearing it, it returns a400error ontermination_datewith the message "To rehire, send termination_date: null with the new start date."
{
"start_date": "2026-03-02",
"termination_date": null
}Before November 19, 2026, Check accepts a termination_date earlier than the start_date with a success response but saves termination_date as null, even when the contractor already had a valid termination date. A request that moves start_date past the existing termination_date also clears it.
To cancel a contractor who never started, send start_date: null. If the contractor has a termination_date, also send termination_date: null, because a termination date requires a start date. This works before and after November 19, 2026.

