Guide · Marketplaces & Platforms

Requiring insurance from contractors: the marketplace operator's guide.

You're launching or scaling a marketplace, your customers (or your own counsel) want every contractor on the platform insured, and you need a requirement that actually gets enforced. Enforced means your system checks coverage before each job is released, not that your terms mention it.

Decide what to requireWrite it downVerify or enrollGate the first jobKeep the ledger
Step 1

Decide what to require, by category of work.

"Contractors must be insured" isn't a requirement until it names a line of coverage and a limit. Start from the loss you're actually worried about in each category.

Workers' compensation

For anyone doing physical work: cleaning, beauty and wellness, pet care, moving help, healthcare shifts, event staffing, delivery. The contractor's own injury is the loss. In most states a contractor can carry their own policy; a few run monopolistic state funds where only the state issues it.

General liability

For anyone working in a customer's home, office, or venue. Damage to the customer's property and injury to the customer are the losses. This is the line customers ask about first and the one your platform terms usually promise.

Professional, media, cyber

Professional liability (E&O) for advice, design, tutoring, consulting and other deliverable-based work. Media liability for creators and anything published. Cyber where the contractor handles customer data. Match the line to the deliverable, not to the job title.

Two rules of thumb. Set limits by category, not per contractor, so the requirement is enforceable at scale. And set the state basis to where the work is performed, not where your company is registered. A platform in Texas with contractors in New Jersey has a New Jersey requirement.

Step 2

Write the requirement into the terms and the onboarding flow.

The requirement lives in three places: your contractor terms of service, the onboarding screen where the contractor sees it, and the status field your system checks before releasing work. If it's only in the terms, it's a lawsuit exhibit. If it's only on a screen, it's a suggestion.

Write it as a condition of activation: "You must carry the following coverage, in your own name, before accepting your first job on the platform, and maintain it while active." Then list the lines and limits by category. Say what counts as proof (a certificate of insurance naming your platform as certificate holder, with additional-insured status on liability lines where you require it), and say what happens when it lapses: jobs pause until coverage is restored.

Say nothing about classification. The requirement is a condition of using the platform and an insurance control. What a contractor's coverage means for their employment status is a separate question, and one state has now written down that it means nothing when the platform required it (see the New Jersey note below).

