Skip to main content

Proposal APIs

The Proposal APIs allow you to create and manage insurance proposals, track their status, and facilitate the policy issuance process. These APIs enable you to convert quotes into formal insurance applications by collecting detailed customer information and policy preferences.

Create Proposal

Create a new insurance proposal with customer and policy details. This endpoint transforms a quote into a formal insurance application by collecting all required policyholder information.

Endpoint

POST /v1/embedded/proposal

Request

Body

{
"quote_id": "quo_18M6aOiODyyf37DM",
"recommendation_id": "rec_18M6aOiODyyf37DN",
"status": "DRAFT",
"proposer": {
"title": "MR",
"first_name": "John",
"middle_name": "Pastor",
"last_name": "Doe",
"email": "johndoe@example.com",
"mobile": "9876543210",
"country_code": "+91",
"date_of_birth": "05/06/1990",
"address": {
"address_line_1": "123 XYZ Street",
"address_line_2": "ABC Layout",
"address_line_3": "",
"city": "Bangalore",
"state": "Karnataka",
"country": "India",
"pincode": "560001"
},
"nationality": "IND",
"gender": "MALE",
"marital_status": "SINGLE",
"annual_income": "1200000",
"occupation": "SERVICE",
"organization": "GOVERNMENT",
"education": "POST_GRADUATE",
"employer": "ABC Corp",
"documents": [
{
"document_type": "PAN",
"document_number": "ABCDE1234F"
},
{
"document_type": "AADHAR",
"document_number": "123456789012"
}
]
},
"insured_members": [
{
"title": "MR",
"first_name": "John",
"middle_name": "Pastor",
"last_name": "Doe",
"email": "johndoe@example.com",
"mobile": "9876543210",
"country_code": "+91",
"date_of_birth": "05/06/1990",
"address": {
"address_line_1": "123 XYZ Street",
"address_line_2": "ABC Layout",
"address_line_3": "",
"city": "Bangalore",
"state": "Karnataka",
"country": "India",
"pincode": "560001"
},
"nationality": "IND",
"gender": "MALE",
"marital_status": "SINGLE",
"annual_income": "1200000",
"occupation": "SERVICE",
"organization": "GOVERNMENT",
"education": "POST_GRADUATE",
"employer": "ABC Corp",
"documents": [
{
"document_type": "PAN",
"document_number": "ABCDE1234F"
},
{
"document_type": "AADHAR",
"document_number": "123456789012"
}
]
}
],
"nominee": [
{
"title": "MRS",
"first_name": "Jane",
"middle_name": "Alice",
"last_name": "Doe",
"date_of_birth": "16/10/1992",
"mobile": "9876543211",
"country_code": "+91",
"relationship": "SPOUSE",
"address": {
"address_line_1": "123 XYZ Street",
"address_line_2": "ABC Layout",
"address_line_3": "",
"city": "Bangalore",
"state": "Karnataka",
"country": "India",
"pincode": "560001"
},
"percentage_sharing": 100,
"documents": [
{
"document_type": "PASSPORT",
"document_number": "A1B2C3D4E5"
}
],
"appointee_details": {
"relationship_to_nominee": "",
"title": "",
"first_name": "",
"middle_name": "",
"last_name": "",
"date_of_birth": "",
"mobile": "",
"country_code": "+91",
"address": {
"address_line_1": "",
"address_line_2": "",
"address_line_3": "",
"city": "",
"state": "",
"country": "India",
"pincode": ""
},
"documents": []
}
}
],
"context_data": []
}

Fields

FieldTypeOptionalDescription
quote_idstringNoQuote ID obtained from the Create Quote API
recommendation_idstringNoRecommendation ID from the quote response
statusstringNoMust be set to "DRAFT/SUBMITTED" (see Proposal Status table below)
proposerobjectNoInformation about the policy proposer (see Proposer Fields table below)
insured_membersarrayNoArray of insured individuals (see Insured Member Fields table below)
nomineearrayYesArray of nominee information (see Nominee Details table below)
context_dataarrayYesArray of context data key-value pairs (see Context Data Fields table below)

Proposer Fields

The proposer object contains information about the individual proposing the insurance:

FieldTypeOptionalDescription
titlestringNoTitle of the proposer (see Title Fields table below)
first_namestringNoFirst name of the proposer
middle_namestringYesMiddle name of the proposer
last_namestringNoLast name of the proposer
emailstringNoEmail address of the proposer
mobilestringNoMobile number of the proposer (10 digits)
country_codestringYesCountry code for the mobile number (defaults to "+91")
date_of_birthstringNoDate of birth in DD/MM/YYYY format
addressobjectNoAddress details (see Address Fields table below)
nationalitystringNoNationality of the proposer (see Nationality Fields table below)
genderstringNoGender of the proposer (see Gender Fields table below)
marital_statusstringNoMarital status (see Marital Status Fields table below)
annual_incomestringNoAnnual income in INR
occupationstringNoOccupation of the proposer (see Occupation Fields table below)
organizationstringNoOrganization type (see Organization Fields table below)
educationstringNoEducation qualification (see Education Fields table below)
employerstringYesName of the employer
documentsarrayNoArray of document information (see Document Fields below)

