API version: Jul 20, 2022 10:22 am Back to last version

1099Policy API Reference
1.6.5

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 the documentation for version 1.6.5 of the API. Last update on Jul 20, 2022.

Base URL
https://api.1099policy.com

Authentication

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/contractor \
    -H "Authorization: t9k_test_wvnsjtZ8aMlbfGbIm0Lc0"

Environment

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/contractor \
    -H "Authorization: t9k_test_wvnsjtZ8aMlbfGbIm0Lc0" \
    -H "Ten99Policy-Environment: production"

Errors

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

The 1099Policy API checks every request body for an an additional idempotency_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 bind a policy 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 policy 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 "Idempotency-Key: d9YozBtG5R" \
      -H 'Content-Type: application/json' \
      -d ...

List all contractors

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.

Body
  • limit integer

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

Responses
  • 200 array[object]

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

    • address object

      The contractor's home address.

      • 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)
    • email string

      The contractor's email address.

    • first_name string

      The contractor's first name.

    • id object

      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.

GET /api/v1/contractors
curl \
 -X GET https://api.1099policy.com/api/v1/contractors \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "address": {
      "line1": "150 Wythe Ave",
      "locality": "Brooklyn",
      "postalcode": 11249,
      "region": "NY"
    },
    "company_name": "Mass Repair",
    "created": 1646818364,
    "email": "fmoss@gmail.com",
    "first_name": "Fredrick",
    "id": "cn_Zbe1qTc",
    "last_name": "Moss",
    "phone": "916-579-1243"
  },
  {
    "address": {
      "line1": "1 Kearny St",
      "locality": "San Francisco",
      "postalcode": 94104,
      "region": "CA"
    },
    "company_name": "Acme Co.",
    "created": 1646818384,
    "email": "parker@gmail.com",
    "first_name": "Joe",
    "id": "cn_Ehb3bYa",
    "last_name": "Parker",
    "phone": "415-474-9088"
  }
]

Create a contractor

POST /api/v1/contractors

Creates a new contractor object.

Body
  • address Required / object

    The contractor's home address.

    • country string | null

      2-letter country code.

    • line1 Required / string

      Address line 1 (Street address/PO Box).

    • line2 string | null

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

    • locality Required / string

      City/District/Suburb/Town/Village.

    • postalcode Required / string

      ZIP or postal code.

    • region Required / string

      2-letter state code.

  • company_name string

    The contractor's business name.

  • email Required / string

    The contractor's email address.

  • first_name Required / string

    The contractor's first name.

  • last_name Required / string

    The contractor's last name.

  • middle_name string

    The contractor's middle name.

  • phone Required / string

    The contractor's phone number.

  • tax_identification Required / 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.

Responses
  • 201 object

    Returns the contractor object if the post succeeded.

    • address object

      The contractor's home address.

      • 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)
    • email string

      The contractor's email address.

    • first_name string

      The contractor's first name.

    • id object

      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.

POST /api/v1/contractors
curl \
 -X POST https://api.1099policy.com/api/v1/contractors \
 -H "Content-Type: application/json" \
 -d '{"address":{"line1":"1 Kearny St","locality":"San Francisco","postalcode":94104,"region":"CA"},"company_name":"Acme Co.","email":"parker@gmail.com","first_name":"Joe","last_name":"Parker","phone":"415-474-9088","tax_identification":"12-3456789"}'
Request example
{
  "address": {
    "line1": "1 Kearny St",
    "locality": "San Francisco",
    "postalcode": 94104,
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "last_name": "Parker",
  "phone": "415-474-9088",
  "tax_identification": "12-3456789"
}
Response example (201)
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "created": 1646818364,
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "id": "cn_Ehb3bYa",
  "last_name": "Parker",
  "middle_name": "null",
  "phone": "415-474-9088"
}

Retrieve a contractor

GET /api/v1/contractors/{contractor_id}

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

Body
  • contractor Required / string

    The ID of the desired contractor.

Responses
  • 200 object

    Returns a contractor object if a valid identifier was provided.

    • address object

      The contractor's home address.

      • 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)
    • email string

      The contractor's email address.

    • first_name string

      The contractor's first name.

    • id object

      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.

GET /api/v1/contractors/{contractor_id}
curl \
 -X GET https://api.1099policy.com/api/v1/contractors/{contractor_id} \
 -H "Content-Type: application/json" \
 -d '{"contractor":"cn_Ehb3bYa"}'
