ESC

[Show more](https://docs.1099policy.com/#)

Use

to navigate results,
ENTER
to select one,
ESC
to close

Type in any word to easily find the endpoint, property or group of operations you are looking for.

API

No results found for query:

An error occured while performing your search, please contact Bump.sh support if it persists.

Dismiss highlightShow more

* * *

* * *

* * *

* * *

* * *

# 1099Policy API Reference    1.12

Ask AI

- [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=1099Policy%20MCP%20server&config=eyJ1cmwiOiJodHRwczovL2RvY3MuMTA5OXBvbGljeS5jb20vbWNwIn0%3D)
- [Add to VSCode](vscode:mcp/install?{%22name%22:%221099Policy%20MCP%20server%22,%22type%22:%22http%22,%22url%22:%22https://docs.1099policy.com/mcp%22})
- [Add to other AI tools (MCP)](https://docs.1099policy.com/)

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/source.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/source.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/source.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

```
https://api.1099policy.com
```

The 1099Policy API is based on REST principles with resource-oriented URLs that accept JSON request bodies and return JSON responses. Use the 1099Policy API and the keys available on your 1099Policy Dashboard to offer contractors on your platform access to on-demand, pay-as-you-go insurance.

Use the development environment secret key to step through the process of procuring insurance using 1099Policy API for test contractors and job assignments. Because the API key you use to authenticate determines whether the request runs in our production environment or in our development environment, going live on the 1099Policy platform is as easy as replacing the development secret key with the production secret key once you're ready.

This is version `1.12` of this API documentation. Last update on Jul 18, 2026.

# Authentication

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/authentication.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/authentication.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/authentication.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

To use the 1099Policy API you need to authenticate requests using API keys. Sign up for a developer account to view and manage your API keys from the 1099Policy Dashboard. [https://dashboard.1099policy.com/signup](https://dashboard.1099policy.com/signup)

Your API tokens should be guarded closely. As a reminder, do not share your secret API keys in publicly accessible areas such as GitHub or client-side code, for example. Instead use environment variables, web server settings, startup script, or a configuration file that is excluded from your version control.

Test mode secret keys have the prefix `t9k_test_` and live mode secret keys have the prefix `t9k_live_`.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

```curl
  curl \
    -X GET https://api.1099policy.com/api/v1/contractors \
    -H "Authorization: Basic t9k_test_wvnsjtZ8aMlbfGbIm0Lc0"
```

# Environment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-environment.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-environment.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/topic/topic-environment.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

Clients can make requests to either the `sandbox` or `production` environment by using the header `Ten99Policy-Environment` and specifying either `sandbox` or `production`. The default is `sandbox`.

```curl
  curl \
    -X GET https://api.1099policy.com/api/v1/contractors \
    -H "Authorization: Basic t9k_test_wvnsjtZ8aMlbfGbIm0Lc0" \
    -H "Ten99Policy-Environment: production"
```

# Errors

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-errors.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-errors.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/topic/topic-errors.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

1099Policy uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the `2xx` range indicate success. Codes in the `4xx` range indicate an error due to the the information provided (e.g., a required parameter was omitted, a create policy request failed, etc.). Codes in the 5xx range indicate an error with 1099Policy's servers (these are rare).

Some `4xx` errors that could be handled programmatically (e.g., contractor ineligible for coverage) include an error code that briefly explains the error reported.

## Handling Errors

Our API libraries raise exceptions for many reasons, such as a failed create policy request, invalid parameters, authentication errors, and network unavailability. We recommend writing code that gracefully handles all possible API exceptions.

```basic
  200   (OK) Everything worked as expected.
  400   (Bad Request) Check for a missing required parameter.
  401   (Unauthorized) No valid API key provided.
  403   (Forbidden) Confirm API key has permissions to make request.
  404   (Not Found) The requested resource doesn't exist.
  429   (Too Many Requests) Too many requests to the API too quickly.
  500   (Server Error) Something went wrong on 1099Policy's end.
```

# Idempotent Requests

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-idempotent-requests.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-idempotent-requests.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/topic/topic-idempotent-requests.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

The 1099Policy API checks every request header for an an additional `Ten99Policy-Idempotent-Key`. We use this field to perform an idempotency check to avoid duplicate transfers in case of network failures or timeouts. For example, if a request to create a contractor fails to return a response due to a network connection error, you can retry the request with the same idempotency key to guarantee that no more than one contractor is created.

1099Policy's idempotency works by saving the resulting status code and body of the first request made for any given idempotency key, regardless of whether it succeeded or failed. Subsequent requests with the same key return the same result, including `500` errors.

We suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions.

Keys expire after 24 hours, so a new request is generated if a key is reused outside of that time frame. Results are only saved if an API endpoint started executing. You can safely retry requests that fail validation or conflicts with another request that was executing concurrently.

All `POST` requests accept idempotency keys. Sending idempotency keys in `GET` and `DELETE` requests has no effect and should be avoided, as these requests are idempotent by definition.

```curl
  curl \
      -X POST https://api.1099policy.com/api/v1/jobs \
      -u t9k_test_wvnsjtZ8aMlbfGbIm0Lc0: \
      -H "Ten99Policy-Idempotent-Key: d9YozBtG5R" \
      -H 'Content-Type: application/json' \
      -d ...
```

# Date Handling

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-date-handling.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/topic/topic-date-handling.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/topic/topic-date-handling.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

All dates and timestamps in the 1099Policy API are represented as Unix timestamps
(integers) and are always in UTC (Coordinated Universal Time). When sending date
values in API requests, provide them as Unix timestamps representing UTC time.

### Date Format

Dates are represented as Unix timestamps (seconds since January 1, 1970 UTC).
For example, `1705312800` represents January 15, 2024 at 10:00:00 AM UTC.

### Same-Day Date Handling

When creating quotes or assignments, if the `end_date` and `effective_date` are
on the same day, the API automatically adjusts the `end_date` to the start of the
next day (midnight UTC). This ensures proper date range validation and prevents
same-day date conflicts.

### Date Validation Rules

- `effective_date` must be in the future (with a small grace period for clock skew)
- `end_date` must be after `effective_date`
- `end_date` must be within one year of `effective_date`
- Both dates are validated and normalized to UTC before processing

When working with dates in your application, ensure you convert local times to
UTC before sending timestamps to the API. All date comparisons and validations
performed by the API use UTC.

```basic

{
  "effective_date": 1705312800,
  "end_date": 1705338000
}
```

In the example above, both dates are on the same day (January 15, 2024), so the
API will automatically adjust `end_date` to January 16, 2024 00:00:00 UTC.

# Contractor

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-contractor.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-contractor.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-contractor.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

A `Contractor` object represents the contractor that can accept one or more jobs on your platform. The API allows you to create, delete, and update contractors. You can retrieve individual contractors as well as a list
of all contractors.

## List all contractors

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-contractors.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-contractors.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-contractors.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/contractors

Returns a list of your contractors. The contractors are
returned sorted by creation date, with the most recent
contractors appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an contractor ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `cn_fOo123`, your subsequent call can include `starting_after=cn_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an contractor ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `cn_bAr123`, your subsequent call can include `ending_before=cn_bAr123` in order to fetch the previous page of the list.

-
email

string

A case-sensitive filter on the list based on the contractor's email attribute. The value must be a string.

### Responses

-
200

application/json

Returns an array of contractor objects. If no more contractors are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       address

object

The contractor's home address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       company\_name

string \| null

The contractor's business name.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

Set of key-value pairs that you can attach to the contractor object. Used for storing additional information in a structured format. Individual keys can be unset by posting an empty value to them. Pass an empty value, e.g. {}, to custom\_metadata to unset all keys.

-
       email

string

The contractor's email address.

-
       first\_name

string

The contractor's first name.

-
       id

string

Unique identifier for the object.

-
       last\_name

string

The contractor's last name.

-
       middle\_name

string \| null

The contractor's middle name.

-
       phone

string

The contractor's phone number.

-
       withhold\_premium

This indicates whether the contractor is paying premium directly with their credit card (i.e., `false`) or if the contractor has given the platform that's integrating with 1099Policy permission to withhold the premium payment from their wages and pay the premium on the contractor's behalf (i.e., `true`). Defaults to `false`.

Default value is `false`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/contractors'
```

```json
[\
  {\
    "address": {\
      "country": "null",\
      "line1": "92 Geary St",\
      "line2": "null",\
      "locality": "San Francisco",\
      "postalcode": 94114,\
      "region": "CA"\
    },\
    "company_name": "Acme Co.",\
    "created": 1646818364,\
    "custom_metadata": {\
      "campaign": "Red Bull"\
    },\
    "email": "parker@gmail.com",\
    "first_name": "Joe",\
    "id": "cn_Ehb3bYa",\
    "last_name": "Parker",\
    "middle_name": "null",\
    "phone": "415-474-9088",\
    "withhold_premium": false\
  }\
]
```

## Create a contractor

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-contractors.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-contractors.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-contractors.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/contractors

Creates a new contractor object.

application/json

#### Body

-
address

objectRequired

The contractor's home address.

Hide address attributesShow address attributesobject

-
       country

string \| null

2-letter country code.

-
       line1

stringRequired

Address line 1 (Street address/PO Box).

-
       line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
       locality

stringRequired

City/District/Suburb/Town/Village.

-
       postalcode

stringRequired

ZIP or postal code.

-
       region

stringRequired

2-letter state code.

-
company\_name

string

The contractor's business name.

-
custom\_metadata

object

Set of key-value pairs that you can attach to an object. Used to store additional information about the contractor in a structured format.

-
email

stringRequired

The contractor's email address.

-
first\_name

stringRequired

The contractor's first name.

-
last\_name

stringRequired

The contractor's last name.

-
middle\_name

string

The contractor's middle name.

-
phone

string

The contractor's phone number.

-
tax\_identification

string

The contractor's tax identification number. For example, an employer identification number (EIN) if the contractor operates as a corporate entity or a social security number if the contractor operates as a sole proprietor.

-
withhold\_premium

boolean

### Responses

-
201

application/json

Returns the contractor object if the post succeeded.

Hide response attributesShow response attributesobject

-
       address

object

The contractor's home address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       company\_name

string \| null

The contractor's business name.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

-
       email

string

The contractor's email address.

-
       first\_name

string

The contractor's first name.

-
       id

string

Unique identifier for the object.

-
       last\_name

string

The contractor's last name.

-
       middle\_name

string \| null

The contractor's middle name.

-
       phone

string

The contractor's phone number.

-
       withhold\_premium

Default value is `false`.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/contractors' \
 --header "Content-Type: application/json" \
 --data '{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"company_name":"string","custom_metadata":{},"email":"string","first_name":"string","last_name":"string","middle_name":"string","phone":"string","tax_identification":"string","withhold_premium":true}'
```

```json
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "company_name": "string",
  "custom_metadata": {},
  "email": "string",
  "first_name": "string",
  "last_name": "string",
  "middle_name": "string",
  "phone": "string",
  "tax_identification": "string",
  "withhold_premium": true
}
```

```json
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "created": 1646818364,
  "custom_metadata": {
    "campaign": "Red Bull"
  },
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "id": "cn_Ehb3bYa",
  "last_name": "Parker",
  "middle_name": "null",
  "phone": "415-474-9088",
  "withhold_premium": false
}
```

## Retrieve a contractor

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-contractors-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-contractors-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-contractors-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/contractors/{contractor}

Retrieves the details of an existing contractor.
You need only supply the unique contractor identifier
that was returned upon contractor creation.

#### Path parameters

-
contractor

stringRequired

The ID of the desired contractor (e.g., `cn_Ehb3bYa`).

### Responses

-
200

application/json

Returns a contractor object if a valid identifier was provided.

Hide response attributesShow response attributesobject

-
       address

object

The contractor's home address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       company\_name

string \| null

The contractor's business name.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

-
       email

string

The contractor's email address.

-
       first\_name

string

The contractor's first name.

-
       id

string

Unique identifier for the object.

-
       last\_name

string

The contractor's last name.

-
       middle\_name

string \| null

The contractor's middle name.

-
       phone

string

The contractor's phone number.

-
       withhold\_premium

Default value is `false`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa'
```

## Update a contractor

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-contractors-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-contractors-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-contractors-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/contractors/{contractor}

Updates the specified contractor by setting the values
of the parameters passed. Any parameters not provided
will be left unchanged.

This request accepts mostly the same arguments as the
contractor creation call.

#### Path parameters

-
contractor

stringRequired

The ID of the desired contractor (e.g., `cn_Ehb3bYa`).

application/json

#### Body

-
address

object

The contractor's home address.

Hide address attributesShow address attributesobject

-
       country

string \| null

2-letter country code.

-
       line1

string

Address line 1 (Street address/PO Box).

-
       line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
       locality

string

City/District/Suburb/Town/Village.

-
       postalcode

string

ZIP or postal code.

-
       region

string

2-letter state code.

-
company\_name

string

The contractor's business name.

-
custom\_metadata

object

Set of key-value pairs that you can attach to an object. Used to store additional information about the contractor in a structured format. Individual keys can be unset by posting an empty value to them. Pass an empty value, e.g. {}, to custom\_metadata to unset all keys.

-
email

string

The contractor's email address.

-
first\_name

string

The contractor's first name.

-
last\_name

string

The contractor's last name.

-
middle\_name

string

The contractor's middle name.

-
phone

string

The contractor's phone number.

-
withhold\_premium

boolean

### Responses

-
200

application/json

Returns the contractor object if the update succeeded. Returns an error if update parameters are invalid.

Hide response attributesShow response attributesobject

-
       address

object

The contractor's home address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       company\_name

string \| null

The contractor's business name.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

-
       email

string

The contractor's email address.

-
       first\_name

string

The contractor's first name.

-
       id

string

Unique identifier for the object.

-
       last\_name

string

The contractor's last name.

-
       middle\_name

string \| null

The contractor's middle name.

-
       phone

string

The contractor's phone number.

-
       withhold\_premium

Default value is `false`.

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"address\": {\n    \"line1\": \"123 Main St.\",\n    \"locality\": \"San Francisco\",\n    \"postalcode\": \"94105\",\n    \"region\": \"CA\"\n  },\n  \"company_name\": \"Acme Co.\",\n  \"custom_metadata\": {\n    \"campaign\": \"Red Bull\"\n  },\n  \"email\": \"parker@gmail.com\",\n  \"first_name\": \"Joe\",\n  \"last_name\": \"Parker\",\n  \"middle_name\": \"Doe\",\n  \"phone\": \"415-474-9088\"\n}"'
```

```json
{
  "address": {
    "line1": "123 Main St.",
    "locality": "San Francisco",
    "postalcode": "94105",
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "custom_metadata": {
    "campaign": "Red Bull"
  },
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "last_name": "Parker",
  "middle_name": "Doe",
  "phone": "415-474-9088"
}
```

## Delete a contractor

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-contractors-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-contractors-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-contractors-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/contractors/{contractor}

Permanently deletes a contractor. It cannot be undone.
Also immediately cancels any active policies connected
with the contractor.

#### Path parameters

-
contractor

stringRequired

The ID of the desired contractor (e.g., `cn_Ehb3bYa`).

### Responses

-
200

application/json

Returns an object with a deleted parameter on success. If the contractor ID does not exist, this call returns an error.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the contractor was deleted.

-
       id

string

The contractor ID.

-
       object

string

Default value is `contractor`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "cn_Ehb3bYa",
  "object": "contractor"
}
```

## Generate login link

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-contractors-parameter-login_link.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-contractors-parameter-login_link.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-contractors-parameter-login_link.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/contractors/{contractor}/login\_link

Generates a secure, time-limited login URL for contractor portal access.
This allows agencies to provide direct portal access without requiring
contractors to go through email verification.

#### Path parameters

-
contractor

stringRequired

The contractor's public ID

application/json

#### Body

-
redirect\_url

string

URL to redirect the contractor to after successful authentication. Must match an allowlisted origin.

### Responses

-
200

application/json

Login link generated successfully

Hide response attributesShow response attributesobject

-
       contractor

object
      Hide contractor attributesShow contractor attributesobject

-
             company\_name

string

-
             email

string

-
             first\_name

string

-
             id

integer

-
             last\_name

string

-
             public\_id

string

-
       expires\_at

integer(int64)

Time at which the login token expires. Measured in seconds since the Unix epoch.

-
       login\_url

string

Complete login URL with embedded token

-
       success

boolean

-
400

Contractor has no email address, or the supplied redirect\_url is not an allowlisted origin.

-
404

Contractor not found

-
500

Failed to generate login link

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/contractors/{contractor}/login_link' \
 --header "Content-Type: application/json" \
 --data '{"redirect_url":"https://my.1099policy.com/insurance/start"}'
```

```json
{
  "redirect_url": "https://my.1099policy.com/insurance/start"
}
```

```json
{
  "contractor": {
    "company_name": "string",
    "email": "string",
    "first_name": "string",
    "id": 42,
    "last_name": "string",
    "public_id": "string"
  },
  "expires_at": 1765555200,
  "login_url": "https://my.1099policy.com/quick-access?contractor_id=cn_abc123&token=xyz789",
  "success": true
}
```

# Entity

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-entity.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-entity.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-entity.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

The `Entity` object represents the contracting entity responsible for defining the job descriptions and for hiring contractors.

The API allows you to create, delete, and update entities. You can retrieve individual entities as well as a list of all entities.

## List all entities

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-entities.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-entities.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-entities.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/entities

Returns a list of your contracting entities. The entities
are returned sorted by creation date, with the most recent
entities appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an entity ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `en_fOo123`, your subsequent call can include `starting_after=en_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an entity ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `en_bAr123`, your subsequent call can include `ending_before=en_bAr123` in order to fetch the previous page of the list.

### Responses

-
200

application/json

Returns an array of entity objects. If no more entities are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       address

object

The contracting entity's address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       coverage\_limit

object

The contracting entity's minimum required coverage limits.

Hide coverage\_limit attributesShow coverage\_limit attributesobject

-
             aggregate\_limit

integerRequired

The total amount the insurance company will pay for multiple claims over the course of one policy term.

A positive integer representing the aggregate limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
             occurrence\_limit

integerRequired

The total amount the insurance company will pay per incident during the policy term.

A positive integer representing the per occurrence limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       name

string

The contracting entity's legal name.

-
       required\_coverage

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional` and `workers-comp`.

Values are `general`, `professional`, or `workers-comp`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/entities'
```

```json
[\
  {\
    "address": {\
      "country": "null",\
      "line1": "92 Geary St",\
      "line2": "null",\
      "locality": "San Francisco",\
      "postalcode": 94114,\
      "region": "CA"\
    },\
    "coverage_limit": {\
      "aggregate_limit": 200000000,\
      "occurrence_limit": 100000000\
    },\
    "created": 1646818364,\
    "id": "en_Ah3tqYn",\
    "name": "Apple, Inc",\
    "required_coverage": [\
      "general",\
      "workers-comp"\
    ]\
  }\
]
```

## Create an entity

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-entities.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-entities.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-entities.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/entities

Creates a new contracting entity object.

application/json

#### Body

-
address

object

The contracting entity's address.

Hide address attributesShow address attributesobject

-
       country

string \| null

2-letter country code.

-
       line1

string

Address line 1 (Street address/PO Box).

-
       line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
       locality

string

City/District/Suburb/Town/Village.

-
       postalcode

string

ZIP or postal code.

-
       region

string

2-letter state code.

-
coverage\_limit

object

The contracting entity's minimum required coverage limits.

Hide coverage\_limit attributesShow coverage\_limit attributesobject

-
       aggregate\_limit

integerRequired

The total amount the insurance company will pay for multiple claims over the course of one policy term.

A positive integer representing the aggregate limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
       occurrence\_limit

integerRequired

The total amount the insurance company will pay per incident during the policy term.

-
name

stringRequired

The contracting entity's legal name.

-
required\_coverage

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional`, `workers-comp`, `media`, and `cyber`.

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

### Responses

-
201

application/json

Returns the entity object if the post succeeded.

Hide response attributesShow response attributesobject

-
       address

object

The contracting entity's address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       coverage\_limit

object

The contracting entity's minimum required coverage limits.

Hide coverage\_limit attributesShow coverage\_limit attributesobject

-
             aggregate\_limit

integerRequired

The total amount the insurance company will pay for multiple claims over the course of one policy term.

A positive integer representing the aggregate limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
             occurrence\_limit

integerRequired

The total amount the insurance company will pay per incident during the policy term.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       name

string

The contracting entity's legal name.

-
       required\_coverage

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional` and `workers-comp`.

Values are `general`, `professional`, or `workers-comp`.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/entities' \
 --header "Content-Type: application/json" \
 --data '{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"coverage_limit":{"aggregate_limit":200000000,"occurrence_limit":100000000},"name":"string","required_coverage":["general","workers-comp"]}'
```

```json
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "coverage_limit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "name": "string",
  "required_coverage": [\
    "general",\
    "workers-comp"\
  ]
}
```

```json
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "coverage_limit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "created": 1646818364,
  "id": "en_Ah3tqYn",
  "name": "Apple, Inc",
  "required_coverage": [\
    "general",\
    "workers-comp"\
  ]
}
```

## Retrieve an entity

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-entities-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-entities-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-entities-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/entities/{entity}

Retrieves the details of an existing entity.
You need only supply the unique entity ID
that was returned upon entity creation.

#### Path parameters

-
entity

stringRequired

The ID of the desired entity (e.g., `en_Ah3tqYn`).

### Responses

-
200

application/json

Returns an entity object if a valid entity ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       address

object

The contracting entity's address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       coverage\_limit

object

The contracting entity's minimum required coverage limits.

Hide coverage\_limit attributesShow coverage\_limit attributesobject

-
             aggregate\_limit

integerRequired

The total amount the insurance company will pay for multiple claims over the course of one policy term.

A positive integer representing the aggregate limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
             occurrence\_limit

integerRequired

The total amount the insurance company will pay per incident during the policy term.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       name

string

The contracting entity's legal name.

-
       required\_coverage

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional` and `workers-comp`.

Values are `general`, `professional`, or `workers-comp`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/entities/en_Ah3tqYn'
```

## Update an entity

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-entities-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-entities-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-entities-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/entities/{entity}

Updates the specified entity by setting the values
of the parameters passed. Any parameters not provided
will be left unchanged.

This request accepts mostly the same arguments as the
entity creation call.

#### Path parameters

-
entity

stringRequired

The ID of the desired entity (e.g., `en_Ah3tqYn`).

application/json

#### Body

-
address

object

The contracting entity's address.

Hide address attributesShow address attributesobject

-
       country

string \| null

2-letter country code.

-
       line1

string

Address line 1 (Street address/PO Box).

-
       line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
       locality

string

City/District/Suburb/Town/Village.

-
       postalcode

string

ZIP or postal code.

-
       region

string

2-letter state code.

-
coverage\_limit

object

The contracting entity's minimum required coverage limits.

Hide coverage\_limit attributesShow coverage\_limit attributesobject

-
       aggregate\_limit

integerRequired

The total amount the insurance company will pay for multiple claims over the course of one policy term.

A positive integer representing the aggregate limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
       occurrence\_limit

integerRequired

The total amount the insurance company will pay per incident during the policy term.

-
name

string

The contracting entity's legal name.

-
required\_coverage

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

### Responses

-
200

application/json

Returns the entity object if the update succeeded. Returns an error if update parameters are invalid.

Hide response attributesShow response attributesobject

-
       address

object

The contracting entity's address.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       coverage\_limit

object

The contracting entity's minimum required coverage limits.

Hide coverage\_limit attributesShow coverage\_limit attributesobject

-
             aggregate\_limit

integerRequired

The total amount the insurance company will pay for multiple claims over the course of one policy term.

A positive integer representing the aggregate limit expressed in cents (e.g., 100000000 cents to represent $1,000,000). The minimum amount is 1000 cents US.

-
             occurrence\_limit

integerRequired

The total amount the insurance company will pay per incident during the policy term.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       name

string

The contracting entity's legal name.

-
       required\_coverage

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional` and `workers-comp`.

Values are `general`, `professional`, or `workers-comp`.

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/entities/en_Ah3tqYn' \
 --header "Content-Type: application/json" \
 --data '{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"coverage_limit":{"aggregate_limit":200000000,"occurrence_limit":100000000},"name":"string","required_coverage":["general","workers-comp"]}'
```

## Delete an entity

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-entities-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-entities-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-entities-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/entities/{entity}

Permanently deletes an entity. It cannot be undone.
Also immediately cancels any insurance policies
connected with active jobs managed by the entity.

#### Path parameters

-
entity

stringRequired

The ID of the desired entity (e.g., `en_Ah3tqYn`).

### Responses

-
200

application/json

A successfully deleted entity. Otherwise, this call returns an error, such as if the entity has already been deleted.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the entity was deleted.

-
       id

string

The entity ID.

-
       object

string

Default value is `entity`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/entities/en_Ah3tqYn'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "en_Ah3tqYn",
  "object": "entity"
}
```

# Job

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-job.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-job.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-job.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

Store representations of the jobs on your platform in `Job` objects. The `Job` is used to, among other things, ensure that the insurance coverage that the 1099Policy platform issues correctly maps to the work that contractors will do.

## List all jobs

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-jobs.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-jobs.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-jobs.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/jobs

Returns a list of your jobs. The jobs are returned
sorted by creation date, with the most recently created
jobs appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an job ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `jb_fOo123`, your subsequent call can include `starting_after=jb_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an job ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `jb_bAr123`, your subsequent call can include `ending_before=jb_bAr123` in order to fetch the previous page of the list.

### Responses

-
200

application/json

Returns an array of job objects. If no more jobs are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       address

object

The job address where the work will be done. Exclude if job will be done remotely.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       category\_code

string

The category code that 1099Policy creates for a group of similarly classified jobs.

Job category codes are pre-approved by 1099Policy so you can offer contractors insurance to new jobs on your platform in real time.

To generate pre-approved category codes for a group of similarly classified jobs visit the [1099Policy Dashboard](https://dashboard.1099policy.com/jobs).

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

Set of key-value pairs that you can attach to the job object. Used for storing additional information in a structured format. Individual keys can be unset by posting an empty value to them. Pass an empty value, e.g. {}, to custom\_metadata to unset all keys.
      The `purchase_order_number` key is recognized: invoices created for this job inherit it as their purchase order number (overridable or clearable per invoice via the invoice endpoints).

-
       description

string

A description of the job that includes the role, responsibilities and necessary qualifications.

-
       entity

string

The entity ID for whom the work is being done.

-
       id

string

Unique identifier for the object.

-
       name

string

The name of the contractor job role.

-
       wage

integer

A positive integer representing the total wage (e.g., 1500 cents is $15.00). The minimum wage amount is 100 cents US. The maximum wage amount is 100000000 cents US ($1,000,000).

Minimum value is `100`, maximum value is `100000000`.

-
       wage\_type

One of `flatfee`, `hourly`, `unit` or `blended`.

Values are `flatfee`, `hourly`, `unit`, or `blended`.

-
       years\_experience

integer

The number of years of experience required to be eligible for the job.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/jobs'
```

```json
[\
  {\
    "address": {\
      "country": "null",\
      "line1": "92 Geary St",\
      "line2": "null",\
      "locality": "San Francisco",\
      "postalcode": 94114,\
      "region": "CA"\
    },\
    "category_code": "jc_MTqpkbkp6G",\
    "created": 1646818364,\
    "custom_metadata": {\
      "campaign": "Red Bull"\
    },\
    "description": "Install fiber optic cable from back to the front of the store.",\
    "entity": "en_Ah3tqYn",\
    "id": "jb_jsb9KEcTpc",\
    "name": "Field technician",\
    "wage": 15000,\
    "wage_type": "flatfee",\
    "years_experience": 10\
  }\
]
```

## Create a job

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-jobs.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-jobs.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-jobs.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/jobs

Creates a new job object. Used to classify
the work that 1099Policy applies to insure the
contractor.

application/json

#### Body

-
address

object

The job address where the work will be done. Exclude if job will be done remotely.

Hide address attributesShow address attributesobject

-
       country

string \| null

2-letter country code.

-
       line1

string

Address line 1 (Street address/PO Box).

-
       line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
       locality

string

City/District/Suburb/Town/Village.

-
       postalcode

string

ZIP or postal code.

-
       region

stringRequired

2-letter state code.

-
category\_code

stringRequired

The category code that 1099Policy creates for a group of similarly classified jobs.

Job category codes are pre-approved by 1099Policy so you can offer contractors insurance to new jobs on your platform in real time.

To generate pre-approved category codes for a group of similarly classified jobs visit the [1099Policy Dashboard](https://dashboard.1099policy.com/jobs).

-
custom\_metadata

object

Set of key-value pairs that you can attach to an object. Used to store additional information about the job in a structured format.

The `purchase_order_number` key is recognized: invoices created for this job inherit it as their purchase order number (overridable or clearable per invoice via the invoice endpoints).

-
description

stringRequired

A description of the job that includes the role, responsibilities and necessary qualifications.

-
entity

stringRequired

The ID of an existing entity for whom the job is being done.

-
name

stringRequired

The name of the contractor job role.

-
wage

integerRequired

A positive integer representing the wage (e.g., 1500 cents is $15.00). The minimum wage amount is $1.00 US.

Minimum value is `100`.

-
wage\_type

stringRequired

One of `flatfee`, `hourly`, `unit` or `blended`.

Values are `flatfee`, `hourly`, `unit`, or `blended`.

-
withhold\_premium

boolean

-
years\_experience

integer

The number of years of experience required to be eligible for the job.

### Responses

-
201

application/json

Returns the job object if the post succeeded.

Hide response attributesShow response attributesobject

-
       address

object

The job address where the work will be done. Exclude if job will be done remotely.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       category\_code

string

The category code that 1099Policy creates for a group of similarly classified jobs.

Job category codes are pre-approved by 1099Policy so you can offer contractors insurance to new jobs on your platform in real time.

To generate pre-approved category codes for a group of similarly classified jobs visit the [1099Policy Dashboard](https://dashboard.1099policy.com/jobs).

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

-
       description

string

A description of the job that includes the role, responsibilities and necessary qualifications.

-
       entity

string

The entity ID for whom the work is being done.

-
       id

string

Unique identifier for the object.

-
       name

string

The name of the contractor job role.

-
       wage

integer

Minimum value is `100`, maximum value is `100000000`.

-
       wage\_type

One of `flatfee`, `hourly`, `unit` or `blended`.

Values are `flatfee`, `hourly`, `unit`, or `blended`.

-
       years\_experience

integer

The number of years of experience required to be eligible for the job.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/jobs' \
 --header "Content-Type: application/json" \
 --data '{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"category_code":"string","custom_metadata":{},"description":"string","entity":"string","name":"string","wage":42,"wage_type":"flatfee","withhold_premium":true,"years_experience":42}'
```

```json
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "category_code": "string",
  "custom_metadata": {},
  "description": "string",
  "entity": "string",
  "name": "string",
  "wage": 42,
  "wage_type": "flatfee",
  "withhold_premium": true,
  "years_experience": 42
}
```

```json
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "category_code": "jc_MTqpkbkp6G",
  "created": 1646818364,
  "custom_metadata": {
    "campaign": "Red Bull"
  },
  "description": "Install fiber optic cable from back to the front of the store.",
  "entity": "en_Ah3tqYn",
  "id": "jb_jsb9KEcTpc",
  "name": "Field technician",
  "wage": 15000,
  "wage_type": "flatfee",
  "years_experience": 10
}
```

## Retrieve a job

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-jobs-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-jobs-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-jobs-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/jobs/{job}

Retrieves the details of an existing job.
Supply the unique job ID from either a job
creation request or the job list, and 1099Policy
will return the corresponding job information.

#### Path parameters

-
job

stringRequired

The ID of the desired job (e.g., `jb_jsb9KEcTpc`).

### Responses

-
200

application/json

Returns a job object if a valid job ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       address

object

The job address where the work will be done. Exclude if job will be done remotely.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       category\_code

string

The category code that 1099Policy creates for a group of similarly classified jobs.

Job category codes are pre-approved by 1099Policy so you can offer contractors insurance to new jobs on your platform in real time.

To generate pre-approved category codes for a group of similarly classified jobs visit the [1099Policy Dashboard](https://dashboard.1099policy.com/jobs).

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

-
       description

string

A description of the job that includes the role, responsibilities and necessary qualifications.

-
       entity

string

The entity ID for whom the work is being done.

-
       id

string

Unique identifier for the object.

-
       name

string

The name of the contractor job role.

-
       wage

integer

Minimum value is `100`, maximum value is `100000000`.

-
       wage\_type

One of `flatfee`, `hourly`, `unit` or `blended`.

Values are `flatfee`, `hourly`, `unit`, or `blended`.

-
       years\_experience

integer

The number of years of experience required to be eligible for the job.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/jobs/jb_jsb9KEcTpc'
```

## Update a job

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-jobs-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-jobs-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-jobs-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/jobs/{job}

Updates the specific job by setting the values of the
parameters passed. Any parameters not provided will be
left unchanged.

#### Path parameters

-
job

stringRequired

The ID of the desired job (e.g., `jb_jsb9KEcTpc`).

application/json

#### Body

-
address

object

The job address where the work will be done. Exclude if job will be done remotely.

Hide address attributesShow address attributesobject

-
       country

string \| null

2-letter country code.

-
       line1

string

Address line 1 (Street address/PO Box).

-
       line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
       locality

string

City/District/Suburb/Town/Village.

-
       postalcode

string

ZIP or postal code.

-
       region

string

2-letter state code.

-
custom\_metadata

object

Set of key-value pairs that you can attach to an object. Used to store additional information about the job in a structured format.

-
description

string

A description of the job that includes the role, responsibilities and necessary qualifications.

-
entity

string

The ID of an existing entity for whom the job is being done.

-
name

string

The name of the contractor job role.

-
wage

integer

A positive integer representing the wage (e.g., 1500 cents is $15.00). The minimum wage amount is 100 cents US. The maximum wage amount is 1000000000 cents US ($10,000,000).

Minimum value is `100`, maximum value is `1000000000`.

-
wage\_type

string

One of `flatfee`, `hourly`, `unit` or `blended`.

Values are `flatfee`, `hourly`, `unit`, or `blended`.

-
withhold\_premium

boolean

-
years\_experience

integer

The number of years of experience required to be eligible for the job.

### Responses

-
200

application/json

Returns an job object if a valid job ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       address

object

The job address where the work will be done. Exclude if job will be done remotely.

Hide address attributesShow address attributesobject

-
             country

string \| null

2-letter country code.

-
             line1

string

Address line 1 (Street address/PO Box).

-
             line2

string \| null

Address line 2 (Apartment/Suite/Unit/Building).

-
             locality

string

City/District/Suburb/Town/Village.

-
             postalcode

string

ZIP or postal code.

-
             region

string

2-letter state code.

-
       category\_code

string

The category code that 1099Policy creates for a group of similarly classified jobs.

Job category codes are pre-approved by 1099Policy so you can offer contractors insurance to new jobs on your platform in real time.

To generate pre-approved category codes for a group of similarly classified jobs visit the [1099Policy Dashboard](https://dashboard.1099policy.com/jobs).

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       custom\_metadata

object

-
       description

string

A description of the job that includes the role, responsibilities and necessary qualifications.

-
       entity

string

The entity ID for whom the work is being done.

-
       id

string

Unique identifier for the object.

-
       name

string

The name of the contractor job role.

-
       wage

integer

Minimum value is `100`, maximum value is `100000000`.

-
       wage\_type

One of `flatfee`, `hourly`, `unit` or `blended`.

Values are `flatfee`, `hourly`, `unit`, or `blended`.

-
       years\_experience

integer

The number of years of experience required to be eligible for the job.

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/jobs/jb_jsb9KEcTpc' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"address\": {\n    \"line1\": \"123 Main St\",\n    \"locality\": \"San Francisco\",\n    \"postalcode\": 94105,\n    \"region\": \"CA\"\n  },\n  \"description\": \"Install fiber optic cable from back to the front of the store.\",\n  \"entity\": \"en_Ah3tqYn\",\n  \"name\": \"Field technician\",\n  \"wage\": 1500,\n  \"wage_type\": \"hourly\",\n  \"years_experience\": 5\n}"'
```

```json
{
  "address": {
    "line1": "123 Main St",
    "locality": "San Francisco",
    "postalcode": 94105,
    "region": "CA"
  },
  "description": "Install fiber optic cable from back to the front of the store.",
  "entity": "en_Ah3tqYn",
  "name": "Field technician",
  "wage": 1500,
  "wage_type": "hourly",
  "years_experience": 5
}
```

## Delete a job

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-jobs-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-jobs-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-jobs-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/jobs/{job}

Delete a job. Deleting a job is only possible if it
has no insurance policies associated with it.

#### Path parameters

-
job

stringRequired

The ID of the desired job (e.g., `jb_jsb9KEcTpc`).

### Responses

-
200

application/json

Returns an object with a deleted parameter on success. Otherwise, this call returns an error.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the job was deleted.

-
       id

string

The job ID.

-
       object

string

Default value is `job`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/jobs/jb_jsb9KEcTpc'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "jb_jsb9KEcTpc",
  "object": "job"
}
```

# Category Code

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-category-code.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-category-code.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-category-code.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

The job category code object represents the pre-approved job category name and unique code that you receive when you onboard onto 1099Policy. Use this read-only endpoint to get your full list of the job category names and codes that your organization is pre-approved to use.

## List all category codes

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-category_codes.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-category_codes.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-category_codes.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/category\_codes

Returns a list of your approved job category codes. The job category
codes are returned sorted by approval date, with the most recently
approved job categories appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

### Responses

-
200

application/json

Returns an array of job category code objects. If no more job category codes are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       category\_code

string

Unique identifier for the object.

-
       name

string

The name of the job category code.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/category_codes'
```

```json
[\
  {\
    "category_code": "jc_MTqpkbkp6G",\
    "name": "Spokesperson / Influencer"\
  }\
]
```

# Certificate

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-certificate.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-certificate.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-certificate.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

A `Certificate` object represents a Certificate of Insurance (COI) document that a contractor has provided to demonstrate they have their own insurance coverage. Use the Certificate API to upload, retrieve, and manage these documents as contractors bring their own insurance to your platform.

When a contractor provides their own Certificate of Insurance, you can upload the PDF document using the Certificate API. The platform will automatically process the document and evaluate it against your organization's pre-defined insurance requirements. This evaluation is performed asynchronously, and you can retrieve the review results to determine whether the certificate satisfies your insurance requirements.

The Certificate API supports retrieving abbreviated review results that provide a summary of the evaluation, or expanded review results that include the full parsed certificate data and detailed audit results for each insurance requirement. Use the `expand` parameter to control the level of detail returned in the response.

## List all certificates.

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-files-certificates.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-files-certificates.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-files-certificates.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/files/certificates

Returns a list of certificates. The certificates are returned
sorted by creation date, with the most recently created certificates
appearing first. Supports pagination using `starting_after` and `ending_before`.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. The limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is a certificate ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `ca_123`, your subsequent call can include `starting_after=ca_123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is a certificate ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `ca_456`, your subsequent call can include `ending_before=ca_456` in order to fetch the previous page of the list.

-
expand

array\[string\]

Specifies which fields in the response should be expanded. Use `expand[]=review_results` for abbreviated review results, or `expand[]=review_results.full` for full review results including parsed certificate data and detailed audit results.

### Responses

-
200

application/json

Returns an array of certificate objects. If no more certificates are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       contractor

string

The ID of the contractor associated with this certificate.

-
       created

integer(int64)

Time at which the certificate was uploaded.

-
       filename

string

The original filename of the uploaded PDF.

-
       id

string

Unique identifier for the certificate.

-
       pdf\_url

string \| null

URL to access the certificate PDF. This will be `null` until the certificate has been processed and stored.

-
       review\_results

object \| null

Review results from the certificate evaluation. This will be `null` until processing completes. Use `expand[]=review_results` to include abbreviated results, or `expand[]=review_results.full` for complete details.

Hide review\_results attributesShow review\_results attributesobject \| null

-
             audit\_results

array\[object\]

Detailed results for each insurance requirement evaluation (expanded format only).

Hide audit\_results attributesShow audit\_results attributesobject

-
                     created

integer

Timestamp when this result was created.

-
                     id

string

-
                     manually\_approved

boolean

Whether this result was manually approved.

-
                     message

string

Human-readable message about the evaluation result.

-
                     result

string

Whether this requirement passed or failed.

Values are `pass` or `fail`.

-
                     rule\_name

string

Human-readable name of the rule.

-
                     rule\_path

string

The path to the rule being evaluated.

-
             created

integer

Timestamp when the audit was created.

-
             id

string

The ID of the certificate audit.

-
             parsed\_certificate\_json

object

Full parsed certificate data extracted from the PDF (expanded format only). Contains structured data including coverages, limits, dates, and parties.

-
             status

string

The final evaluation status.

Values are `pending`, `processing`, `approved`, `flagged`, `denied`, or `error`.

-
             summary

object

Summary of rule evaluation (abbreviated format only).

Hide summary attributesShow summary attributesobject

-
                     failed

integer

Number of requirements that failed.

-
                     passed

integer

Number of requirements that passed.

-
                     total\_rules

integer

Total number of insurance requirements evaluated.

-
             updated

integer

Timestamp when the audit was last updated.

-
       status

string

The current processing status of the certificate. Status transitions: `pending` → `processing` → (`approved` \| `flagged` \| `denied` \| `error`). Use polling or webhooks to monitor status changes.

Values are `pending`, `processing`, `approved`, `flagged`, `denied`, or `error`.

-
       updated

integer(int64)

Time at which the certificate was last updated.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/files/certificates'
```

```json
[\
  {\
    "contractor": "cn_xyz789",\
    "created": 1646818364,\
    "filename": "certificate_of_insurance.pdf",\
    "id": "ci_abc123",\
    "pdf_url": "https://storage.example.com/certificates/ci_abc123.pdf",\
    "review_results": {\
      "audit_results": [\
        {\
          "created": 42,\
          "id": "car_result123",\
          "manually_approved": true,\
          "message": "string",\
          "result": "pass",\
          "rule_name": "CGL Limits",\
          "rule_path": "coverages.commercial_general_liability.limits"\
        }\
      ],\
      "created": 42,\
      "id": "ca_audit123",\
      "parsed_certificate_json": {},\
      "status": "pending",\
      "summary": {\
        "failed": 0,\
        "passed": 5,\
        "total_rules": 5\
      },\
      "updated": 42\
    },\
    "status": "pending",\
    "updated": 1646818364\
  }\
]
```

## Create a new certificate.

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-files-certificates.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-files-certificates.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-files-certificates.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/files/certificates

Uploads a new Certificate of Insurance (COI) PDF file, validates it, and creates
a certificate record. The certificate processing is performed asynchronously in the
background. The initial response indicates that the certificate has been accepted
for processing with a status of "pending".

**Asynchronous Processing:**

After uploading a certificate, the platform automatically processes the document
and evaluates it against your organization's pre-defined insurance requirements. This
evaluation happens asynchronously, so the initial response will have:

- `status`: "pending" (indicating processing has not yet started)
- `review_results`: `null` (will be populated once processing completes)

**Monitoring Certificate Status:**

You can monitor the certificate status in two ways:

1. **Polling**: Periodically retrieve the certificate using the GET endpoint to check
the `status` field. The status will transition from "pending" → "processing" →
("approved" \| "flagged" \| "denied" \| "error") as processing completes.

2. **Webhooks**: Register a webhook endpoint to receive real-time notifications when
processing completes. The following events are sent:

- `certificate.approved` \- Certificate passed all requirements
   - `certificate.flagged` \- Certificate failed some requirements
   - `certificate.denied` \- Certificate was denied

**Retrieving Review Results:**

Once processing is complete, use the `expand[]=review_results` parameter when
retrieving the certificate to get abbreviated review results, or
`expand[]=review_results.full` for complete details including parsed certificate
data and detailed audit results.

multipart/form-data

#### Body

-
certificate

string(binary)Required

The certificate PDF file to be uploaded (max 15MB).

-
contractor

stringRequired

The ID of the contractor associated with the certificate.

### Responses

-
201

application/json

Returns the created certificate object. The certificate has been accepted for processing and will have a status of "pending". Processing happens asynchronously, and you can monitor the status via polling or webhooks.

Hide response attributesShow response attributesobject

-
       contractor

string

The ID of the contractor associated with this certificate.

-
       created

integer(int64)

Time at which the certificate was uploaded.

-
       filename

string

The original filename of the uploaded PDF.

-
       id

string

Unique identifier for the certificate.

-
       pdf\_url

string \| null

URL to access the certificate PDF. This will be `null` until the certificate has been processed and stored.

-
       review\_results

object \| null

Hide review\_results attributesShow review\_results attributesobject \| null

-
             audit\_results

array\[object\]

Detailed results for each insurance requirement evaluation (expanded format only).

Hide audit\_results attributesShow audit\_results attributesobject

-
                     created

integer

Timestamp when this result was created.

-
                     id

string

-
                     manually\_approved

boolean

Whether this result was manually approved.

-
                     message

string

Human-readable message about the evaluation result.

-
                     result

string

Whether this requirement passed or failed.

Values are `pass` or `fail`.

-
                     rule\_name

string

Human-readable name of the rule.

-
                     rule\_path

string

The path to the rule being evaluated.

-
             created

integer

Timestamp when the audit was created.

-
             id

string

The ID of the certificate audit.

-
             parsed\_certificate\_json

object

Full parsed certificate data extracted from the PDF (expanded format only). Contains structured data including coverages, limits, dates, and parties.

-
             status

string

The final evaluation status.

Values are `pending`, `processing`, `approved`, `flagged`, `denied`, or `error`.

-
             summary

object

Summary of rule evaluation (abbreviated format only).

Hide summary attributesShow summary attributesobject

-
                     failed

integer

Number of requirements that failed.

-
                     passed

integer

Number of requirements that passed.

-
                     total\_rules

integer

Total number of insurance requirements evaluated.

-
             updated

integer

Timestamp when the audit was last updated.

-
       status

string

Values are `pending`, `processing`, `approved`, `flagged`, `denied`, or `error`.

-
       updated

integer(int64)

Time at which the certificate was last updated.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/files/certificates' \
 --header "Content-Type: multipart/form-data" \
 --form "certificate=@file" \
 --form "contractor=string"
```

```json
{
  "contractor": "cn_xyz789",
  "created": 1646818364,
  "filename": "certificate_of_insurance.pdf",
  "id": "ci_abc123",
  "pdf_url": "https://storage.example.com/certificates/ci_abc123.pdf",
  "review_results": {
    "audit_results": [\
      {\
        "created": 42,\
        "id": "car_result123",\
        "manually_approved": true,\
        "message": "string",\
        "result": "pass",\
        "rule_name": "CGL Limits",\
        "rule_path": "coverages.commercial_general_liability.limits"\
      }\
    ],
    "created": 42,
    "id": "ca_audit123",
    "parsed_certificate_json": {},
    "status": "pending",
    "summary": {
      "failed": 0,
      "passed": 5,
      "total_rules": 5
    },
    "updated": 42
  },
  "status": "pending",
  "updated": 1646818364
}
```

## Retrieve a certificate.

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-files-certificates-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-files-certificates-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-files-certificates-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/files/certificates/{certificate}

Retrieves the details of an existing certificate by its ID. Use this endpoint
to poll for certificate status updates during asynchronous processing.

**Certificate Status Lifecycle:**

The certificate status transitions through the following states:

- `pending` \- Certificate has been uploaded but processing has not started
- `processing` \- Certificate is currently being processed
- `approved` \- Certificate passed all insurance requirements
- `flagged` \- Certificate failed some requirements (may require manual review)
- `denied` \- Certificate was denied
- `error` \- An error occurred during processing

**Retrieving Review Results:**

Once processing is complete, use the `expand` parameter to retrieve review results:

- `expand[]=review_results` \- Returns abbreviated results with summary counts
- `expand[]=review_results.full` \- Returns full parsed certificate data and detailed
audit results for each insurance requirement

#### Path parameters

-
certificate

stringRequired

The ID of the desired certificate.

#### Query parameters

-
expand

array\[string\]

### Responses

-
200

application/json

Returns a certificate object if a valid certificate ID was provided. The `status` field indicates the current processing state, and `review_results` will be `null` until processing completes.

Hide response attributesShow response attributesobject

-
       contractor

string

The ID of the contractor associated with this certificate.

-
       created

integer(int64)

Time at which the certificate was uploaded.

-
       filename

string

The original filename of the uploaded PDF.

-
       id

string

Unique identifier for the certificate.

-
       pdf\_url

string \| null

URL to access the certificate PDF. This will be `null` until the certificate has been processed and stored.

-
       review\_results

object \| null

Hide review\_results attributesShow review\_results attributesobject \| null

-
             audit\_results

array\[object\]

Detailed results for each insurance requirement evaluation (expanded format only).

Hide audit\_results attributesShow audit\_results attributesobject

-
                     created

integer

Timestamp when this result was created.

-
                     id

string

-
                     manually\_approved

boolean

Whether this result was manually approved.

-
                     message

string

Human-readable message about the evaluation result.

-
                     result

string

Whether this requirement passed or failed.

Values are `pass` or `fail`.

-
                     rule\_name

string

Human-readable name of the rule.

-
                     rule\_path

string

The path to the rule being evaluated.

-
             created

integer

Timestamp when the audit was created.

-
             id

string

The ID of the certificate audit.

-
             parsed\_certificate\_json

object

Full parsed certificate data extracted from the PDF (expanded format only). Contains structured data including coverages, limits, dates, and parties.

-
             status

string

The final evaluation status.

Values are `pending`, `processing`, `approved`, `flagged`, `denied`, or `error`.

-
             summary

object

Summary of rule evaluation (abbreviated format only).

Hide summary attributesShow summary attributesobject

-
                     failed

integer

Number of requirements that failed.

-
                     passed

integer

Number of requirements that passed.

-
                     total\_rules

integer

Total number of insurance requirements evaluated.

-
             updated

integer

Timestamp when the audit was last updated.

-
       status

string

Values are `pending`, `processing`, `approved`, `flagged`, `denied`, or `error`.

-
       updated

integer(int64)

Time at which the certificate was last updated.

-
404

Certificate not found

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/files/certificates/ci_YnsHeB9PTo'
```

## Delete a certificate.

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-files-certificates-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-files-certificates-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-files-certificates-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/files/certificates/{certificate}

Deletes an existing certificate by its ID.

#### Path parameters

-
certificate

stringRequired

The ID of the certificate to delete.

### Responses

-
200

application/json

Returns an object with a deleted parameter on success. Otherwise, this call returns an error.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the certificate was deleted.

-
       id

string

The certificate ID.

-
       object

string

Default value is `certificate`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/files/certificates/ci_YnsHeB9PTo'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "ci_YnsHeB9PTo",
  "object": "certificate"
}
```

# Quote

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-quote.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-quote.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-quote.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

The `Quote` object reflects whether a contractor is eligible for insurance and the premium owed for every $100 earned.

## List all quotes

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-quotes.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-quotes.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-quotes.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/quotes

Returns a list of quotes you've previously created.
The quotes are returned in sorted order, with the most
recent quotes appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an quote ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `qt_fOo123`, your subsequent call can include `starting_after=qt_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an quote ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `qt_bAr123`, your subsequent call can include `ending_before=qt_bAr123` in order to fetch the previous page of the list.

### Responses

-
200

application/json

Returns an array of quote objects. If no more quotes are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

The date when the insurance coverage is set to take effect. Measured in seconds since the Unix epoch. This date must be set in the future. The default effective\_date is the next day.

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

The date when the insurance coverage is set to expire. Measured in seconds since the Unix epoch. This date must be after the effective date. The default end\_date is 30 days after the effective date.

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/quotes'
```

```json
[\
  {\
    "contractor": "cn_Ehb3bYa",\
    "coverage_type": [\
      "general",\
      "workers-comp"\
    ],\
    "created": 1646818364,\
    "effective_date": 1646818364,\
    "eligible": true,\
    "end_date": 1678334737,\
    "gl_net_rate": 20,\
    "id": "qt_5DciVga8Kt",\
    "job": "jb_jsb9KEcTpc",\
    "net_rate": 65,\
    "quote_json": {\
      "gl": {\
        "net_rate": 20,\
        "risk_purchasing_group_fee": null,\
        "stamping_fee": null\
      },\
      "wc": {\
        "net_rate": 45\
      }\
    },\
    "wc_net_rate": 45\
  }\
]
```

## Create a quote

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-quotes.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-quotes.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-quotes.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/quotes

To provide insurance coverage to contractors on your platform, you
first create a `Quote` object. If you use your test API keys,
everything will occur as if in production but the policy that's
generated will be a test policy.

application/json

#### Body

-
bind

boolean

Controls how the request behaves when the contractor already has a matching policy for the requested coverage. When `true` (the default), the request is rejected with a `contractor_has_matching_policy` error. When `false`, the endpoint behaves like a "get or create" and instead returns the existing quote tied to the matching policy (with a `200` status), so you can surface its rates and fees—for example, to let a returning contractor opt in—without creating a duplicate. Defaults to `true`.

Default value is `true`.

-
contractor

stringRequired

The ID of the contractor seeking a quote for insurance coverage.

-
coverage\_type

array\[string\]Required

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional`, `workers-comp`, `media`, and `cyber`. Note that `media` and `cyber` coverage requires `general` coverage, except for Hawaii (HI) residents where general liability is not available.

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
effective\_date

integer(int64)

-
end\_date

integer(int64)

The date when the insurance coverage is set to expire. Measured in seconds since the Unix epoch. This date must be after the effective date. If the end\_date is on the same day as the effective\_date, it will automatically be adjusted to the start of the next day. The default end\_date is 30 days after the effective date.

-
job

stringRequired

The ID of the job assignment that the contractor will be working on.

### Responses

-
200

application/json

Returned when `bind` is `false` and the contractor already has a matching policy. The body is the existing quote tied to that policy rather than a newly created one.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
201

application/json

Returns the quote object if the post succeeded.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/quotes' \
 --header "Content-Type: application/json" \
 --data '{"bind":true,"contractor":"string","coverage_type":["general"],"effective_date":42,"end_date":42,"job":"string"}'
```

```json
{
  "bind": true,
  "contractor": "string",
  "coverage_type": [\
    "general"\
  ],
  "effective_date": 42,
  "end_date": 42,
  "job": "string"
}
```

```json
{
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [\
    "general",\
    "workers-comp"\
  ],
  "created": 1646818364,
  "effective_date": 1646818364,
  "eligible": true,
  "end_date": 1678334737,
  "gl_net_rate": 20,
  "id": "qt_5DciVga8Kt",
  "job": "jb_jsb9KEcTpc",
  "net_rate": 65,
  "quote_json": {
    "gl": {
      "net_rate": 20,
      "risk_purchasing_group_fee": null,
      "stamping_fee": null
    },
    "wc": {
      "net_rate": 45
    }
  },
  "wc_net_rate": 45
}
```

## Retrieve a quote

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-quotes-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-quotes-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-quotes-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/quotes/{quote}

Retrieves the details of a previously created quote. Supply the
unique quote ID that was returned from your previous request,
and 1099Policy will return the corresponding quote information.

#### Path parameters

-
quote

stringRequired

The ID of the desired quote (e.g., `qt_5DciVga8Kt`).

### Responses

-
200

application/json

Returns a quote object if a valid identifier was provided.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/quotes/qt_5DciVga8Kt'
```

## Update a quote

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-quotes-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-quotes-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-quotes-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/quotes/{quote}

Quotes that aren't bound to an issued policy are fully editable.
Once a policy is issued for a quote, the quote becomes uneditable.

#### Path parameters

-
quote

stringRequired

The ID of the desired quote (e.g., `qt_5DciVga8Kt`).

application/json

#### Body

-
contractor

string

The ID of the contractor seeking a quote for insurance coverage.

-
coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
effective\_date

integer(int64)

-
end\_date

integer(int64)

-
job

string

The ID of the job assignment that the contractor will be working on.

### Responses

-
200

application/json

Returns the quote object if the update succeeded. Returns an error if update parameters are invalid.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/quotes/qt_5DciVga8Kt' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"contractor\": \"cn_Ehb3bYa\",\n  \"coverage_type\": [\n    \"general\",\n    \"workers-comp\"\n  ],\n  \"effective_date\": 1646818364,\n  \"end_date\": 1678334737,\n  \"job\": \"jb_jsb9KEcTpc\"\n}"'
```

```json
{
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [\
    "general",\
    "workers-comp"\
  ],
  "effective_date": 1646818364,
  "end_date": 1678334737,
  "job": "jb_jsb9KEcTpc"
}
```

# Session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-session.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-session.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-session.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

A `Session` represents the independent contractor's session as they apply for insurance using the application wizard at apply.1099policy.com. You only need to create a `Session` for contractors that don't already have insurance coverage.

Once the contractor successfully completes their insurance application, the `Session` will contain a reference to the Contractor, the Job, and the active insurance Policy.

You can create a `Session` on your server and pass its ID to the client to begin the insurance application.

## List all sessions

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-apply-sessions.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-apply-sessions.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-apply-sessions.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/apply/sessions

Returns a list of insurance application Sessions.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an application session ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `ias_fOo123`, your subsequent call can include `starting_after=ias_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an application session ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `ias_bAr123`, your subsequent call can include `ending_before=ias_bAr123` in order to fetch the previous page of the list.

-
contractor

string

Filter sessions by contractor ID (e.g., `cn_Ehb3bYa`).

-
is\_general\_opt\_in

boolean

Filter sessions by general opt-in flag. Set to `true` to return only general opt-in sessions, `false` to return only standard sessions, or omit to return all sessions.

### Responses

-
200

application/json

Returns an array of session objects. If no more sessions are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expired

boolean

Indicates whether the insurance application session has expired. If true, the contractor will be redirected to the cancel\_url.

-
       id

string

Unique identifier for the object.

-
       quote

string

The ID of the quote associated with the insurance application session.

-
       step

string

The step in the insurance application process that the contractor is currently on. The contractor will be redirected to this step when they return to the insurance application. One of `verify_info`, `application_questions`, `esignature_document`, `add_card_details`, `final_review`, or `application_complete`.

Values are `verify_info`, `application_questions`, `esignature_document`, `add_card_details`, `final_review`, or `application_complete`.

-
       success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

-
       url

string

The URL to the insurance application Session. Redirect customers to this URL to take them to their insurance application. The domain will use apply.1099policy.com.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/apply/sessions'
```

```json
[\
  {\
    "cancel_url": "https://1099jobcloud.com/1099policy/cancel",\
    "created": 1646818364,\
    "expired": false,\
    "id": "ias_01FVCHXE7PNQHA1T3S2AXL2QZE",\
    "quote": "qt_5DciVga8Kt",\
    "step": "final_review",\
    "success_url": "https://1099jobcloud.com/1099policy/success",\
    "url": "http://apply.1099policy.com/..."\
  }\
]
```

## Create a session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-apply-sessions.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-apply-sessions.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-apply-sessions.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/apply/sessions

Creates a session object.

application/json

#### Body

-
cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
contractor

string

The ID of the contractor (required for general opt-in sessions). For standard sessions, this is derived from the quote.

-
general\_opt\_in\_work\_state

string

The work state for general opt-in sessions (e.g., "CA", "NY"). Required when `is_general_opt_in` is `true`.

-
is\_general\_opt\_in

boolean

Set to `true` to create a general opt-in session (not tied to a specific job/quote). When `true`, `contractor` and `work_state` are required, and `quote` is not required.

-
quote

stringRequired

The ID of an existing quote to be associated with the insurance application session.

-
success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

### Responses

-
201

application/json

Returns the session object for an insurance application if quote, job, and contractor are valid.

Hide response attributesShow response attributesobject

-
       cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expired

boolean

Indicates whether the insurance application session has expired. If true, the contractor will be redirected to the cancel\_url.

-
       id

string

Unique identifier for the object.

-
       quote

string

The ID of the quote associated with the insurance application session.

-
       step

string

Values are `verify_info`, `application_questions`, `esignature_document`, `add_card_details`, `final_review`, or `application_complete`.

-
       success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

-
       url

string

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/apply/sessions' \
 --header "Content-Type: application/json" \
 --data '{"cancel_url":"string","contractor":"string","general_opt_in_work_state":"string","is_general_opt_in":true,"quote":"string","success_url":"string"}'
```

```json
{
  "cancel_url": "string",
  "contractor": "string",
  "general_opt_in_work_state": "string",
  "is_general_opt_in": true,
  "quote": "string",
  "success_url": "string"
}
```

```json
{
  "cancel_url": "https://1099jobcloud.com/1099policy/cancel",
  "created": 1646818364,
  "expired": false,
  "id": "ias_01FVCHXE7PNQHA1T3S2AXL2QZE",
  "quote": "qt_5DciVga8Kt",
  "step": "final_review",
  "success_url": "https://1099jobcloud.com/1099policy/success",
  "url": "http://apply.1099policy.com/..."
}
```

## Retrieve a session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-apply-sessions-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-apply-sessions-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-apply-sessions-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/apply/sessions/{session}

Retrieves the insurance application session with the given ID.

#### Path parameters

-
session

stringRequired

The ID of the desired session (e.g., `ias_01FVCHXE7PNQHA1T3S2AXL2QZE`).

### Responses

-
200

application/json

Returns a session object if a valid session ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expired

boolean

Indicates whether the insurance application session has expired. If true, the contractor will be redirected to the cancel\_url.

-
       id

string

Unique identifier for the object.

-
       quote

string

The ID of the quote associated with the insurance application session.

-
       step

string

Values are `verify_info`, `application_questions`, `esignature_document`, `add_card_details`, `final_review`, or `application_complete`.

-
       success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

-
       url

string

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/apply/sessions/ias_01FVCHXE7PNQHA1T3S2AXL2QZE'
```

## Update a session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-apply-sessions-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-apply-sessions-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-apply-sessions-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/apply/sessions/{session}

Updates the success\_url and cancel\_url of a specified session. If
either parameters is not provided it will be left unchanged.

#### Path parameters

-
session

stringRequired

The ID of the desired session (e.g., `ias_01FVCHXE7PNQHA1T3S2AXL2QZE`).

application/json

#### Body

-
cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

### Responses

-
200

application/json

Returns the updated session object.

Hide response attributesShow response attributesobject

-
       cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expired

boolean

Indicates whether the insurance application session has expired. If true, the contractor will be redirected to the cancel\_url.

-
       id

string

Unique identifier for the object.

-
       quote

string

The ID of the quote associated with the insurance application session.

-
       step

string

Values are `verify_info`, `application_questions`, `esignature_document`, `add_card_details`, `final_review`, or `application_complete`.

-
       success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

-
       url

string

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/apply/sessions/ias_01FVCHXE7PNQHA1T3S2AXL2QZE' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"cancel_url\": \"https://example.com/cancel\",\n  \"success_url\": \"https://example.com/success\"\n}"'
```

```json
{
  "cancel_url": "https://example.com/cancel",
  "success_url": "https://example.com/success"
}
```

## Expire a session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-apply-sessions-parameter-expire.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-apply-sessions-parameter-expire.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-apply-sessions-parameter-expire.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/apply/sessions/{session}/expire

Expires the insurance application session with the given ID.
An insurance application session can't be expired if the
application status is complete.

After it expires, a contractor can’t complete an insurance application
session and contractors loading the insurance application session see
a message saying the insurance application session is expired.

#### Path parameters

-
session

stringRequired

The ID of the desired session (e.g., `ias_01FVCHXE7PNQHA1T3S2AXL2QZE`).

### Responses

-
200

application/json

Returns a session object if the expiration succeeded. Returns an error if the session is already expired or isn't in an expireable state.

Hide response attributesShow response attributesobject

-
       cancel\_url

string

The URL the contractor will be directed to if they are ineligible or decide to abandon the insurance application and return to your website.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expired

boolean

Indicates whether the insurance application session has expired. If true, the contractor will be redirected to the cancel\_url.

-
       id

string

Unique identifier for the object.

-
       quote

string

The ID of the quote associated with the insurance application session.

-
       step

string

Values are `verify_info`, `application_questions`, `esignature_document`, `add_card_details`, `final_review`, or `application_complete`.

-
       success\_url

string

The URL to which 1099Policy should direct independent contractors when a contractor successfully procures insurance coverage.

-
       url

string

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/apply/sessions/ias_01FVCHXE7PNQHA1T3S2AXL2QZE/expire'
```

# Policy

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-policy.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-policy.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-policy.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

To procure contractor insurance, you create a `Policy` object. You can retrieve individual policies as well as list all policies. Policies are identified by a unique, random ID.

Important note: Creating a policy via the POST endpoint is an exception for most integrations. A policy object is created automatically when a contractor completes their insurance application (see Session API). Contact us if you plan to use the policy POST endpoint.

## List a contractor's policies

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-contractors-parameter-policies.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-contractors-parameter-policies.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-contractors-parameter-policies.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/contractors/{contractor}/policies

Returns a list of policies for a given contractor.

#### Path parameters

-
contractor

stringRequired

The ID of the desired contractor (e.g., `cn_Ehb3bYa`).

#### Query parameters

-
quote

string

A filter to return policies by a specific quote ID.

### Responses

-
200

application/json

Returns a list of the contractors policies. The policies are returned sorted by creation date, with the most recent policy appearing first.

Hide response attributesShow response attributesobject

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

A timestamp used to determine the insurance policy start date. Measured in seconds since the Unix epoch. The default effective\_date is the next day.

-
       expiration\_date

integer(int64)

A timestemp used to determine the insurance policy end date. Measured in seconds since the Unix epoch. The default expiration\_date is 30 days after the effective\_date.

-
       id

string

Unique identifier for the object.

-
       pdf\_url

string

A URL for the hosted insurnace policy PDF, which contractors can view.

-
       quote

string

The ID of the quote used to create the policy.

-
       status

One of `active`, `cancelled`, or `expired`.

Values are `active`, `cancelled`, or `expired`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa/policies'
```

```json
[\
  {\
    "certificates": {\
      "gl_coi_pdf_url": "/bound-policies/prod/gl_coi_pl_wv23Q3lMc1_1691450123.pdf",\
      "wc_coi_pdf_url": "/bound-policies/prod/wc_coi_pl_wv23Q3lMc1_1691420903.pdf"\
    },\
    "created": 1646818364,\
    "effective_date": 1646818364,\
    "expiration_date": 1678334737,\
    "id": "pl_WzFRszJhoY",\
    "pdf_url": "http://ten99policy.s3.amazonaws.com/1099policy-coi-sample.pdf",\
    "quote": "qt_5DciVga8Kt",\
    "status": "active"\
  }\
]
```

## List all policies

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-policies.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-policies.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-policies.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/policies

Returns a list of policies you've previously created.
The policies are returned in sorted order, with the most
recent policies appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an policy ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `pl_fOo123`, your subsequent call can include `starting_after=pl_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an policy ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `pl_bAr123`, your subsequent call can include `ending_before=pl_bAr123` in order to fetch the previous page of the list.

-
quote

string

A filter to return policies by a specific quote ID.

### Responses

-
200

application/json

An array of policies, up to limit. Each entry in the array is a separate policy object. If no more charges are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

A timestamp used to determine the insurance policy start date. Measured in seconds since the Unix epoch. The default effective\_date is the next day.

-
       expiration\_date

integer(int64)

-
       id

string

Unique identifier for the object.

-
       pdf\_url

string

A URL for the hosted insurnace policy PDF, which contractors can view.

-
       quote

string

The ID of the quote used to create the policy.

-
       status

One of `active`, `cancelled`, or `expired`.

Values are `active`, `cancelled`, or `expired`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/policies'
```

## Create a policy

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-policies.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-policies.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-policies.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/policies

Creates a new policy object.

application/json

#### Body

-
effective\_date

string

A timestamp used to determine the insurance policy start date.

-
expiration\_date

string

A timestemp used to determine the insurance policy end date.

-
quote

stringRequired

The ID of the quote used to create the policy.

### Responses

-
201

application/json

Returns the policy object if the post succeeded.

Hide response attributesShow response attributesobject

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

A timestamp used to determine the insurance policy start date. Measured in seconds since the Unix epoch. The default effective\_date is the next day.

-
       expiration\_date

integer(int64)

-
       id

string

Unique identifier for the object.

-
       pdf\_url

string

A URL for the hosted insurnace policy PDF, which contractors can view.

-
       quote

string

The ID of the quote used to create the policy.

-
       status

One of `active`, `cancelled`, or `expired`.

Values are `active`, `cancelled`, or `expired`.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/policies' \
 --header "Content-Type: application/json" \
 --data '{"effective_date":"string","expiration_date":"string","quote":"string"}'
```

```json
{
  "effective_date": "string",
  "expiration_date": "string",
  "quote": "string"
}
```

```json
{
  "certificates": {
    "gl_coi_pdf_url": "/bound-policies/prod/gl_coi_pl_wv23Q3lMc1_1691450123.pdf",
    "wc_coi_pdf_url": "/bound-policies/prod/wc_coi_pl_wv23Q3lMc1_1691420903.pdf"
  },
  "created": 1646818364,
  "effective_date": 1646818364,
  "expiration_date": 1678334737,
  "id": "pl_WzFRszJhoY",
  "pdf_url": "http://ten99policy.s3.amazonaws.com/1099policy-coi-sample.pdf",
  "quote": "qt_5DciVga8Kt",
  "status": "active"
}
```

## Retrieve a policy

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-policies-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-policies-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-policies-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/policies/{policy}

Retrieves the details of an existing policy.
Supply the unique policy ID from either a policy
creation request or the policy list, and 1099Policy
will return the corresponding policy information.

#### Path parameters

-
policy

stringRequired

The ID of the desired policy (e.g., `pl_WzFRszJhoY`).

### Responses

-
200

application/json

Returns a policy object if a valid ID was provided.

Hide response attributesShow response attributesobject

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

A timestamp used to determine the insurance policy start date. Measured in seconds since the Unix epoch. The default effective\_date is the next day.

-
       expiration\_date

integer(int64)

-
       id

string

Unique identifier for the object.

-
       pdf\_url

string

A URL for the hosted insurnace policy PDF, which contractors can view.

-
       quote

string

The ID of the quote used to create the policy.

-
       status

One of `active`, `cancelled`, or `expired`.

Values are `active`, `cancelled`, or `expired`.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/policies/pl_WzFRszJhoY'
```

## Update a policy

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-policies-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-policies-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-policies-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/policies/{policy}

Policies can be switched on and off using the is\_active flag.
Use this functionality if you don't have preset policy
start and end times.

#### Path parameters

-
policy

stringRequired

The ID of the desired policy (e.g., `pl_WzFRszJhoY`).

application/json

#### Body

-
is\_active

boolean

A flag to switch the policy on or off.

### Responses

-
200

application/json

Returns the policy object if the update succeeded. Returns an error if update parameters are invalid.

Hide response attributesShow response attributesobject

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

A timestamp used to determine the insurance policy start date. Measured in seconds since the Unix epoch. The default effective\_date is the next day.

-
       expiration\_date

integer(int64)

-
       id

string

Unique identifier for the object.

-
       pdf\_url

string

A URL for the hosted insurnace policy PDF, which contractors can view.

-
       quote

string

The ID of the quote used to create the policy.

-
       status

One of `active`, `cancelled`, or `expired`.

Values are `active`, `cancelled`, or `expired`.

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/policies/pl_WzFRszJhoY' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"is_active\": false\n}"'
```

```json
{
  "is_active": false
}
```

## Delete a policy

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-policies-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-policies-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-policies-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/policies/{policy}

Permanently deletes a policy. Deleting a policy immediately cancels
the insurance coverage for the contractor. Any assignments with an
effective date after the policy deletion date will also be cancelled.

#### Path parameters

-
policy

stringRequired

The ID of the desired policy (e.g., `pl_WzFRszJhoY`).

### Responses

-
200

application/json

Returns an object with a deleted parameter on success. If the policy ID does not exist, this call returns an error.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the policy was deleted.

-
       id

string

The policy ID.

-
       object

string

Default value is `policy`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/policies/pl_WzFRszJhoY'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "pl_WzFRszJhoY",
  "object": "policy"
}
```

# Assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-assignment.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-assignment.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-assignment.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

To secure coverage for independent contractors that have previously had a policy issued through the 1099Policy platform, you create an `Assignment` object.

Independent contractors with an existing insurance policy procured using the 1099Policy platform have the option to receive per-job-assignment insurance coverage without having to complete additional insurance applications, provided certain eligibility criteria are met.

You can find the result of the eligibility check in the API response. Eligiblity is determined by parameters provided, including `job` and `contractor`. In particular, we look to see if the job `category_code` is the same as previously approved and time since the independent contractor completed their insurance application.

1099Policy automatically charges the independent contractor's credit card on file, if a credit card exists. 1099Policy first notifies the contractor via email and then charges the contractor the premium amount due 24hrs later.

## List all assignments

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-assignments.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-assignments.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-assignments.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/assignments

Returns a list of your assignments. The assigments returned
are sorted by creation date, with the most recently created
assignments appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an assignment ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `asn_fOo123`, your subsequent call can include `starting_after=asn_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an assignment ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `asn_bAr123`, your subsequent call can include `ending_before=asn_bAr123` in order to fetch the previous page of the list.

### Responses

-
200

application/json

Returns an array of assignment objects. If no more assignments are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       bind

Indicates whether to start the process of binding coverage, which includes notifying and subsequently charging the independent contractor for the premium amount due. Defaults to `true`. When false, 1099Policy does not notify or schedule a charge. Note that the independent contractor will not be issued coverage if bind is set to `false`.

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional` and `workers-comp`. If provided, coverage type is factored into the eligibility determination (i.e., does contractor have an active `workers-comp` policy, etc). Defaults to the coverage types of the most recent active policy if `coverage_type` is not provided.

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

ID of the policy that you want attached to the assignment. Defaults to the most recent active policy with a matching job category code, work state and contractor home state.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/assignments'
```

```json
[\
  {\
    "bind": true,\
    "certificates": {\
      "gl_coi_pdf_url": "/bound-policies/prod/gl_coi_pl_wv23Q3lMc1_1691450123.pdf",\
      "wc_coi_pdf_url": "/bound-policies/prod/wc_coi_pl_wv23Q3lMc1_1691420903.pdf"\
    },\
    "contractor": "cn_Ehb3bYa",\
    "coverage_type": [\
      "general",\
      "workers-comp"\
    ],\
    "created": 1646818364,\
    "effective_date": 1646818364,\
    "eligible": {\
      "message": "Contractor is pre-approved for insurance coverage.",\
      "result": true\
    },\
    "end_date": 1678334737,\
    "id": "an_5HviNgc2Br",\
    "job": "jb_jsb9KEcTpc",\
    "net_rate": 65,\
    "policy": "pl_WzFRszJhoY"\
  }\
]
```

## Create an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-assignments.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/assignments

This endpoint creates an assignment object that you can use
to attach insurance coverage to any job assignment a contractor
takes after the contractor has gone active on the 1099Policy
platform (i.e., after completing thier insurance application
successfully).

application/json

#### Body

-
bind

boolean

Indicates whether to start the process of binding coverage, which includes notifying and subsequently charging the independent contractor for the premium amount due. Defaults to `true`. When false, 1099Policy does not notify or schedule a charge. Note that the independent contractor is not issued coverage if bind is set to `false`.

-
contractor

stringRequired

ID of the contractor

-
coverage\_type

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `professional`, `workers-comp`, `media`, and `cyber`. If provided, coverage type is factored into the eligibility determination (i.e., does contractor have an active `workers-comp` policy, etc). Defaults to the coverage types of the most recent active policy if `coverage_type` is not provided.

-
effective\_date

integer

The job assignment start date, measured in seconds since the Unix epoch. This date must be set in the future. The default effective\_date is the next day.

-
end\_date

integer

The projected job assignment end date, measured in seconds since the Unix epoch. This date must be after the effective date. If the end\_date is on the same day as the effective\_date, it will automatically be adjusted to the start of the next day. The default end\_date is 30 days after the effective date.

-
job

stringRequired

ID of the job that the contractor was paid to do.

-
policy

string

### Responses

-
201

application/json

Returns the assignment object if the post succeeded.

Hide response attributesShow response attributesobject

-
       bind

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/assignments' \
 --header "Content-Type: application/json" \
 --data '{"bind":true,"contractor":"string","coverage_type":["string"],"effective_date":42,"end_date":42,"job":"string","policy":"string"}'
```

```json
{
  "bind": true,
  "contractor": "string",
  "coverage_type": [\
    "string"\
  ],
  "effective_date": 42,
  "end_date": 42,
  "job": "string",
  "policy": "string"
}
```

```json
{
  "bind": true,
  "certificates": {
    "gl_coi_pdf_url": "/bound-policies/prod/gl_coi_pl_wv23Q3lMc1_1691450123.pdf",
    "wc_coi_pdf_url": "/bound-policies/prod/wc_coi_pl_wv23Q3lMc1_1691420903.pdf"
  },
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [\
    "general",\
    "workers-comp"\
  ],
  "created": 1646818364,
  "effective_date": 1646818364,
  "eligible": {
    "message": "Contractor is pre-approved for insurance coverage.",
    "result": true
  },
  "end_date": 1678334737,
  "id": "an_5HviNgc2Br",
  "job": "jb_jsb9KEcTpc",
  "net_rate": 65,
  "policy": "pl_WzFRszJhoY"
}
```

## Cancel an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-cancel.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-cancel.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-assignments-cancel.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/assignments/cancel

Cancels an existing assignment based on the provided job ID. If you
attempt to cancel an assignment after it has started, the request will
fail. If you need the option to cancel an assignment after its start date,
please contact us.

application/json

#### Body

-
job\_id

stringRequired

The ID of the job associated with the assignment

-
reason

string

Optional reason for cancellation

### Responses

-
200

application/json

Assignment successfully cancelled

Hide response attributesShow response attributesobject

-
       bind

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

-
400

Invalid request or assignment cannot be cancelled

-
404

No assignment found for the associated job id.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/assignments/cancel' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"job_id\": \"jb_123abc\",\n  \"reason\": \"client_request\"\n}"'
```

```json
{
  "job_id": "jb_123abc",
  "reason": "client_request"
}
```

## Change bound coverage dates

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-change_dates.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-change_dates.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-assignments-change_dates.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/assignments/change\_dates

Changes the start (`effective_date`) and/or end date of **bound**
coverage for a job. This is the symmetric counterpart to
`POST /api/v1/assignments/extend`: extend moves the end date out, this
endpoint can also move the start date forward (shortening coverage from
the front) -- e.g. correcting a start date that slipped into the past --
and it works for both quote- and assignment-backed coverage.

Restrictions mirror what we already enforce: `effective_date` must be in
the future, strictly after the current start, and before the end date;
`end_date` follows the extend rules (on or after the current end, within
a year of the effective date, and coverage not already ended). At least
one of `effective_date` / `end_date` is required. Changing dates on a
bound quote via `PUT /quotes` is not supported; use this endpoint.

**Certificate of Insurance (COI) regeneration**: COI PDFs are regenerated
asynchronously to reflect the new dates. The response returns immediately
with `certificate_refresh_pending: true`; the `certificate` URLs in
the response are stale, and fresh URLs are published in the
`assignment.dates_changed` webhook (and available via the API) once
regeneration completes.

application/json

#### Body

-
effective\_date

integer(int64)

New coverage start date (seconds since the Unix epoch). Must be in the future, after the current start, and before the end date. Moving it forward shortens coverage from the start.

-
end\_date

integer(int64)

New coverage end date (seconds since the Unix epoch). Must be on or after the current end date and within one year of the effective date.

-
job\_id

stringRequired

The ID of the job associated with the coverage.

-
send\_email

boolean

When true, email the contractor a coverage-dates-changed notice. COI regeneration and webhook publication happen regardless of this flag.

Default value is `true`.

### Responses

-
200

application/json

Coverage dates updated, or unchanged (no-op) when the submitted dates match the current values. COIs regenerate asynchronously, so the response includes `certificate_refresh_pending: true`.

To secure coverage for independent contractors that have previously had a policy issued through the 1099Policy platform, you create an `Assignment` object.

You can find the result of the eligibility check in the API response. Eligiblity is determined by parameters provided, including `job` and `contractor`. In particular, we look to see if the job `category_code` is the same as previously approved and the time since the independent contractor completed their insurance application.

1099Policy automatically charges the independent contractor's credit card on file, if a credit card exists and `bind` is `true`. 1099Policy first notifies the contractor via email and then charges the contractor the premium amount due 24hrs later.

Hide attributesShow attributes

-
       bind

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

The `Quote` object reflects whether a contractor is eligible for insurance and the premium owed for every $100 earned.

Important note: In North Dakota, Ohio, Washington and Wyoming, workers compensation can only be purchased through a government operated insurance company. As a result, the quote API returns an error when a quote request is made for workers compensiation for any one of these four states.

Hide attributesShow attributes

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
400

Invalid input, no dates provided, voided/cancelled/unbound record, expired coverage, a backward or past effective\_date, or a shortened end\_date.

-
404

Job not found, or no bound coverage found for the job.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/assignments/change_dates' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"effective_date\": 1784332800,\n  \"job_id\": \"jb_jsb9KEcTpc\",\n  \"send_email\": true\n}"'
```

```json
{
  "effective_date": 1784332800,
  "job_id": "jb_jsb9KEcTpc",
  "send_email": true
}
```

## Extend an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-extend.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-extend.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-assignments-extend.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/assignments/extend

Extends an existing assignment based on the provided job ID. Sets a new end date
for bound coverage. If you attempt to extend after coverage has ended, or the
end date is invalid, the request will fail. Updating `end_date` on a bound
assignment via `PUT` is not supported; use this endpoint instead.

**Certificate of Insurance (COI) regeneration**: When extending coverage, COI PDFs
are regenerated asynchronously to reflect the new end date. The response returns
immediately with `certificate_refresh_pending: true`, indicating that:

- The `certificate` URLs in the response point to the old PDFs (pre-regeneration)
- Fresh certificate URLs will be included in the `assignment.extended`
webhook, which is published after COI regeneration completes
- Fresh URLs can also be fetched via the API after background processing finishes

This async design ensures the API responds quickly without blocking for PDF generation.

application/json

#### Body

-
end\_date

integer(int64)Required

New end date for the assignment, measured in seconds since the Unix epoch. Must be on or after the current end date and within one year of the effective date.

-
job\_id

stringRequired

The ID of the job associated with the assignment

-
send\_email

boolean

When true, send a coverage-extension notification email to the contractor. COI regeneration and webhook publication happen regardless of this flag.

Default value is `true`.

### Responses

-
200

application/json

Assignment end date updated, or unchanged (no-op) when `end_date` matches the current value. COIs are always regenerated asynchronously, so the response includes `certificate_refresh_pending: true` to indicate that certificate URLs are stale and fresh URLs will be available in the webhook.

To secure coverage for independent contractors that have previously had a policy issued through the 1099Policy platform, you create an `Assignment` object.

Hide attributesShow attributes

-
       bind

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

The `Quote` object reflects whether a contractor is eligible for insurance and the premium owed for every $100 earned.

Hide attributesShow attributes

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, `workers-comp`, `media`, or `cyber`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

string(int64)

-
       eligible

boolean

Indicates whether a contractor is elgible for insurance or not.

Default value is `true`.

-
       end\_date

string(int64)

-
       gl\_net\_rate

integer

The amount of money the 1099 contractor pays in general liability premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `gl_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       quote\_json

object

The JSON representation of component parts that make up the total premium amount due including, for example, the net rate, taxes, and fees.

-
       wc\_net\_rate

integer

The amount of money the 1099 contractor pays in workers comp premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `wc_net_rate` is stored in cents (e.g., 48 represents $0.48).

-
400

Invalid input, voided or cancelled record, expired coverage, attempted shortening, or same end date when no-op is not allowed.

-
404

Job not found, or no assignment found for the associated job id.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/assignments/extend' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"end_date\": 1735689600,\n  \"job_id\": \"jb_jsb9KEcTpc\",\n  \"send_email\": true\n}"'
```

```json
{
  "end_date": 1735689600,
  "job_id": "jb_jsb9KEcTpc",
  "send_email": true
}
```

## Get media coverage records for a policy

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-assignments-media.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-assignments-media.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-assignments-media.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/assignments/media

Retrieves all media coverage records associated with a policy.

#### Query parameters

-
policy\_id

stringRequired

The ID of the policy to get media coverage records for.

### Responses

-
200

application/json

Returns a list of media coverage records if successful.

Hide response attributesShow response attributesobject

-
       coverage\_end\_date

integer(int64)

The date and time when the coverage period ends, measured in seconds since the Unix epoch.

-
       created

integer(int64)

Time at which the media coverage record was created.

-
       first\_publication\_date

integer(int64)

The date and time when the first content was published, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the media coverage record.

-
       is\_active

boolean

Whether the media coverage period is currently active.

-
       published\_content\_json

array\[object\]

Array of published content items. Each item contains publication\_date and platform-specific content data.

-
       quote\_id

string

The ID of the quote associated with this media coverage.

-
400

Returns an error if the policy\_id parameter is missing or invalid.

-
404

Returns an error if the specified policy is not found.

-
500

Returns an error if there was an internal server error.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/assignments/media?policy_id=string'
```

```json
[\
  {\
    "coverage_end_date": 1678334737,\
    "created": 1646818364,\
    "first_publication_date": 1646818364,\
    "id": "mc_abc123xyz",\
    "is_active": true,\
    "published_content_json": [\
      {}\
    ],\
    "quote_id": "qt_5DciVga8Kt"\
  }\
]
```

## Create a media coverage record for an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-media.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-assignments-media.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-assignments-media.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/assignments/media

Creates a new media coverage record for a policy and adds published content.
The media coverage record is used to track content published by contractors
and generate Certificates of Insurance (COIs) for media coverage.

application/json

#### Body

-
policy\_id

stringRequired

The ID of the policy to associate with the media coverage record.

-
publication\_date

integerRequired

The date and time when the content was published, in seconds since the Unix epoch.

-
published\_content\_json

objectRequired

Details about the published content. Can contain any valid JSON structure.

### Responses

-
201

application/json

Returns the created media coverage record if successful.

Hide response attributesShow response attributesobject

-
       coverage\_end\_date

integer(int64)

The date and time when the coverage period ends, measured in seconds since the Unix epoch.

-
       created

integer(int64)

Time at which the media coverage record was created.

-
       first\_publication\_date

integer(int64)

The date and time when the first content was published, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the media coverage record.

-
       is\_active

boolean

Whether the media coverage period is currently active.

-
       published\_content\_json

array\[object\]

Array of published content items. Each item contains publication\_date and platform-specific content data.

-
       quote\_id

string

The ID of the quote associated with this media coverage.

-
400

Returns an error if required fields are missing or invalid.

-
404

Returns an error if the specified policy is not found.

-
500

Returns an error if there was an internal server error.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/assignments/media' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"policy_id\": \"pl_123abc\",\n  \"publication_date\": 1711612800,\n  \"published_content_json\": {\n    \"additional_field\": \"any value\",\n    \"platform\": \"instagram\",\n    \"url\": \"https://instagram.com/pl/1234567890\"\n  }\n}"'
```

```json
{
  "policy_id": "pl_123abc",
  "publication_date": 1711612800,
  "published_content_json": {
    "additional_field": "any value",
    "platform": "instagram",
    "url": "https://instagram.com/pl/1234567890"
  }
}
```

```json
{
  "coverage_end_date": 1678334737,
  "created": 1646818364,
  "first_publication_date": 1646818364,
  "id": "mc_abc123xyz",
  "is_active": true,
  "published_content_json": [\
    {}\
  ],
  "quote_id": "qt_5DciVga8Kt"
}
```

## Retrieve an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-assignments-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-assignments-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-assignments-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/assignments/{assignment}

Retrieves the assignment with the given ID.

#### Path parameters

-
assignment

stringRequired

The ID of the desired assignment (e.g., `an_G5biPgc5Hc`).

### Responses

-
200

application/json

Returns an assignment object if a valid assignment ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       bind

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/assignments/an_G5biPgc5Hc'
```

## Update an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-assignments-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-assignments-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-assignments-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/assignments/{assignment}

Assignments are editable up until the related invoice
is paid in full.

#### Path parameters

-
assignment

stringRequired

The ID of the desired assignment (e.g., `an_3mqtUPL2cA`).

application/json

#### Body

-
bind

boolean

-
contractor

string

ID of the contractor

-
coverage\_type

array\[string\]

An array of coverage types that can include one or more of the following insurance coverage values: `general`, `workers-comp`, and `professional`. If provided, coverage type is factored into the eligibility determination (i.e., does contractor have an active `workers-comp` policy, etc). Defaults to the coverage types of the most recent active policy if `coverage_type` is not provided.

Values are `general`, `workers-comp`, or `professional`.

-
effective\_date

integer

The job assignment start date, measured in seconds since the Unix epoch.

-
end\_date

integer

The projected job assignment end date, measured in seconds since the Unix epoch. If the end\_date is on the same day as the effective\_date, it will automatically be adjusted to the start of the next day.

-
job

string

ID of the job that the contractor intends to accept.

-
policy

string

### Responses

-
200

application/json

Returns an invoice object if a valid invoice ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       bind

Default value is `true`.

-
       certificates

object

URLs to the certificates of insurance for each of the types of coverage issued to the contractor for the specific job assignment.

Hide certificates attributesShow certificates attributesobject

-
             gl\_coi\_pdf\_url

string

The general liability certificate of insurance PDF URL.

-
             wc\_coi\_pdf\_url

string

The workers compensation certificate of insurance PDF URL.

-
       contractor

string

ID of the contractor.

-
       coverage\_type

array\[string\]

Values are `general`, `professional`, or `workers-comp`.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       effective\_date

integer(int64)

The job assignment start date, measured in seconds since the Unix epoch.

-
       eligible

object

Indicates whether a contractor is elgible for pre-approved insurance or not based on their most recent insurance application.

Hide eligible attributesShow eligible attributesobject

-
             message

string

A message with more detail related to the eligibility result.

-
             result

boolean

The result of the insurance eligibility check.

-
       end\_date

integer(int64)

The projected job assignment end date, measured in seconds since the Unix epoch.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor intends to accept.

-
       net\_rate

integer

The amount of money the 1099 contractor pays in premium per every $100 earned.

A positive integer representing the premium owed per $100 earned. The `net_rate` is stored in cents (e.g., 48 represents $0.48).

-
       policy

string

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/assignments/an_3mqtUPL2cA' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"bind\": true,\n  \"contractor\": \"cn_Ehb3bYa\",\n  \"coverage_type\": [\n    \"general\",\n    \"workers-comp\"\n  ],\n  \"effective_date\": 1646818364,\n  \"end_date\": 1646818364,\n  \"job\": \"jb_jsb9KEcTpc\",\n  \"policy\": \"pl_3mqtUPL2cA\"\n}"'
```

```json
{
  "bind": true,
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [\
    "general",\
    "workers-comp"\
  ],
  "effective_date": 1646818364,
  "end_date": 1646818364,
  "job": "jb_jsb9KEcTpc",
  "policy": "pl_3mqtUPL2cA"
}
```

## Delete an assignment

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-assignments-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-assignments-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-assignments-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/assignments/{assignment}

Permanently deletes an assignment. This cannot be undone.
Attempts to delete assignments with jobs that have invoices
paid in full will fail.

#### Path parameters

-
assignment

stringRequired

The ID of the desired assignment (e.g., `an_G5biPgc5Hc`).

### Responses

-
200

application/json

A successfully deleted assignment. Otherwise, this call returns an error, such as if the assignment has already been deleted.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the assignment was deleted.

-
       id

string

The assignment ID.

-
       object

string

Default value is `assignment`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/assignments/an_G5biPgc5Hc'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "an_G5biPgc5Hc",
  "object": "assignment"
}
```

# Invoice

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-invoice.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-invoice.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-invoice.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

Invoices are statements of premium amounts owed by a contractor, based on the contractor's gross pay in the last pay period.

The invoice is used by 1099Policy to determine total funds to charge the contractor or to withdraw from the bank account you connect to the 1099Policy platform if your platform intends to withold insurance premium payments.

## List all invoices

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-invoices.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-invoices.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-invoices.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/invoices

You can list all invoices, or list the invoices for a
specific contractor. The invoices are returned sorted
by creation date, with the most recently created invoices
appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

-
starting\_after

string

A cursor for use in pagination. `starting_after` is an invoice ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `in_fOo123`, your subsequent call can include `starting_after=in_fOo123` in order to fetch the next page of the list.

-
ending\_before

string

A cursor for use in pagination. `ending_before` is an invoice ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `in_bAr123`, your subsequent call can include `ending_before=in_bAr123` in order to fetch the previous page of the list.

### Responses

-
200

application/json

Returns an array of invoice objects. If no more invoices are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       gross\_pay

integer

The gross pay that the contractor earned in the last pay period.

A positive integer representing the gross pay (e.g., 15000 cents to charge $150.00). The minimum amount is 100 cents US. The maximum amount is 100000000 cents US ($1,000,000).

Minimum value is `100`, maximum value is `100000000`.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       paycycle\_enddate

integer(int64)

Pay period end date. Measured in seconds since the Unix epoch.

-
       paycycle\_startdate

integer(int64)

Pay period start date. Measured in seconds since the Unix epoch.

-
       premium\_due

integer

Premium due for pay cycle. Calculated as a percentage of gross pay for the period.

A positive integer representing the premium due (e.g., 150 cents to charge $1.50). The minimum amount is 100 cents US.

-
       purchase\_order\_number

string

The purchase order number for this invoice. Used for dashboard display and agency-pay billing.

By default an invoice inherits this from the `purchase_order_number` set on the job's `custom_metadata` when it is created. It can be overridden per invoice on create or update by sending `purchase_order_number` (an explicit value wins over the job default), or cleared by sending an empty string (`""`). Omitting the field on update leaves the current value unchanged.

When a wage change re-prices an invoice, the replacement invoice keeps this value rather than re-inheriting it from the job.

Precedence: explicit value on the invoice, then the value carried forward when an invoice is re-priced, then the job's `custom_metadata` default.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/invoices'
```

```json
[\
  {\
    "contractor": "cn_Ehb3bYa",\
    "created": 1646818364,\
    "gross_pay": 250000,\
    "id": "in_4RviYgc2Wt",\
    "job": "jb_jsb9KEcTpc",\
    "paycycle_enddate": 1678334737,\
    "paycycle_startdate": 1646818364,\
    "premium_due": 4325,\
    "purchase_order_number": "12345678"\
  }\
]
```

## Create an invoice

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-invoices.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-invoices.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-invoices.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/invoices

This endpoint creates an invoice that reflects the insurance premium
owed by the contractor for the specified pay period.

application/json

#### Body

-
contractor

stringRequired

ID of the contractor

-
gross\_pay

integerRequired

The gross pay that the contractor earned in the last pay period.

-
job

stringRequired

ID of the job that the contractor was paid to do.

-
paycycle\_enddate

integerRequired

Pay period end date.

-
paycycle\_startdate

integerRequired

Pay period start date.

-
purchase\_order\_number

string

The purchase order number for this invoice. Optional.

By default an invoice inherits the `purchase_order_number` set on the job's `custom_metadata`. Send this field to override that default for this invoice — an explicit value always wins over the job default. Send an empty string (`""`) to create the invoice with no purchase order number, or omit the field to inherit the job's default.

If a later gross\_pay change re-prices this invoice, the replacement invoice keeps this purchase order number; it is not re-inherited from the job.

### Responses

-
201

application/json

Returns the invoice object if the post succeeded.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       gross\_pay

integer

The gross pay that the contractor earned in the last pay period.

Minimum value is `100`, maximum value is `100000000`.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       paycycle\_enddate

integer(int64)

Pay period end date. Measured in seconds since the Unix epoch.

-
       paycycle\_startdate

integer(int64)

Pay period start date. Measured in seconds since the Unix epoch.

-
       premium\_due

integer

Premium due for pay cycle. Calculated as a percentage of gross pay for the period.

A positive integer representing the premium due (e.g., 150 cents to charge $1.50). The minimum amount is 100 cents US.

-
       purchase\_order\_number

string

The purchase order number for this invoice. Used for dashboard display and agency-pay billing.

When a wage change re-prices an invoice, the replacement invoice keeps this value rather than re-inheriting it from the job.

Precedence: explicit value on the invoice, then the value carried forward when an invoice is re-priced, then the job's `custom_metadata` default.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/invoices' \
 --header "Content-Type: application/json" \
 --data '{"contractor":"string","gross_pay":42,"job":"string","paycycle_enddate":42,"paycycle_startdate":42,"purchase_order_number":"string"}'
```

```json
{
  "contractor": "string",
  "gross_pay": 42,
  "job": "string",
  "paycycle_enddate": 42,
  "paycycle_startdate": 42,
  "purchase_order_number": "string"
}
```

```json
{
  "contractor": "cn_Ehb3bYa",
  "created": 1646818364,
  "gross_pay": 250000,
  "id": "in_4RviYgc2Wt",
  "job": "jb_jsb9KEcTpc",
  "paycycle_enddate": 1678334737,
  "paycycle_startdate": 1646818364,
  "premium_due": 4325,
  "purchase_order_number": "12345678"
}
```

## Retrieve an invoice

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-invoices-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-invoices-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-invoices-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/invoices/{invoice}

Retrieves the invoice with the given ID.

#### Path parameters

-
invoice

stringRequired

The ID of the desired invoice (e.g., `in_4RviYgc2Wt`).

### Responses

-
200

application/json

Returns an invoice object if a valid invoice ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       gross\_pay

integer

The gross pay that the contractor earned in the last pay period.

Minimum value is `100`, maximum value is `100000000`.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       paycycle\_enddate

integer(int64)

Pay period end date. Measured in seconds since the Unix epoch.

-
       paycycle\_startdate

integer(int64)

Pay period start date. Measured in seconds since the Unix epoch.

-
       premium\_due

integer

Premium due for pay cycle. Calculated as a percentage of gross pay for the period.

A positive integer representing the premium due (e.g., 150 cents to charge $1.50). The minimum amount is 100 cents US.

-
       purchase\_order\_number

string

The purchase order number for this invoice. Used for dashboard display and agency-pay billing.

When a wage change re-prices an invoice, the replacement invoice keeps this value rather than re-inheriting it from the job.

Precedence: explicit value on the invoice, then the value carried forward when an invoice is re-priced, then the job's `custom_metadata` default.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/invoices/in_4RviYgc2Wt'
```

## Update an invoice

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-invoices-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-invoices-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-invoices-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/invoices/{invoice}

Invoices that haven't been paid are fully editable.
Once an invoice is paid, it becomes uneditable.

#### Path parameters

-
invoice

stringRequired

The ID of the desired invoice (e.g., `in_4RviYgc2Wt`).

application/json

#### Body

-
contractor

string

ID of the contractor

-
gross\_pay

integer

The gross pay that the contractor earned in the last pay period.

-
job

string

ID of the job that the contractor was paid to do.

-
paycycle\_enddate

integer

Pay period end date.

-
paycycle\_startdate

integer

Pay period start date.

-
purchase\_order\_number

string

The purchase order number for this invoice. Optional.

Provide a value to set or change it — an explicit value overrides the default inherited from the job's `custom_metadata`. Send an empty string (`""`) to clear it, or omit the field to leave the current value unchanged. This is how you change only the purchase order number when nothing else about the invoice has changed. Not editable once the invoice is paid in full.

### Responses

-
200

application/json

Returns an invoice object if a valid invoice ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       contractor

string

ID of the contractor.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       gross\_pay

integer

The gross pay that the contractor earned in the last pay period.

Minimum value is `100`, maximum value is `100000000`.

-
       id

string

Unique identifier for the object.

-
       job

string

ID of the job that the contractor was paid to do.

-
       paycycle\_enddate

integer(int64)

Pay period end date. Measured in seconds since the Unix epoch.

-
       paycycle\_startdate

integer(int64)

Pay period start date. Measured in seconds since the Unix epoch.

-
       premium\_due

integer

Premium due for pay cycle. Calculated as a percentage of gross pay for the period.

A positive integer representing the premium due (e.g., 150 cents to charge $1.50). The minimum amount is 100 cents US.

-
       purchase\_order\_number

string

The purchase order number for this invoice. Used for dashboard display and agency-pay billing.

When a wage change re-prices an invoice, the replacement invoice keeps this value rather than re-inheriting it from the job.

Precedence: explicit value on the invoice, then the value carried forward when an invoice is re-priced, then the job's `custom_metadata` default.

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/invoices/in_4RviYgc2Wt' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"contractor\": \"cn_Ehb3bYa\",\n  \"gross_pay\": 10000,\n  \"job\": \"jb_jsb9KEcTpc\",\n  \"paycycle_enddate\": 1678334737,\n  \"paycycle_startdate\": 1646818364,\n  \"purchase_order_number\": \"PO-12345678\"\n}"'
```

```json
{
  "contractor": "cn_Ehb3bYa",
  "gross_pay": 10000,
  "job": "jb_jsb9KEcTpc",
  "paycycle_enddate": 1678334737,
  "paycycle_startdate": 1646818364,
  "purchase_order_number": "PO-12345678"
}
```

## Delete an unpaid invoice

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-invoices-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-invoices-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-invoices-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/invoices/{invoice}

Permanently deletes an invoice. This cannot be undone.
Attempts to delete invoices that have been paid will fail.

#### Path parameters

-
invoice

stringRequired

The ID of the desired invoice (e.g., `in_4RviYgc2Wt`).

### Responses

-
200

application/json

A successfully deleted invoice. Otherwise, this call returns an error, such as if the invoice has already been deleted.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the invoice was deleted.

-
       id

string

The invoice ID.

-
       object

string

Default value is `invoice`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/invoices/in_4RviYgc2Wt'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "in_4RviYgc2Wt",
  "object": "invoice"
}
```

# Payment Session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-payment-session.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-payment-session.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-payment-session.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

A payment session is a single-use, time-boxed flow that lets one of your contractors add or update their credit card on a secure page hosted by 1099Policy, then return to a URL you control. The contractor reaches the page via a one-time link that 1099Policy issues from your `POST` — the link expires and becomes invalid after the flow completes. Card data never touches your servers; tokenization happens client-side against our PCI-compliant payment provider.

You create a session on your server with the contractor's ID and a `return_url` of your choosing. We return a single-use URL that you redirect the contractor to. When they complete (or cancel) the flow, we redirect them back to your `return_url` and emit a signed `payment.session.completed` (or `.cancelled`, `.expired`) webhook event to the endpoint you have configured for 1099Policy webhooks.

Before using this endpoint, 1099Policy must have configured your organization's allowed `return_url` hostnames. Contact support to onboard.

Query parameters appended to the `return_url` on redirect (`hps_id`, `status`) are for your UX only and must not be the basis for any entitlement decision. The signed webhook is the source of truth for outcome.

## Create a payment session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-payment-sessions.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-payment-sessions.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-payment-sessions.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/payment/sessions

Creates a new payment session object.

application/json

#### Body

-
contractor

stringRequired

The public ID of the contractor (e.g., `cn_AbCdEfGh12`). Must belong to your tenant. A contractor ID that does not belong to your tenant returns `404` to avoid leaking existence.

-
return\_url

stringRequired

HTTPS URL the contractor will be redirected to when the flow terminates. The host must be in your organization's configured `hosted_flow_allowed_redirect_hosts` allowlist. Exact-match only; no wildcards, no suffix matching. URLs with credentials (`user:pass@`) or fragments are rejected.

### Responses

-
201

application/json

Session created. The `url` field is shown exactly once and contains the single-use token the contractor must land on.

Hide response attributesShow response attributesobject

-
       cancelled\_at

integer(int64) \| null

Time at which the session was cancelled by you or by the contractor. Null unless `status` is `cancelled`. Measured in seconds since the Unix epoch.

-
       completed\_at

integer(int64) \| null

Time at which the session reached `completed`. Null unless the contractor successfully saved a card. Measured in seconds since the Unix epoch.

-
       contractor\_id

string

Public ID of the contractor the session is scoped to.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expires\_at

integer(int64)

Time at which a pending session expires and becomes unusable. Measured in seconds since the Unix epoch. Default lifetime is 30 minutes from creation.

-
       id

string

Unique identifier for the object.

-
       processor

string

Identifier for the payment provider backing this session. `checkout` is the default and currently the only supported value. Reserved so future providers can be added without a breaking schema change.

Value is `checkout`.

-
       return\_url

string

HTTPS URL the contractor is redirected to when the flow terminates. The host must be in your organization's configured `hosted_flow_allowed_redirect_hosts` allowlist; exact host match only, no wildcards. URLs with credentials (`user:pass@`) or fragments are rejected at creation time.

-
       status

string

Current status of the session. `pending` is the only state in which the URL can be used; the other three are terminal.

Values are `pending`, `completed`, `cancelled`, or `expired`.

-
       url

string

The single-use URL to redirect the contractor to. Shown exactly once, at session creation. The token embedded in this URL is a secret — do not log it, do not persist it, do not share it beyond the contractor's browser.

-
400

Invalid input. `invalid_return_url` when the return URL fails scheme / host / allowlist validation. Ensure your organization has `hosted_flow_allowed_redirect_hosts` configured.

-
403

Missing or invalid API key.

-
404

Contractor not found. Returned when the contractor does not exist under your tenant.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/payment/sessions' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"contractor\": \"cn_AbCdEfGh12\",\n  \"return_url\": \"https://app.yourplatform.com/settings/billing/return\"\n}"'
```

```json
{
  "contractor": "cn_AbCdEfGh12",
  "return_url": "https://app.yourplatform.com/settings/billing/return"
}
```

```json
{
  "cancelled_at": 42,
  "completed_at": 1713369924,
  "contractor_id": "cn_Ehb3bYa",
  "created": 1646818364,
  "expires_at": 1713371724,
  "id": "hps_xyz123abc",
  "processor": "checkout",
  "return_url": "https://app.yourplatform.com/settings/billing/return",
  "status": "pending",
  "url": "https://my.1099policy.com/payment/setup/live_<token>"
}
```

## Retrieve a payment session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-payment-sessions-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-payment-sessions-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-payment-sessions-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/payment/sessions/{session}

Retrieves the payment session with the given ID.

#### Path parameters

-
session\_id

stringRequired

The public ID of the session (`hps_...`).

### Responses

-
200

application/json

The current session object.

Hide response attributesShow response attributesobject

-
       cancelled\_at

integer(int64) \| null

Time at which the session was cancelled by you or by the contractor. Null unless `status` is `cancelled`. Measured in seconds since the Unix epoch.

-
       completed\_at

integer(int64) \| null

Time at which the session reached `completed`. Null unless the contractor successfully saved a card. Measured in seconds since the Unix epoch.

-
       contractor\_id

string

Public ID of the contractor the session is scoped to.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expires\_at

integer(int64)

Time at which a pending session expires and becomes unusable. Measured in seconds since the Unix epoch. Default lifetime is 30 minutes from creation.

-
       id

string

Unique identifier for the object.

-
       processor

string

Value is `checkout`.

-
       return\_url

string

-
       status

string

Current status of the session. `pending` is the only state in which the URL can be used; the other three are terminal.

Values are `pending`, `completed`, `cancelled`, or `expired`.

-
       url

string

-
403

Missing or invalid API key.

-
404

Session not found. Returned when the id is unknown or belongs to another tenant.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/payment/sessions/{session}'
```

## Cancel a payment session

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-payment-sessions-parameter-cancel.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-payment-sessions-parameter-cancel.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-payment-sessions-parameter-cancel.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/payment/sessions/{session}/cancel

Cancels the payment session with the given ID. A session can
only be cancelled while it is still pending.

#### Path parameters

-
session\_id

stringRequired

The public ID of the session to cancel.

### Responses

-
200

application/json

Session cancelled. The webhook with `event_type: payment.session.cancelled` will follow asynchronously.

Hide response attributesShow response attributesobject

-
       cancelled\_at

integer(int64) \| null

Time at which the session was cancelled by you or by the contractor. Null unless `status` is `cancelled`. Measured in seconds since the Unix epoch.

-
       completed\_at

integer(int64) \| null

Time at which the session reached `completed`. Null unless the contractor successfully saved a card. Measured in seconds since the Unix epoch.

-
       contractor\_id

string

Public ID of the contractor the session is scoped to.

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       expires\_at

integer(int64)

Time at which a pending session expires and becomes unusable. Measured in seconds since the Unix epoch. Default lifetime is 30 minutes from creation.

-
       id

string

Unique identifier for the object.

-
       processor

string

Value is `checkout`.

-
       return\_url

string

-
       status

string

Current status of the session. `pending` is the only state in which the URL can be used; the other three are terminal.

Values are `pending`, `completed`, `cancelled`, or `expired`.

-
       url

string

-
400

`session_not_pending` — the session is already in a terminal state. `session_expired` — the session is past its `expires_at` and the expiry job hasn't flipped it yet.

-
403

Missing or invalid API key.

-
404

Session not found.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/payment/sessions/{session}/cancel'
```

# Webhook Endpoint

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-webhook-endpoint.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-webhook-endpoint.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-webhook-endpoint.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

Webhooks are a way for 1099Policy to communicate with your server. To receive events you can use the `webhook_endpoints` API to register your webhook endpoints.

If you prefer, you can also register and configure your webhook endpoints from the [dashboard](https://dashboard.1099policy.com/webhooks).

When an event occurs, we'll send an HTTP POST request to the registered webhook endpoint. We'll notify your server about events that happen in your 1099Policy account, such as when a contractor starts an insurance application or when a policy is issued.

## List all webhook endpoints

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-webhook_endpoints.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-webhook_endpoints.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-webhook_endpoints.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/webhook\_endpoints

Returns a list of your webhook endpoints. The webhook
endpoints are returned sorted by updated date, with the
most recently updated webhook endpoints appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

### Responses

-
200

application/json

Returns an array of webhook endpoint objects. If no more webhook endpoints are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       description

string

Optional human-readable description of the endpoint.

-
       id

string

Unique identifier for the object.

-
       secret

string

Webhook secret which you can use to verify that the webhook is from 1099Policy. Read more about how to use the webhook secret to verify the webhook signature in our documentation [here](/content/docs/automating-compliance#webhook-signature-verification/index.html).

-
       url

string

The URL of the webhook endpoint.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/webhook_endpoints'
```

```json
[\
  {\
    "created": "2024-01-06T05:30:39.373Z",\
    "description": "string",\
    "id": "whe_KPGc5vEZdvoETu39BNwu2Z",\
    "secret": "whr_a_secret_key",\
    "url": "https://example.com/my/webhook/endpoint"\
  }\
]
```

## Create a webhook endpoint

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-webhook_endpoints.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-post-api-v1-webhook_endpoints.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-post-api-v1-webhook_endpoints.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

POST

/api/v1/webhook\_endpoints

Creates a new webhook endpoint object.

application/json

#### Body

-
description

string

A human-readable description of the webhook endpoint.

-
events

array\[string\]

List of event types to subscribe to. If not provided, subscribes to all events. Use "\*" to subscribe to all events. Available event types: `policy.active`, `policy.active.media`, `policy.cancelled`, `policy.reactivated`, `application.created`, `application.started`, `application.complete`, `application.expired`, `application.renewed`, `application.ineligible`, `application.manual_review`, `application.manual_review_approved`, `assignment.active`, `assignment.cancelled`, `certificate.flagged`, `certificate.approved`, `certificate.denied`, `invoice.charge_card_failed`, `invoice.charge_card_succeeded`, `category_code.added`

-
url

stringRequired

The URL of the webhook endpoint.

### Responses

-
201

application/json

Returns the webhook endpoint object if the post succeeded.

Hide response attributesShow response attributesobject

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       description

string

Optional human-readable description of the endpoint.

-
       id

string

Unique identifier for the object.

-
       secret

string

-
       url

string

The URL of the webhook endpoint.

```curl
curl \
 --request POST 'https://api.1099policy.com/api/v1/webhook_endpoints' \
 --header "Content-Type: application/json" \
 --data '{"description":"string","events":["application.complete","application.ineligible","policy.active"],"url":"string"}'
```

```json
{
  "description": "string",
  "events": [\
    "application.complete",\
    "application.ineligible",\
    "policy.active"\
  ],
  "url": "string"
}
```

```json
{
  "created": "2024-01-06T05:30:39.373Z",
  "description": "string",
  "id": "whe_KPGc5vEZdvoETu39BNwu2Z",
  "secret": "whr_a_secret_key",
  "url": "https://example.com/my/webhook/endpoint"
}
```

## Retrieve a webhook endpoint

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-webhook_endpoints-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-webhook_endpoints-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-webhook_endpoints-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/webhook\_endpoints/{webhook\_endpoint}

Retrieves the details of a webhook endpoint. You need only
provide the unique webhook endpoint ID.

#### Path parameters

-
webhook\_endpoint

stringRequired

The ID of the desired webhook endpoint (e.g., whe\_KPGc5vEZdvoETu39BNwu2Z).

### Responses

-
200

application/json

Returns a webhook endpoint object if a valid ID was provided.

Hide response attributesShow response attributesobject

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       description

string

Optional human-readable description of the endpoint.

-
       id

string

Unique identifier for the object.

-
       secret

string

-
       url

string

The URL of the webhook endpoint.

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/webhook_endpoints/{webhook_endpoint}'
```

## Update a webhook endpoint

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-webhook_endpoints-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-put-api-v1-webhook_endpoints-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-put-api-v1-webhook_endpoints-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

PUT

/api/v1/webhook\_endpoints/{webhook\_endpoint}

Updates the specified webhook endpoint by setting
the values of the parameters passed. Any parameters
not provided will be left unchanged.

#### Path parameters

-
webhook\_endpoint

stringRequired

The ID of the desired webhook endpoint (e.g., `whe_KPGc5vEZdvoETu39BNwu2Z`).

application/json

#### Body

-
description

string

A human-readable description of the webhook endpoint.

-
events

array\[string\]

-
url

string

The URL of the webhook endpoint.

### Responses

-
200

application/json

Returns a webhook endpoint object if a valid webhook endpoint ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       description

string

Optional human-readable description of the endpoint.

-
       id

string

Unique identifier for the object.

-
       secret

string

-
       url

string

The URL of the webhook endpoint.

```curl
curl \
 --request PUT 'https://api.1099policy.com/api/v1/webhook_endpoints/whe_KPGc5vEZdvoETu39BNwu2Z' \
 --header "Content-Type: application/json" \
 --data '"{\n  \"description\": \"A webhook endpoint for the example application.\",\n  \"events\": [\n    \"application.complete\",\n    \"application.ineligible\",\n    \"policy.active\"\n  ],\n  \"url\": \"https://example.com/my/webhook/endpoint\"\n}"'
```

```json
{
  "description": "A webhook endpoint for the example application.",
  "events": [\
    "application.complete",\
    "application.ineligible",\
    "policy.active"\
  ],
  "url": "https://example.com/my/webhook/endpoint"
}
```

## Delete a webhook endpoint

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-webhook_endpoints-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-delete-api-v1-webhook_endpoints-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-delete-api-v1-webhook_endpoints-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

DELETE

/api/v1/webhook\_endpoints/{webhook\_endpoint}

Deletes the specified webhook endpoint.

#### Path parameters

-
webhook\_endpoint

stringRequired

The ID of the desired webhook endpoint.

### Responses

-
200

application/json

Returns a success message if a valid webhook endpoint ID was provided. Returns an error otherwise.

Hide response attributesShow response attributesobject

-
       deleted

boolean

-
       deleted\_at

integer

Unix timestamp (seconds since epoch) of when the webhook endpoint was deleted.

-
       id

string

The webhook endpoint ID.

-
       object

string

Default value is `webhook_endpoint`.

```curl
curl \
 --request DELETE 'https://api.1099policy.com/api/v1/webhook_endpoints/{webhook_endpoint}'
```

```json
{
  "deleted": true,
  "deleted_at": 1640995200,
  "id": "whe_KPGc5vEZdvoETu39BNwu2Z",
  "object": "webhook_endpoint"
}
```

# Event

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-event.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/group/endpoint-event.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/group/endpoint-event.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

Events are how we communicate notable activity on an independent contractor's insurance application, policy, and certificate processing. When an event occurs, we create a new Event object. For example, when an insurance application is started, we create an `application.started` event; when a policy is issued, we create a `policy.active` event; and when a certificate evaluation completes, we create certificate events such as `certificate.approved`, `certificate.flagged`, or `certificate.denied`.

API resource state changes trigger events. The state of that resource at the time of the change is embedded in the event's data field. For example, an `application.started` event will contain an insurance application `Session` object, a `policy.active` event will contain a `Policy` object, and certificate events will contain a `Certificate` object with the evaluation results.

These events are sent to your registered webhook endpoint, allowing you to respond immediately when certificate processing completes without needing to poll the API.

Use the events endpoints to retrieve an individual event or a list of events. You can listen for events by registering your server endpoint via the 1099Policy [dashboard](https://dashboard.1099policy.com/webhooks). Our webhooks system send the Event objects directly to your registered endpoint.

## List all events

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-events.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-events.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-events.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/events

Returns a list of events with pagination (20 events per page).
The events are sorted by creation date, with the most recent
event appearing first.

#### Query parameters

-
limit

integer

A limit on the number of objects to be returned. Limit can range between `1` and `100`, and the default is `10`.

Minimum value is `1`, maximum value is `100`. Default value is `10`.

### Responses

-
200

application/json

Returns an array of event objects. If no more events are available, the resulting array will be empty.

Hide response attributesShow response attributesobject

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       data

object

Object containing data associated with the event.

-
       id

string

Unique identifier for the object.

-
       type

string

Description of the event (e.g., application.started, policy.active, certificate.approved, certificate.flagged, certificate.denied).

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/events'
```

```json
[\
  {\
    "created": 1646818364,\
    "data": {},\
    "id": "ev_1a2b3c4d5e6f",\
    "type": "policy.cancelled"\
  }\
]
```

## Retrieve an event

Ask AI

* * *

- [Open in ChatGPT](https://chatgpt.com/?prompt=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-events-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)
- [Open in Claude](https://claude.ai/new/?q=Hi,%20read%20this%20API%20documentation%20https://docs.1099policy.com/operation/operation-get-api-v1-events-parameter.md,%20and%20be%20ready%20to%20answer%20questions%20about%20it.)

* * *

- [View as Markdown](https://docs.1099policy.com/operation/operation-get-api-v1-events-parameter.md)
- [Copy as Markdown](https://docs.1099policy.com/#)

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

`

https://docs.1099policy.com/mcp

`

Standard setup for AI tools providing an mcp.json file

mcp.json

```
{
  "1099Policy MCP server": {
    "url": "https://docs.1099policy.com/mcp"
  }
}
```

Close

GET

/api/v1/events/{event}

Retrieves the details of an event. You need only
provide the unique event ID which you would have
received in a webhook.

#### Path parameters

-
event

stringRequired

The ID of the desired event (e.g., `ev_1a2b3c4d5e6f`).

### Responses

-
200

application/json

Returns an event object if a valid ID was provided.

Hide response attributesShow response attributesobject

-
       created

integer(int64)

Time at which the object was created. Measured in seconds since the Unix epoch.

-
       data

object

Object containing data associated with the event.

-
       id

string

Unique identifier for the object.

-
       type

string

Description of the event (e.g., application.started, policy.active, certificate.approved, certificate.flagged, certificate.denied).

```curl
curl \
 --request GET 'https://api.1099policy.com/api/v1/events/ev_1a2b3c4d5e6f'
```

```json
{
  "created": 1646818364,
  "data": {},
  "id": "ev_1a2b3c4d5e6f",
  "type": "policy.cancelled"
}
```