Terms of service · Section 6: Insurance[ REQUIRED // BY CATEGORY ]
Onboarding · Step 4 of 5: Coverage[ VERIFY // OR ENROLL ]
Job release · coverage_status[ GATE // ACTIVE ONLY ]
Step 3

Verify the ones who can. Enroll the ones who can't.

A requirement that only says "upload your COI" handles the contractors who already carry insurance. On most marketplaces that's a minority of applicants, and the rest stall at the upload screen and churn. You need both paths in the same step.

Path one: verify. The contractor uploads a certificate. Read it as a document, not a checkbox: the named insured matches the applicant, the dates bracket the activation, the limits meet your category minimums, additional-insured and certificate-holder fields are right. COI Review parses the ACORD form and checks it against your requirement automatically; a person only looks at the exceptions.

Path two: enroll. The contractor has nothing to send. Instead of sending them off to find an agent, coverage is issued to them, in their own name, inside your onboarding flow: a short application, a quote priced to the work, a bound policy and a certificate, usually inside a minute. 1099Policy is the licensed provider that issues it; your platform embeds the step. Claims, certificates, and policy administration route through the contractor's policy, not yours.

How per-engagement coverage is issued →
01 // BRINGS A CERTIFICATE
ACORD 25 parsed and validated[ PARSED ]
Checked against category minimums[ MATCH ]
Cleared without enrolling[ CLEARED ]
02 // HAS NOTHING TO SEND
Enrolls in their own name[ ENROLL ]
Policy bound, certificate issued[ ISSUED ]
Cleared in under a minute[ CLEARED ]
Same status, either way.
Both paths end with coverage_status = active and a certificate on the contractor's record.
Step 4

Gate the first job on coverage status, in code.

Enforcement is the whole point. Your job-release logic checks a coverage status before a contractor can accept work, and a webhook flips it the moment coverage is bound or lapses. Nobody on the ops team has to remember to check, and nobody starts work uninsured because a certificate was "on its way."

The same status drives the lapse rule: when a policy expires mid-activation, the contractor's ability to accept jobs pauses until coverage is restored. Renewal becomes a product event rather than an email chase.

Onboarding compliance in detail →
// release a job only when coverage is active
const policies = await ten99policy.policies.list({
  contractor: "cn_Ehb3bYa"
})
const active = policies.some(p => p.status === "active")
if (!active) return hold(job)

// webhook policy.active → release(job)
// webhook policy.expired → pause(contractor)
Step 5

Keep one ledger, and be able to answer three questions from it.

Customers, your claims team, and your carrier's premium auditor ask the same three things. The ledger should answer each in one pull.

  1. “Was this contractor covered on the day of this job?”
    Policy, line, limits, effective and expiration dates, attached to the job record. This is the customer-complaint question and the claims question.
  2. “Which contractors carried their own workers' comp during our policy period?”
    The premium-audit question. Certificates on file for each contractor are the answer that keeps their payments out of your payroll basis.
  3. “Show me the certificate.”
    Retrievable by contractor, by job, and by date, without anyone searching an inbox.

A note on classification, and on New Jersey. Requiring insurance is an insurance control. In most states, coverage in a contractor's own name is at most one supporting signal in a classification analysis, and never the deciding one. From October 1, 2026, New Jersey's N.J.A.C. 12:11 provides that coverage a platform requires or encourages carries no weight as evidence of independence at all (it isn't held against you either). Keep the two questions separate in your terms, your onboarding copy, and your own thinking. What changes in New Jersey on October 1.

FAQ

Questions marketplace operators ask.

Yes. Requiring coverage as a condition of using the platform is standard practice and is how most customer-facing marketplaces back the "insured professionals" promise they make to customers. Write it as a condition of activation, specify lines and limits by category, and enforce it with a status check before work is released.

It depends on the work. Workers' compensation for physical work, general liability for work in a customer's home or premises, professional liability for advice or deliverable-based work, media liability for creators, cyber where contractors touch customer data. Set the requirement per category of work, with limits, and base it on the state where the work is performed.

Build the second path into onboarding. Through 1099Policy, coverage is issued to the contractor in their own name inside your flow: a short application, a quote priced to the engagement, and a bound policy with a certificate, typically in under a minute. 1099Policy is the licensed provider; the platform embeds the step. The contractor ends up in the same status as one who brought their own certificate.

Coverage in the contractor's own name keeps claims, certificates, and policy administration on the contractor's policy rather than the platform's, and it is what lets you answer the premium-audit question cleanly. Whether any platform-level coverage also makes sense for your model is a question for your broker; it isn't a substitute for the contractor's own coverage.

Parse it rather than eyeball it. Check the named insured against the applicant, the dates against the activation period, the limits against your category minimums, and the additional-insured and certificate-holder fields against your requirement. COI Review does this automatically for ACORD certificates and routes only the exceptions to a person.

Treat it as an insurance question, not a classification one. In most states coverage in the contractor's own name is at most one supporting signal among many, and classification turns on the whole relationship under the applicable test. In New Jersey, from October 1, 2026, coverage a platform requires or encourages carries no weight as evidence of independence, though it isn't held against you. Work with your counsel on classification.

Independent contractors across service, creative, professional, healthcare, and field-service categories, per engagement, with workers' compensation available in 46 states (the four monopolistic-fund states issue their own). Construction trades are outside the program. Coverage is backed by a Fortune 500 carrier and issued in the contractor's name.

Call to action section for 1099Policy

Make the requirement a step in onboarding, not a promise in the terms.

See how verification, on-the-spot coverage, and a status gate keep every contractor on your marketplace insured before their first job.

Kinettix
INVNT
Shiraz
Simon
TechNet