Request example
{
  "contractor": "cn_Ehb3bYa"
}
Response example (200)
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "created": 1646818364,
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "id": "cn_Ehb3bYa",
  "last_name": "Parker",
  "middle_name": "null",
  "phone": "415-474-9088"
}

Update a contractor

PUT /api/v1/contractors/{contractor_id}

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.

Body
  • address object

    The contractor's home address.

    • 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)
  • email string

    The contractor's email address.

  • first_name string

    The contractor's first name.

  • id object

    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.

Responses
  • 200 object

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

    • address object

      The contractor's home address.

      • 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)
    • email string

      The contractor's email address.

    • first_name string

      The contractor's first name.

    • id object

      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.

PUT /api/v1/contractors/{contractor_id}
curl \
 -X PUT https://api.1099policy.com/api/v1/contractors/{contractor_id} \
 -H "Content-Type: application/json" \
 -d '{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"company_name":"Acme Co.","created":1646818364,"email":"parker@gmail.com","first_name":"Joe","id":"cn_Ehb3bYa","last_name":"Parker","middle_name":"null","phone":"415-474-9088"}'
Request example
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "created": 1646818364,
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "id": "cn_Ehb3bYa",
  "last_name": "Parker",
  "middle_name": "null",
  "phone": "415-474-9088"
}
Response example (200)
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "company_name": "Acme Co.",
  "created": 1646818364,
  "email": "parker@gmail.com",
  "first_name": "Joe",
  "id": "cn_Ehb3bYa",
  "last_name": "Parker",
  "middle_name": "null",
  "phone": "415-474-9088"
}

Delete a contractor

DELETE /api/v1/contractors/{contractor_id}

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

Body
  • contractor Required / string

    The ID of the contractor to be deleted.

Responses
  • 200 object

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

DELETE /api/v1/contractors/{contractor_id}
curl \
 -X DELETE https://api.1099policy.com/api/v1/contractors/{contractor_id} \
 -H "Content-Type: application/json" \
 -d '{"contractor":"cn_Ehb3bYa"}'
Request example
{
  "contractor": "cn_Ehb3bYa"
}
Response example (200)
{
  "deleted": true,
  "deleted_at": "(now)",
  "id": "cn_Ehb3bYa",
  "object": "contractor"
}

List all entities

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.

Body
  • limit integer

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

Responses
  • 200 array[object]

    Returns an array of entity objects. If no more entities are available, the resulting array will be empty. Returns an error if the entity ID is invalid.

    • address object

      The contracting entity's address.

      • 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.

      • aggregate_limit Required / integer

        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 Required / integer

        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)
    • id object

      Unique identifier for the object.

    • name string

      The contracting entity's legal name.

      • coverage_type Required / 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.

GET /api/v1/entities
curl \
 -X GET https://api.1099policy.com/api/v1/entities \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "address": {
      "line1": "One Apple Park Way",
      "locality": "Cupertino",
      "postalcode": 95014,
      "region": "CA"
    },
    "coverage_limit": {
      "aggregate_limit": 200000000,
      "occurrence_limit": 100000000
    },
    "created": 1646818364,
    "id": "en_Ah3tqYn",
    "name": "Apple, Inc",
    "required_coverage": {
      "coverage_type": [
        "general",
        "workers-comp"
      ]
    }
  },
  {
    "address": {
      "line1": "410 Terry Ave N",
      "locality": "Seattle",
      "postalcode": 98109,
      "region": "WA"
    },
    "coverage_limit": {
      "aggregate_limit": 500000000,
      "occurrence_limit": 100000000
    },
    "created": 1646818386,
    "id": "en_Mg5sqSp",
    "name": "Amazon, Inc",
    "required_coverage": {
      "coverage_type": [
        "general",
        "professional"
      ]
    }
  }
]

Create an entity

POST /api/v1/entities

Creates a new contracting entity object.

Body
  • address Required / object

    The contracting entity's address.

    • 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.

  • The contracting entity's minimum required coverage limits.

    • aggregate_limit Required / integer

      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 Required / integer

      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.

  • name Required / string

    The contracting entity's legal name.

  • required_coverage Required / object

    The insurance coverage that the contracting entity requires of the independent contractor.

    • coverage_type Required / 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.

Responses
  • 201 object

    Returns the entity object if the post succeeded.

    • address object

      The contracting entity's address.

      • 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.

      • aggregate_limit Required / integer

        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 Required / integer

        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)
    • id object

      Unique identifier for the object.

    • name string

      The contracting entity's legal name.

      • coverage_type Required / 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.

