Skip to content

Instantly share code, notes, and snippets.

@bloudermilk
Last active October 28, 2019 21:46
Show Gist options
  • Save bloudermilk/4dee1cdf1bffa7f2277799d6b881e322 to your computer and use it in GitHub Desktop.
Save bloudermilk/4dee1cdf1bffa7f2277799d6b881e322 to your computer and use it in GitHub Desktop.
# TODO: Generic 500 response here and in Rails
openapi: '3.0.2'
info:
title: Open Lead Specification
version: 'v1.0'
description: >
## Overview
This spec implements a two-phase auction system commonly known as "ping
tree" or "ping post". The purpose of the system is to enable sellers of
sales leads to solicit bids then fulfill them to winners. The two phases are:
1. **PING** - The seller sends a request to solicit bids from potential
buyers. The request contains a partial lead without PII. A successful
response contains zero or more bids from potential buyers, which may
be fulfilled later in the 'post' phase.
2. **POST** - The seller declares one or more winners of the auction
and sends a request to fulfill the complete lead (with PII). Each bidder
has a final opporitunity to accept the lead and purchase it, or reject the
lead. The outcomes are indicated in the response.
## Simulation
The `test` server is a fully simulated environment which you should use to
develop your integration with this API. By using known request payload values,
you can trigger many of the outcomes detailed below, successful or otherwise.
By default, all valid pings send to the test server will result in a bid.
The simulated `lead_id` and `bids` may be passed to the 'post' endpoint to
further simulate a successful post outcome.
In case you would like to test other scenarios such as rejections or common
errors, you may provide one of the following values in the
`#/lead/contact/postal_code` node:
* `00001` - No bids will be returned on the 'ping'
* `00002` - Winners will reject the lead on 'post'
* otherwise - The lead will be accepted on 'ping' and 'post'
contact:
name: Integration Support
email: [email protected]
servers:
- url: https://test.gateway.policyfuel.com/
description: Testing server with simulated responses
- url: https://live.gateway.policyfuel.com/
description: Production server for real leads
security:
- APITokenAuth: []
paths:
/pingtree/ping:
post:
summary: PING - Solicit bids from potential buyers
description: >
The seller sends a request to solicit bids from potential
buyers. The request contains a partial lead void of PII. A successful
response contains zero or more bids from potential buyers, which may
be fulfilled later in the POST phase.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
vertical:
$ref: '#/components/schemas/Vertical'
lead:
$ref: '#/components/schemas/AutoLead'
required:
- vertical
- lead
responses:
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/InvalidPayload'
'201':
description: One or more bidders were found
content:
application/json:
schema:
type: object
properties:
transaction_id:
$ref: '#/components/schemas/TransactionID'
lead_id:
type: string
description: >
Unique identifier assigned to this lead. You will need to
reference this value later if you intend to 'post' this
lead.
bids:
type: array
items:
$ref: '#/components/schemas/Bid'
examples:
one_bidder:
description: One potential buyer was found
value: {
"transaction_id": "4f091bf8-29ef-4918-810e-f5b0486378bc",
"lead_id": "6d0f0c71-113d-4800-bb83-5602cb9896ec",
"bids": [
{
"bid_id": "2ed7d600-5cb2-4c06-8546-8cf57f16e7aa",
"amount": "3.50",
"license": "91023910",
"affiliation": "allstate"
}
]
}
multiple_bidders:
description: Two potential buyers were found
value: {
"transaction_id": "abf6f998-f038-4d1e-bc81-78e0e0a344b6",
"lead_id": "e0945148-71a1-419d-af24-41f5dffb9275",
"bids": [
{
"bid_id": "c544d9ce-9054-4ad8-98b4-d9c892c08a3d",
"amount": "1.50",
"license": "91023910",
"affiliation": "allstate"
},
{
"bid_id": "dad2e161-f5ff-4beb-9589-75ce38d24ffd",
"amount": "2.15",
"license": "119102301",
"affiliation": "plymouth-rock"
}
]
}
'200':
description: Lead was valid but no bidders were found
content:
application/json:
schema:
type: object
properties:
transaction_id:
$ref: '#/components/schemas/TransactionID'
examples:
no_bidders:
description: No bidders were found
value: {
"transaction_id": "34a7381d-e049-49d3-8bf1-9190380a230c"
}
/pingtree/post:
post:
summary: POST - Fulfill a complete lead to auction winners
description: >
The seller declares one or more winners of the auction by sending a
request fulfilling the complete lead (with PII). A successful response
indicates the outcome of each bid, whether the bidder accepted the lead
(a billable event) or rejected it.
The request payload consists of:
* All the same data included in the prior 'ping' phase
* Additional PII fields in the `contact` and `drivers` objects that
"complete" the lead
* The `lead_id` from the prior 'ping'
* An array of `bids` array in the root object, containing a subset of
one or more bid(s) from the prior 'ping', in their entirety.
You are permitted to utilize this endpoint once for each `lead_id`. If
you would like to offer again a previously offered lead, it must start
again in the 'ping' phase.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
lead_id:
type: string
description: >
The `lead_id` returned in the prior 'ping' response.
bids:
type: array
description: >
One or more of the bids returned in the prior 'ping', **in
their entirety** (i.e. including all fields present: bid_id,
amount, license, affiliation).
minItems: 1
items:
$ref: '#/components/schemas/Bid'
vertical:
$ref: '#/components/schemas/Vertical'
lead:
$ref: '#/components/schemas/AutoLeadWithPII'
required:
- vertical
- lead
- bids
responses:
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: No lead was found with the given ID
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
bad_lead_id:
description: >
No lead was found with the ID given by `lead_id` in the
request payload.
value: {
"transaction_id": "7d2626fe-fe0c-45d6-981a-a22bfba9ac65",
"error": "not_found",
"message": "No lead was found with the provided ID"
}
# TODO: if one or more of the bids could not be found
# TODO: if the bids are not consistent
# TODO: 409 if the lead was already posted
'422':
$ref: '#/components/responses/InvalidPayload'
'200':
description: Successful response containing the result of each bid (accept/reject)
content:
application/json:
schema:
type: object
properties:
transaction_id:
$ref: '#/components/schemas/TransactionID'
lead_id:
type: string
description: Unique identifier assigned to this lead (ping & post)
bids:
type: array
items:
type: object
properties:
bid_id:
type: string
description: Unique identifier assigned to this bid
result:
type: string
enum:
- accepted
- rejected
result_reason:
type: string
enum:
- other
- duplicate
- consumer-blacklisted
examples:
mixed_results:
description: One bidder accepts, the other rejects
value: {
"transaction_id": "c72a327f-a359-4f54-ad1f-c320832461f1",
"lead_id": "e0945148-71a1-419d-af24-41f5dffb9275",
"bids": [
{
"bid_id": "c544d9ce-9054-4ad8-98b4-d9c892c08a3d",
"result": "accepted"
},
{
"bid_id": "dad2e161-f5ff-4beb-9589-75ce38d24ffd",
"result": "rejected",
"result_reason": "duplicate"
}
]
}
components:
schemas:
AutoLead:
type: object
description: >
An auto lead consists of several required sub-objects containing all of
the data available for a lead.
properties:
seller:
type: object
properties:
sub_source:
type: string
description: The marketing source that the lead originated from
exclusive:
type: boolean
description: Wether the lead is exclusive (true) or shared (false)
example: false
campaign:
type: string
description: Seller-specified campaign name
required:
- exclusive
- sub_source
vehicles:
type: array
minItems: 1
maxItems: 4
items:
$ref: '#/components/schemas/Vehicle'
drivers:
type: array
minItems: 1
maxItems: 4
items:
$ref: '#/components/schemas/Driver'
coverage:
type: object
properties:
current:
type: boolean
description: >
Whether the applicant is currently insured (true) or not (false).
When `current` is true, all other fields in the `coverage` object
are **required**, otherwise they are optional.
example: true
insurer:
$ref: '#/components/schemas/Carrier'
duration:
type: integer
description: >
Number of **months** with `insurer` (or blank if not currently
insured)
minimum: 1
expiration:
type: string
description: Year and month in which the current policy expires
pattern: '^\d{4}-\d{2}$'
example: '2020-01'
current_level:
type: string
enum:
- 15/25
- 25/50
- 50/100
- 100/300
- 250/500
requested_level:
type: string
enum:
- 15/25
- 25/50
- 50/100
- 100/300
- 250/500
required:
- current
accidents:
type: array
items:
allOf:
- $ref: '#/components/schemas/AutoIncident'
- type: object
description: A specific type of AutoIncident representing an auto accident
properties:
subtype:
type: string
enum:
- vehicle-hit-vehicle
- at-fault-accident-not-listed
- chargeable-accident-injury
- chargeable-accident-no-injury
- non-fault-accident-not-listed
- vehicle-hit-person
- hit-and-run-resulting-in-bodily-injury
- non-chargeable-accident
- other-vehicle-hit-yours
- vehicle-hit-property
- reckless-driving-resulting-in-an-accident
- hit-and-run-no-bi
- vehicle-damaged-avoiding-accident
damage_type:
type: string
enum:
- not-applicable
- people
- property
- both
damage_total:
type: integer
minimum: 0
at_fault:
type: boolean
required:
- subtype
- damage_type
- damage_total
- at_fault
claims:
type: array
items:
allOf:
- $ref: '#/components/schemas/AutoIncident'
- type: object
description: A specific type of AutoIncident representing an auto claim
properties:
subtype:
type: string
enum: [ vehicle-hit-animal, car-fire, flood-damage, hail-damage, loss-claim-not-listed, theft-of-stereo, vehicle-stolen, towing-service, vandalism-damage, windshield-damage ]
damage_type:
type: string
enum:
- not-applicable
- people
- property
- both
damage_total:
type: integer
minimum: 0
at_fault:
type: boolean
required:
- subtype
- damage_type
- damage_total
- at_fault
tickets:
type: array
items:
allOf:
- $ref: '#/components/schemas/AutoIncident'
- type: object
description: A specific type of AutoIncident representing a ticket
properties:
subtype:
type: string
enum: [ child-seat-violation, driving-with-suspendedrevoked-license, other-unlisted-major-violation, carpool-lane-violation, defective-vehicle-reduced-violation, defective-equipment, expired-emmissions, expired-license, expired-registration, driving-too-fast-for-conditions, following-too-close, failure-to-stop-at-red-light, failure-to-stop-at-a-stop-sign, failure-to-stop, failure-to-stop-for-a-school-bus, no-helmet, inattentive-driving, illegal-lane-change, seat-belt-violation, driving-without-insurance, other-yielding, excessive-noise, passing-in-a-no-passing-zone, failure-to-signal, illegal-passing, speeding-contestroad-racing, reckless-driving, illegal-turn-on-red, passing-on-shoulder, speeding-violation, speed-more-than-10-mph-over, speeding-over-100, speed-more-than-20-mph-over, speed-under-10-mph, failure-to-obey-traffic-signal, turning-violation, unlicensed-driver, illegal-u-turn, ticket-violation-not-listed, suspension, wrong-way-on-a-one-way ]
required:
- subtype
duis:
type: array
items:
allOf:
- $ref: '#/components/schemas/AutoIncident'
- type: object
description: A specific type of AutoIncident representing a DUI
properties:
subtype:
type: string
enum:
- drunk-driving-no-injury
- drunk-driving-injury
- open-container
- drug-possession
- dui-or-dwi
- driving-while-under-the-influence-of-drugs
- dui-license-suspended
- minor-in-possession
state:
$ref: '#/components/schemas/State'
required:
- subtype
- state
residence:
type: object
properties:
ownership:
type: string
example: own
enum:
- other
- own
- rent
type:
type: string
enum: [ other, apartment, condo, co-op, dwelling, mobile-home, row-house, town-home ]
duration:
type: integer
minimum: 0
description: Number of **months** resided at residence
required:
- ownership
contact:
$ref: '#/components/schemas/Contact'
compliance:
$ref: '#/components/schemas/Compliance'
required:
- seller
- vehicles
- drivers
- accidents
- duis
- claims
- tickets
- coverage
- contact
- residence
- compliance
AutoLeadWithPII:
allOf:
- $ref: '#/components/schemas/AutoLead'
- type: object
properties:
drivers:
type: array
minItems: 1
maxItems: 4
items:
$ref: '#/components/schemas/DriverWithPII'
contact:
$ref: '#/components/schemas/ContactWithPII'
Vehicle:
type: object
properties:
year:
type: integer
example: 2005
make:
type: string
example: BMW
model:
type: string
example: 3-Series
submodel:
type: string
example: Convertible
vin:
type: string
ownership:
type: string
enum:
- owned
- leased
- financed
use:
type: string
example: driven-to-and-from-school
enum: [ other, artisan-contractor, business, clergy, commercial, commute, car-pool, transport-for-day-care-center, drive-to-work-or-school-over-15-miles, drive-to-work-or-school-under-15-miles, driven-to-and-from-work, driven-to-and-from-school, for-hire, farm, government-use, pleasure, private-passenger-vehicle-non-commercial, retail, show, service, van-pools-employer-furnished, van-pools-all-other ]
parking:
type: string
enum:
- garaged
- driveway
- on-street
- off-street
annual_distance:
type: integer
description: Estimated annual distance in **miles**
example: 12000
minimum: 0
primary_driver:
type: integer
description: >
Index of the drivers in the `drivers` array (0-indexed) who is the
primary driver for this vehicle
minimum: 0
maximum: 3
days_driven:
type: integer
minimum: 0
maximum: 7
description: Number of days the vehicle is driven in a typical week
one_way_distance:
type: integer
description: Distance driven one way to primary destination (i.e. office)
example: 20
comp:
type: integer
description: Applicant's desired comprehensive deductible
minimum: 0
example: 500
coll:
type: integer
description: Applicant's desired collision deductible
minimum: 0
example: 500
postal_code:
$ref: '#/components/schemas/ZipCode'
required:
- year
- make
- model
- submodel
- vin
- ownership
- use
- parking
- annual_distance
- primary_driver
- days_driven
- comp
- coll
- postal_code
Driver:
type: object
properties:
relationship:
type: string
description: Relationship of this driver to the applicant
enum:
- self
- other
- spouse
- parent
- sibling
- child
- grandparent
birthdate:
type: string
format: date
example: '1978-02-26'
gender:
type: string
enum:
- female
- male
- other
age_licensed:
type: integer
example: 16
minimum: 14
marital_status:
type: string
example: single
enum:
- other
- unknown
- single
- married
- divorced
- domestic-partner
- civil-union
- separated
- widowed
education:
type: string
enum:
- some-highschool
- highschool
- ged
- some-college
- associate
- bachelors
- masters
- doctorate
- vocational-or-technical
occupation:
type: string
enum: [ other, cpa-or-auditor, actor-or-entertainer-or-dancer, military-officer, claims-adjuster, administrative-clerical, airline-personnel, appraiser, architect, artist, assembler, athlete-professional, auditor, customer-service-or-teller, banking-or-mortgage, barber-or-beautician, broker, sales-outside, casino-worker, cashier, chemist, city-worker, clergy, clergy-or-religious, computer-or-math-or-research, contract-employee, construction-or-facilities, management-consulting, certified-public-accountant, government, non-profit-or-volunteer, counselor, business-owner, child-care-or-nanny, decorator, military-or-defense, delivery-driver, dentist, director, disabled, doctor, education-or-training, electrician, engineering-or-architectecture, engineer, arts-or-entertainment-or-publishing, ceo, manufacturing-or-machinist-or-machine-operator, fire-fighter, health-care, minor, farmer, general-contractor, homemaker, hospitality-or-travel, insurance, instructor-or-coach-or-ta, internet-or-news-media, custodian-or-cleaning-or-janitorial, journalist, construction-trades, lawyer-or-legal, lawyer, legal, librarian-or-historian, lab-technician, maintenance-or-operations, mechanic, manager-supervisor, military-enlisted, military-e1-to-e4, military-e5-to-e7, marketing, model, nurse-or-cna, sales-inside, other-non-technical, finance-or-insurance-professional-with-degree, paramedic, human-resources-or-human-relations, other-professional-with-college-degree, photographer, pharmaceutical-or-biotech, physician, pilot-or-navigator, law-enforcement, postal-worker, professor, transportation-or-logistics, real-estate, retired, restaurant-or-food-service, retail, professional-salaried-or-professional-worker, sales, scientist, school-teacher, self-employed, security, skilled-semi-skilled, student, telecommunications, technology, other-technical, personal-trainer, unknown-or-other, unemployed, veterinarian, waiter-or-bartender-or-host, advertising-or-public-relations ]
credit:
type: string
example: good
enum:
- unsure
- poor
- fair
- average
- good
- excellent
- superior
license_status:
type: string
description: The current status of the driver's license
enum:
- active
- expired
- revoked
- suspended
- temporary
- lapsed-intentionally
- pending
- international
# - unknown NOTE: we should add this back if we see a lot of it coming from ACORD leads
license_state:
$ref: '#/components/schemas/State'
suspended_license:
type: boolean
description: '`true` if the driver has **ever** had a suspended license, otherwise `false`'
example: false
sr22:
type: boolean
description: '`true` if the driver has **ever** needed an SR-22, otherwise `false`'
example: false
bankruptcy:
type: boolean
description: '`true` if the driver has a history of bankruptcy, otherwise `false`'
example: false
repossessions:
type: boolean
description: '`true` if the driver has a history of reposessions, otherwise false'
example: false
required:
- birthdate
- gender
- credit
- sr22
- age_licensed
- marital_status
- education
- occupation
- suspended_license
- license_status
- license_state
- bankruptcy
- repossessions
- relationship
DriverWithPII:
allOf:
- $ref: '#/components/schemas/Driver'
- type: object
properties:
first_name:
type: string
last_name:
type: string
required:
- first_name
- last_name
AutoIncident:
type: object
properties:
date:
type: string
pattern: '^\d{4}-\d{2}$'
description: Year and month of the incident
example: 2018-10
driver:
type: integer
minimum: 0
maximum: 3
description: >
Index of the driver in the `drivers` array (0-indexed) who is
associated with this incident
required:
- date
- driver
Contact:
type: object
properties:
birthdate:
type: string
format: date
example: '1978-02-26'
description: Date of birth of the applicant
city:
type: string
description: City of residence of the applicant
county:
type: string
description: County of residence of the applicant
state:
$ref: '#/components/schemas/State'
postal_code:
$ref: '#/components/schemas/ZipCode'
required:
- birthdate
- state
- postal_code
ContactWithPII:
allOf:
- $ref: '#/components/schemas/Contact'
- type: object
properties:
first_name:
type: string
last_name:
type: string
address:
type: string
# TODO: Phones are weird here... and not easily required since we'd have to choose 1
phone_day:
$ref: "#/components/schemas/Phone"
phone_business:
$ref: "#/components/schemas/Phone"
phone_home:
$ref: "#/components/schemas/Phone"
phone_alternate:
$ref: "#/components/schemas/Phone"
email:
type: string
format: email
example: [email protected]
required:
- first_name
- last_name
- address
- phone_home
- email
State:
type: string
enum: [ AL, AK, AZ, AR, CA, CO, CT, DE, DC, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, AS, GU, MP, PR, UM, VI ]
ZipCode:
type: string
description: US five-digit ZIP
pattern: '^\d{5}$'
example: '91401'
Phone:
type: string
format: ^+1-\d{3}-\d{3}\d{4}\$
example: +1-818-5554121
Compliance:
type: object
properties:
consent_language:
type: string
ip:
type: string
format: ipv4
example: '14.121.90.15'
user_agent:
type: string
timestamp:
type: string
format: date-time
url:
type: string
example: 'https://coolleads.com/leadform'
LeadiD:
type: string
pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'
example: 00000000-0000-0000-0000-000000000000
required:
- consent_language
- ip
- user_agent
- timestamp
- url
Bid:
type: object
properties:
bid_id:
type: string
description: Unique identifier assigned to this bid
example: 00000000-0000-0000-0000-000000000000
amount:
type: string
description: Dollar amount (in decimal format) offered
pattern: '^\d{1,}.\d{2}$'
example: '3.50'
license:
type: string
description: Official license number for this bidder
example: CA-4919120
affiliation:
$ref: '#/components/schemas/Carrier'
Vertical:
type: string
description: >
The business vertical which the applicant is interested in.
In the future this property will be used to determine the
correct `lead` schema, but for now only "auto" is supported.
enum:
- auto
ErrorResponse:
type: object
properties:
transaction_id:
$ref: '#/components/schemas/TransactionID'
error:
type: string
description: Error name, appropriate for machine code to interpret
message:
type: string
description: >
A descriptive human-readable error message describing the problem.
This property should not be used by client code.
required:
- error
- message
Carrier:
type: string
example: allstate
description: An insurance carrier
enum: [ other, 21st-century-insurance, aaa-auto-club, aabco, aarp, access-insurance, acordia, aegis-security, aetna, affirmative, aflac, ahcp, aig, alfa-insurance, all-nation, all-risk, alleghany-corporation, allianz, allied-group, allmerica, allstate, american-alliance-ins-co, american-banks, american-casualty, american-deposit-insurance, american-direct-business-insurance, american-economy-ins-co, american-empire-insurance, american-family-insurance, american-financial, american-health-underwriters, american-home-assurance, american-income-life-insurance-company, american-insurance, american-international-pacific, american-international-south, american-manufacturers-mutual, american-mayflower-insurance, american-medical-securities, american-motorists-insurance, american-national-property-and-casualty, american-premier, american-protection-insurance, american-reliable-ins-co, american-republic, american-savers-plan, american-service-insurance, american-skyline-insurance-company, american-spirit-insurance, american-standard, american-states, americas-ins-consultants, ameriplan, ameriprise, amerisure, ameritas-life-insurance-company, amex-assurance-co, amica-mutual-ins-co, answer-financial, anthem, api, arbella, arizona-general, armed-forces-insurance, assigned-risk, associated-indemnity, associated-insurance-managers, assurant, atlanta-casualty, atlanta-specialty, atlantic-indemnity, atlantic-mutual-co, atlantis, austin-mutual, auto-owners, avomark, axa-equitable-life-insurance-company, badger-mutual, bankers-life-and-casualty-company, banner-life, berkshire-hathaway, best-agency-usa, blue-cross--blue-shield, bonneville, boston-old-colony, builders, calfarm-ins-co, california-casualty-and-fire-ins-co, california-state-automobile-association, camden, capital-choice, cascade-national-ins, casualty-assurance, centennial, century-national-ins, charter-oak, chartis, chase-insurance-group, chicago-insurance, chubb-group-of-ins-co, church-mutual, cigna, cincinnati-insurance-company, citizens, clarendon, clarendon-national-insurance, cloverleaf, cna, colonial, colonial-penn, combined, commerce-insurance-group, commerce-west, commercial-union, commonwealth, conseco, continental-divide-insurance, continental-ins-co, cotton-states, cottonwood, country-financial, countrywide, criterion, cse-insurance-group, cuna-mutual, dairyland, dakota-fire, deerbrook, depositors-emcasc, direct-general-insurance, dixie, eagle-ins-co, ebco-general, efinancial, ehealth, electric-insurance-co, elephant, emc, empire-fire-and-marine, employers-fire, encompass-insurance-company, ensure, equitable-life, erie-insurance-group, esurance, evergreen-usa-rrg, explorer-ins-co, facility, farm-and-ranch, farm-bureau, farmers-insurance-group, farmers-union, farmland, federal-ins-co, federated-mutual-insurance-company, fidelity-insurance-company, financial-indemnity, fire-and-casualty-insurance-co-of-ct, firemans-fund, first-acceptance-insurance, first-american, first-financial, first-general, first-insurance-company-of-hawaii-ltd, first-national, fm-global, ford-motor-credit, foremost, foresters, fortis, franklin, gainsco, geico, general-accident-insurance, general-re, genworth-financial, globe, gmac-insurance, grange, gre-harleysville-h, great-american-ins-co, great-way, great-west-casualty-company, grinnell-mutual, guaranty-national, guardian-life-insurance-company-of-america, guideone-insurance, halcyon, hanover-ins-co, happy-days, hawkeye-security, hcc-insurance-holdings, health-benefits-direct, health-choice-one, health-net, health-plus-of-america, healthmarkets, healthshare-american, heritage, home-state-county-mutual, horace-mann, humana, iab, ifa-auto-insurance, igf, iis-insurance, infinity-select-insurance, insphere-insurance-solutions, insur-of-evanston, insurance-co-of-the-west, insurance-insight, integon, interstate, jackson-national-life, john-deere, john-hancock-insurance, kaiser-permanente, kemper, kentucky-central, kentucky-farm-bureau, knights-of-columbus, landmark-american-insurance, leader-insurance, leader-national, leader-preferred-insurance, leader-specialty-insurance, league-general, liberty-mutual, liberty-national, liberty-northwest, lincoln-benefit-life, lincoln-national-corporation, ltc-financial-partners, lumbermens-mutual, marathon, markel-corporation, maryland-casualty, massmutual-financial-group, matrix-direct, mega-life-and-health, megamidwest, mendota, merastar, merchants-insurance-group, mercury-insurance-group, metlife, mid-century-insurance, mid-continent-casualty, middlesex-insurance, midland-national-life, midwest-mutual, millbank, millers-mutual, milwaukee, minnehoma, missouri-general, modern-woodmen-of-america, mortgage-protection-bureau, motors, mountain-laurel, mutual-insurance, mutual-of-enumclaw, mutual-of-new-york, mutual-of-omaha, national-alliance, national-ben-franklin-insurance, national-casualty, national-colonial, national-continental, national-fire-insurance-company-of-hartford, national-health-insurance, national-indemnity, national-merit, national-surety-corp, national-union-fire-insurance, nationwide-mutual-insurance-company, natl-farmers-union, new-england-financial, new-jersey-manufacturers-insurance-company, new-york-life-insurance-company, nj-skylands-insurance, north-american, north-pacific, north-pointe, north-shore, northern-capital, northern-states, northland, northwestern-mutual-life, northwestern-pacific-indemnity, ohio-casualty, ohio-security, olympia, omega, omni-insurance, onebeacon, oregon-mutual, orion-insurance, oxford-health-plans, pacific-indemnity, pacific-insurance, pacific-life, pacificare, pafco, paloverde, patriot-general, peak-property-and-casualty-insurance, pemco, penn-america, penn-mutual, pennsylvania-natl, philadelphia-insurance-companies, phoenix, physicians, pinnacle, pioneer-life, plymouth-rock-assurance, preferred-mutual, premier, prestige, primerica, principal-financial, progressive-casualty, protective-life, provident, prudential, qbe-insurance, quality, ramsey, rbc-liberty-insurance, regal, reliance-insurance-company, reliant, republic-indemnity, response-insurance, rli-corp, rockford-mutual, rodney-d-young, safe-auto-insurance-company, safeco, safeguard, safeway, sea-west-insurance, security-insurance, security-national, sedgwick-james, selective-insurance, sentinel-insurance, sentry-insurance, shelter-insurance, skandia-tig-tita, southern-aid-and-insurance-company, spectrum, st-paul-fire-and-marine-ins-co, standard-fire-insurance-company, standard-guaranty, standard-insurance-company, state-and-county-mutual-fire-insurance, state-auto-ins-co, state-farm-insurance, state-mutual, state-national, sun-coast, sun-life-financial, superior, superior-american-insurance, superior-guaranty-insurance, sutter, symetra, the-ahbe-group, the-credo-group, the-general, the-hartford, the-regence-group, tiaa-cref, tico-insurance, tig-countrywide-insurance, titan, total, tower, transamerica, travelers, trinity-universal, tri-state-consumer, trupanion, trust-hall, twin-city-fire-insurance, unicare, unigard-ins, union, united-american, united-financial, united-fire-group, united-health-care, united-insurance, united-pacific-insurance, united-security, unitrin-direct-auto-insurance, universal-underwriters-insurance, unum, us-financial, us-health-advisors, usa-benefitscontinental-general, usaa, usfg, utah-home-and-fire, utica, vasa-north-atlantic, vigilant, viking, wawanesa-mutual, wellington, wellpoint, west-american, west-bend-mutual, west-coast-life, west-plains, western-and-southern-life, western-mutual-insurance-group, western-national, western-southern-life, white-mountains-insurance-group, william-penn, windsor, windstar, wisconsin-mutual, woodlands-financial-group, workmens-auto-insurance, world-insurance, worldwide, yellow-key, yosemite, zurich-north-america ]
TransactionID:
type: string
description: >
A unique identifier generated for each API request. You can provide this
value to your support representative when debugging your integration.
securitySchemes:
APITokenAuth:
type: http
scheme: bearer
bearerFormat: "API Token"
description: >
**All requests must contain a valid `Authorization` header as described
here.**
The value must be equal to to `Bearer TOKEN` where `TOKEN` is the secret
API token provided to you. Example:
```
Authorization: Bearer qL2VJLfs2sHHUPUnaA2K38ZoinnCPyT57ChgHE4G
```
responses:
Unauthorized:
description: >
A valid Authorization header was not provided. See "Authentication" in
the docs.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
unauthorized:
description: The response body if the request could not be authenticated
value: {
"transaction_id": "9b0982bb-b491-4648-a5b6-c7596daab4d2",
"error": "unauthorized",
"message": "You must authenticate with the server. See documentation"
}
InvalidPayload:
description: The request body was not valid per this specification
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/ErrorResponse"
- type: object
properties:
violations:
type: array
description: An array of validation errors found in the request payload
items:
type: object
properties:
path:
type: string
description: A valid JSON Reference to the location in the request payload containing the problem
message:
type: string
description: A human-readable description of the problem with the value at `path`
examples:
invalid_payload:
description: The response body if the request could not be authenticated
value: {
"transaction_id": "91890506-244f-45cd-8e72-b72edbebfebc",
"error": "invalid_payload",
"message": "One or more of the provided properties was invalid",
"violations": [
{
"path": "#/drivers/0/birthdate",
"message": "Property is required but the provided value was null"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment