1. Overview
Connect SAP Fieldglass Work Orders to 1099Policy to ensure every Contingent Worker, SOW, or Service Engagement is insured or validated before work begins. This integration automates insurance binding, COI validation, and compliance synchronization across both systems.
By integrating Fieldglass and 1099Policy, you can:
- Bind per-Work Order coverage once a Work Order is Released
- Validate and track uploaded Certificates of Insurance (COIs)
- Sync insurance status via 1099Policy webhooks (
policy.*,certificate.*) - Map Rate data to
job.wage(in cents) andwage_type - Persist Fieldglass identifiers (
workOrderId,jobPostingId,workerId) incustom_metadata
2. Integration Flow
Coverage should be activated once a Work Order is Released, meaning it has cleared approvals and is ready for execution. At this point, scope, participant, and pay details are confirmed.
- Primary trigger: Work Order transitions to Released
- Alternative trigger: Use Work Order Updated for rate or date changes post-release
- Event delivery: Via Fieldglass Event-Driven Configuration payloads
- Required data:
workOrderId,workerId,rate.amount,rate.type,startDate,endDate,workLocation.region - Authentication: API access through OAuth 2.0 client credentials
3. Core Concepts
Each Fieldglass object maps to a 1099Policy resource to ensure data consistency across systems.
| Fieldglass Object | 1099Policy Object | Description |
|---|---|---|
| Work Order | Job + Assignment | Job defines scope and rate; Assignment binds coverage to duration |
| Worker | Contractor | Represents the insured individual |
| Attachment (COI) | Certificate | BYO-COI intake and validation |
| Identifiers | custom_metadata.work_order_id, worker_id, job_posting_id | Reconciliation keys |
4. End-to-End Implementation
This section shows how to retrieve data from Fieldglass and create corresponding 1099Policy records step-by-step.
4.1 Create Contractor
Each Worker must exist in 1099Policy as a Contractor before quotes can be generated. Each Contractor must include a unique contact.email to ensure tenant-level uniqueness. If Fieldglass does not expose a Worker’s email, generate a proxy such as <workerId>@relay.yourdomain.com.
| Fieldglass Field | 1099Policy Contractor | Notes |
|---|---|---|
workerId | custom_metadata.fieldglass_worker_id | Reconciliation key |
firstName, lastName | contact.first_name, contact.last_name | Required |
email | contact.email | Required; use proxy if missing |
workLocation.country | address.country | Optional |
workLocation.region / city | address.region / address.city | Optional |
Source: SAP Fieldglass (REST)
GET https://api.sap.com/fieldglass/workers/{workerId}
Destination: 1099Policy (POST /contractors)
POST https://api.1099policy.com/api/v1/contractors
Authorization: Bearer t9k_test_***
Content-Type: application/json
Idempotency-Key: fieldglass-worker-<WORKER_ID>
{
"contact": {
"first_name": "Taylor",
"last_name": "Lopez",
"email": "W_8823@relay.yourdomain.com"
},
"address": {
"country": "US",
"region": "CA",
"city": "San Jose"
},
"custom_metadata": {
"fieldglass_worker_id": "W_8823"
}
}
4.2 Create Job
Jobs capture the scope, rate, and location for each Work Order. Create a Job when a Work Order is released.
| 1099Policy Job Field | Fieldglass Source | Notes |
|---|---|---|
name | workOrder.title | Role title |
description | workOrder.description | Statement of work |
entity | Internal client/account ID | Must exist in 1099Policy |
category_code | jobPosting.jobCategory → mapped code | Maintain mapping table |
wage (cents) | rate.amount × 100 | Required |
wage_type | rate.type → "hourly" or "flatfee" | Required |
region | workLocation.region | Defaults to contractor region |
custom_metadata.work_order_id | workOrder.workOrderId | Reconciliation |
custom_metadata.worker_id | workOrder.workerId | Reconciliation |
custom_metadata.job_posting_id | workOrder.jobPostingId | Reconciliation |
Source: SAP Fieldglass (REST)
GET https://api.sap.com/fieldglass/workorders/{workOrderId}
Destination: 1099Policy (POST /jobs)
POST https://api.1099policy.com/api/v1/jobs
Authorization: Bearer t9k_test_***
Content-Type: application/json
{
"name": "WO 9812 — Software Implementation Consultant",
"description": "Assist with SAP migration and UAT support",
"entity": "en_Fg1x92",
"category_code": "TECH_CONSULTING",
"wage": 12500,
"wage_type": "hourly",
"region": "CA",
"custom_metadata": {
"work_order_id": "9812",
"worker_id": "W_8823",
"job_posting_id": "JP_0192"
}
}
4.3 Create Quote
Quotes define the coverage type and duration for a released Work Order.
| 1099Policy Quote Field | Fieldglass Source | Notes |
|---|---|---|
contractor | Worker → Contractor mapping | Must exist first |
job | Returned Job ID | Required |
coverage_type[] | Insurance requirements from Work Order or SOW | e.g., ["workers-comp","general"] |
effective_date | workOrder.startDate (epoch UTC) | Required |
end_date | workOrder.endDate (epoch UTC) | Required |
custom_metadata.work_order_id | workOrder.workOrderId | Reconciliation |
Source: SAP Fieldglass (REST)
GET https://api.sap.com/fieldglass/workorders/{workOrderId}/details
Destination: 1099Policy (POST /quotes)
POST https://api.1099policy.com/api/v1/quotes
Authorization: Bearer t9k_test_***
Content-Type: application/json
{
"contractor": "cn_P9z18",
"job": "jb_Fg12Lx",
"coverage_type": ["workers-comp","general"],
"effective_date": 1764403200,
"end_date": 1767081600,
"custom_metadata": { "work_order_id": "9812" }
}
4.4 Create Insurance Application Session
The Application Session allows the Worker to review and activate coverage before the Work Order begins.
Destination: 1099Policy (POST /apply/sessions)
POST https://api.1099policy.com/api/v1/apply/sessions
Authorization: Bearer t9k_test_***
Content-Type: application/json
{
"quote": "qt_Mn49T",
"success_url": "https://fieldglass.yourdomain.com/workorders/9812?coverage=active",
"cancel_url": "https://fieldglass.yourdomain.com/workorders/9812?coverage=canceled",
"custom_metadata": { "work_order_id": "9812" }
}
Workers complete this step once to activate their initial policy.
4.5 Create Assignment
Assignments automatically apply coverage for returning Workers who have previously completed opt-in.
Destination: 1099Policy (POST /assignments)
POST https://api.1099policy.com/api/v1/assignments
Authorization: Bearer t9k_test_***
Content-Type: application/json
{
"contractor": "cn_P9z18",
"job": "jb_Fg12Lx",
"effective_date": 1764403200,
"end_date": 1767081600,
"coverage_type": ["workers-comp","general"],
"custom_metadata": { "work_order_id": "9812" }
}
4.6 Upload Certificate (BYO-COI)
This is a standalone workflow for contractors who already hold insurance.
SAP Fieldglass does not provide a dedicated COI document endpoint—upload COIs via your platform UI/intake or request them directly from the contractor.
Source: SAP Fieldglass (REST)
GET https://api.sap.com/fieldglass/workorders/{workOrderId}/attachments
Destination: 1099Policy (POST /files/certificates)
(multipart upload)
Fields:
certificate=@file.pdfcontractor=cn_P9z18custom_metadata[work_order_id]=9812
5. Webhooks
Webhooks keep both systems in sync as Work Orders change.
| Source | Event | Action |
|---|---|---|
| Fieldglass | Work Order Released | Create Job and Quote |
| Fieldglass | Work Order Updated | Adjust Assignment window |
| Fieldglass | Work Order Closed | End coverage |
| 1099Policy | policy.active | Mark as Insured |
| 1099Policy | policy.canceled / policy.expired | Mark as Uninsured |
| 1099Policy | certificate.validated | Mark COI valid |
| 1099Policy | certificate.flagged | Flag for manual review |
Verify all webhook signatures with the T9K-Signature header.
6. Testing Checklist
Use this checklist to verify your integration behaves as expected.
- Worker created with valid or proxy email
- Job created with correct metadata and wage
- Quote generated with correct coverage dates
- Application Session launches successfully
- Assignment aligns with Work Order duration
- Webhooks validated via HMAC signatures
- COI uploads trigger certificate validation
- Work Order closeout ends coverage correctly