POST /api/v1/entities
curl \
 -X POST https://api.1099policy.com/api/v1/entities \
 -H "Content-Type: application/json" \
 -d '{"address":{"line1":"One Apple Park Way","locality":"Cupertino","postalcode":95014,"region":"CA"},"coverage_limit":{"aggregate_limit":200000000,"occurrence_limit":100000000},"name":"Apple, Inc","required_coverage":{"coverage_type":["general","workers-comp"]}}'
Request example
{
  "address": {
    "line1": "One Apple Park Way",
    "locality": "Cupertino",
    "postalcode": 95014,
    "region": "CA"
  },
  "coverage_limit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "name": "Apple, Inc",
  "required_coverage": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  }
}
Response example (201)
{
  "address": {
    "line1": "One Apple Park Way",
    "locality": "Cupertino",
    "postalcode": 95014,
    "region": "CA"
  },
  "coverage_limit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "name": "Apple, Inc",
  "required_coverage": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  },
  "id": "en_Ah3tqYn",
  "created": 1646818386
}

Retrieve an entity

GET /api/v1/entities/{entity_id}

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

Body
  • entity Required / string

    The ID of the desired entity.

Responses
  • 200 object

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

    • address object

      The contracting entity's address.

      • 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.

      • aggregate_limit Required / integer

        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 Required / integer

        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)
    • id object

      Unique identifier for the object.

    • name string

      The contracting entity's legal name.

      • coverage_type Required / 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.

GET /api/v1/entities/{entity_id}
curl \
 -X GET https://api.1099policy.com/api/v1/entities/{entity_id} \
 -H "Content-Type: application/json" \
 -d '{"entity":"en_Ah3tqYn"}'
Request example
{
  "entity": "en_Ah3tqYn"
}
Response example (200)
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "coverage_lmiit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "created": 1646818364,
  "id": "en_Ah3tqYn",
  "name": "Apple, Inc",
  "required_coverage": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  }
}

Update an entity

PUT /api/v1/entities/{entity_id}

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
eneity creation call.

Body
  • address object

    The contracting entity's address.

    • 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.

    • aggregate_limit Required / integer

      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 Required / integer

      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)
  • id object

    Unique identifier for the object.

  • name string

    The contracting entity's legal name.

    • coverage_type Required / 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.

Responses
  • 200 object

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

    • address object

      The contracting entity's address.

      • 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.

      • aggregate_limit Required / integer

        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 Required / integer

        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)
    • id object

      Unique identifier for the object.

    • name string

      The contracting entity's legal name.

      • coverage_type Required / 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.

PUT /api/v1/entities/{entity_id}
curl \
 -X PUT https://api.1099policy.com/api/v1/entities/{entity_id} \
 -H "Content-Type: application/json" \
 -d '{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"coverage_lmiit":{"aggregate_limit":200000000,"occurrence_limit":100000000},"created":1646818364,"id":"en_Ah3tqYn","name":"Apple, Inc","required_coverage":{"coverage_type":["general","workers-comp"]}}'
Request example
{
  "address": {
    "country": "null",
    "line1": "92 Geary St",
    "line2": "null",
    "locality": "San Francisco",
    "postalcode": 94114,
    "region": "CA"
  },
  "coverage_lmiit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "created": 1646818364,
  "id": "en_Ah3tqYn",
  "name": "Apple, Inc",
  "required_coverage": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  }
}
Response example (200)
{
  "address": {
    "line1": "One Apple Park Way",
    "locality": "Cupertino",
    "postalcode": 95014,
    "region": "CA"
  },
  "coverage_limit": {
    "aggregate_limit": 200000000,
    "occurrence_limit": 100000000
  },
  "name": "Apple, Inc",
  "required_coverage": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  }
}

Delete an entity

DELETE /api/v1/entities/{entity_id}

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

Body
  • entity Required / string

    The ID of the desired entity.

Responses
  • 200 object

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

DELETE /api/v1/entities/{entity_id}
curl \
 -X DELETE https://api.1099policy.com/api/v1/entities/{entity_id} \
 -H "Content-Type: application/json" \
 -d '{"entity":"en_Ah3tqYn"}'
Request example
{
  "entity": "en_Ah3tqYn"
}
Response example (200)
{
  "deleted": true,
  "deleted_at": "(now)",
  "id": "en_Ah3tqYn",
  "object": "entity"
}

List all jobs

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.

Body
  • limit integer

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

Responses
  • 200 array[object]

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

    • 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 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)
    • 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 object

      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.

      Minimum value is 100.

    • One of flatfee, hourly, unit or blended.

      Values are flatfee, hourly, unit, or blended.

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

