Skip to content

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:

{
  "exctnFdbck": { "id": 75 },
  "prmm": 7200
}


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:

{
  "exctnFdbck": { "id": 75 }
}


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, only policyNo is 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