Device Warranty Integration Guide¶
Covers Phone Warranty (phnn-flx1-1111, phnn-flx2-1111, phnn-flx3-1111) and Laptop Warranty (lapt-flx1-1111, lapt-flx2-1111) products.
Phone Warranty¶
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.
| Basic | Comprehensive | Premium | |
|---|---|---|---|
| Product code | phnn-flx1-1111 |
phnn-flx2-1111 |
phnn-flx3-1111 |
| Annual premium | ₦7,200 | ₦21,600 | ₦48,000 |
| Coverage | Accidental damage, broken screen, liquid spill, electrical surge | Full damage + theft | Full damage + theft, high-end devices |
| Cover periods | 6m, 1y |
6m, 1y |
6m, 1y |
| Target devices | Budget to mid-range phones | Flagship phones | Premium smartphones |
Laptop Warranty¶
| Basic | Comprehensive | |
|---|---|---|
| Product code | lapt-flx1-1111 |
lapt-flx2-1111 |
| Annual premium | ₦48,000 | ₦72,000 |
| Coverage | Accidental damage, liquid spill, electrical surge | Full damage + theft |
| Cover periods | 6m, 1y |
6m, 1y |
| Target devices | Business laptops | Premium laptops |
Integration Flow¶
Both phone and laptop warranty use a standard 4-step 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_phnn-flx1-1111*PRMM",
"seed": {
"insrncDrtn": "1y"
}
}
}'
Replace the product code to price any variant. Cover duration: "6m" or "1y".
Response:
Step 2 — Register Consumer¶
{
"cmmnd": {
"cmmnd": "prfl entity",
"seed": {
"type": "s",
"class": "h",
"name": { "first": "Ngozi", "last": "Eze" },
"phoneNo": "+2347011234567",
"eMail": "ngozi.eze@email.com"
}
}
}
Response: Returns id — store as consumer_id.
Date of birth and address are not required for device or laptop warranty.
Step 3 — Request Policy¶
Phone Warranty Request¶
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": "phnn",
"type": "flx1",
"pckg": "1111",
"insrncDrtn": "1y",
"id": "YOUR_32_CHAR_TX_REF",
"addtnlFact": {
"brand": "Samsung",
"model": "Galaxy A54",
"uIdnt": "354678901234567"
}
}
}
}'
Use "type": "flx2" for Comprehensive or "type": "flx3" for Premium.
Laptop Warranty Request¶
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": "lapt",
"type": "flx1",
"pckg": "1111",
"insrncDrtn": "1y",
"id": "YOUR_32_CHAR_TX_REF",
"addtnlFact": {
"brand": "Apple",
"model": "MacBook Air M2",
"uIdnt": "C02X123456789"
}
}
}
}'
Use "type": "flx2" for Comprehensive.
Required Fields¶
| Field | Type | Description |
|---|---|---|
ctgry |
string | "phnn" for phone, "lapt" for laptop |
type |
string | "flx1" / "flx2" / "flx3" (phone); "flx1" / "flx2" (laptop) |
pckg |
string | Always "1111" |
insrncDrtn |
string | "6m" or "1y" |
id |
string | Your 32-char lowercase alphanumeric transaction reference |
addtnlFact.brand |
string | Device manufacturer (e.g., "Apple", "Dell") |
addtnlFact.model |
string | Device model (e.g., "MacBook Air M2", "Galaxy A54") |
addtnlFact.uIdnt |
string | IMEI for phones (15 digits); serial number for laptops |
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_phnn-flx1-1111-{TX_ID}*STATUS"
}
}'
Replace phnn-flx1-1111 with the product code used in Step 3. For laptops: lapt-flx1-1111 or lapt-flx2-1111.
Status values¶
status |
Meaning | Next step |
|---|---|---|
"p" |
Pending — policy is being processed | Continue polling |
"a" |
Approved — policy number in response | Done |
"d" |
Declined — see statusNote for the reason |
Do not retry; contact Octamile |
Polling: In test mode, approval is instant. In live mode, poll every 5–10 seconds; device policies typically approve within 60 seconds.
Approved response (live mode):
{
"exctnFdbck": { "id": 75, "id_v4": 200 },
"status": "a",
"policyNo": "OCT-PHNN-20240320-A1B2C3D4"
}
In test mode, the response also includes
certUrl— a demo certificate link for integration testing. In live mode, onlypolicyNois returned.
Common Decline Reasons¶
| Issue | Likely cause | Fix |
|---|---|---|
| Policy declined | IMEI / serial already insured | Each device can only have one active policy at a time |
| Field validation error | Missing required field | Ensure brand, model, and uIdnt are all provided and non-empty |
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