Create a payment session | 1099Policy API documentation
ESC
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
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
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
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 \
-X GET https://api.1099policy.com/api/v1/contractors \
-H "Authorization: Basic t9k_test_wvnsjtZ8aMlbfGbIm0Lc0"
Environment
Ask AI
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 \
-X GET https://api.1099policy.com/api/v1/contractors \
-H "Authorization: Basic t9k_test_wvnsjtZ8aMlbfGbIm0Lc0" \
-H "Ten99Policy-Environment: production"
Errors
Ask AI
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.
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
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 \
-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
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_datemust be in the future (with a small grace period for clock skew)end_datemust be aftereffective_dateend_datemust be within one year ofeffective_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.
{
"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
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
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.
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 \
--request GET 'https://api.1099policy.com/api/v1/contractors'
[\
{\
"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
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.
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 \
--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}'
{
"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
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa'
Update a contractor
Ask AI
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.
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 \
--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}"'
{
"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
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 \
--request DELETE 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "cn_Ehb3bYa",
"object": "contractor"
}
Generate login link
Ask AI
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 \
--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"}'
{
"redirect_url": "https://my.1099policy.com/insurance/start"
}
{
"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
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
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 \
--request GET 'https://api.1099policy.com/api/v1/entities'
[\
{\
"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
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 \
--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"]}'
{
"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"\
]
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/entities/en_Ah3tqYn'
Update an entity
Ask AI
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 \
--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
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 \
--request DELETE 'https://api.1099policy.com/api/v1/entities/en_Ah3tqYn'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "en_Ah3tqYn",
"object": "entity"
}
Job
Ask AI
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
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.
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 \
--request GET 'https://api.1099policy.com/api/v1/jobs'
[\
{\
"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
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.
- 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.
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 \
--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}'
{
"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
}
{
"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
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.
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 \
--request GET 'https://api.1099policy.com/api/v1/jobs/jb_jsb9KEcTpc'
Update a job
Ask AI
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.
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 \
--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}"'
{
"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
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 \
--request DELETE 'https://api.1099policy.com/api/v1/jobs/jb_jsb9KEcTpc'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "jb_jsb9KEcTpc",
"object": "job"
}
Category Code
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/category_codes'
[\
{\
"category_code": "jc_MTqpkbkp6G",\
"name": "Spokesperson / Influencer"\
}\
]
Certificate
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/files/certificates'
[\
{\
"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
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:
Polling: Periodically retrieve the certificate using the GET endpoint to check the
statusfield. The status will transition from "pending" → "processing" → ("approved" | "flagged" | "denied" | "error") as processing completes.Webhooks: Register a webhook endpoint to receive real-time notifications when processing completes. The following events are sent:
certificate.approved- Certificate passed all requirementscertificate.flagged- Certificate failed some requirementscertificate.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 \
--request POST 'https://api.1099policy.com/api/v1/files/certificates' \
--header "Content-Type: multipart/form-data" \
--form "certificate=@file" \
--form "contractor=string"
{
"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
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 startedprocessing- Certificate is currently being processedapproved- Certificate passed all insurance requirementsflagged- Certificate failed some requirements (may require manual review)denied- Certificate was deniederror- 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 countsexpand[]=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 \
--request GET 'https://api.1099policy.com/api/v1/files/certificates/ci_YnsHeB9PTo'
Delete a certificate.
Ask AI
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 \
--request DELETE 'https://api.1099policy.com/api/v1/files/certificates/ci_YnsHeB9PTo'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "ci_YnsHeB9PTo",
"object": "certificate"
}
Quote
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/quotes'
[\
{\
"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
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 \
--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"}'
{
"bind": true,
"contractor": "string",
"coverage_type": [\
"general"\
],
"effective_date": 42,
"end_date": 42,
"job": "string"
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/quotes/qt_5DciVga8Kt'
Update a quote
Ask AI
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 \
--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}"'
{
"contractor": "cn_Ehb3bYa",
"coverage_type": [\
"general",\
"workers-comp"\
],
"effective_date": 1646818364,
"end_date": 1678334737,
"job": "jb_jsb9KEcTpc"
}
Session
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/apply/sessions'
[\
{\
"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
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 \
--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"}'
{
"cancel_url": "string",
"contractor": "string",
"general_opt_in_work_state": "string",
"is_general_opt_in": true,
"quote": "string",
"success_url": "string"
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/apply/sessions/ias_01FVCHXE7PNQHA1T3S2AXL2QZE'
Update a session
Ask AI
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 \
--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}"'
{
"cancel_url": "https://example.com/cancel",
"success_url": "https://example.com/success"
}
Expire a session
Ask AI
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 \
--request POST 'https://api.1099policy.com/api/v1/apply/sessions/ias_01FVCHXE7PNQHA1T3S2AXL2QZE/expire'
Policy
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/contractors/cn_Ehb3bYa/policies'
[\
{\
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/policies'
Create a policy
Ask AI
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 \
--request POST 'https://api.1099policy.com/api/v1/policies' \
--header "Content-Type: application/json" \
--data '{"effective_date":"string","expiration_date":"string","quote":"string"}'
{
"effective_date": "string",
"expiration_date": "string",
"quote": "string"
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/policies/pl_WzFRszJhoY'
Update a policy
Ask AI
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 \
--request PUT 'https://api.1099policy.com/api/v1/policies/pl_WzFRszJhoY' \
--header "Content-Type: application/json" \
--data '"{\n \"is_active\": false\n}"'
{
"is_active": false
}
Delete a policy
Ask AI
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 \
--request DELETE 'https://api.1099policy.com/api/v1/policies/pl_WzFRszJhoY'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "pl_WzFRszJhoY",
"object": "policy"
}
Assignment
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/assignments'
[\
{\
"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
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 \
--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"}'
{
"bind": true,
"contractor": "string",
"coverage_type": [\
"string"\
],
"effective_date": 42,
"end_date": 42,
"job": "string",
"policy": "string"
}
{
"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
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 \
--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}"'
{
"job_id": "jb_123abc",
"reason": "client_request"
}
Change bound coverage dates
Ask AI
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 \
--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}"'
{
"effective_date": 1784332800,
"job_id": "jb_jsb9KEcTpc",
"send_email": true
}
Extend an assignment
Ask AI
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
certificateURLs in the response point to the old PDFs (pre-regeneration) - Fresh certificate URLs will be included in the
assignment.extendedwebhook, 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 \
--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}"'
{
"end_date": 1735689600,
"job_id": "jb_jsb9KEcTpc",
"send_email": true
}
Get media coverage records for a policy
Ask AI
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 \
--request GET 'https://api.1099policy.com/api/v1/assignments/media?policy_id=string'
[\
{\
"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
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 \
--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}"'
{
"policy_id": "pl_123abc",
"publication_date": 1711612800,
"published_content_json": {
"additional_field": "any value",
"platform": "instagram",
"url": "https://instagram.com/pl/1234567890"
}
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/assignments/an_G5biPgc5Hc'
Update an assignment
Ask AI
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 \
--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}"'
{
"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
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 \
--request DELETE 'https://api.1099policy.com/api/v1/assignments/an_G5biPgc5Hc'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "an_G5biPgc5Hc",
"object": "assignment"
}
Invoice
Ask AI
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
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 \
--request GET 'https://api.1099policy.com/api/v1/invoices'
[\
{\
"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
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 \
--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"}'
{
"contractor": "string",
"gross_pay": 42,
"job": "string",
"paycycle_enddate": 42,
"paycycle_startdate": 42,
"purchase_order_number": "string"
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/invoices/in_4RviYgc2Wt'
Update an invoice
Ask AI
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 \
--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}"'
{
"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
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 \
--request DELETE 'https://api.1099policy.com/api/v1/invoices/in_4RviYgc2Wt'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "in_4RviYgc2Wt",
"object": "invoice"
}
Payment Session
Ask AI
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
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 \
--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}"'
{
"contractor": "cn_AbCdEfGh12",
"return_url": "https://app.yourplatform.com/settings/billing/return"
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/payment/sessions/{session}'
Cancel a payment session
Ask AI
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 \
--request POST 'https://api.1099policy.com/api/v1/payment/sessions/{session}/cancel'
Webhook Endpoint
Ask AI
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.
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
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.
url
string
The URL of the webhook endpoint.
curl \
--request GET 'https://api.1099policy.com/api/v1/webhook_endpoints'
[\
{\
"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
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 \
--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"}'
{
"description": "string",
"events": [\
"application.complete",\
"application.ineligible",\
"policy.active"\
],
"url": "string"
}
{
"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
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 \
--request GET 'https://api.1099policy.com/api/v1/webhook_endpoints/{webhook_endpoint}'
Update a webhook endpoint
Ask AI
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 \
--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}"'
{
"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
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 \
--request DELETE 'https://api.1099policy.com/api/v1/webhook_endpoints/{webhook_endpoint}'
{
"deleted": true,
"deleted_at": 1640995200,
"id": "whe_KPGc5vEZdvoETu39BNwu2Z",
"object": "webhook_endpoint"
}
Event
Ask AI
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. Our webhooks system send the Event objects directly to your registered endpoint.
List all events
Ask AI
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 \
--request GET 'https://api.1099policy.com/api/v1/events'
[\
{\
"created": 1646818364,\
"data": {},\
"id": "ev_1a2b3c4d5e6f",\
"type": "policy.cancelled"\
}\
]
Retrieve an event
Ask AI
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 \
--request GET 'https://api.1099policy.com/api/v1/events/ev_1a2b3c4d5e6f'
{
"created": 1646818364,
"data": {},
"id": "ev_1a2b3c4d5e6f",
"type": "policy.cancelled"
}