Quotation APIs
The common APIs are used to retrieve quotation details that have been updated by the user, create offers, and modify covers when required.
Once the customer selects an offer, the system proceeds with payment processing and then sends a confirmation to Bima through the Confirmation API.
To get quotation details included input data and offers you need to make POST call to the following url :
/v1/Quotation/Read
| Field | Type | Limit | Required | Description |
|---|---|---|---|---|
| quotation_id | string | 500 | Yes | Quotation Id (encrypted) |
| offer_id | string | 20 | Yes | Selected offer's id |
| lang_code | string | 2 | Yes | Request language: en, ar |
| include_data | boolean | - | Optional | Response includes additional data |
| include_result | boolean | - | Optional | Response includes offers |
{
"quotation_id": "23123asldjfasdlasdflkweiou3e334kljhsajalke41546484435",
"offer_id": "",
"lang_code": "en",
"include_data": true,
"include_result": true
}
{
"status_code": "200",
"status_message": "Quotation retrieved successfully ",
"data": {
"quotation_no": "26051276063",
"quotation_id": "dXVoWlBTaEM1OGJZdWRpa2ljcTRlQT09LnQvdGQxYWpRTTNrczFKZkl2dHMzYzVTTjJPYy",
"quotation_id_parent": "",
"request_type_code": "CREDIT_LIFE_INSURANCE",
"insurance_type_code": "PERSONAL_LOAN",
"request_type_name": "Credit Life",
"insurance_type_name": "Personal Loan",
"lang_code": "en",
"status_code": "Quoted",
"status_title": "Quoted",
"quotation_expire_Date": "",
"customer": {
"id_no": "123654789",
"id_type": 0,
"id_expire_date": "",
"license_no": "123654789",
"country_code": "968",
"area_code": "955",
"subscriber_code": "42930",
"national_no": "95542930",
"contact_full_no": "96895542930",
"title_id": 0,
"first_name": "Saif",
"middle_name": "al",
"last_name": "Maluk 2",
"email": "saifal.maluk@bima.om",
"nationality_country_id": 1,
"nationality_country_code": "AD",
"nationality_country_name": "Andorran",
"residence_country_id": 0,
"dob": "12/19/1971 12:00:00 AM",
"passport_no": "",
"gender_id": 1,
"gender_name": "Male",
"region_id": 1,
"region_name": "Ad Dakhiliyah",
"city_id": 1,
"city_name": "Adam",
"town_id": 1,
"pobox_no": "",
"address": "Muscat Oman",
"address2": ""
},
"required_approval": false,
"request_data": {},
"question_data": [],
"request_result": {
"offers_status_code": "",
"details": [
{
"code": "contact_no_full",
"value": "96895542930",
"title": ""
},
{
"code": "request_type",
"value": "Credit Life",
"title": ""
},
{
"code": "insurance_type",
"value": "Personal Loan",
"title": ""
},
{
"code": "insured_amount",
"value": 10000.000,
"title": ""
},
{
"code": "tenure_in_months",
"value": 18,
"title": ""
},
{
"code": "dob",
"value": "19/12/1971",
"title": ""
},
{
"code": "gender",
"value": 1,
"title": ""
}
],
"offers": [
{
"offer_id": "57638",
"offer_group_id": "",
"provider_code": "LIVA_INS",
"provider_name": "Liva Insurance",
"provider_thumb": "/Upload/Shared/Reg/d457190b-6d88-4803-931a-08d93eea68a3_thumb.png",
"product_name": "Personal Loan",
"product_code": "PERSONAL_LOAN_LIVA",
"plan_name": "",
"plan_code": "",
"network_name": "",
"network_code": "",
"network_download_url": "",
"tob_download_url": "",
"processing_fee": 0.000,
"basic_amount": 70.200,
"other_amount": 0.000,
"gross_amount": 70.200,
"tax_amount": 0.000,
"net_amount": 70.200,
"vat_amount": 0.000,
"total_premium": 70.200,
"is_valid_offer": true,
"insurers_coverd_count": 0,
"insurers_not_coverd_count": 0,
"insurers_limit_min": 0,
"insurers_limit_max": 0,
"covers": {
"core": [],
"included": [
{
"cover_id": 15,
"cover_id_parent": 0,
"cover_code": "VAT",
"cover_name": "Value Added Tax",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": false,
"is_viewable": false,
"order_no": 8.000,
"amount": 0.000,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 67,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 0.000,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Percent"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 44,
"cover_id_parent": 0,
"cover_code": "DAC",
"cover_name": "Death by Any Cause (DAC)",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": true,
"is_viewable": true,
"order_no": 2.000,
"amount": 0.000,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 78,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 0.000,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 13,
"cover_id_parent": 0,
"cover_code": "BASIC_AMOUNT",
"cover_name": "Basic Amount",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": false,
"is_viewable": false,
"order_no": 1.000,
"amount": 70.200,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 63,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 70.200,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 31,
"cover_id_parent": 0,
"cover_code": "TOTAL_PREMIUM",
"cover_name": "Total Premium",
"cover_desc_short": "",
"cover_desc_long": "Total Premium after discount (if any)
",
"is_mandatory": true,
"is_selected": true,
"is_selectable": false,
"is_viewable": false,
"order_no": 9.000,
"amount": 70.200,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 68,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 70.200,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 46,
"cover_id_parent": 0,
"cover_code": "PTD_PEC",
"cover_name": "Permanent Total Disability Caused by Previously Existing Chronic Diseases (PTD-PEC)",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": true,
"is_viewable": true,
"order_no": 4.000,
"amount": 0.000,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 76,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 0.000,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 14,
"cover_id_parent": 0,
"cover_code": "TAX",
"cover_name": "Tax & contribution",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": false,
"is_viewable": false,
"order_no": 6.000,
"amount": 0.000,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 65,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 0.000,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Percent"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 45,
"cover_id_parent": 0,
"cover_code": "TBD_UPTO_65",
"cover_name": "Total permanent disability (TPD) caused by accident or disease at 75% or more(TPD Covered upto age 65)",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": true,
"is_viewable": true,
"order_no": 3.000,
"amount": 0.000,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 77,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 0.000,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 29,
"cover_id_parent": 0,
"cover_code": "GROSS_AMOUNT",
"cover_name": "Gross Amount",
"cover_desc_short": "",
"cover_desc_long": "",
"is_mandatory": true,
"is_selected": true,
"is_selectable": false,
"is_viewable": false,
"order_no": 5.000,
"amount": 70.200,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 64,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 70.200,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
},
{
"cover_id": 30,
"cover_id_parent": 0,
"cover_code": "NET_AMOUNT",
"cover_name": "Net Amount",
"cover_desc_short": "",
"cover_desc_long": "Net Amount including
\r\nBassic amount + optinal covers + tax amount
",
"is_mandatory": true,
"is_selected": true,
"is_selectable": false,
"is_viewable": false,
"order_no": 7.000,
"amount": 70.200,
"thumb": "",
"icon_name": "",
"is_excluded": false,
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
},
"options": [
{
"option_id": 66,
"option_id_parent": 0,
"option_code": "",
"option_name": "Default",
"is_selected": true,
"order_no": 1.000,
"amount": 70.200,
"is_excluded": false,
"show_option_name": false,
"rate": {
"is_enabled": false,
"value": 0.000,
"type": "Fix"
},
"deductible": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"copay": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix"
},
"insured_amount": {
"is_enabled": false,
"amount": 0.000,
"type": "Fix",
"currency_name": "R.O",
"currency_code": "OMR"
}
}
]
}
],
"optional": []
},
"documents": [],
"medical_tests": [
{
"test_code": "INSURANCE_APPLICATION",
"test_name": "IA - Insurance Application"
},
{
"test_code": "COMPLETE_BLOOD_COUNT",
"test_name": "Lab 1 - Complete Blood Count"
},
{
"test_code": "GLYCOSYLATE_HAEMOGLOBIN_HBA1C",
"test_name": "Lab 1 - Glycosylate Haemoglobin (HbA1c)"
},
{
"test_code": "SERUM_CREATININE",
"test_name": "Lab 1 - Serum Creatinine"
},
{
"test_code": "MEDICAL_DECLARATION",
"test_name": "MD - Medical Declaration"
},
{
"test_code": "MER_INCLUDING_MU",
"test_name": "MER - Medical Examination Report including Microscopic Urinalysis"
}
],
"insured_amount": {
"is_enabled": false,
"amount": 0,
"type": "",
"currency_name": "",
"currency_code": ""
},
"badges": [
{
"order_no": 2,
"code": "ENDORSEMENT",
"text": "Endorsement",
"value": "Instant",
"value_was": "",
"icon_name": "fa-sharp fa-light fa-rocket-launch",
"icon_url": "",
"background_color": "#F6F9FE",
"border_color": "#F6F9FE",
"description": ""
}
],
"messages": [],
"insurers": []
}
]
},
"request_documents": [],
"approvals": [],
"business_activities": [],
"previous_claims": [],
"payment": {
"gross_amount": 0,
"tax_amount": 0,
"net_amount": 0,
"vat_amount": 0,
"total_premium": 0,
"discount_amount": 0,
"total_amount": 0,
"cross_sell_data": []
}
},
"messages": []
}
Process quotation is the main API where system generates multiple offers for the requested quotation id. It delete previous overs if any and re generates everytime whenever you call this API.
To create offers you need to make a POST call to the following url :
/v1/Quotation/Process
| Field | Type | Limit | Required | Description |
|---|---|---|---|---|
| quotation_id | string | 500 | Yes | Quotation Id (encrypted) |
| async | boolean | - | Optional |
Process request asynchronously
true: Create quotation, process offers and return response false: Create quotation and return response without offers, you can fetch offers later |
| lang_code | string | 2 | Yes | Request language: en, ar |
| include_data | boolean | - | Optional | Response includes additional data |
| include_result | boolean | - | Optional | Response includes offers |
{
"quotation_id": "23123asldjfasdlasdflkweiou3e334kljhsajalke41546484435",
"async": false,
"include_data": true,
"include_result": true,
"lang_code": "en"
}
In order to add or remove optional covers, you are required to make POST call with requried inputs to the following url :
/v1/Quotation/Reprocess
| Field | Type | Limit | Required | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| quotation_id | string | 500 | Yes | Quotation Id (encrypted) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| async | boolean | - | Optional |
Process request asynchronously
true: Create quotation, process offers and return response false: Create quotation and return response without offers, you can fetch offers later |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lang_code | string | 2 | Yes | Request language: en, ar | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| include_data | boolean | - | Optional | Response includes additional data | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| include_result | boolean | - | Optional | Response includes offers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| offers |
Offer arry, which is required to be updated with selective covers object
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{
"quotation_id": "23123asldjfasdlasdflkweiou3e334kljhsajalke41546484435",
"async": false,
"include_data": true,
"include_result": true,
"lang_code": "en",
"offers": [
{
"offer_id": "33805",
"covers": {
"core": [
{
"cover_id": "76",
"is_selected": true,
"option_id": "5"
},
{
"cover_id": "73",
"is_selected": true,
"option_id": "30"
}
],
"optional": []
}
}
]
}
Once the customer has selected an offer, you are required to process the payment. After successfully receiving the payment, you must make a POST request to the following URL :
/v1/Quotation/Confirmation
Note: Bima will issue the policy to the customer upon receiving confirmation from your system, without performing payment verification on Bima’s end.
Before processing the payment, you must check the quotation approval status (required_approval). If required_approval is false, you may proceed with the payment or request a follow-up if needed.
| Field | Type | Limit | Required | Description |
|---|---|---|---|---|
| quotation_id | string | 500 | Yes | Quotation Id (encrypted) |
| offer_id | string | 20 | Yes | Selected offer's id |
| lang_code | string | 2 | Yes | Request language: en, ar |
| offer_amount | number | - | Yes | Amount of selected offer |
| trans_track_id | number | - | Yes | Payment gateway or unique transaction number generated from your system |
| trans_fee | number | - | Yes | Transaction fee applied from payment gateway if any |
{
"quotation_id": "23123asldjfasdlasdflkweiou3e334kljhsajalke41546484435",
"lang_code": "ar",
"offer_id": "30928",
"offer_amount": 45.236,
"trans_track_id": "20265741",
"trans_fee": 0.339
}
Some offers require approval and cannot be purchased immediately upon retrieval. In such cases, you can submit follow-up request.
Bima’s support team will coordinate with the respective insurance provider and contact the customer if any additional information or documentation is required.
Once the provider approves the offer, the customer will be asked to proceed with payment. After successful payment, the policy document will be issued.
You are required make a POST request to the following URL :
/v1/Quotation/Followup
| Field | Type | Limit | Required | Description |
|---|---|---|---|---|
| quotation_id | string | 500 | Yes | Quotation Id (encrypted) |
| lang_code | string | 2 | Yes | Request language: en, ar |
| offer_id | string | 20 | Yes | Selected offer's id (single offer) |
| offer_group_id | string | 20 | Yes | Selected offer's group id (multiple offers for insurers) |
{
"quotation_id": "23123asldjfasdlasdflkweiou3e334kljhsajalke41546484435",
"lang_code": "ar",
"offer_id": "35529"
}
In order to get request detils including policy documents, you are required make a POST request to the following URL :
/v1/Quotation/Track
| Field | Type | Limit | Required | Description |
|---|---|---|---|---|
| quotation_id/refid | string | 500 | Yes | Quotation Id (encrypted) |
| lang_code | string | 2 | Yes | Request language: en, ar |
{
"quotation_id": "23123asldjfasdlasdflkweiou3e334kljhsajalke41546484435",
"lang_code": "ar"
}