Overview
Contractors that have previously procured coverage using 1099Policy are automatically covered for every subsequent assignment they take provided that it's through the same labor platform they used initially to sign up for insurance. In addition to the APIs detailed in the Getting started section of our documention, we make available an assignment API that labor platforms can use after a contractor has a completed and approved insurance application on file.
Requirements for automatic coverage
The contractor only needs to complete an insurance application once. Once they’ve procured coverage via 1099Policy, every subsequent assignment they take is automatically covered as illustrated in Figure 1.
In order for the contractor to be eligible for automatic coverage, the following must be true:
- the coverage types are the same as what they originally procured (e.g.,
workers-compensation,general, etc.); - the work state hasn’t changed from when the application was completed if seeking workers compensation coverage (e.g.,
job.address.locality); - the residence state hasn't changed from when the application was completed if seeking general liability coverage (e.g.,
contractor.address.locality); - job category hasn't changed from when the application was completed (e.g.,
job.category_code); - the labor platform hasn’t changed (e.g., same as the one used to complete their insurance application);
- the assignment details are reported back to 1099Policy (
assignmentapi); and - the contractor’s card is successfully charged, provided that the contractors is paying via credit card.
If you send a POST request to the quote endpoint that matches coverage that the contractor already has on file (i.e., contractor has an approved application with the same parameters as the quote you're looking to create), you'll receive the following 400 Bad Request error code and message that reads, Contractor already has a matching policy on file.
If, on the other hand, any of the above conditions aren't met, you'll receive an ineligible response similar to the following when making an assignment POST request:
{
...
"contractor": "cn_Ehb3bYa",
"eligible": {
"message": "Job category mismatch. Check that the job category code matches the category code associated with the active policy.",
"result": false
},
"job": "jb_jsb9KEcTpc",
...
}
You can find a more complete list of ineligible messages detailed below. The solution is to simply POST a new quote request with the job and contractor details and create an insurance application session (e.g., session).
The goal is to have the contractor experience be seamless while ensuring that the contractor completes an insurance application whenever the underlying factors that determine their insurance rates change.
One thing worth noting is that this contractor convenience (i.e, only having to complete an insurance application once) introduces state management complexity which we highlight in more detail below.
State management
At a minimum, you’ll want to persist the contractor unique ids (e.g., cn_CfjkPfRrAe) and the policy unique ids (e.g., pl_WzFRszJhoY ). You'll want to keep a map between your unique contractor id and the subset of unique ids that get returned from 1099Policy platform (i.e., contractor uid, quote uid, policy uid, etc.). You'll use these to keep up-to-date on the contractor's insurance coverage status. Persisting these details also prevent duplicate email errors, which arise when you create a contractor record with an email that already exists for a tenant organization on 1099Policy platform.
Assignment Eligibility Messages
| Result | Message |
|---|---|
true | Contractor is pre-approved for insurance coverage. |
false | No valid job category code associated with job. |
false | No valid job category code. Check that the job is assigned a valid job category code. |
false | No valid work or residence address associated with contractor. |
false | Contractor residence state does not match the residence state associated with the active policy. |
false | Job work state does not match the work state associated with the active policy. |
false | No active policy associated with contractor. Check that the contractor has a valid quote and policy. |
false | No active policy associated with contractor. Check that work state and residence state match the active policy. |
false | No active policy found with the required assignment coverage. |
false | Matching policy was created after the assignment. No matching policy at time of assignment. |
