### Description

Nursa is a healthcare staffing platform that connects hospitals and care facilities with licensed clinicians for per-diem and short-term shifts. Its API enables partners to post shifts, assign clinicians, and retrieve shift reports and lifecycle updates. Nursa’s integrations support real-time visibility into clinician scheduling and shift fulfillment across facilities.

### Products

- Fractional Insurance
- Automated Certificate Review

### 1099Policy Resources

[Quick Start Guide](/content/docs/quick-start/index.html) [API Reference](/content/docs/quick-start/index.html)

## Nursa Integration Guide

##### Learn how to integrate Nursa with 1099Policy to automate insurance validation and real-time coverage for every clinician shift.

### Healthcare contractor focus

This integration applies to licensed clinicians and healthcare contractors scheduled for shifts via Nursa. Employee or staff nurse engagements are out of scope.

## 1. Overview

Connect Nursa’s shift-based staffing marketplace to 1099Policy so that every posted shift for a contractor is insured or has a validated Certificate of Insurance (COI) before the engagement begins.

You can:

- Bind fractional, on-demand coverage for each Nursa shift.
- Automatically validate or upload COIs.
- Sync compliance states using 1099Policy webhooks (`policy.*`, `certificate.*`).
- Map shift pay to 1099Policy `job.wage` (in cents) and `wage_type`.
- Store Nursa IDs (e.g., `facilityId`, `shiftId`, `clinicianId`) in `custom_metadata` for reconciliation.

## 2. Integration Timing & Trigger

Coverage should activate when a shift is created or a clinician is scheduled, ensuring the policy binds **before** any work begins.

- **Primary trigger:** `shift.created` or `request.submitted` (clinician scheduled)
- **Alternative triggers:** `shift.reported`, `shift.completed`
- **Delivery method:** Nursa Webhooks
- **Required data:** `facilityId`, `shiftId`, `licenseType`, `from`, `to`, `description`, `bonus`

## 3. Core Concepts

This table shows how Nursa shift, clinician, and report objects map to 1099Policy resources to maintain coverage and COI validation through each scheduled shift.

| Nursa Object            | 1099Policy Resource     | Description                                                      |
|-------------------------|-------------------------|------------------------------------------------------------------|
| Shift (job offer)      | Job + Assignment         | Represents the work scope, compensation, and coverage window      |
| Clinician (contractor) | Contractor              | Represents the insured individual                                   |
| Shift Report / Invoice  | Certificate or Invoice   | Used for COI validation or actual remuneration                     |
| Identifiers             | `custom_metadata.*`     | Used for reconciliation only                                       |

## 4. End-to-End Implementation

Follow these steps to automate Nursa → 1099Policy integration.

### 4.1 Create Contractor

Each clinician must exist in 1099Policy before quoting or assigning coverage. Every Contractor must include a unique `contact.email`. Generate a proxy email if Nursa does not expose one (e.g., `<clinicianId>@relay.yourdomain.com`).

| Nursa Field             | 1099Policy Contractor           | Notes                                           |
|-------------------------|---------------------------------|-------------------------------------------------|
| `clinicianId`          | `custom_metadata.nursa_clinician_id` | Reconciliation key                               |
| `first_name`, `last_name` | `contact.first_name`, `contact.last_name` | Required                             |
| `email`                | `contact.email`                | **Required**; use proxy if hidden                |
| `country`              | `address.country`              | Optional                                       |
| `region`               | `address.region`               | Optional                                       |

**Source: Nursa (REST)**

```bash
GET https://api.nursa.com/v2/clinicians/{clinicianId}
Authorization: Bearer YOUR_NURSA_TOKEN
```

**Destination: 1099Policy (POST /contractors)**

```bash
POST https://api.1099policy.com/api/v1/contractors
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
```

```json
{
  "contact": {
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "cl_123456@relay.yourdomain.com"
  },
  "address": {
    "country": "US",
    "region": "CA"
  },
  "custom_metadata": {
    "nursa_clinician_id": "cl_123456"
  }
}
```

### 4.2 Create Job

Create a Job for each posted shift to capture the scope, compensation, and jurisdiction, and store Nursa identifiers in `custom_metadata` for reconciliation.

| 1099Policy Job Field   | Nursa Source                 | Notes                                         |
|-------------------------|------------------------------|-----------------------------------------------|
| `name`                 | Shift description            | Descriptive title                             |
| `description`          | Shift details                | Optional                                     |
| `entity`               | Your internal client/account ID | Must exist in 1099Policy                  |
| `category_code`        | "HEALTHCARE_CONTRACTOR"    | Fixed category                               |
| `wage` (cents)        | Shift pay × 100              | Required                                     |
| `wage_type`            | "flatfee"                  | Fixed                                        |
| `region`               | Shift location               | Defaults to facility region                   |
| `custom_metadata.nursa_shift_id` | Shift ID       | Required                                     |
| `custom_metadata.nursa_facility_id` | Facility ID | Optional                                     |
| `custom_metadata.nursa_license_type` | License Type | Optional                               |

