Error Reference
All AIMS API errors return JSON with an exctnFdbck wrapper. The HTTP status code and the elbrtn field both carry the error details.
{
"exctnFdbck": {
"id_v4": 406,
"id": 55,
"elbrtn": "Data cmmnd.seed.eMail is required"
}
}
id_v4 is the HTTP status code. elbrtn is the human-readable error message. id is an internal status indicator (55 = error, 75 = success).
401 — Unauthorized
| Message |
Cause |
Fix |
Your authorization is not genuine |
userInfo.id or userInfo.athrzt.key is missing, malformed, or does not match the record in our system |
Double-check your Partner ID (UUID) and API key. Keys are case-sensitive. See Authentication. |
400 — Bad Request
| Message |
Cause |
Fix |
Unsupported request |
cmmnd.cmmnd value is not a recognised command string |
Check the command format. Valid examples: "prfl entity", "dump ipck_vhcl*PRMM", "entt_{id}: insure". |
Product specified not supported |
ctgry, type, or pckg combination does not match any product |
Verify the product code. All supported products are listed in API Reference. |
Data cmmnd.seed.id already in use by another insurance request from you |
The id (transaction reference) you supplied has already been used for an insurance request on this product |
Generate a new unique transaction reference for each request. |
406 — Validation Error
These fire before any data is stored. Fix the highlighted field and resubmit.
Consumer Registration (SR05 — prfl entity)
| Message |
Field |
Fix |
Data cmmnd.seed.eMail is required |
eMail |
Provide a valid email address. Required for all consumer classes. |
Data cmmnd.seed.eMail (validation error text) |
eMail |
Email address is present but invalid. Provide a valid format, e.g. user@example.com. |
Data cmmnd.seed.phoneNo is required for individual consumers |
phoneNo |
Required for class: "individual" and class: "h". Format: international with + and country code, e.g. +2348012345678. |
Data cmmnd.seed.phoneNo (validation error text) |
phoneNo |
Phone number format is invalid. Must start with + followed by country code and digits only. |
Data cmmnd.seed.class not provided |
class |
Provide "individual" (or "h") for people; "organization" (or "o") for companies. |
Data cmmnd.seed.name.first not provided |
name.first |
First name is required. |
Data cmmnd.seed.socialID (validation error) |
socialID |
If socialID is provided, all three fields (type, id, image) must be present and valid. Valid types: nidd, dlcn, ipss, vcrd, bvnn, epss, cinc. |
Policy Quote (SR10 — dump ipck_{code}*PRMM)
| Message |
Cause |
Fix |
Neither data cmmnd.seed.insrncDrtn nor data cmmnd.seed.drtn provided |
No duration specified for a product that requires one |
Include insrncDrtn in the seed, e.g. "1y". |
Data cmmnd.seed.insrncDrtn / data cmmnd.seed.drtn invalid |
Duration string is not in the format {N}d, {N}w, {N}m, or {N}y |
Use a valid format. Examples: "1y", "6m", "30d". |
Cover period not one of those supported by this product |
Duration format is valid but the value is not in the supported list for this product |
Check the product guide for supported cover periods. E.g. Third-Party Vehicle only supports "1y". |
Data cmmnd.seed.addtnlFact.{field} not provided |
A required product field is missing from addtnlFact |
Check the product guide's field reference for all required fields. |
Policy Issuance (SR15 — entt_{id}: insure)
| Message |
Cause |
Fix |
Consumer date of birth required for this product — update consumer via prfl entity |
Consumer's DOB is not on record; required by the insurer for Motor, AllRisk, and FireBurglary |
Call prfl entity to update the consumer with dob.date (format: YYYY-MM-DD), then retry issuance. |
Consumer gender required for this product — update consumer via prfl entity |
Consumer's gender is not on record; required by the insurer |
Call prfl entity to update the consumer with gender ("m" or "f"), then retry issuance. |
Cover period not one of those supported by this product |
insrncDrtn value is not in the supported list for this product |
Check the product guide for supported cover periods. |
Data cmmnd.seed.addtnlFact.{field} not provided |
A required product field is missing |
Check the product guide's required fields table. |
Data cmmnd.seed.addtnlFact.{field} invalid |
A field is present but fails format or value validation |
Check the product guide for the expected format (e.g. chsssId must be alphanumeric only). |
Data cmmnd.seed.addtnlFact.proofOfOwnrsh invalid |
The base64 image is not a valid PNG, JPG, or PDF, or exceeds the size limit |
Re-encode the file and ensure it is under the size limit. |
Data cmmnd.seed.addtnlFact.voyage — missing or invalid legs |
Marine Export (mexx-stnd-1111) voyage is missing or not formatted as an array of objects |
Each leg must be an object with one key: {"origin": "..."} or {"destination": "..."}. At least one origin and one destination required. |
409 — Conflict
| Message |
Cause |
Fix |
Consumer not found — call "set entt_" (SR05) first and use the returned id |
The consumer UUID in the issuance command does not exist in your account |
Register the consumer first via prfl entity and use the id from the response. |
429 — Too Many Requests
You have exceeded 60 requests per minute for your partner account (burst allowance: 10 additional requests).
| Message |
Fix |
Rate limit exceeded |
Back off for 1–2 seconds and retry. For bulk operations, add a small delay between requests to stay within the 60 req/min limit. |
500 — Server Error
500 errors indicate an issue on Octamile's infrastructure. They are not caused by your request payload.
| Message |
Cause |
Fix |
Insurance request registration failed |
Database write failed |
Retry after a short delay. If persistent, contact Octamile support. |
SFTP connection creation failed / SFTP client creation failed |
Certificate storage is temporarily unavailable |
Retry. If persistent, contact Octamile support. |
Data cmmnd.seed.id usage confirmation failed |
Database read failed during duplicate check |
Retry after a short delay. |
Common Integration Mistakes
| Symptom |
Most likely cause |
| Every request returns 401 |
API key is being sent as a raw string instead of HMAC-signed — see Authentication |
| SR05 returns 406 on email |
eMail field name is wrong (e.g. email, Email) — field names are case-sensitive |
| SR15 returns 409 |
Consumer UUID from SR05 is being used verbatim with dashes removed — preserve the UUID format including hyphens |
SR20 returns status: "p" indefinitely |
Policy is pending manual review; check SR25 list and contact Octamile if stuck for more than 24 hours |
| SR10 returns 0 premium |
vhclValueForInsrnc is below the minimum (₦500,000) or sent as a string when a number is expected |