GET /api/v1/jobs
curl \
 -X GET https://api.1099policy.com/api/v1/jobs \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "category_code": "jc_MTqpkbkp6G",
    "created": 1646818364,
    "description": "BMW engine diagnostics and troubleshooting.",
    "entity": "en_C9Z2DmfHSF",
    "id": "jb_jsb9KEcTpc",
    "name": "Mechanic technician",
    "wage": 1500,
    "wage_type": "flatfee",
    "years_experience": 5
  }
]

Create a job

POST /api/v1/jobs

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

Body
  • description Required / string

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

  • entity Required / string

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

  • name Required / string

    The name of the contractor job role.

  • wage Required / integer

    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 Required / string

    One of flatfee, hourly, unit or blended.

    Values are flatfee, hourly, unit, or blended.

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

Responses
  • 201 object

    Returns the job object if the post succeeded.

    • 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 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)
    • 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 object

      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.

      Minimum value is 100.

    • One of flatfee, hourly, unit or blended.

      Values are flatfee, hourly, unit, or blended.

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

POST /api/v1/jobs
curl \
 -X POST https://api.1099policy.com/api/v1/jobs \
 -H "Content-Type: application/json" \
 -d '{"category_code":"jc_MTqpkbkp6G","description":"Install fiber optic cable from back to the front of the store.","entity":"en_Ah3tqYn","name":"Field technician","wage":15000,"wage_type":"flatfee","years_experience":10}'
Request example
{
  "category_code": "jc_MTqpkbkp6G",
  "description": "Install fiber optic cable from back to the front of the store.",
  "entity": "en_Ah3tqYn",
  "name": "Field technician",
  "wage": 15000,
  "wage_type": "flatfee",
  "years_experience": 10
}
Response example (201)
{
  "category_code": "jc_MTqpkbkp6G",
  "description": "Install fiber optic cable from back to the front of the store.",
  "entity": "en_Ah3tqYn",
  "name": "Field technician",
  "wage": 15000,
  "wage_type": "flatfee",
  "years_experience": 10,
  "id": "jb_jsb9KEcTpc",
  "created": 1646818386
}

Retrieve a job

GET /api/v1/jobs/{job_id}

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.

Body
  • job string

    The ID of the desired job.

Responses
  • 200 object

    Returns a job object if a valid ID was provided.

    • 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 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)
    • 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 object

      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.

      Minimum value is 100.

    • One of flatfee, hourly, unit or blended.

      Values are flatfee, hourly, unit, or blended.

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

GET /api/v1/jobs/{job_id}
curl \
 -X GET https://api.1099policy.com/api/v1/jobs/{job_id} \
 -H "Content-Type: application/json" \
 -d '{"job":"jb_jsb9KEcTpc"}'
Request example
{
  "job": "jb_jsb9KEcTpc"
}
Response example (200)
{
  "category_code": "jc_MTqpkbkp6G",
  "description": "Install fiber optic cable from back to the front of the store.",
  "entity": "en_Ah3tqYn",
  "name": "Field technician",
  "wage": 15000,
  "wage_type": "flatfee",
  "years_experience": 10,
  "id": "jb_jsb9KEcTpc"
}

Update a job

PUT /api/v1/jobs/{job_id}

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

Body
  • 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 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)
  • 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 object

    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.

    Minimum value is 100.

  • One of flatfee, hourly, unit or blended.

    Values are flatfee, hourly, unit, or blended.

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

Responses
  • 200 object

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

    • 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 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)
    • 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 object

      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.

      Minimum value is 100.

    • One of flatfee, hourly, unit or blended.

      Values are flatfee, hourly, unit, or blended.

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

PUT /api/v1/jobs/{job_id}
curl \
 -X PUT https://api.1099policy.com/api/v1/jobs/{job_id} \
 -H "Content-Type: application/json" \
 -d '{"category_code":"jc_MTqpkbkp6G","created":1646818364,"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}'
Request example
{
  "category_code": "jc_MTqpkbkp6G",
  "created": 1646818364,
  "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
}
Response example (200)
{
  "category_code": "jc_MTqpkbkp6G",
  "description": "Install fiber optic cable from back to the front of the store.",
  "entity": "en_Ah3tqYn",
  "name": "Field technician",
  "wage": 15000,
  "wage_type": "flatfee",
  "years_experience": 10,
  "id": "jb_jsb9KEcTpc"
}

Delete a job

DELETE /api/v1/jobs/{job_id}

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

