Create Disposition Record
Description
Send disposition information for a prospect received from the Bold Penguin Exchange. You must update dispostion information for each discrete coverage type associated with the prospect. New disposition records can be created for any add-on coverage.
A prospect can only have one dispostion record per coverage type. Create calls are idempotent and can be used to update disposition status for each coverage type after every interaction with the prospect.
Endpoint
Staging
https://api-staging.boldpenguin.com/leads/<lead_id>/lead_attributes
Production
https://api.boldpenguin.com/leads/<lead_id>/lead_attributes
Authentication
You authenticate to the dispositioning endpoints using a static bearer token sent via an HTTP header.
Your Account Manager will provide you with a unique static token per environment.
Authorization: Bearer <static_token>
Methods
POST
Request Syntax
POST /leads/<lead_id>/lead_attributes
Request Payload
{
"carrier": "<string>",
"coverage_type_id": <integer enum>,
"history": "<string>",
"premium": <decimal>,
"quoted_at": "<date string>",
"rate": <decimal>,
"sold_at": "<date string>",
"status": "<string enum>"
}
Request Parameters
URL Parameters
- lead_id
- Record locator used to retrieve disposition records for this prospect.
- Type: String
- Required: Yes
- NOTE: This is part of the prospect record you receive from the Exchange.
JSON Parameters
- carrier
- The name of the carrier for the policy quoted or sold
- Type: String (maximum length: 255)
- Required: if
status=Sold
- coverage_type_id
- The integer ID of the coverage type for the policy
- Type: Integer Enum
- One of Bold Penguin's coverage_type_ids
- Required: Yes
- Note: There should be one disposition record per coverage_type_id.
- history
- A field for text notes, history of prospect
- Type: String (minimum length: 25)
- Required: if
status=Sold
- premium
- The yearly premium for the policy quoted or sold
- Type: Decimal (greater than 0)
- Required: if
status=Sold
- quoted_at
- Date quoted
- Type: Date (YYYY-MM-DD)
- Required: No
- Note: Use only with
status=Quote Presented
- rate
- The commission rate on the policy
- Type: Decimal (0 - 25)
- Required: if
status=Sold
- sold_at
- Date sold
- Type: Date (YYYY-MM-DD)
- Required: No
- Note: Use only with
status=Sold
- status
- Current status of the prospect
- Enum (see table below)
- Required: Yes
Status | Description |
---|---|
Active | Default |
Contact Made | Record received |
Sent App to Client | Waiting on carrier |
Quote Presented | Customer received quote |
Sold | Policy sold |
Not Sold | Customer quoted, but policy not sold |
Ineligible | Unable to present quote |
Each disposition is tied to a specific coverage type id. As you create dispositions, make sure it's for the correct coverage type. Each coverage type for a given prospect can only have one disposition record.
Response Syntax
{
"carrier": <string>,
"coverage_type_id": <integer enum>,
"coverage_types": [],
"external_id": <integer>,
"history": <string>,
"id": <integer>,
"lead_id": <integer>,
"premium": <decimal>,
"quoted_at": "<date string>",
"rate": <decimal>,
"sold_at": "<date string>",
"status": "<string enum>"
}
Response Elements
Created dispostion record
- carrier
- The name of the carrier for the policy quoted or sold
- Type: String (maximum length: 255)
- Required: if
status=Sold
- coverage_type_id
- The integer ID of the coverage type for the policy
- Type: Integer Enum
- One of Bold Penguin's coverage_type_ids
- Required: Yes
- Note: There should be one disposition record per coverage_type_id.
- coverage_types
- Unused
- Empty array
- Required: No
- external_id
- Unused
- Integer
- Required: No
- history
- A field for text notes, history of prospect
- Type: String (minimum length: 25)
- Required: if
status=Sold
- id
- Unique ID for this disposition record
- Type: Integer
- Required: Yes
- lead_id
- Unique ID for the lead associated with this disposition record
- Type: Integer
- Required: Yes
- premium
- The yearly premium for the policy quoted or sold
- Type: Decimal (greater than 0)
- Required: if
status=Sold
- quoted_at
- Date quoted
- Type: Date (YYYY-MM-DD)
- Required: No
- rate
- The commission rate on the policy
- Type: Decimal (0 - 25)
- Required: if
status=Sold
- sold_at
- Date sold
- Type: Date (YYYY-MM-DD)
- Required: No
- status
- Current status of the prospect
- Enum (see table below)
- Required: Yes
Status | Description |
---|---|
Active | Default |
Contact Made | Record received |
Sent App to Client | Waiting on carrier |
Quote Presented | Customer received quote |
Sold | Policy sold |
Not Sold | Customer quoted, but policy not sold |
Ineligible | Unable to present quote |
Note: There can only be one disposition record per coverage_type_id
.
Status Codes
- 201 Created
- 401 Unauthorized: The necessary authentication credentials are not present in the request or are incorrect.
- 404 Could not find prospect (verify
lead_id
)
Examples
Example Requests
Quoted disposition
$ cat quoted_data.json
{
"carrier": "Insurance Carrier",
"coverage_type_id": 5,
"history": "This prospect was quoted to Insurance Carrier but wanted time to think about it."
"premium": "100.00",
"quoted_at": "2019-01-16"
"status": "Quote Presented",
}
$ curl -v -X POST \
--header "Authorization: Bearer <access_token>"
--header "Content-Type: application/json" \
-d @quoted_data.json \
https://api-staging.boldpenguin.com/leads/<lead_id>/lead_attributes
Sold disposition
$ cat sold_data.json
{
"carrier": "Insurance Carrier",
"coverage_type_id": 5,
"history": "This prospect was sold to Insurance Carrier"
"premium": "100.00",
"rate": "5.0",
"sold_at": "2019-01-18"
"status": "Sold",
}
$ curl -v -X POST \
--header "Authorization: Bearer <access_token>"
--header "Content-Type: application/json" \
-d @sold_data.json \
https://api-staging.boldpenguin.com/leads/<lead_id>/lead_attributes
Example Response
{
"id": 4,
"status": "Sold",
"premium": "100.0",
"rate": "5.0",
"history": "This prospect was sold to Insurance Carrier",
"carrier": "Insurance Carrier",
"lead_id":7,
"external_id": null,
"quoted_at": "2019-04-10",
"sold_at": "2019-04-10",
"coverage_type_id": 5,
"coverage_types":[]
}