**Destination: 1099Policy (POST /jobs)**

```bash
POST https://api.1099policy.com/api/v1/jobs
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
```

```json
{
  "name": "RN Shift – Facility P-123456",
  "description": "3-hour RN shift with 15m break",
  "entity": "en_12AbC3",
  "category_code": "HEALTHCARE_CONTRACTOR",
  "wage": 30000,
  "wage_type": "flatfee",
  "region": "US",
  "custom_metadata": {
    "nursa_shift_id": "sh_987654",
    "nursa_facility_id": "P-123456",
    "nursa_license_type": "RN"
  }
}
```

### 4.3 Create Quote

Quotes define the coverage window and insurance requirements for each shift.

**Destination: 1099Policy (POST /quotes)**

```bash
POST https://api.1099policy.com/api/v1/quotes
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
```

```json
{
  "contractor": "cn_abcdefgh",
  "job": "jb_xyz123",
  "coverage_type": ["general","professional"],
  "effective_date": 1700000000,
  "end_date": 1700003600,
  "custom_metadata": {
    "nursa_shift_id": "sh_987654"
  }
}
```

### 4.4 Create Application Session

Use an Apply Session once per clinician to complete the opt-in flow. Contractors will confirm coverage binding before their first shift.

**Destination: 1099Policy (POST /apply/sessions)**

```bash
POST https://api.1099policy.com/api/v1/apply/sessions
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
```

```json
{
  "quote": "qt_ijkl456",
  "success_url": "https://dashboard.yourapp.com/shifts/sh_987654?status=active",
  "cancel_url": "https://dashboard.yourapp.com/shifts/sh_987654?status=canceled",
  "custom_metadata": {
    "nursa_shift_id": "sh_987654"
  }
}
```

### 4.5 Create Assignment

Create Assignments for returning contractors who already opted in to automatically activate coverage for new shifts.

**Destination: 1099Policy (POST /assignments)**

```bash
POST https://api.1099policy.com/api/v1/assignments
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
```

```json
{
  "contractor": "cn_abcdefgh",
  "job": "jb_xyz123",
  "effective_date": 1700000000,
  "end_date": 1700003600,
  "coverage_type": ["general","professional"],
  "custom_metadata": {
    "nursa_shift_id": "sh_987654"
  }
}
```

### 4.6 Upload Certificate (BYO-COI)

This independent flow supports contractors who provide their own coverage. Upload the COI for validation and compliance tracking.

**Destination: 1099Policy (POST /files/certificates)**

(multipart upload)

Fields:

- `certificate=@file.pdf`
- `contractor=cn_abcdefgh`
- `custom_metadata[nursa_shift_id]=sh_987654`

### 4.7 Record Invoice (Optional)

If the final pay differs from the shift estimate, record it for reconciliation and audit.

**Destination: 1099Policy (POST /invoices)**

```bash
POST https://api.1099policy.com/api/v1/invoices
Authorization: Bearer YOUR_1099POLICY_TOKEN
Content-Type: application/json
```

```json
{
  "contractor": "cn_abcdefgh",
  "job": "jb_xyz123",
  "gross_pay": 35000,
  "paycycle_startdate": 1700000000,
  "paycycle_enddate": 1700003600
}
```

## 5. Webhooks

Use Nursa and 1099Policy webhooks to sync shift creation, completion, and coverage events.

| Source         | Event                        | Action                                      |
|----------------|------------------------------|---------------------------------------------|
| Nursa          | `shift.created`              | Create Job + Quote in 1099Policy           |
| Nursa          | `shift.reported`             | Record invoice                              |
| 1099Policy     | `policy.active`              | Mark shift insured                          |
| 1099Policy     | `policy.canceled` / `policy.expired` | Flag coverage issue                   |
| 1099Policy     | `certificate.validated`      | Mark COI valid                             |
| 1099Policy     | `certificate.flagged`        | Manual review required                      |

## 6. Testing Checklist

- Clinician (contractor) exists in 1099Policy with valid or proxy email
- Job created with accurate wage and identifiers
- Quote created with coverage window
- Application Session completes and binds coverage
- Assignment aligns to shift duration
- Optional COI upload validated
- Optional invoice recorded
- Webhooks idempotent and verified

## 7. References

- Nursa API: [https://docs.nursa.com](https://docs.nursa.com/)
- Shifts Guide: [Integration Guideline / Shifts](https://docs.nursa.com/docs/Integration%20Guideline/Shifts/)
- Shift Reports: [Integration Guideline / Shift Reports](https://docs.nursa.com/docs/Integration%20Guideline/Shift%20Reports/)
