Travel Insurance
API Endpoint
https://test.bima.om/
Bima insurance provide APIs for travel insurance, you can use below APIs/Process to generate offers.
Travel APIs & Flow
- Create quotation: Get travel quotation by passing very basic details
- Customize offer: Add or remove optional covers
- Update Travelers: Update travelers details
- Purchase: Confirm payment by providing payment details
API TOKEN
Token is required to call any API from Bima portal, you can use below API to create new token which is valid for 24 hours.
/api/Auth/GetToken
Result example :
{
"status": 200,
"data": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ
CaW1hQXBwVXNlciIsImp0aSI6IkFQoItZSDWyzpIo9E"
}
REQUEST PARAMETERS
| Field | Type | Description |
|---|---|---|
| username | String | Bima API user Id/Email |
| password | String | User password |
Create Quotation
To create travel insurance quotation, use this API by sending JSON object as showing below.
/api/Insurance/CreateTravelOffers
Result example :
{
"referenceNo": "6A077B6F-823B-4D97-82B0-6F1CEF9E937E",
"statusCode": "OK",
"statusMessage": null,
"isValidRequest": true,
"isValidRequestDesc": null,
"langCode": "en",
"travelDetails": {
"CountryCodeFrom": "OM",
"CountryCodeTo": "AE",
"CountryNameFrom": "Oman",
"CountryNameTo": "United Arab Emirates",
"TravelingWay": "Outbound",
"AdultsQuantity": 0,
"ChildsQuantity": 0,
"SeniorQuantity": 0,
"TotalTravelersQty": 0,
"DepartureDate": "2024-02-25T00:00:00",
"ReturnDate": "2024-02-28T00:00:00",
"strDepartureDate": "25/02/2024",
"strReturnDate": "28/02/2024",
"TripTypeCode": null,
"InsuredNoOfDays": 0,
"CustomerTypeCode": null,
"ResidenceCountryName": "Oman",
"ResidenceCountryCode": "OM",
"TravelRegionCode": ""
},
"includeTravelers": true,
"travelers": null,
"provders": [
{
"providerName": "GIG (Previously AXA)",
"providerCode": "GIG_INS",
"imageURLThumbnail": "http://localhost:1044/\\Uploads\\Provider\\4KLM77-10A5-8FF1-K647-FC7DB23EK4\\gig-logo-thumb.jpg",
"ProductName": null,
"ProductHeading": "",
"ProductDescription": null,
"instantPolicyTitle": "instant insurance",
"offers": [
{
"offerRefNo": "AXA82231088-0f7f-4ced-be3e-342b5180bec1",
"name": "Travel Smart",
"heading": "",
"description": "",
"totalPremium": 16.215,
"insuredNoOfDays": 5,
"covers": [
{
"code": "AREA_WORLDWIDE",
"name": "Area : Worldwide",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
},
{
"code": "MEDICAL_TRAVEL",
"name": "Medical Travel Insurance",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": true,
"isSelected": true,
"coverGroupCode": null
},
{
"code": "TERRORISM",
"name": "Terrorism",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
},
{
"code": "TRAVEL_INCONVENIENCE",
"name": "Travel Inconvenience",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
},
{
"code": "ADVENTURE_SPORTS",
"name": "Adventure Sports",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
}
]
}
],
"messagesForCustomer": [],
"statusCode": null,
"statusMessage": null
}
],
"allertMessages": null,
"errMessages": []
}
REQUEST PARAMETERS
| Field | Type | Description |
|---|---|---|
| CountryCode | String | Country code/ dialing country code - 968 |
| ContactNo | Integer | Contact number without country code - 99086408 |
| FirstName | String | User First Name |
| MiddleName | String | (Optional) User Middle Name |
| LastName | String | (Optional) User Last Name |
| LangCode | String | Language code - en/ar |
| includeTravelers | Bool | If true the response will have travelers list as well with updated traveler ID. |
Its required to input traveling from country name and traveling to country name, one side/way it must be Oman (either From or To country).
Optional input fields (Travel details)
| Field | Type | Description |
|---|---|---|
| CountryCodeFrom | String | Traveling from Country Code |
| CountryCodeTo | String | Traveling To Country Code |
| strDepartureDate | String | Departure Date with format dd/MM/yyyy |
| strReturnDate | String | Return Date with format dd/MM/yyyy |
| ResidenceCountryCode | String | User residence country code |
If the customer is traveling to Oman and he/she is resident of Oman is not allowed to get quotation. Note: You can get country name and codes from the api given in the last.
Optional input fields (Traveler data)
| Field | Type | Description |
|---|---|---|
| TitleCode | String | Traveler name title/prefix |
| FirstName | String | Traveler First Name |
| MiddleName | String | (Optional) Traveler Middle Name |
| LastName | String | (Optional) Traveler Last Name |
| strDOB | String | Date of Birth with format dd/MM/yyyy |
| PassportNo | String | Traveler passport number |
| Nationality_CountryCode | String | Traveler nationality country code |
| RelationShip | String | The default/first traveler relationship must be marked as "self" |
| Gender | String | Male/Female |
UPDATE OFFER
Quotation contains multiple provider and offers, each offer contain optional and included covers. Included covers are mandatory and can not be changed, but optional covers can be added or removed and have further multiple options and user can change option as per requirements.
/api/Insurance/UpdateTravelOffer
Note: When FeatureCategoryCode=CHOICE and LabelOptions has more than one options. Allow user to choose option.
Result example :
{
"providerName": "GIG (Previously AXA)",
"providerCode": "GIG_INS",
"imageURLThumbnail": "http://localhost:1044/\\Uploads\\Provider\\4KLM77-10A5-8FF1-K647-FC7DB23EK4\\gig-logo-thumb.jpg",
"ProductName": null,
"ProductHeading": "",
"ProductDescription": null,
"instantPolicyTitle": "instant insurance",
"offers": [
{
"offerRefNo": "AXA1b5c212e-8932-446c-a7fb-4d10264c3d4b",
"name": "",
"heading": "",
"description": "",
"totalPremium": 36.484,
"insuredNoOfDays": 5,
"covers": [
{
"code": "AREA_WORLDWIDE",
"name": "Area : Worldwide",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
},
{
"code": "MEDICAL_TRAVEL",
"name": "Medical Travel Insurance",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": true,
"isSelected": true,
"coverGroupCode": null
},
{
"code": "TERRORISM",
"name": "Terrorism",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
},
{
"code": "TRAVEL_INCONVENIENCE",
"name": "Travel Inconvenience",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": false,
"coverGroupCode": null
},
{
"code": "ADVENTURE_SPORTS",
"name": "Adventure Sports",
"description": null,
"premium": 0.0,
"help": null,
"benefits": null,
"isMandatory": false,
"isSelected": true,
"coverGroupCode": null
}
]
}
],
"messagesForCustomer": [],
"statusCode": "OK",
"statusMessage": null
}
REQUEST PARAMETERS
| Field | Type | Description |
|---|---|---|
| ReferenceNo | String | Quotation unique reference number (ReferenceNo) |
| offerRefNo | Integer | Selected offer reference no. |
| providerCode | String | Offer provider code |
| LangCode | String | Language code en/ar |
REQUEST PARAMETERS (SELECTED COVER)
| Field | Type | Description |
|---|---|---|
| code | String | Selected cover/add-on code |
| isSelected | Boolean | True/False |
UPDATE TRAVELERS
Its required to provide all travelers details including TravelerID which is available in create quote api response
/api/Insurance/UpdateTravelerDetails
Result example :
{
"statusCode": "Ok",
"statusMessage": "Travelers details are updated"
}
REQUEST PARAMETERS
| Field | Type | Description |
|---|---|---|
| ReferenceNo | String | Quotation unique reference number (ReferenceNo) |
| offerRefNo | Integer | Selected offer reference no. |
| LangCode | String | Language code en/ar |
Optional input fields (Traveler data)
| Field | Type | Description |
|---|---|---|
| TitleCode | String | Traveler name title/prefix |
| FirstName | String | Traveler First Name |
| MiddleName | String | (Optional) Traveler Middle Name |
| LastName | String | (Optional) Traveler Last Name |
| strDOB | String | Date of Birth with format dd/MM/yyyy |
| PassportNo | String | Traveler passport number |
| Nationality_CountryCode | String | Traveler nationality country code |
| RelationShip | String | The default/first traveler relationship must be marked as "self" |
| Gender | String | Male/Female |
VIEW MORE DETAILS
To view more details for the offer, use below URL and system will return html content. You are required to pass offer reference no in query string parameter as below.
/api/Insurance/ViewMoreDetails
Content page is also available to display more details
/Insurance/GetTravelPlanBenefits/?id=MIC0b92d05d-93bd-49da-bf48-a37322a7c639_521
Result example :
{
"statusCode": "SUCCESS",
"requestMessage": null,
"HtmlContent": "View more detailsCoverage in US dollars except for Schengen in Euro.
"
}
REQUEST PARAMETERS
| Field | Type | Description |
|---|---|---|
| referenceNo | String | Quotation unique reference number (referenceNo) |
| offerRefNo | Integer | Selected offer reference number |
| langCode | String | Language ar/en |
PURCHASE
In order to proceed for payment, its required to check offer validity variable (IsValidRequest) in offer response, offer can not be confirmed when IsValidRequest=false.
Content page is also available to display more details
/api/Insurance/ConfirmRequest_Travel
Result example :
{
"ofr_ReferenceNo": "75069F2D-369F-42C6-8775-B40938278562",
"PID": 0,
"Payment_TrackId": 24020027596633,
"Payment_TransId": "230221379710",
"Payment_Id": "728010",
"PaymentStatus": "APPROVED",
"WayOfPayment": "Online",
"PaymentGateway": "EXTERNAL-",
"LangCode": "en",
"RequestStatus": "Success",
"RequestMessage": "Our dear customer\r\n\r\nThe insurance request was received in Bima, the insurance policy is usually issued within 15 minutes.
If there are required documents, you will be contacted via WhatsApp.\r\n\r\nThank you for choosing Bima.",
"Amount": 103.7,
"FeeAmount": 0.0,
"customer": {
"FirstName": "Ahmed",
"LastName": "Al Ajmi",
"Email": null
},
"additional_drivers": {
"NotRequired": "no",
"data": [
{
"FirstName": "Ahmed ",
"LastName": "Al Ajmi",
"DriverAge": 45
},
{
"FirstName": "Mohammad ",
"LastName": "Al Jabbar",
"DriverAge": 33
}
]
}
}
REQUEST PARAMETERS
| Field | Type | Description |
|---|---|---|
| ofr_ReferenceNo | String | Quotation unique reference number (ofr_ReferenceNo) |
| ofr_ReferenceNo_Plan | String | Selected offer reference number (ofr_ReferenceNo_Plan) |
| Payment_TransId | String | Collector/External payment gateway transaction id |
| Payment_Id | String | Collector/External payment id |
| PaymentStatus | String | APPROVED |
| LangCode | String | Language code en/ar (default English) |
| Amount | Double | Selected offer amount |
| FeeAmount | Double | Payment gateway fee if any |
OTHER APIs
List of APIs required to load predefined data options for user additional input
-
Get quotation details
/api/Insurance/GetTravelOffers -
Country List
/api/Common/GetCounteries/?langCode=en -
Nationality List
/api/Common/GetNantionalities/?langCode=en -
Name titles
/api/Insurance/GetPrefixTitles/?langCode=ar -
Relationship
/api/Common/GetRelationshpOptions_Travel/?langCode=en