Welcome Test User US01
Sign out →
← Back

Integration Instruction for Purchase:
Health Insurance — Option X1


All requests under this integration are sent to a specific endpoint, which is https://a4004.mngr.imas.octamile.com:62004. The protocol used to communicate with our All-In-One Insurance Mangement Solution is HTTP. All requests should use the HTTP POST method.

The rest of this page would demonstrate the purchase of 'Health Insurance — Option X1', for an imaginary customer by the name Folake Arinze.



Request 1: Get Premium to Charge The Consumer

The first step in selling insurance to a consumer, is knowing and charging the appropriate premium.

Do not ask our API for an insurance policy, unless you have already collected the appropriate premium from the consumer.

This section shows how to get the appropriate premium to charge the consumer for this product.

{ "userInfo": { "id" : "--PUT THE CUSTOMER ID WE ASSIGNED YOU HERE--", "athrzt" : { "id" : "--PUT YOUR AUTHORIZATION ID HERE--", "key": "--PUT YOUR AUTHORIZATION KEY HERE--" } }, "cmmnd": { "cmmnd": "dump ipck_hlth-axam-1111*PRMM", "seed" : { "insrncDrtn" : "--PUT THE COVER PERIOD HERE--" } } }

Customer ID This must have been given to you. If it has not, speak to our engineering team
Authorization This must have been given to you. If it has not, speak to our engineering team
Cover Period — insrncDrtn See this product's profile for possible cover periods. Format: 7d for 7 days, 1m for 1 month, 1y for 1 year, etc

See examples below:

{ "userInfo": { "id" : "1234567890abcdef", "athrzt" : { "id" : "1234567890abcdef", "key": "^]L*ug^S-ZxQQU.}" } }, "cmmnd": { "cmmnd": "dump ipck_hlth-axam-1111*PRMM", "seed" : { "insrncDrtn" : "1m" } } }


Response 1

Our HTTP response code is always 200 (OK).

In addition to the 200 HTTP code, we also return a JSON data. The JSON data elaborates the outcome of the request.

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

Request Outcome — exctnFdbck.id Possible values:
35 — I (the API) am already operating at full capacity. Please try again at a later time
55 — I (the API) could not process your request. An error occured on Octamile's end
75 — I (the API) was able to process your request
These possible values and their respective meanings are identical for all responses across our API
Premium Value — prmm This is the amount to charge the consumer, in Naira

Request 2: Register the Consumer

For every consumer you need to purchase an insurance cover for, you need to create a profile for them. This section shows how to achieve that.

{ "userInfo": { "id" : "--PUT THE CUSTOMER ID WE ASSIGNED YOU HERE--", "athrzt" : { "id" : "--PUT YOUR AUTHORIZATION ID HERE--", "key": "--PUT YOUR AUTHORIZATION KEY HERE--" } }, "cmmnd": { "cmmnd": "prfl entity", "seed" : { "type" : "s", "class" : "h", "name" : { "first" : "--PUT THE CONSUMER'S FIRST NAME HERE--", "last" : "--PUT THE CONSUMER'S LAST NAME HERE--" }, "dob" : { "date" : "--PUT THE CONSUMER'S DATE-OF-BIRTH HERE--" }, "phoneNo": "--PUT THE CONSUMER'S PHONE NO HERE--", "eMail" : "--PUT THE CONSUMER'S EMAIL HERE--" } } }

Phone no The phone no provided should take the international format. It must begin with the '+' sign

See examples below:

{ "userInfo": { "id" : "1234567890abcdef", "athrzt" : { "id" : "1234567890abcdef", "key": "1234567890abcdef" } }, "cmmnd": { "cmmnd": "prfl entity", "seed" : { "type" : "s", "class" : "h", "name" : { "first": "Folake", "last" : "Arinze" }, "dob" : { "date" : "2000-11-24" }, "phoneNo": "+2347010001234", "eMail" : "folake.arinze.dummy@gmail.com" } } }


Response 2

{ "exctnFdbck": { "id": "75" }, "id": "61681828132984833037cli3gmpucmdl" }

Request Outcome — exctnFdbck.id Possible values:
35 — I (the API) am already operating at full capacity. Please try again at a later time
55 — I (the API) could not process your request. An error occured on Octamile's end
75 — I (the API) was able to process your request
These possible values and their respective meanings are identical for all responses across our API
Consumer ID — id This is a unique ID for identifying the consumer. Anytime you need to insure or make a claim for the consumer, provide it. Thus, it should be stored on your end

Request 3: Request an Insurance Policy

At this point, you must have charged the consumer. If you have not, do not make this request.

This request shows how to request an insurance policy from our API.

