Introduction
Welcome to the setup and API documentation for Quote & Apply.
Quote & Apply Setup
Website Setup
Below you will find instructions detailing how to put Quote & Apply on your website.
<!doctype html>
</html>
<head>
<title>My Website!!!</title>
</head>
<body>
<p>This is my website.</p>
</body>
</html>
Determine where you wish to place Quote & Apply. In this website, we wish to place Quote & Apply inside the box represented by the black border.
<!doctype html>
</html>
<head>
<title>My Website!!!</title>
</head>
<body>
<p>This is my website.</p>
<div id="container-id"></div><div><script id="strife" src="https://strife.back9ins.com/production/strife.js" data-strife-key="GpIZ3clg5x96WSR_" data-strife-container-id="container-id"></script></div>
</body>
</html>
That’s it! Save your changes and open your webpage. With our example, it should look something like this:
The following example details how you can use open Quote & Apply via a button and have it appear as a modal.
Place the code for your button where you want it to appear:
<!doctype html>
</html>
<head>
<title>My Website!!!</title>
</head>
<body>
<p>This is my website.</p>
<img src="https://s3-us-west-2.amazonaws.com/portal-pictures/backnine.png">
</body>
</html>
<!doctype html>
</html>
<head>
<title>My Website!!!</title>
</head>
<body>
<p>This is my website.</p>
<img class="strife-button" src="https://s3-us-west-2.amazonaws.com/portal-pictures/backnine.png">
</body>
</html>
In this example, the BackNine logo will be the trigger to open Quote & Apply. To bind this button to the application, add the CSS class “strife-button”:
Now place your unique Quote & Apply snippet anywhere below that button and above the </body>
tag and remove the data-strife-container-id attribute.
<!doctype html>
</html>
<head>
<title>My Website!!!</title>
</head>
<body>
<p>This is my website.</p>
<img class="strife-button" src="https://s3-us-west-2.amazonaws.com/portal-pictures/backnine.png">
<script
id="strife"
src="https://strife.back9ins.com/production/strife.js"
data-strife-key="SAMPLE"
></script>
</body>
</html>
Clicking the image should now result in opening Quote & Apply within a modal.
The following example details how you can setup Quote & Apply using Wordpress.
Log in to your WordPress site as admin. You should arrive at the Dashboard.
Go to your list of pages.
Find the page you wish to use Quote & Apply on. Click “Edit”. You should arrive at on some sort of editor that allows you to edit the content of the page.
Find and click on the “Text” mode at the top right of the editor. This will allow you to edit the content using HTML code.
Paste your snippet into the editor where you wish Quote & Apply to appear.
Image 6
Next, go to the “Publish” section and hit “Update”. The screen should refresh with a success message.
Click on “View page” to see your results.
BackNine Links
For customers without a website, or if adding to your website is too difficult (technically or due to compliance), BackNine links are usually the suggested implementation. When you create an account in BOSS, you’ll automatically be emailed a BackNine link, here’s an example BackNine Link: https://app.back9ins.com/apply/ReidTattersall. You can create as many BackNine Links as you like and also customize the name (e.g. https://app.back9ins.com/apply/AgencyName). To create a BackNine Link, log into BOSS > Quote & Apply > Setup > type in the name you’d like to use > your BackNine Link will be instantly available.
Custom Domain Links
Starting 10/17/2018, 👏 for customers with a website and with a significant amount of agents, Custom Domain Links allow your agents to use Quote & Apply on your domain (e.g. https://app.yourdomain.com/AgentName instead of https://app.back9ins.com/apply/AgentName) and don’t require you to set up webpages for your agents. To set this up, log into your domain’s DNS settings (e.g. GoDaddy), type in a subdomain (e.g. app) and point it to subdomain.yourdomain.herokudns.com (e.g. app.google.herokudns.com). Notify [email protected] once you’ve saved your DNS changes and we’ll make a change so that you can create links within BOSS > Quote & Apply > Setup with your custom domain. An example use case is a P&C agency with 200 agents, rather than embedding Quote & Apply into 200 pages, simply add the agents into BOSS and they will automatically be emailed a Quote & Apply website on your domain.
Analytics
Google Analytics
To view your session data within your Google Analytics account, log into BOSS > Quote & Apply > Setup > edit a specific Quote & Apply instance, and insert your Google Analytics ID. If you’d like to utilize our pre-built conversion funnel reports (shown in the image below), navigate to the Google Analytics Solutions Gallery > search for “Quote & Apply - Application Complete and Lead Created Funnel Goals” > click import next to the result authored by reidtattersall.
You should immediately see session data within your Google Analytics account. After 24 hours, you should see data within your Google Analytics reports (see screenshot) which is located in Google Analytics > Conversions > Goals > Funnel Visualization.
Google Tag Manager
To add your Google Tag Manager ID, log into BOSS > Quote & Apply > Setup and insert your Google Tag Manager ID. Import this container into your GTM account.
We will not report to your Google Analytics account if you insert a Google Tag Manager ID. If you want to utilize Google Analytics and Google Tag Manager, please implement Google Analytics via Google Tag Manager.
API Setup
Both the user of this API and the writing agent must have an account on BOSS.
You will need to set up both your back end and your front end in order to use our API.
Endpoint
Our root API endpoint is:
https://app.back9ins.com/api/v1
All request endpoints must be prepended with the above root URL.
Authentication
Each request must contain an authentication header:
X-BACKNINE-AUTHENTICATION: your-api-key
We will provide you with an API key.
Pre-filling Quote & Apply
URL
https://www.intelligentquote.com?prefill&first_name=Test&last_name=Person
You can pre-fill via the URL.
<div id="container-id"></div>
<div>
<script
id="strife"
src="https://strife.back9ins.com/production/strife.js?prefill&npn=10790698&first_name=Test&last_name=Person&state=CA&gender=male&birthdate=1970-01-01&smoker=Never&step=non_med_slider&phone=(800) 790-1951&[email protected]"
data-strife-container-id="container-id"
></script>
</div>
You can also pre-fill using the snippet. Quote & Apply will load with the first and last name already filled on the application.
You can start a new Quote & Apply application using a URL with search parameters.
Search Parameters
These are the search parameters that will go at the end of the page.
Key | Acceptable Values/Format | Required? | Default | Description |
---|---|---|---|---|
prefill | None | Yes | Empty | The parameter indicating that Quote & Apply will be pre-filled. |
npn | Any number | Yes* | Empty | The NPN of the agent, unless you are using the default agent for the URL. |
first_name | Any | No | None | The insured’s first name. |
last_name | Any | No | None | The insured’s last name. |
gender | Male or Female |
No | None | The insured’s gender. If specified, must be either Male or Female . |
birthdate | YYYY-MM-DD |
No | None | The insured’s birthdate. Must be in YYYY-MM-DD format. |
state | No | State of user’s I.P. | The client’s state. Must be the two-letter abbreviation. If not specified, Quote & Apply will attempt to get the location by looking at the user’s I.P. | |
health | 1 through 5 |
No | None | The insured’s health, on a scale of 1 through 5. |
smoker | Never , Previously , or Currently |
No | None | The insured’s smoking status. |
height | Any number 50 through 83 | No | None | The insured’s height in inches. |
weight | Any number | No | None | The insured’s weight in lbs. |
Valid email | No | Empty | The insured’s email address | |
phone | Must contain 10 numbers. Numbers, spaces, parentheses, and dashes are accepted. | No | Empty | The insured’s phone number |
step | term_slider or non_med_slider or rop_term_slider or iul_slider or ul_with_ltc_slider or final_expense_slider or gul_slider |
No | None | The step to land on. |
term_face_amount | Any number 50000 through 10000000 | No | None | The desired face amount to be shown on the slider for Term, ROP Term, or GUL. |
final_expense_face_amount | Any number 5000 through 40000 | No | None | The desired face amount to be shown on the slider for Final Expense. |
iul_premium | Any number 100 through 50000 | No | None | The desired premium to be shown on the slider for IUL. |
ul_with_ltc_face_amount | Any number 50000 through 5000000 | No | None | The desired face amount to be shown on the slider for UL w/ LTC. |
accidental_death_face_amount | Any number 50000 through 500000 in increments of 50000 | No | None | The desired face amount to be shown on the accidental death step. |
Examples
https://www.intelligentquote.com?prefill&first_name=Mary&last_name=Sue&gender=Female&birthdate=1970-01-01&phone=(800) 790-1951&[email protected]
If you want to pre-fill an application for Mary Sue who was born Jan 1st, 1970, then direct them to the page listed at the right.
https://app.back9ins.com/apply/AgentName/AD?prefill&first_name=Mary&last_name=Sue&gender=Female&birthdate=1970-01-01&phone=(800) 790-1951&[email protected]
All agents have the following Quote & Apply websites with defaulted product_categories. You can dynamically set the agent by formatting the query string to match one of these examples. - https://app.back9ins.com/apply/AgentName - Has all products enabled - https://app.back9ins.coma/apply/AgentName/ltc_rider - Limited to only ul_with_ltc - https://app.back9ins.com/apply/AgentName/AD - Limited to only Accidental Death
If you want to pre-fill an application for Mary Sue who was born Jan 1st, 1970, sell accidental death, and you want to dynamically set the agent, then direct them to the page listed at the right.
Getting Quotes
Endpoint
POST https://app.back9ins.com/api/v1/quotes
Sample request
{
"quotes": [{
"face_amounts": [500000, 1000000],
"gender": "Male",
"birthdate": "1990-05-11",
"state": "CA",
"health": 3,
"smoker": "Previously",
"usages": [
{
"last_use_date": "2018-01-01",
"frequency": 2,
"category": "Cigarette"
}
],
"mode": 12,
"product_categories": ["10 Year Term", "15 Year Return of Premium Term"]
}]
}
Send an HTTPS POST request to the above route along with the request body in order to retrieve an array of quotes:
Key | Required | Notes |
---|---|---|
domain | true | will be deprecated in next version |
npn | true | will be deprecated in next version |
face_amounts | true | A list of the face amounts being quoted |
state | true | two digit state abbreviation |
mode | true | How many times per year the insured will be paying. Possible values are 1, 2, 4, or 12. |
health | true unless product_category = “Accidental Death”, “10 Year Non Medical Term”, “15 Year Non Medical Term”, “20 Year Non Medical Term”, “25 Year Non Medical Term”, “30 Year Non Medical Term”, “Final Expense” | |
smoker | true unless product_category = “Accidental Death” | The smoker status. Can be either Previously, Never, or Currently |
usages | false | A list of smoker information for the different types of smokable items. Leave empty or omit if smoker status is Never. |
product_categories | true | Possibilities: Accidental Death, 10 Year Non Medical Term, 10 Year Term, 15 Year Non Medical Term, 15 Year Return of Premium Term, 15 Year Term, 20 Year Non Medical Term, 20 Year Return of Premium Term, 20 Year Term, 25 Year Non Medical Term, 25 Year Return of Premium Term, 25 Year Term, 30 Year Non Medical Term, 30 Year Return of Premium Term, 30 Year Term, To Age 95, To Age 100, To Age 120. Final expense, IUL, and UL with Long Term Care are not currently supported. |
Usages
This section describes the usages array.
Key | Required | Notes |
---|---|---|
last_use_date | true if Previously, false otherwise | The last use date of the smoking item. |
frequency | true | Number of times per year that the smoker smokes this item. |
category | true | Type of smoked item. Can be Cigarette, eCigarette, Pipe, Chew, Cigar, Marijuana. |
Response format
{
"quotes": [
[
{
"carrier": {
"name": "Prudential Financial",
"avatar": "https://s3-us-west-2.amazonaws.com/portal-pictures/prudential_qa_logo.png",
"established_year": 1873
},
"product": {
"name": "Return Of Premium Term 15 (guar 15)",
"carrier_e_delivery": false
},
"face_amount": 500000,
"birthdate": "1990-05-11",
"category": "15 Year Return of Premium",
"original_category": "J:J3#30",
"product_category": "15 Year Return of Premium Term",
"premium": 366.48,
"annual_premium": 4399.45,
"mode": 12,
"health": 3,
"health_class": "Smoker",
"health_rating": "Rg",
"validated_rating": "Standard Tobacco"
},
{
"carrier": {
"name": "Banner",
"avatar": "https://s3-us-west-2.amazonaws.com/portal-pictures/MZJJPPDV.jpg",
"established_year": 1981
},
"product": {
"name": "OPTerm 10",
"carrier_e_delivery": false
},
"face_amount": 500000,
"birthdate": "1990-05-11",
"category": "10 Year Level Term Guaranteed",
"original_category": "3:J3#30",
"product_category": "10 Year Term",
"premium": 67.51,
"annual_premium": 784.99,
"mode": 12,
"health": 3,
"health_class": "Standard Tobacco",
"health_rating": "Rg",
"validated_rating": "Standard Tobacco"
},
{
"carrier": {
"name": "Prudential Financial",
"established_year": 1873
},
"product": {
"name": "Return Of Premium Term 15 (guar 15)",
"carrier_e_delivery": false
},
"face_amount": 1000000,
"birthdate": "1990-05-11",
"category": "15 Year Return of Premium",
"original_category": "J:J3#30",
"product_category": "15 Year Return of Premium Term",
"premium": 591.94,
"annual_premium": 7106,
"mode": 12,
"health": 3,
"health_class": "Smoker",
"health_rating": "Rg",
"validated_rating": "Standard Tobacco"
},
{
"carrier": {
"name": "Banner",
"avatar": "https://s3-us-west-2.amazonaws.com/portal-pictures/MZJJPPDV.jpg",
"strife_disclosure": "Banner Life Insurance Company, 3275 Bennett Creek Avenue, Frederick, MD 21704. Banner products are distributed in 49 states and in DC. William Penn products are available exclusively in New York. Banner does not solicit business in NY.",
"established_year": 1981
},
"product": {
"name": "OPTerm 10",
"carrier_e_delivery": false
},
"face_amount": 1000000,
"birthdate": "1990-05-11",
"category": "10 Year Level Term Guaranteed",
"original_category": "3:J3#30",
"product_category": "10 Year Term",
"premium": 125.56,
"annual_premium": 1459.99,
"mode": 12,
"health": 3,
"health_class": "Standard Tobacco",
"health_rating": "Rg",
"validated_rating": "Standard Tobacco"
}
]
]
}
If the request is successful, we will return quotes in an array of arrays under the top-level quotes
key of the JSON object.
Quote format
Each entry in the quotes
array will contain the following data:
Key | Type | Description |
---|---|---|
carrier | Object | |
product | Object | |
premiums | Object | An object describing all the possible premiums. It will consist of key-value pairs in which the keys are integer representations of the mode, and the values are the corresponding premiums. Currently we only return premiums for the monthly mode ("12" ). |
health_class | String | The carrier’s verbiage for the health class returned. |
Pre-filling Quote & Apply
You can use the data from the quotes to pre-fill your eApp with a selected quote (potentially chosen by the user). All you have to do is set the premium
, mode
, and product_id
returned from the quote response.
Accidental Death API
Endpoint
The endpoint for this action is as follows:
POST https://app.back9ins.com/api/v1/apply/accidental_death
Parameters
{
"eft": {
"account_type": "Checking",
"routing_number": "000000000",
"account_number": "0"
},
"electronic_application": {
"approved_domain_id": 1,
"face_amount": 500000,
"gender": "Male",
"birthdate": "1990-05-11",
"state": "CA",
"mode": 12,
"product_category": "Accidental Death",
"application_roles_attributes": [
{
"role": "Insured",
"ownable_attributes": {
"ownable_type": "Individual",
"first_name": "John",
"last_name": "Doe",
"gender": "Male",
"birthdate": "1990-05-11",
"email": "[email protected]",
"phone_mobile": "(123) 456-7890",
"ssn": "123-45-6789",
"birth_location": "FL",
"addresses_attributes": [
{
"address_type": "home",
"street_address": "1234 My Street",
"city": "Westlake Village",
"state": "CA",
"zip": "91362",
"country": "United States"
}
]
}
},
{
"role": "Primary Beneficiary",
"relationship": "Other",
"beneficiary_qualifier": "Percent",
"beneficiary_amount": 1,
"ownable_attributes": {
"ownable_type": "Entity",
"name": "Test Business",
"tin": "12-3456789",
"phone_work": "(123) 456-7890"
}
},
{
"role": "Contingent Beneficiary",
"relationship": "Grandfather",
"beneficiary_qualifier": "Percent",
"beneficiary_amount": 1,
"ownable_attributes": {
"ownable_type": "Individual",
"first_name": "Test",
"last_name": "Beneficiary",
"birthdate": "1950-05-11"
}
}
],
"electronic_application_cases_attributes": [
{
"product_id": 2645,
"status": "Active"
}
],
"editors_attributes": [{
"name": "Test Editor",
"email": "[email protected]"
}]
}
}
Send an HTTPS POST request to the above route along with the request body to generate an eApp session for your client.
Top-level parameters
These are the top-level JSON parameters you will be sending to our endpoint.
Key | Type | Requiredness | Description |
---|---|---|---|
electronic_application | Object | required | See parameters below. |
eft | Object | required | See parameters below. |
Electronic Application parameters
These describe the electronic_application
parameter listed above.
Key | Type | Requiredness | Default | Description |
---|---|---|---|---|
approved_domain_id | Number | required | null | The ID of the approved domain. Check BOSS to get the ID of the domain you wish to associate the eApp with. |
face_amount | Number | required | null | The face amount applied for. |
gender | String | required | null | The gender of the applicant. Must be “Male” or “Female”. |
birthdate | String | required | null | The birthdate in YYYY-MM-DD format. |
state | String | required | null | The 2 digit state abbreviation. |
mode | Number | required | 12 | A number representing the premium mode. Can be 12 (monthly), 4 (quarterly), 2 (semi-annually), or 1 (annually). |
test | Boolean | optional | * | Indicates whether this is a test eApp or a real eApp. Defaults to the value on the approved domain. Check BOSS to see the value for the domain you pass in. |
application_roles_attributes | Array | required | null | Creates roles such as “insured” on the policy. |
Application Roles parameters
These describe the application_roles_attributes
parameter listed above. You can use this parameter to pre-fill the insured’s info on the eApp. You also use this parameter to determine who will be the beneficiaries. You must have at least one primary beneficiary. The sum of all primary beneficiaries must add up to 1 (or 100%). The sum of all contingent beneficiaries must also add up to 1 (or 100%).
Key | Type | Requiredness | Default | Description |
---|---|---|---|---|
role | String | required | null | The role of the ownable on the policy. Valid options are: “Insured”, “Primary Beneficiary”, “Contingent Beneficiary”. |
relationship | String | required for non-insured | null | The relationship to the Insured. Can be "Mother" , "Father" , "Grandfather" , "Brother" , "Sister" , etc. This field must be null for the insured. |
beneficiary_qualifier | String | required and reserved for beneficiaries only | null | Must be "Percent" . Only used for beneficiaries. |
beneficiary_amount | Float | required and reserved for beneficiaries only | null | A floating-point number representing the percentage the beneficiary will receive if the insured passes. 1 means 100%, 0.5 means 50%, etc. Only used for beneficiaries. |
ownable_attributes | Object | required | null | Attributes describing the ownable. |
Ownable parameters
These describe the ownable_attributes
parameter listed above for Application Roles. This is a polymorphic association, but we currently only support parameters describing an individual. You can use this parameter to pre-fill the insured’s info on the eApp.
Key | Type | Requiredness | Default | Description |
---|---|---|---|---|
ownable_type | String | required | null | The type of the ownable. Must be “Individual”. |
first_name | String | required | null | |
last_name | String | required | null | |
phone_mobile | String | required | null | The individual’s phone number. It must be in the format (XXX) XXX-XXXX. This is the phone number that shows up on the personal information section (step 2) of the app. |
String | required | null | Must be in a valid email format. | |
ssn | String | required | null | Must be in the format XXX-XX-XXXX. |
birthdate | String | required | null | Must be in the format YYYY-MM-DD. |
gender | String | required | null | Must be either “Male” or “Female”. |
Address parameters
This section describes one entry in the addresses_attributes
array.
Key | Type | Requiredness | Default | Description |
---|---|---|---|---|
address_type | String | required | null | Currently can only be “home”. |
street_address | String | required | null | The ownable’s street address, both name and number. For example, “1234 My Street”. |
city | String | required | null | |
state | String | required | null | The state’s two letter abbreviation, such as “CA” for California. |
zip | String | required | null | The 5 digit postal code. Must be in the format “XXXXX”. |
country | String | required | null | Currently we only support “United States”. |
Electronic Application Case parameters
This section describes one entry in the electronic_application_cases_attributes
array.
Use this section to list the applicants pending and inforce insurance. Only one electronic_application_case
per status is necessary.
Key | Type | Requiredness | Default | Description |
---|---|---|---|---|
product_id | Number | required | null | Currently can only be 2645 . |
status | String | required | null | Can be "Active", "Pending", or "Active - Being Replaced" . |
EFT parameters
These describe the top-level eft
parameter listed above. The EFT must be the
insured’s EFT.
Key | Type | Requiredness | Default | Description |
---|---|---|---|---|
account_type | String | required | null | “Checking” or “Savings”. |
routing_number | String | required | null | A valid routing number (no spaces). |
account_number | String | required | null | A valid account number (no spaces). |