Body
  • job string

    The ID of the job to delete.

Responses
  • 200 object

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

DELETE /api/v1/jobs/{job_id}
curl \
 -X DELETE https://api.1099policy.com/api/v1/jobs/{job_id} \
 -H "Content-Type: application/json" \
 -d '{"job":"jb_jsb9KEcTpc"}'
Request example
{
  "job": "jb_jsb9KEcTpc"
}
Response example (200)
{
  "deleted": true,
  "deleted_at": "(now)",
  "id": "jb_jsb9KEcTpc",
  "object": "job"
}

List all quotes

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.

Body
  • limit integer

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

Responses
  • 200 array[object]

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

    • contractor object

      A Contractor object represents the contractors 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.

      • address object

        The contractor's home address.

        • 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)
      • email string

        The contractor's email address.

      • first_name string

        The contractor's first name.

      • id object

        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.

    • coverage_type object
      • coverage_type Required / 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.

    • created integer(int64)
    • effective_date string(int64)

      The date when the insurance coverage is set to take effect. This date must be set in the future.

    • eligible boolean

      Indicates whether a contractor is elgible for insurance or not.

      Default value is true.

    • id object

      Unique identifier for the object.

    • job object

      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.

      • 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 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)
      • 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 object

        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.

        Minimum value is 100.

      • One of flatfee, hourly, unit or blended.

        Values are flatfee, hourly, unit, or blended.

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

    • 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).

      Minimum value is 50.

GET /api/v1/quotes
curl \
 -X GET https://api.1099policy.com/api/v1/quotes \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "contractor": "cn_Ehb3bYa",
    "coverage_type": [
      "general",
      "workers-comp"
    ],
    "created": 1646818364,
    "eligible": true,
    "id": "qt_5DciVga8Kt",
    "job": "jb_jsb9KEcTpc",
    "net_rate": 65
  }
]

Create a quote

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.

Body
  • contractor Required / string

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

  • coverage_type Required / 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.

  • effective_date string(int64)

    The date when the insurance coverage is set to take effect. This date must be set in the future.

  • job Required / string

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

Responses
  • 201 object

    Returns the quote object if the post succeeded.

    • contractor object

      A Contractor object represents the contractors 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.

      • address object

        The contractor's home address.

        • 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)
      • email string

        The contractor's email address.

      • first_name string

        The contractor's first name.

      • id object

        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.

    • coverage_type object
      • coverage_type Required / 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.

    • created integer(int64)
    • effective_date string(int64)

      The date when the insurance coverage is set to take effect. This date must be set in the future.

    • eligible boolean

      Indicates whether a contractor is elgible for insurance or not.

      Default value is true.

    • id object

      Unique identifier for the object.

    • job object

      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.

      • 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 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)
      • 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 object

        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.

        Minimum value is 100.

      • One of flatfee, hourly, unit or blended.

        Values are flatfee, hourly, unit, or blended.

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

    • 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).

      Minimum value is 50.

POST /api/v1/quotes
curl \
 -X POST https://api.1099policy.com/api/v1/quotes \
 -H "Content-Type: application/json" \
 -d '{"contractor":"cn_Ehb3bYa","coverage_type":["general","workers-comp"],"job":"jb_jsb9KEcTpc"}'
Request example
{
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [
    "general",
    "workers-comp"
  ],
  "job": "jb_jsb9KEcTpc"
}
Response example (201)
{
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [
    "general",
    "workers-comp"
  ],
  "job": "jb_jsb9KEcTpc",
  "id": "qt_5DciVga8Kt",
  "created": 1646818386,
  "net_rate": 65,
  "eligible": true
}

Retrieve a quote

GET /api/v1/quotes/{quote_id}

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.

Body
  • quote Required / string

    The identifier of the quote to be retrieved.

Responses
  • 200 object

    Returns a quote object if a valid identifier was provided.

    • contractor object

      A Contractor object represents the contractors 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.

      • address object

        The contractor's home address.

        • 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)
      • email string

        The contractor's email address.

      • first_name string

        The contractor's first name.

      • id object

        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.

    • coverage_type object
      • coverage_type Required / 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.

    • created integer(int64)
    • effective_date string(int64)

      The date when the insurance coverage is set to take effect. This date must be set in the future.

    • eligible boolean

      Indicates whether a contractor is elgible for insurance or not.

      Default value is true.

    • id object

      Unique identifier for the object.

    • job object

      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.

      • 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 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)
      • 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 object

        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.

        Minimum value is 100.

      • One of flatfee, hourly, unit or blended.

        Values are flatfee, hourly, unit, or blended.

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

    • 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).

      Minimum value is 50.