Proposal Status

The status field indicates the current state of the proposal:

StatusDescription
DRAFTProposal is saved as a draft and can be modified
PENDINGProposal is submitted for processing
COMPLETEDProposal is approved and policy is issued
REJECTEDProposal is rejected

Insured Member Fields

The insured_members array contains details about the individuals to be insured:

FieldTypeOptionalDescription
titlestringNoTitle of the insured (see Title Fields table below)
first_namestringNoFirst name of the insured
middle_namestringYesMiddle name of the insured
last_namestringNoLast name of the insured
emailstringNoEmail address of the insured
mobilestringNoMobile number of the insured (10 digits)
country_codestringYesCountry code for the mobile number (defaults to "+91")
date_of_birthstringNoDate of birth in DD/MM/YYYY format
addressobjectNoAddress details (see Address Fields table below)
nationalitystringNoNationality of the insured (see Nationality Fields table below)
genderstringNoGender of the insured (see Gender Fields table below)
marital_statusstringNoMarital status (see Marital Status Fields table below)
annual_incomestringYesAnnual income in INR
occupationstringNoOccupation of the insured (see Occupation Fields table below)
organizationstringYesOrganization type (see Organization Fields table below)
educationstringNoEducation qualification (see Education Fields table below)
employerstringYesName of the employer
documentsarrayNoArray of document information (see Document Fields below)

Address Fields

The address object structure used in multiple places:

FieldTypeOptionalDescription
address_line_1stringNoFirst line of address
address_line_2stringNoSecond line of address
address_line_3stringYesThird line of address
citystringNoCity name
statestringNoState name
countrystringYesCountry name (defaults to "India")
pincodestringNo6-digit postal code

Nominee Details

The nominee array contains information about the nominees:

FieldTypeOptionalDescription
titlestringNoTitle of the nominee (see Title Fields table below)
first_namestringNoFirst name of the nominee
middle_namestringYesMiddle name of the nominee
last_namestringNoLast name of the nominee
date_of_birthstringNoDate of birth in DD/MM/YYYY format
mobilestringYesMobile number of the nominee (10 digits)
country_codestringYesCountry code for the mobile number (defaults to "+91")
relationshipstringNoRelationship with the primary insured (see Relationship Fields table below)
addressobjectNoAddress details (see Address Fields table above)
percentage_sharingnumberNoPercentage allocation for the nominee (total must be 100 across all nominees)
documentsarrayNoArray of document information (see Document Fields below)
appointee_detailsobjectYesAppointee details (required if nominee is a minor, see Appointee Fields)

Appointee Fields

The appointee_details object is required if the nominee is a minor:

FieldTypeOptionalDescription
relationship_to_nomineestringNoRelationship with the nominee (see Relationship Fields table below)
titlestringNoTitle of the appointee (see Title Fields table below)
first_namestringNoFirst name of the appointee
middle_namestringYesMiddle name of the appointee
last_namestringNoLast name of the appointee
date_of_birthstringNoDate of birth in DD/MM/YYYY format
mobilestringYesMobile number of the appointee (10 digits)
country_codestringYesCountry code for the mobile number (defaults to "+91")
addressobjectNoAddress details (see Address Fields table above)
documentsarrayNoArray of document information (see Document Fields below)

Enum Types

The following tables define the valid values for various enumerated fields:

Title Fields
ValueDescription
MRMale title
MRSMarried female title
MSUnmarried female title
Gender Fields
ValueDescription
MALEMale gender
FEMALEFemale gender
Marital Status Fields
ValueDescription
SINGLENever married
SEPARATEDSeparated
MARRIEDCurrently married
DIVORCEDLegally divorced
WIDOWEDSpouse deceased
Occupation Fields
ValueDescription
LABOURERManual laborer
UNEMPLOYEDNot currently employed
HOUSEWIFEHomemaker
RETIREDNo longer working due to retirement
OTHERSOther occupation not listed. If selected, the specific occupation value should be provided in the context_data array with key "occupation_other"
FARMERWorks in agriculture
SALARIEDEmployed with regular salary
SELF_EMPLOYEDOwns a business or is self-employed
SERVICEWorks in service industry
STUDENTCurrently studying
Organization Fields
ValueDescription
GOVERNMENTGovernment organization
OTHERSOther organization types. If selected, the specific organization value should be provided in the context_data array with key "organization_other"
PUBLIC_LTDPublic limited company
PRIVATE_LTDPrivate limited company
Education Fields
ValueDescription
POST_GRADUATEPost graduation degree completed
GRADUATEGraduate degree or diploma holder
12TH_PASSCompleted 12th standard
10TH_PASSCompleted 10th standard
BELOW_10THEducation below 10th standard
ILLITERATENo formal education
Nationality Fields
ValueDescription
FNForeign National
INDIndian
NRINon-Resident Indian
OCIOverseas Citizen of India
PIOPerson of Indian Origin
Document Type Fields
ValueDescription
PANPAN Card
AADHARAadhaar Card
DRIVING_LICENSEDriving License
PASSPORTPassport
ELECTRICITYElectricity Bill
VOTER_IDVoter ID Card
Relationship Fields
ValueDescription
HUSBANDMale spouse
SPOUSEPartner in marriage
FATHERMale parent
MOTHERFemale parent
SONMale child
DAUGHTERFemale child
OTHERSOther relationship
BROTHERMale sibling
SISTERFemale sibling
WIFEFemale spouse
NEPHEWSon of one's sibling
GRANDMOTHERMother of one's parent
UNCLEBrother of one's parent
SISTER_IN_LAWSister of one's spouse
GRANDFATHERFather of one's parent

