This guide applies to JobDiva candidate placements that are handled as independent contractor engagements. W-2 employee placements, payroll employee records, and EOR-style arrangements are out of scope.
1. Overview
Connect JobDiva candidate, job, and placement data to 1099Policy so contractor engagements can be insured or validated before work begins.
You can:
- Bind fractional, on-demand coverage for contractor placements.
- Automatically validate or upload Certificates of Insurance (COIs).
- Keep compliance in sync through 1099Policy webhooks (
policy.*,certificate.*). - Map JobDiva placement compensation to
job.wageandwage_type. - Store JobDiva IDs in
custom_metadatafor reconciliation.
2. Integration Timing & Trigger
Coverage should begin when a contractor placement is created, confirmed, or updated with start-date and compensation details. In JobDiva, the Placement is the best trigger because it connects the Candidate to the Job and usually contains or references assignment dates, pay terms, and client/worksite information.
- Primary trigger: Contractor placement created or confirmed.
- Alternative triggers: Candidate submitted to job, placement updated, assignment start date confirmed, timesheet created, invoice created.
- Event delivery: JobDiva webhooks where available; otherwise poll candidate, job, placement, timesheet, and invoice methods.
- Required data:
candidateId,jobId,placementId, start date, end date, compensation amount, compensation type, and work region.
JobDiva’s public API portal is organized around V2 methods, models, and webhooks rather than a simple REST-path reference. The source sections below refer to the JobDiva method families developers should use, rather than inventing endpoint paths that may vary by tenant or API package.
3. Core Concepts
Each JobDiva object maps to a corresponding 1099Policy resource so contractor coverage, COI validation, and audit trails stay aligned.
| JobDiva Object | 1099Policy Resource | Description |
|---|---|---|
| Candidate | Contractor | Represents the contractor; must exist before quoting coverage |
| Job / Requisition | Job | Defines role, scope, category, and work location |
| Placement / Assignment | Quote + Assignment | Defines compensation and coverage window |
| Attachment / Document | Certificate | Optional BYO-COI validation path |
| Timesheet / Invoice | Invoice | Optional final remuneration record |
| JobDiva IDs | custom_metadata.* | Used for reconciliation only |
4. End-to-End Implementation
Follow these steps to integrate JobDiva and 1099Policy for contractor insurance workflows.
4.1 Retrieve Candidate
Retrieve the JobDiva Candidate and create or upsert the corresponding 1099Policy Contractor. Every Contractor must include a unique email address. Generate a proxy if JobDiva does not expose one, such as <candidate_id>@relay.yourdomain.com.
| JobDiva Field | 1099Policy Contractor | Notes |
|---|---|---|
candidateId | custom_metadata.jobdiva_candidate_id | Reconciliation key |
firstName, lastName | contact.first_name, contact.last_name | Required |
email | contact.email | Required; use proxy if missing |
country | address.country | Optional |
state | address.region | Optional |
phone | contact.phone | Optional if supported |
Source: JobDiva
Use the JobDiva V2 Candidate methods to retrieve the candidate profile, contact information, and address fields needed to create a 1099Policy Contractor.
JobDiva V2 API Method Family: Candidate
Suggested operation: Get Candidate / Candidate Details
Required identifier: candidateId
Destination: 1099Policy (POST /contractors)
POST https://api.1099policy.com/api/v1/contractors
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
Idempotency-Key: jobdiva-candidate-<candidateId>
{
"contact": {
"first_name": "Jordan",
"last_name": "Lee",
"email": "candidate_12345@relay.yourdomain.com"
},
"address": {
"country": "US",
"region": "CA"
},
"custom_metadata": {
"jobdiva_candidate_id": "12345"
}
}
4.2 Retrieve Job
Retrieve the JobDiva Job or Requisition and create the corresponding 1099Policy Job. The Job captures the role, category, description, work region, and estimated compensation used to price coverage.
| 1099Policy Job Field | JobDiva Source | Notes |
|---|---|---|
name | Job title / requisition title | Human-readable role |
description | Job description | Scope |
entity | Internal client/account ID | Must exist in 1099Policy |
category_code | Job category → mapped 1099Policy category | Maintain mapping |
wage (cents) | Placement rate or job pay rate × 100 | Required |
wage_type | Pay basis → "hourly" or "flatfee" | Required |
region | Worksite state / placement region | Defaults to contractor region |
custom_metadata.jobdiva_job_id | JobDiva Job ID | Reconciliation |
custom_metadata.jobdiva_candidate_id | Candidate ID | Reconciliation |
Source: JobDiva
Use the JobDiva V2 Job methods to retrieve job or requisition details. If compensation is not available on the Job object, retrieve the Placement before creating the 1099Policy Job so the wage and wage_type are accurate.
JobDiva V2 API Method Family: Job
Suggested operation: Get Job / Job Details
Required identifier: jobId
Destination: 1099Policy (POST /jobs)
POST https://api.1099policy.com/api/v1/jobs
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
{
"name": "Contract Data Analyst — Client Project",
"description": "Three-month analytics engagement supporting reporting migration.",
"entity": "en_12AbC3",
"category_code": "DATA_ANALYTICS",
"wage": 9500,
"wage_type": "hourly",
"region": "CA",
"custom_metadata": {
"jobdiva_job_id": "job_78910",
"jobdiva_candidate_id": "12345"
}
}
4.3 Retrieve Placement
Retrieve the Placement to create a Quote. The Placement is the canonical JobDiva object for coverage because it ties the Candidate to the Job and usually contains the engagement dates, compensation basis, and client/worksite context.
| 1099Policy Quote Field | JobDiva Source | Notes |
|---|---|---|
contractor | Mapped Candidate → 1099Policy Contractor | Must exist first |
job | Returned 1099Policy Job ID | Required |
coverage_type[] | Client compliance requirement | e.g., ["general","workers-comp"] |
effective_date | Placement start date | Unix seconds UTC |
end_date | Placement end date | Unix seconds UTC |
custom_metadata.jobdiva_placement_id | Placement ID | Reconciliation |
custom_metadata.jobdiva_job_id | Job ID | Reconciliation |
custom_metadata.jobdiva_candidate_id | Candidate ID | Reconciliation |
Source: JobDiva
Use the JobDiva V2 Placement or Assignment methods to retrieve placement-level details. If your tenant uses a different label for placed candidates or assignments, map the object that establishes the Candidate ↔ Job relationship.
JobDiva V2 API Method Family: Placement / Assignment
Suggested operation: Get Placement / Placement Details
Required identifier: placementId
Destination: 1099Policy (POST /quotes)
POST https://api.1099policy.com/api/v1/quotes
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
{
"contractor": "cn_Kh18Qs",
"job": "jb_Dl9n42",
"coverage_type": ["general","workers-comp"],
"effective_date": 1764300000,
"end_date": 1766892000,
"custom_metadata": {
"jobdiva_placement_id": "pl_45678",
"jobdiva_job_id": "job_78910",
"jobdiva_candidate_id": "12345"
}
}
4.4 Create Insurance Application Session
Redirect contractors to complete their first policy opt-in and bind coverage before the placement begins. This step only applies to contractors who are purchasing or activating coverage through 1099Policy for the first time.
Destination: 1099Policy (POST /apply/sessions)
POST https://api.1099policy.com/api/v1/apply/sessions
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
{
"quote": "qt_Pf5LmA",
"success_url": "https://dashboard.yourdomain.com/jobdiva/placements/pl_45678?coverage=active",
"cancel_url": "https://dashboard.yourdomain.com/jobdiva/placements/pl_45678?coverage=canceled",
"custom_metadata": {
"jobdiva_placement_id": "pl_45678"
}
}
4.5 Create Assignment
Create an Assignment for returning contractors who have already completed the initial opt-in. The Assignment should use the same Job and Contractor created from the Candidate, Job, and Placement data.
| 1099Policy Assignment Field | JobDiva Source | Notes |
|---|---|---|
contractor | Mapped Candidate → 1099Policy Contractor | Required |
job | Returned 1099Policy Job ID | Required |
effective_date | Placement start date | Unix seconds UTC |
end_date | Placement end date | Unix seconds UTC |
coverage_type[] | Coverage requirement | Optional if inferred by rules |
custom_metadata.jobdiva_placement_id | Placement ID | Reconciliation |
Source: JobDiva
Use the same Placement / Assignment data used to create the Quote.
JobDiva V2 API Method Family: Placement / Assignment
Suggested operation: Get Placement / Placement Details
Required identifier: placementId
Destination: 1099Policy (POST /assignments)
POST https://api.1099policy.com/api/v1/assignments
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
{
"contractor": "cn_Kh18Qs",
"job": "jb_Dl9n42",
"effective_date": 1764300000,
"end_date": 1766892000,
"coverage_type": ["general","workers-comp"],
"custom_metadata": {
"jobdiva_placement_id": "pl_45678"
}
}
4.6 Upload Certificate (BYO-COI)
This independent workflow supports contractors who already have their own insurance. Upload the COI to 1099Policy for validation and tracking. Depending on your JobDiva configuration and licensed API modules, candidate attachments may or may not be available through the API. If your integration cannot retrieve the COI document directly from JobDiva, collect it through your own intake flow or request it from the contractor.
Source: JobDiva
Use candidate attachment or document methods if enabled for your JobDiva tenant.
JobDiva V2 API Method Family: Candidate Attachment / Document
Suggested operation: Get Candidate Attachment / Download Document, if enabled
Required identifier: candidateId or attachmentId
Destination: 1099Policy (POST /files/certificates)
POST https://api.1099policy.com/api/v1/files/certificates
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: multipart/form-data
Form fields:
certificate=@file.pdfcontractor=cn_Kh18Qscustom_metadata[jobdiva_candidate_id]=12345custom_metadata[jobdiva_placement_id]=pl_45678
4.7 Record Invoice (Optional)
If the contractor’s actual pay differs from the original placement estimate, record final remuneration using the Invoice API. This step is optional and does not affect coverage.
| 1099Policy Invoice Field | JobDiva Source | Notes |
|---|---|---|
contractor | Mapped Candidate → 1099Policy Contractor | Required |
job | Returned 1099Policy Job ID | Required |
gross_pay | Timesheet, invoice, or payroll detail | Required |
paycycle_startdate | Timesheet or invoice period start | Unix seconds UTC |
paycycle_enddate | Timesheet or invoice period end | Unix seconds UTC |
Source: JobDiva
Use timesheet, invoice, or placement payroll detail methods if enabled for your JobDiva account.
JobDiva V2 API Method Family: Timesheet / Invoice / Placement Payroll Detail
Suggested operation: Get Timesheet / Get Invoice / Get Pay Detail
Required identifier: timesheetId, invoiceId, or placementId
Destination: 1099Policy (POST /invoices)
POST https://api.1099policy.com/api/v1/invoices
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
{
"contractor": "cn_ti8eXviE4A",
"job": "jb_rajdrwMUKi",
"gross_pay": 1200,
"paycycle_startdate": 1714419793,
"paycycle_enddate": 1714419793
}
Use Unix seconds (UTC) for paycycle_startdate and paycycle_enddate. See the full API reference: https://docs.1099policy.com/group/endpoint-invoice
5. Webhooks
JobDiva webhooks should be used where available to react to candidate, job, placement, document, timesheet, or invoice changes. Pair JobDiva events with 1099Policy events so your compliance view stays current.
| Source | Event | Action |
|---|---|---|
| JobDiva | Candidate created or updated | Create or update Contractor |
| JobDiva | Job created or updated | Create or update Job mapping |
| JobDiva | Placement created or confirmed | Create Quote |
| JobDiva | Placement updated | Update dates or create a new Quote if needed |
| JobDiva | Candidate attachment added | Upload COI if document is a certificate |
| JobDiva | Timesheet or invoice created | Optionally record invoice |
| 1099Policy | application.started | Mark coverage in progress |
| 1099Policy | policy.active | Mark contractor insured |
| 1099Policy | policy.canceled / policy.expired | Flag coverage issue |
| 1099Policy | certificate.validated | Mark COI valid |
| 1099Policy | certificate.flagged | Trigger manual review |
6. Testing Checklist
Run this checklist end-to-end using a test Candidate, Job, and Placement before moving to production.
- Candidate exists in 1099Policy as a Contractor with valid or proxy email.
- Job created with accurate compensation,
wage_type, region, and JobDiva metadata. - Quote created with coverage types and placement dates.
- Application Session redirects and completes successfully.
- Assignment aligns with placement start and end dates.
- BYO-COI path tested independently from fractional coverage.
- Optional invoice recorded when final remuneration differs.
- Webhook handlers are idempotent and retry-safe.
- Only contractor placements flow through this integration.
7. References
- JobDiva API Management: https://next.jobdiva.com/api-management/updates
- JobDiva integration sandbox: https://www.jobdiva.com/sandbox
- 1099Policy API Docs: https://www.1099policy.com/docs