GET /api/v1/quotes/{quote_id}
curl \
 -X GET https://api.1099policy.com/api/v1/quotes/{quote_id} \
 -H "Content-Type: application/json" \
 -d '{"quote":"qt_5DciVga8Kt"}'
Request example
{
  "quote": "qt_5DciVga8Kt"
}
Response example (200)
{
  "contractor": "cn_Ehb3bYa",
  "coverage_type": [
    "general",
    "workers-comp"
  ],
  "job": "jb_jsb9KEcTpc",
  "id": "qt_5DciVga8Kt",
  "created": 1646818386,
  "net_rate": 65
}

Update a quote

PUT /api/v1/quotes/{quote_id}

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

Body
  • contractor object

    A Contractor object represents the contractors 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.

    • address object

      The contractor's home address.

      • 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)
    • email string

      The contractor's email address.

    • first_name string

      The contractor's first name.

    • id object

      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.

  • coverage_type object
    • coverage_type Required / 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.

  • created integer(int64)
  • effective_date string(int64)

    The date when the insurance coverage is set to take effect. This date must be set in the future.

  • eligible boolean

    Indicates whether a contractor is elgible for insurance or not.

    Default value is true.

  • id object

    Unique identifier for the object.

  • job object

    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.

    • 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 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)
    • 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 object

      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.

      Minimum value is 100.

    • One of flatfee, hourly, unit or blended.

      Values are flatfee, hourly, unit, or blended.

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

  • 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).

    Minimum value is 50.

Responses
  • 200 object

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

    • contractor object

      A Contractor object represents the contractors 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.

      • address object

        The contractor's home address.

        • 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)
      • email string

        The contractor's email address.

      • first_name string

        The contractor's first name.

      • id object

        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.

    • coverage_type object
      • coverage_type Required / 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.

    • created integer(int64)
    • effective_date string(int64)

      The date when the insurance coverage is set to take effect. This date must be set in the future.

    • eligible boolean

      Indicates whether a contractor is elgible for insurance or not.

      Default value is true.

    • id object

      Unique identifier for the object.

    • job object

      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.

      • 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 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)
      • 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 object

        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.

        Minimum value is 100.

      • One of flatfee, hourly, unit or blended.

        Values are flatfee, hourly, unit, or blended.

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

    • 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).

      Minimum value is 50.

PUT /api/v1/quotes/{quote_id}
curl \
 -X PUT https://api.1099policy.com/api/v1/quotes/{quote_id} \
 -H "Content-Type: application/json" \
 -d '{"contractor":{"address":{"country":"null","line1":"92 Geary St","line2":"null","locality":"San Francisco","postalcode":94114,"region":"CA"},"company_name":"Acme Co.","created":1646818364,"email":"parker@gmail.com","first_name":"Joe","id":"cn_Ehb3bYa","last_name":"Parker","middle_name":"null","phone":"415-474-9088"},"coverage_type":{"coverage_type":["general","workers-comp"]},"created":1646818364,"effective_date":1646818364,"eligible":true,"id":"qt_5DciVga8Kt","job":{"category_code":"jc_MTqpkbkp6G","created":1646818364,"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},"net_rate":42}'
Request example
{
  "contractor": {
    "address": {
      "country": "null",
      "line1": "92 Geary St",
      "line2": "null",
      "locality": "San Francisco",
      "postalcode": 94114,
      "region": "CA"
    },
    "company_name": "Acme Co.",
    "created": 1646818364,
    "email": "parker@gmail.com",
    "first_name": "Joe",
    "id": "cn_Ehb3bYa",
    "last_name": "Parker",
    "middle_name": "null",
    "phone": "415-474-9088"
  },
  "coverage_type": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  },
  "created": 1646818364,
  "effective_date": 1646818364,
  "eligible": true,
  "id": "qt_5DciVga8Kt",
  "job": {
    "category_code": "jc_MTqpkbkp6G",
    "created": 1646818364,
    "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
  },
  "net_rate": 42
}
Response example (200)
{
  "contractor": {
    "address": {
      "country": "null",
      "line1": "92 Geary St",
      "line2": "null",
      "locality": "San Francisco",
      "postalcode": 94114,
      "region": "CA"
    },
    "company_name": "Acme Co.",
    "created": 1646818364,
    "email": "parker@gmail.com",
    "first_name": "Joe",
    "id": "cn_Ehb3bYa",
    "last_name": "Parker",
    "middle_name": "null",
    "phone": "415-474-9088"
  },
  "coverage_type": {
    "coverage_type": [
      "general",
      "workers-comp"
    ]
  },
  "created": 1646818364,
  "effective_date": 1646818364,
  "eligible": true,
  "id": "qt_5DciVga8Kt",
  "job": {
    "category_code": "jc_MTqpkbkp6G",
    "created": 1646818364,
    "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
  },
  "net_rate": 42
}