{ "userInfo": { "id" : "--PUT THE CUSTOMER ID WE ASSIGNED YOU HERE--", "athrzt" : { "id" : "--PUT YOUR AUTHORIZATION ID HERE--", "key": "--PUT YOUR AUTHORIZATION KEY HERE--" } }, "cmmnd": { "cmmnd": "entt_--PUT THE CONSUMER'S ID HERE--: insure", "seed" : { "ctgry": "hlth", "type" : "axam", "pckg" : "1111", "id" : "--PUT A GENERATED TRANSACTION REF HERE--", "addtnlFact": { "RsdncState": "--PUT THE STATE OF RESIDENCE HERE--", "RsdncLga" : "--PUT THE LOCAL GOVERNMENT OF RESIDENCE HERE--", "webHook" : "--PUT THE WEBHOOK HERE URL--" }, "drtn" : "--PUT A COVER PERIOD HERE--" } } }

Consumer's ID Recall that after registering the consumer, a 32-character string was returned. That string is the consumer ID
Generated Transaction Refernce/Insurance ID/Cover ID Generate a transaction reference on your end. This should be a unique 32-character alphanumeric string. Only lowercase letters allowed. This should be saved on your end. It would be needed down the line
Webhook This data is optional. If you want to be notified when the status of the request changes from processing to approved OR from processing to declined, provide a URL we should call

See examples below:

{ "userInfo": { "id" : "1234567890abcdef", "athrzt" : { "id" : "1234567890abcdef", "key": "1234567890abcdef" } }, "cmmnd": { "cmmnd": "entt_601234567890abcdefghij1234567890: insure", "seed" : { "ctgry": "hlth", "type" : "axam", "pckg" : "1111", "id" : "1234567890abcdefghij1234567890ab", "addtnlFact": { "RsdncState": "Lagos", "RsdncLga" : "Eti-Osa", "webHook" : "http://companyabc.com/webhook/transaction-1234" }, "drtn" : "6m" } } }

Webhook sample data:

{ "product": "hlth-axam-1111", "consumerId": "cn1234567890abcdefghij1234567890", "trnsctnId" : "tr1234567890abcdefghij1234567890", "status" : "p", "statusNote": "...", "crtfct" : "...", "crtfctType": "jpg" }

Status Possible values:
p — processing
d — declined
a — approved
Status Note This data is provided when the status is declined. This would be a description of the reason why the transaction was declined
Certificate This data is provided when the status is approved and the product comes with a certificate. This would be a base64 encoding of the PDF, PNG, or JPG

Response 3

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

Request Outcome — exctnFdbck.id Possible values:
35 — I (the API) am already operating at full capacity. Please try again at a later time
55 — I (the API) could not process your request. An error occured on Octamile's end
75 — I (the API) was able to process your request
These possible values and their respective meanings are identical for all responses across our API

Request 4: Fetch Policy Request Approval Status

This request is used to check the approval status of a policy request.

If a cover is approved and it comes with a certificate, the certificate is included in the response. This data would come as a base 64 encoded string.

{ "userInfo": { "id" : "--PUT THE CUSTOMER ID WE ASSIGNED YOU HERE--", "athrzt" : { "id" : "--PUT YOUR AUTHORIZATION ID HERE--", "key": "--PUT YOUR AUTHORIZATION KEY HERE--" } }, "cmmnd": { "cmmnd": "dump entt_--PUT THE CONSUMER'S ID HERE--|insr_hlth-axam-1111---PUT THE COVER ID HERE--*STATUS" } }

Consumer's ID Recall that after registering the consumer, a 32-character string was returned. That string is the consumer ID
Cover ID Recall that you generated a transaction reference in the previous request. That is the cover ID

See examples below:

{ "userInfo": { "id" : "1234567890abcdef", "athrzt" : { "id" : "1234567890abcdef", "key": "1234567890abcdef" } }, "cmmnd": { "cmmnd": "dump entt_601234567890abcdefghij1234567890|insr_hlth-axam-1111-1234567890abcdefghij1234567890ab*STATUS" } }


Response 4

If the policy request has been approved and it comes with a certificate, the certificate is included in this response, in the base 64 format.

{ "exctnFdbck": { "id": "75" }, "status": "a", "crtfct": "/9Aad4r4/454f/3Gi==", "tmstmp": "2023-04-07 05:55:09" }

Request Outcome — exctnFdbck.id Possible values:
35 — I (the API) am already operating at full capacity. Please try again at a later time
55 — I (the API) could not process your request. An error occured on Octamile's end
75 — I (the API) was able to process your request
These possible values and their respective meanings are identical for all responses across our API
Request Approval Status — status Possible values:
p — Request approval status is pending
d — Request approval status was declined
a — Request approval status was approved
Certificate — crtfct This field is added in the response only when the cover has been approved and the cover comes with a certificate. It comes as a base 64 of a PNG, JPG, or PDF
Status Timestamp — tmstmp The time the transaction was declined or approved