ten99policy Node.js Library
A Node.js library for interacting with the 1099Policy API.

Overview
The ten99policy library provides a simple and intuitive way to integrate 1099Policy's services into your Node.js applications. It allows you to manage entities, contractors, jobs, policies, quotes, assignments, invoices, and insurance application sessions through the 1099Policy API.
Table of Contents
Installation
Install the package using npm:
npm install ten99policy
Configuration
Before using the library, configure it with your API credentials and settings.
const Ten99Policy = require('ten99policy');
const ten99policy = new Ten99Policy({
key: 'your_api_key_here',
environment: 'production',
logCurl: true,
});
Configuration Parameters:
key: Your API key for authentication.
environment: The API environment to use ('production' or 'sandbox').
logCurl: Whether to log CURL commands for debugging (true or false).
Usage
Entities
Creating an Entity
ten99policy.entities
.create({
name: 'Brooklyn Bowl',
coverage_limit: {
aggregate_limit: '200000000',
occurrence_limit: '100000000',
},
address: {
line1: '3639 18th St',
locality: 'San Francisco',
region: 'CA',
postalcode: '94110',
},
required_coverage: ['general', 'workers-comp'],
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating an Entity
ten99policy.entities
.update('en_C9Z2DmfHSF', {
name: 'California Roll',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Entities
ten99policy.entities
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving an Entity
ten99policy.entities
.retrieve('en_BUcNa8jMrq')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Deleting an Entity
ten99policy.entities
.del('en_C9Z2DmfHSF')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Contractors
Creating a Contractor
ten99policy.contractors
.create({
first_name: 'John',
last_name: 'Doe',
email: 'john@doe.com',
phone: '415-111-1111',
tax_identification: '123-456789',
address: {
country: 'USA',
line1: '2211 Mission St',
locality: 'San Francisco',
region: 'CA',
postalcode: '94110',
},
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating a Contractor
ten99policy.contractors
.update('cn_tS3wR3UQ5q', {
email: 'john.doe@gmail.com',
first_name: 'George',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Contractors
ten99policy.contractors
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving a Contractor
ten99policy.contractors
.retrieve('cn_9TPKz6B9so')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Deleting a Contractor
ten99policy.contractors
.del('cn_tS3wR3UQ5q')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Insurance Application Sessions
Creating an Insurance Application Session
ten99policy.applicationSessions
.create({
quote: 'qt_yVEnbNaWh6',
success_url: 'http://example.com/success',
cancel_url: 'http://example.com/cancel',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating a Session
ten99policy.applicationSessions
.update('ias_01HZSB299T5D9SCNY98T8P10KC', {
success_url: 'http://example.com/success',
cancel_url: 'http://example.com/cancel',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Insurance Application Sessions
ten99policy.applicationSessions
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving an Insurance Application Session
ten99policy.applicationSessions
.retrieve('ias_01HZSB299T5D9SCNY98T8P10KC')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Jobs
Creating a Job
ten99policy.jobs
.create({
name: 'Truck driver',
description: 'Requires a truck',
duration_hours: 20,
wage: 100,
years_experience: 20,
wage_type: 'flatfee',
entity: 'en_FwZfQRe4aW',
category_code: 'jc_MTqpkbkp6G',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating a Job
ten99policy.jobs
.update('jb_C9Z2DmfHSF', {
name: 'Mechanic',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Jobs
ten99policy.jobs
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving a Job
ten99policy.jobs
.retrieve('jb_C9Z2DmfHSF')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Deleting a Job
ten99policy.jobs
.del('jb_C9Z2DmfHSF')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Policies
Creating a Policy
ten99policy.policies
.create({
quote_id: 'qt_UPmEfS6nNK',
is_active: true,
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating a Policy
ten99policy.policies
.update('po_C9Z2DmfHSF', {
is_active: false,
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Policies
ten99policy.policies
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving a Policy
ten99policy.policies
.retrieve('po_C9Z2DmfHSF')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Deleting a Policy
ten99policy.policies
.del('po_C9Z2DmfHSF')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Quotes
Creating a Quote
ten99policy.quotes
.create({
job: 'jb_jsb9KEcTpc',
contractor: 'cn_yJBbMeq9QA',
coverage_type: ['general', 'workers-comp'],
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating a Quote
ten99policy.quotes
.update('qt_C9Z2DmfHSF', {
name: 'Mechanic',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Quotes
ten99policy.quotes
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving a Quote
ten99policy.quotes
.retrieve('qt_C9Z2DmfHSF')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Assignments
Creating an Assignment
ten99policy.assignments
.create({
contractor: 'cn_kjLKMtApTv',
job: 'jb_D6ZSaoa2MV',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating an Assignment
ten99policy.assignments
.update('an_sF3yUB3BYY', {
contractor: 'cn_kjLKMtApTv',
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Assignments
ten99policy.assignments
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving an Assignment
ten99policy.assignments
.retrieve('as_sF3yUB3BYY')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Deleting an Assignment
ten99policy.assignments
.del('as_xyz')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Invoices
Creating an Invoice
ten99policy.invoices
.create({
contractor: 'cn_AWcQPecvx5',
job: 'jb_jW24jp6GYb',
gross_pay: 1000,
paycycle_startdate: 1725494400,
paycycle_enddate: 1735494400,
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Updating an Invoice
ten99policy.invoices
.update('in_m47rNFQ3PS', {
gross_pay: 1500,
})
.then((response) => console.log(response))
.catch((error) => console.error(error));
Fetching the List of Invoices
ten99policy.invoices
.list()
.then((response) => console.log(response))
.catch((error) => console.error(error));
Retrieving an Invoice
ten99policy.invoices
.retrieve('in_m47rNFQ3PS')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Deleting an Invoice
ten99policy.invoices
.del('in_m47rNFQ3PS')
.then((response) => console.log(response))
.catch((error) => console.error(error));
Error Handling
The ten99policy library uses a promise-based structure and provides specific error classes for handling different error types. Handle potential errors using .catch() blocks and by checking the instance of the error.
const { InvalidInputError, GeneralError } = require('ten99policy');
ten99policy.entities
.create({
name: 'New Entity',
})
.then((response) => console.log(response))
.catch((error) => {
if (error instanceof InvalidInputError) {
console.error('Invalid input provided:', error.message);
} else if (error instanceof GeneralError) {
console.error('A general error occurred:', error.message);
} else {
console.error('An unexpected error occurred:', error.message);
}
});
Additional Resources
Support
If you encounter any issues or have questions about using the ten99policy library, please open an issue on the GitHub repository or contact our support team at support@1099policy.com.
License
This library is distributed under the MIT License. See the LICENSE file in the repository for more information.
Note: Replace placeholder IDs (e.g., "en_C9Z2DmfHSF") with actual IDs from your 1099Policy account when running the code examples.