List all policies

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.

Body
  • limit integer

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

Responses
  • 200 array[object]

    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.

    • created integer(int64)
    • effective_date integer(int64)

      A timestamp used to determine the insurance policy start date.

    • expiration_date integer(int64)

      A timestemp used to determine the insurance policy end date.

    • id object

      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.

    • One of active, cancelled, or expired.

      Values are active, cancelled, or expired.

GET /api/v1/policies
curl \
 -X GET https://api.1099policy.com/api/v1/policies \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "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"
  }
]

Create a policy

POST /api/v1/policies

Creates a new policy object.

Body
  • A timestamp used to determine the insurance policy start date.

  • A timestemp used to determine the insurance policy end date.

  • quote Required / string

    The ID of the quote used to create the policy.

Responses
  • 201 object

    Returns the policy object if the post succeeded.

    • created integer(int64)
    • effective_date integer(int64)

      A timestamp used to determine the insurance policy start date.

    • expiration_date integer(int64)

      A timestemp used to determine the insurance policy end date.

    • id object

      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.

    • One of active, cancelled, or expired.

      Values are active, cancelled, or expired.

POST /api/v1/policies
curl \
 -X POST https://api.1099policy.com/api/v1/policies \
 -H "Content-Type: application/json" \
 -d '{"effective_date":1646818364,"expiration_date":1678334737,"quote":"qt_5DciVga8Kt"}'
Request example
{
  "effective_date": 1646818364,
  "expiration_date": 1678334737,
  "quote": "qt_5DciVga8Kt"
}
Response example (201)
{
  "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

GET /api/v1/policies/{policy_id}

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.

Body
  • policy Required / string

    The ID of the desired policy.

Responses
  • 200 object

    Returns a policy object if a valid ID was provided.

    • created integer(int64)
    • effective_date integer(int64)

      A timestamp used to determine the insurance policy start date.

    • expiration_date integer(int64)

      A timestemp used to determine the insurance policy end date.

    • id object

      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.

    • One of active, cancelled, or expired.

      Values are active, cancelled, or expired.

GET /api/v1/policies/{policy_id}
curl \
 -X GET https://api.1099policy.com/api/v1/policies/{policy_id} \
 -H "Content-Type: application/json" \
 -d '{"policy":"pl_WzFRszJhoY"}'
Request example
{
  "policy": "pl_WzFRszJhoY"
}
Response example (200)
{
  "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"
}

Update a policy

PUT /api/v1/policies/{policy_id}

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.

Body
  • created integer(int64)
  • effective_date integer(int64)

    A timestamp used to determine the insurance policy start date.

  • expiration_date integer(int64)

    A timestemp used to determine the insurance policy end date.

  • id object

    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.

  • One of active, cancelled, or expired.

    Values are active, cancelled, or expired.

Responses
  • 200 object

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

    • created integer(int64)
    • effective_date integer(int64)

      A timestamp used to determine the insurance policy start date.

    • expiration_date integer(int64)

      A timestemp used to determine the insurance policy end date.

    • id object

      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.

    • One of active, cancelled, or expired.

      Values are active, cancelled, or expired.

PUT /api/v1/policies/{policy_id}
curl \
 -X PUT https://api.1099policy.com/api/v1/policies/{policy_id} \
 -H "Content-Type: application/json" \
 -d '{"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"}'
Request example
{
  "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"
}
Response example (200)
{
  "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"
}

Delete a policy

DELETE /api/v1/policies/{policy_id}

Permanently deletes a policy. Deleting a policy immediately cancels
the insurance coverage for the contractor.

Body
Responses
  • 200 object

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

DELETE /api/v1/policies/{policy_id}
curl \
 -X DELETE https://api.1099policy.com/api/v1/policies/{policy_id} \
 -H "Content-Type: application/json" \
 -d '{"policy":"string"}'
Request example
{
  "policy": "string"
}
Response example (200)
{
  "deleted": true,
  "deleted_at": "(now)",
  "id": "pl_WzFRszJhoY",
  "object": "policy"
}

List all sessions

GET /api/v1/apply/sessions

Returns a list of insurance application Sessions.

Body
  • limit integer

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

Responses
  • 200 array[object]

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

    • 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)
    • id object

      Unique identifier for the object.

    • quote string

      The ID of the quote 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.

    • 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.

