Travel Insurance Integration Guide¶
Product code: ltix-stnd-1111
International travel protection underwritten by SanlamAllianz.
Product Overview¶
Travel insurance covers emergency medical expenses, trip disruptions, baggage loss, and related events during international travel. Coverage zone is determined automatically from the destination country.
| Zone | Countries |
|---|---|
| Schengen | Austria, Belgium, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Slovakia, Slovenia, Spain, Sweden, Switzerland |
| Area 1 | Ghana, Kenya, Saudi Arabia, South Africa, United Arab Emirates, United Kingdom |
| Area 2 | Canada, Japan, United States |
| Hajj & Umrah | Saudi Arabia only — requires isHajj: true |
Plan type: individual (primary traveler only) or family (primary traveler + additional travelers on the same policy).
Premium Rates¶
Indicative rates. Premiums shown are examples and subject to change. Always use Step 1 (SR10) to get the current rate before collecting payment from your customer.
All rates in NGN. Age of the primary traveler determines the rate tier.
Standard Plans (ages 0–69)¶
| Duration | Schengen Indiv | Schengen Family | Area 1 Indiv | Area 1 Family | Area 2 Indiv | Area 2 Family |
|---|---|---|---|---|---|---|
1–7 days (7d) |
5,072 | 10,144 | 5,480 | 10,960 | 7,524 | 15,048 |
1–15 days (15d) |
8,516 | 17,470 | 8,220 | 16,440 | 9,582 | 19,166 |
1–30 days (30d) |
14,934 | 29,868 | 13,004 | 26,008 | 15,744 | 31,488 |
1–62 days (62d) |
22,260 | 44,520 | 19,846 | 39,692 | 23,268 | 46,534 |
1–92 days (92d) |
27,332 | 54,664 | 30,110 | 60,220 | 30,806 | 61,612 |
6-month multi-trip (6m) |
37,476 | 74,952 | 36,272 | 72,542 | 40,374 | 80,748 |
12-month multi-trip (12m) |
45,366 | 90,732 | 45,172 | 90,346 | 58,176 | 116,352 |
Ages 70–75: multiply above rates × 2. Ages 76–80: multiply × 2.5. Maximum insurable age: 80.
Hajj & Umrah¶
| Duration | Ages 0–18 | Ages 19–75 | Ages 76–80 |
|---|---|---|---|
15 days (15d) |
1,828 | 4,752 | 9,504 |
25 days (25d) |
2,976 | 7,736 | 15,470 |
45 days (45d) |
5,440 | 14,144 | 28,288 |
Hajj & Umrah is only available with isHajj: true and destination: "Saudi Arabia". Durations 15d, 25d, and 45d are exclusive to Hajj — they are not valid for other plans.
What Is Covered¶
- Emergency medical and hospital expenses (up to 35,000 EUR, 50 EUR deductible)
- Emergency dental (up to 150 EUR)
- COVID-19 emergency medical expenses and quarantine accommodation
- Medical evacuation and repatriation of remains
- Trip delay, missed departure, and missed connection
- Baggage delay (up to 400 EUR after 6 hours), loss (EUR 20/kg up to 500 EUR)
- Loss of travel documents including passport
- Loss of personal money
- Legal expenses and bail bond
- 24/7 travel assistance services
Integration Flow¶
Step 1: Get premium quote
Step 2: Register consumer
[Collect payment]
Step 3: Request policy
Step 4: Check policy status
Step 1 — Get Premium Quote¶
curl -X POST https://octamile-api.azurewebsites.net \
-H "Content-Type: application/json" \
-d '{
"userInfo": {
"id": "YOUR_PARTNER_ID",
"athrzt": { "id": "YOUR_AUTH_ID", "key": "YOUR_AUTH_KEY" }
},
"cmmnd": {
"cmmnd": "dump ipck_ltix-stnd-1111*PRMM",
"seed": {
"insrncDrtn": "15d",
"destination": "France",
"planType": "individual",
"travelerAge": 35
}
}
}'
| Field | Type | Required | Description |
|---|---|---|---|
insrncDrtn |
string | Yes | Duration tier — see supported values below |
destination |
string | Yes | Destination country — see supported countries above. The coverage zone (Schengen/Area 1/Area 2) is derived automatically. |
planType |
string | Yes | individual or family |
travelerAge |
integer | No | Age of primary traveler — affects rate for ages 70+. Defaults to 35 if omitted. |
isHajj |
boolean | No | Set true for Hajj & Umrah travel. Destination must be "Saudi Arabia". |
Supported durations:
| Type | Values |
|---|---|
| Standard plans | 7d, 15d, 30d, 62d, 92d, 6m, 12m |
| Hajj & Umrah only | 15d, 25d, 45d |
Response:
Step 2 — Register Consumer¶
curl -X POST https://octamile-api.azurewebsites.net \
-H "Content-Type: application/json" \
-d '{
"userInfo": {
"id": "YOUR_PARTNER_ID",
"athrzt": { "id": "YOUR_AUTH_ID", "key": "YOUR_AUTH_KEY" }
},
"cmmnd": {
"cmmnd": "prfl entity",
"seed": {
"type": "s",
"class": "h",
"name": { "first": "Innocent", "last": "Egbeigwe" },
"phoneNo": "+2348063639347",
"eMail": "innocent.e@email.com",
"gender": "m",
"dob": { "date": "1980-07-03" },
"addrss": { "addrss": "17 Ishola Street, Lagos, Nigeria" }
}
}
}'
Response: Returns id — store as consumer_id.
Step 3 — Request Policy¶
Prerequisite: The
{CONSUMER_ID}in the command string must be theidreturned by SR05 using the same API credentials you are using here. Passing a UUID not returned by SR05 will result in a409 Consumer not founderror.
Individual plan¶
curl -X POST https://octamile-api.azurewebsites.net \
-H "Content-Type: application/json" \
-d '{
"userInfo": {
"id": "YOUR_PARTNER_ID",
"athrzt": { "id": "YOUR_AUTH_ID", "key": "YOUR_AUTH_KEY" }
},
"cmmnd": {
"cmmnd": "entt_{CONSUMER_ID}: insure",
"seed": {
"ctgry": "ltix",
"type": "stnd",
"pckg": "1111",
"insrncDrtn": "15d",
"id": "YOUR_32_CHAR_TX_REF",
"addtnlFact": {
"planType": "individual",
"destination": "France",
"departureDate": "2024-08-24",
"returnDate": "2024-09-08",
"passportNo": "B50120600",
"occupation": "Business",
"nokName": "Ngozi Ugochukwu",
"nokRelationship": "Spouse",
"nokPhone": "+2348039361541"
}
}
}
}'
Family plan¶
For a family plan, include the primary traveler's details at the top level as normal, plus a passengers array for each additional traveler.
curl -X POST https://octamile-api.azurewebsites.net \
-H "Content-Type: application/json" \
-d '{
"userInfo": {
"id": "YOUR_PARTNER_ID",
"athrzt": { "id": "YOUR_AUTH_ID", "key": "YOUR_AUTH_KEY" }
},
"cmmnd": {
"cmmnd": "entt_{CONSUMER_ID}: insure",
"seed": {
"ctgry": "ltix",
"type": "stnd",
"pckg": "1111",
"insrncDrtn": "15d",
"id": "YOUR_32_CHAR_TX_REF",
"addtnlFact": {
"planType": "family",
"destination": "France",
"departureDate": "2024-08-24",
"returnDate": "2024-09-08",
"passportNo": "B50120600",
"occupation": "Business",
"nokName": "Ngozi Ugochukwu",
"nokRelationship": "Spouse",
"nokPhone": "+2348039361541",
"passengers": [
{
"firstName": "Chika",
"lastName": "Egbeigwe",
"dob": "1982-03-15",
"passportNo": "B60234500",
"gender": "f",
"occupation": "Teacher"
}
]
}
}
}
}'
Required Fields¶
| Field | Type | Description |
|---|---|---|
ctgry |
string | Always "ltix" |
type |
string | Always "stnd" |
pckg |
string | Always "1111" |
insrncDrtn |
string | Duration tier matching the quote |
id |
string | Your 32-char lowercase alphanumeric transaction reference |
addtnlFact.planType |
string | individual or family |
addtnlFact.destination |
string | Destination country — must match a supported country |
addtnlFact.departureDate |
string | ISO 8601 (YYYY-MM-DD) |
addtnlFact.returnDate |
string | ISO 8601 (YYYY-MM-DD) |
addtnlFact.passportNo |
string | Primary traveler's passport number |
addtnlFact.occupation |
string | Primary traveler's occupation |
addtnlFact.nokName |
string | Next of kin full name |
addtnlFact.nokRelationship |
string | Relationship to traveler |
addtnlFact.nokPhone |
string | Next of kin phone number |
Family Plan — Additional Traveler Fields (passengers array)¶
Required for planType: "family". Each entry in the passengers array must have:
| Field | Type | Required | Description |
|---|---|---|---|
firstName |
string | Yes | |
lastName |
string | Yes | |
dob |
string | Yes | ISO 8601 (YYYY-MM-DD) |
passportNo |
string | Yes | |
gender |
string | No | "m" or "f" |
occupation |
string | No |
Optional Fields¶
| Field | Type | Description |
|---|---|---|
addtnlFact.middleName |
string | Primary traveler's middle name |
addtnlFact.nokAddress |
string | Next of kin address |
addtnlFact.isHajj |
boolean | true for Hajj & Umrah |
Response:
Step 4 — Check Policy Status¶
curl -X POST https://octamile-api.azurewebsites.net \
-H "Content-Type: application/json" \
-d '{
"userInfo": {
"id": "YOUR_PARTNER_ID",
"athrzt": { "id": "YOUR_AUTH_ID", "key": "YOUR_AUTH_KEY" }
},
"cmmnd": {
"cmmnd": "dump entt_{CONSUMER_ID}|insr_ltix-stnd-1111-{TX_ID}*STATUS"
}
}'
Status values¶
status |
Meaning | Next step |
|---|---|---|
"p" |
Pending — SanlamAllianz is processing the booking | Continue polling |
"a" |
Approved — certificate URL in response | Done |
"d" |
Declined — see statusNote for the reason |
Do not retry; contact Octamile |
Polling: Travel policies typically approve within 60 seconds. Poll every 10–30 seconds. In test mode, approval is instant.
Approved response (live mode):
In test mode, the response includes both
policyNo(a demo number) andcertUrl(a demo link). In live mode, onlycertUrlis returned.
Common Errors¶
| Error | Likely cause | Fix |
|---|---|---|
destination not provided |
destination missing from Step 1 seed |
Include destination as a required field in your SR10 call |
Destination country not recognised |
Country name not in the supported list | Use one of the supported country names from the table at the top of this guide |
Nigeria is the country of origin |
destination set to "Nigeria" |
Travel must be to a foreign country |
| Invalid duration for plan | Using 7d–92d with Hajj, or 15d/25d/45d without isHajj |
Hajj durations are exclusive |
| Age exceeds limit | travelerAge > 80 |
Maximum insurable age is 80 years |
| Missing next of kin | nokName, nokRelationship, or nokPhone not provided |
All three are required |
| Missing passenger fields | Family plan with incomplete passengers entry |
Each passenger needs firstName, lastName, dob, passportNo |
See also¶
- Error Reference — full list of error codes and fixes
- Webhooks — receive push notifications instead of polling
- Consumer Management — register and reuse consumer profiles