Document Fields

The documents array contains identity document information:

FieldTypeOptionalDescription
document_typestringNoType of identity document (see Document Type Fields below)
document_numberstringNoDocument identification number

Context Data Fields

FieldTypeDescription
keystringIdentifier for the context data parameter
valuesstring[]Array of string values for the parameter

Response

Success Response (201 Created)

{
"payload": {
"proposal_id": "pro_18M6aOiODyyf37DM",
"status": "PENDING"
}
}

For draft proposals:

{
"payload": {
"proposal_id": "pro_18M6aOiODyyf37DM",
"status": "DRAFT"
}
}

Error Response

Validation Error (400 Bad Request)
{
"type": "V4000",
"title": "Validation Error",
"detail": "Missing or invalid fields in the request",
"instance": "/v1/embedded/proposal",
"additional_info": [
{
"field": "insured_members[0].email",
"message": "Invalid email format"
}
]
}
Unexpected Error (500 Internal Server Error)
{
"type": "E5000",
"title": "An unexpected error occurred",
"detail": "",
"instance": "/v1/embedded/proposal"
}

Response Fields

Success Response
FieldTypeDescription
proposal_idstringUnique identifier for the proposal (format: pro_*)
statusstringCurrent status of the proposal (DRAFT/PENDING/COMPLETED/REJECTED)
Error Response
FieldTypeDescription
typestringError code (V4000: Validation, E5000: System)
titlestringBrief error description
detailstringDetailed error message
instancestringAPI endpoint where error occurred
additional_infoarrayList of field-specific validation errors (for validation errors only)

Get Proposal Status

Retrieve the current status of an insurance proposal.

Endpoint

GET /v1/embedded/proposal/{proposal_id}/status

Path Parameters

ParameterTypeDescription
proposal_idstringUnique identifier for the proposal (format: pro_*)

Response

Success Response (200 OK)

{
"payload": {
"proposal_id": "pro_18M6aOiODyyf37DM",
"status": "COMPLETED",
"policy_url": "https://your-bucket-name.s3.amazonaws.com/policies/POL123456789.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..."
}
}

For draft proposals:

{
"payload": {
"proposal_id": "pro_18M6aOiODyyf37DM",
"status": "DRAFT"
}
}

Error Response

Not Found Error (404 Not Found)
{
"type": "R4040",
"title": "Resource Not Found",
"detail": "Proposal with ID pro_18M6aOiODyyf37DM not found",
"instance": "/v1/embedded/proposal/pro_18M6aOiODyyf37DM/status"
}
Unexpected Error (500 Internal Server Error)
{
"type": "E5000",
"title": "An unexpected error occurred",
"detail": "",
"instance": "/v1/embedded/proposal/{proposal_id}/status"
}

Response Fields

Success Response
FieldTypeDescription
proposal_idstringUnique identifier for the proposal (format: pro_*)
statusstringCurrent status of the proposal (DRAFT/PENDING/COMPLETED/REJECTED)
policy_urlstringShort-lived S3 URL to download the policy document (valid for 10 minutes, available when status is COMPLETED)
Error Response
FieldTypeDescription
typestringError code (R4040: Not Found, E5000: System Error)
titlestringBrief error description
detailstringDetailed error message (if available)
instancestringAPI endpoint where error occurred

Update Proposal

Update an existing proposal's status. This endpoint only accepts the status field in the request body.

Endpoint

PATCH /v1/embedded/proposal/{proposal_id}

Path Parameters

ParameterTypeDescription
proposal_idstringUnique identifier for the proposal (format: pro_*)

Request

Body

{
"status": "DRAFT"
}

Fields

FieldTypeOptionalDescription
statusstringNoNew status for the proposal (see Proposal Status table)

Response

Success Response (200 OK)

{
"payload": {
"proposal_id": "pro_18M6aOiODyyf37DM",
"status": "PENDING"
}
}

Error Response

Not Found Error (404 Not Found)
{
"type": "R4040",
"title": "Resource Not Found",
"detail": "Proposal with ID pro_18M6aOiODyyf37DM not found",
"instance": "/v1/embedded/proposal/pro_18M6aOiODyyf37DM"
}
Invalid State Error (400 Bad Request)
{
"type": "S4000",
"title": "Invalid State",
"detail": "Invalid status transition",
"instance": "/v1/embedded/proposal/pro_18M6aOiODyyf37DM"
}
Unexpected Error (500 Internal Server Error)
{
"type": "E5000",
"title": "An unexpected error occurred",
"detail": "",
"instance": "/v1/embedded/proposal/{proposal_id}"
}