GET /api/v1/apply/sessions
curl \
 -X GET https://api.1099policy.com/api/v1/apply/sessions \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "cancel_url": "https://1099jobcloud.com/1099policy/cancel",
    "created": 1646818364,
    "id": "ias_01FZCHXE7KNQHE1T3S8AXG2QZE",
    "quote": "qt_5DciVga8Kt",
    "success_url": "https://1099jobcloud.com/1099policy/success",
    "url": "http://apply.1099policy.com?..."
  }
]

Create a session

POST /api/v1/apply/sessions

Creates a session object.

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.

  • quote Required / string

    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 object

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

    • 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)
    • id object

      Unique identifier for the object.

    • quote string

      The ID of the quote 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.

    • 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.

POST /api/v1/apply/sessions
curl \
 -X POST https://api.1099policy.com/api/v1/apply/sessions \
 -H "Content-Type: application/json" \
 -d '{"cancel_url":"https://1099jobcloud.com/1099policy/cancel","quote":"qt_5DciVga8Kt","success_url":"https://1099jobcloud.com/1099policy/success"}'
Request example
{
  "cancel_url": "https://1099jobcloud.com/1099policy/cancel",
  "quote": "qt_5DciVga8Kt",
  "success_url": "https://1099jobcloud.com/1099policy/success"
}
Response example (201)
{
  "cancel_url": "https://1099jobcloud.com/1099policy/cancel",
  "quote": "qt_5DciVga8Kt",
  "success_url": "https://1099jobcloud.com/1099policy/success",
  "id": "ias_01FVCHXE7PNQHA1T3S2AXL2QZE",
  "created": 1646818386
}

Retrieve a session

GET /api/v1/apply/sessions/{session_id}

Retrieves the insurance application session with the given ID.

Body
  • session Required / string

    The ID of the desired session.

Responses
  • 200 object

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

    • 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)
    • id object

      Unique identifier for the object.

    • quote string

      The ID of the quote 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.

    • 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.

GET /api/v1/apply/sessions/{session_id}
curl \
 -X GET https://api.1099policy.com/api/v1/apply/sessions/{session_id} \
 -H "Content-Type: application/json" \
 -d '{"session":"ias_01FVCHXE7PNQHA1T3S2AXL2QZE"}'
Request example
{
  "session": "ias_01FVCHXE7PNQHA1T3S2AXL2QZE"
}
Response example (200)
{
  "cancel_url": "https://1099jobcloud.com/1099policy/cancel",
  "quote": "qt_5DciVga8Kt",
  "success_url": "https://1099jobcloud.com/1099policy/success",
  "id": "ias_01FVCHXE7PNQHA1T3S2AXL2QZE",
  "created": 1646818386
}

List all invoices

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.

Body
  • limit integer

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

Responses
  • 200 array[object]

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

    • contractor string

      ID of the contractor.

    • created integer(int64)
    • 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 1000 cents US.

      Minimum value is 1000.

    • id object

      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.

    • paycycle_startdate integer(int64)

      Pay period start date.

    • 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.

GET /api/v1/invoices
curl \
 -X GET https://api.1099policy.com/api/v1/invoices \
 -H "Content-Type: application/json" \
 -d '{"limit":25}'
Request example
{
  "limit": 25
}
Response example (200)
[
  {
    "contractor": "cn_Ehb3bYa",
    "created": 1646818364,
    "gross_pay": 250000,
    "id": "in_4RviYgc2Wt",
    "job": "jb_jsb9KEcTpc",
    "paycycle_enddate": 1678334737,
    "paycycle_startdate": 1646818364,
    "premium_due": 4325
  }
]

Create an invoice

POST /api/v1/invoices

This endpoint creates an invoice that reflects the insurance premium
owed by the contractor for the specified pay period.

Body
  • contractor Required / string

    ID of the contractor

  • gross_pay Required / integer

    The gross pay that the contractor earned in the last pay period.

  • job Required / string

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

  • paycycle_enddate Required / integer

    Pay period end date.

  • paycycle_startdate Required / integer

    Pay period start date.

Responses
  • 201 object

    Returns the invoice object if the post succeeded.

    • contractor string

      ID of the contractor.

    • created integer(int64)
    • 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 1000 cents US.

      Minimum value is 1000.

    • id object

      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.