Base URLs:
Auth Types:
-
- No auth - No authorization token is required
-
I.
Api-key (Basic)
:api-key: "Base64Encode(username:password)"
- Vendor's credentials (username and password) will be shared during onboarding.
- Example:
api-key: "YWRQxQA3dvcmtaW46UGFzc=="
- after the credentials have been encoded
-
II.
Api-key (Bearer)
:api-key: {{auth_token}}
- The
auth_token
can be retrieved as described in session 1.1 below - Example:
api-key: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwHMiLCJpYXQiOjE2NjAwNTcm92aWRlciI6InVuaWZpZWRfcGF5bWVudA1MTk2MjN9.AS13xG_MOXTKKfpYKGYHfArjPULtq4uMJ_CNpa_ACBp"
- The
Request Headers:
Content-Type
: application/jsonapi-key
: AuthType I or II
- Auth:
Auth Type I
- HTTP Method:
POST
- Endpoint:
/api/v2/auth/generateAuthToken
- Request Body:
expiresIn
(type: number, optional) - Time token expires in seconds. When no value is set, the token does not expire.
Example Usage:
POST /api/v2/auth/generateAuthToken
{
"expiresIn": 3600
}
Example Response:
{
"status": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
- Auth Type:
Auth Type II
- HTTP Method:
POST
- Endpoint:
/api/v2/auth/change-password
- Request Body:
oldPassword
(required) - New password for the vendor.newPassword
(required) - New password for the vendor.newConfirmPassword
(required) - New password for the vendor.
Example Usage:
POST /api/v2/auth/change-password
{
"oldPassword": "formerSecurePassword",
"newPassword": "newSecurePassword",
"newConfirmPassword": "newSecurePassword"
}
Example Response:
{
"data": {
"success": true,
"message": "Password Successfully updated!"
}
}
- Auth:
Auth Type 0 - No auth required
- HTTP Method:
GET
- Endpoint:
/api/v2/auth/password-reset?email={email}
- Query Parameters:
email
(required) - Email of the vendor.
Example Usage:
GET /api/v2/auth/password-reset?email=johndoe@getnada.com
Example Response:
{
"status": true,
"message": "Successful!"
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/vendors/plans
Example Usage:
GET /api/v2/vendors/plans
Example Response:
{
"status": true,
"message": "Broker Plans Retrieved Successfully!",
"data": [
{
"id": 10052,
"name": "Gold Plan",
"description": "Lorem ipsum dolor sit amet...",
"category": "string",
"state": "Published",
"premium": 64500.00
},
]
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/vendors/plans/:id
- Parameters:
id
(required) - ID of the plan retrieved from theGET broker plans
API, section 2.1 above.
Example Usage:
GET /api/v2/vendors/plans/:id
Example Response:
{
"status": true,
"message": "Broker Plan Retrieved Successfully!",
"data": {
"id": 10052,
"name": "Gold Plan",
"description": "Lorem ipsum dolor sit amet...",
"category": "string",
"state": "Published",
"premium": 64500.00
}
}
-
Enums
-
Marital Status
- Single = 1
- Married = 2
- Divorced = 3
- Widowed = 4
- SingleParents = 5
-
Payment Plan
- Annually = 1
- Bi-annually = 2
- Quarterly = 4
- Monthly = 12
-
Genotype
- AA = 1
- AO = 2
- BB = 3
- BO = 4
- OO = 5
- AS = 6
-
Blood Group
- "A+" = 1
- "O+" = 2
- "B+" = 3
- "AB+" = 4
- "A-" = 5
- "O-" = 6
- "B-" = 7
- "AB-" = 8
-
Religion
- Islam = 1
- Christianity = 2
- Hinduism = 3
- Buddhism = 4
- Other = 5
-
Relation
- Spouse = "Spouse"
- Son = "Son"
- Sibling = "Sibling"
- Daughter = "Daughter"
- Mother = "Mother"
- Father = "Father"
- Grand Father = "Grand Father"
- Grand Mother = "Grand Mother"
- Cousin = "Cousin"
- Friend = "Friend"
-
-
Auth:
Auth Type II
-
HTTP Method:
POST
-
Endpoint:
/api/v2/endorsement/add
-
Request Body:
reference
(required).plan_id
(required).policyId
(required).customer
(type: object).firstName
(type: string, required) - First name.middleName
(type: string) - Middle name.lastName
(type: string, required) - Last name.maidenName
(type: string) - Maiden name._email
(type: string) - Email.dob
(type: date, required) - Date of birth.gender
(type: string, required) - Gender. Allowed values: 'Male', 'Female'.phone
(type: string, required) - Phone number. Must be a valid phone number.relation
(type: string, required) - Relationship status. Allowed values: [List of allowed relations].maritalStatus
(type: number, required) - Marital status. Allowed values: [List of allowed marital statuses].country
(type: number, required) - Country code.state
(type: number, required) - State code.city
(type: number, required) - City code.address
(type: string, required) - Residential address.genotype
(type: number) - Genotype. Allowed values: [List of allowed genotypes].bloodGroup
(type: number) - Blood group. Allowed values: [List of allowed blood groups].religion
(type: number) - Religion. Allowed values: [List of allowed religions].employeeId
(type: string) - Employee ID.nationalId
(type: string) - National ID.ninNumber
(type: string) - NIN (National Identification Number).height
(type: number) - Height.weight
(type: number) - Weight.preExistingCondition
(type: number) - Indicates if the customer has pre-existing conditions. Allowed values: 1 (true) or 0 (false).condition
(type: Array) - Array of pre-existing condition IDs. Include pre-existing condition IDs here ifpreExistingCondition
is true.
- If
preExistingCondition
is set to 1 (true), include an array of pre-existing condition IDs in thecondition
field to specify the customer's pre-existing conditions. - If
preExistingCondition
is set to 0 (false), thecondition
field can be omitted.
Example Usage:
POST /api/v2/endorsement/add
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Endorsement created successfully.",
"membersDetails": {
"planId": "85",
"memberId": "100004976",
"policyId": "2058",
"firstName": "John",
"lastName": "Doe",
...(all other customer data provided during onboarding)
}
}
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/conditions?query={name}
- Query Parameters:
query
- Specify a Search text to filter conditions by the condition name
Example Usage:
GET /api/v2/conditions?query=abdominal
Example Response:
{
"statusCode": 200,
"message": "Successful!",
"data": [
{
"id": "651",
"pec_name": "Abdominal pregnancy",
"pec_chapter_id": "14",
"pec_status": "1"
}
]
}
- Auth:
Auth Type II
- HTTP Method:
POST
- Endpoint:
/api/v2/endorsement/remove
- Request Body:
memberId
(required).policyId
(required).
Example Usage:
POST /api/v2/endorsement/remove
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Endorsement deleted successfully.",
"memberId": "100004976",
"policyId": "2058"
}
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/enrollee-status
- Query Parameters::
memberId
(required).
Example Usage:
GET /api/v2/enrollee-status?memberId=100004976
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Member Status Details",
"member": {
"memberId": "100004976",
"firstName": "John",
"lastName": "Doe",
...(other customer data)
"status": "Active"
}
}
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/enrollee-plan
- Query Parameters::
memberId
(required).
Example Usage:
GET /api/v2/enrollee-plan?memberId=100004976
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Member Plan Details",
"member": {
"memberId": "100004976",
"firstName": "John",
"lastName": "Doe",
...(other customer data)
"planId": "85",
"planName": "Plan"
}
}
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/enrollee-utilization
- Query Parameters::
memberId
(required).
Example Usage:
GET /api/v2/enrollee-utilization?memberId=100004976
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Fetched Member Utilization Successfully.",
"membersDetails": {
"memberId": "100004976",
"firstName": "John",
"lastName": "Doe",
...(other customer data)
"planName": "Plan",
"provider": "HOSPITAL",
"totalSpent": 999,
"balance": 9999999
}
}
}
- Auth:
Auth Type II
- HTTP Method:
POST
- Endpoint:
/api/v2/endorsement/undo-delete
- Request Body::
memberId
(required).
Example Usage:
POST /api/v2/endorsement/undo-delete
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Re-endorsed Member Successfully.",
"membersDetails": {
"planId": "85",
"memberId": "100004976",
"policyId": "2058",
"firstName": "John",
"lastName": "Doe",
...(all other customer data provided during onboarding)
}
}
}
- Auth:
Auth Type II
- HTTP Method:
POST
- Endpoint:
/api/v2/endorsement/update-member-plan
- Request Body::
memberId
(required).oldPlanId
(required).newPlanId
(required).
Example Usage:
POST /api/v2/endorsement/update-member-plan
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Re-endorsed Member Successfully.",
"membersDetails": {
"memberId": "100004976",
"policyId": "2058",
"planId": "85",
"firstName": "John",
"lastName": "Doe",
...(all other customer data provided during onboarding)
}
}
}
- Auth:
Auth Type II
- HTTP Method:
POST
- Endpoint:
GET /api/v2/endorsement/update-enrollee-details
- Request Body::
memberId
(required).policyId
(required).customer
(type: object).firstName
(type: string, required) - First name.middleName
(type: string) - Middle name.lastName
(type: string, required) - Last name.maidenName
(type: string) - Maiden name._email
(type: string) - Email.dob
(type: date, required) - Date of birth.gender
(type: string, required) - Gender. Allowed values: 'Male', 'Female'.phone
(type: string, required) - Phone number. Must be a valid phone number.address
(type: string, required) - Residential address.
Example Usage:
POST /api/v2/endorsement/update-member-plan
Example Response:
{
"status": true,
"data": {
"success": 1,
"message": "Member Information Updated Successfully.",
"membersDetails": {
"memberId": "100004976",
"policyId": "2058",
"firstName": "Jonny",
"middleName": "",
"maidenName": "",
"lastName": "Doe",
"email": "",
"age": "22",
"dob": "10-01-1962",
"relation": "Self"
}
}
}
- Auth:
Auth Type II
- HTTP Method:
PATCH
- Endpoint:
/api/v2/vendors/config
- Request Body:
webhookURL
(type: URI, required) - Vendor's notification webhookURL.webhookAccessKey
(type: string) - Access key for request authorization
Example Usage:
PATCH /api/v2/vendors/config
Example Response:
{
"status": true,
"message": "Configuration updated successfully!"
}
- HTTP Method:
POST
- Endpoint:
{{vendor's specified webhook URL}}
Example Event:
POST {{vendor's specified webhook URL}}
Example Event Payload:
{
"event": "added-policy-member",
"accessKey": "{{Vendor's specified access key}}",
"data": {
"planId": "85",
"memberId": "100004976",
"policyId": "2058",
"firstName": "John",
"lastName": "Doe",
...(all other customer data provided during onboarding)
}
}
- HTTP Method:
POST
- Endpoint:
{{vendor's specified webhook URL}}
Example Event:
POST {{vendor's specified webhook URL}}
Example Event Payload:
{
"event": "re-endorsed-member",
"accessKey": "{{Vendor's specified access key}}",
"data": {
"planId": "85",
"memberId": "100004976",
"policyId": "2058",
"firstName": "John",
"lastName": "Doe",
...(all other customer data provided during onboarding)
}
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/miscs/states
Example Usage:
GET /api/v2/miscs/states
Example Response:
{
"status": true,
"message": "States/Regions Retrieved Successfully!",
"data": [
{
"id": 15,
"name": "Abuja (FCT)",
"country_id": 162
},
]
}
- Auth:
Auth Type II
- HTTP Method:
GET
- Endpoint:
/api/v2/miscs/cities?state_id={id}
- Query Parameters:
state_id
(required) - The state id retrieved from section 5.1 above.
Example Usage:
GET /api/v2/miscs/cities?state_id=15
Example Response:
{
"status": true,
"message": "Cities Retrieved Successfully!",
"data": [
{
"id": 271,
"name": "Gwagwalada",
"state_id": 15,
},
]
}
-
Auth:
Auth Type II
-
HTTP Method:
GET
-
Endpoint:
/api/v2/miscs/providers-list?provider_type={type}&state_id={id}&city_id={cid}&plan_id={plan_id}
-
Query Parameters:
state_id
- The state id retrieved from the GET States/Regions API in section 5.1 above.city_id
- The city id retrieved from the GET Cities API above.provider_type
- Valid values specified below.search_text
- Specify a Search text to filter providers by the provider name.plan_id
- Vendors plan_id.
-
Provider Types
1 = Hospital
2 = Pharmacy
3 = Optical / Ophthalmology
5 = Physiotherapist
6 = Dentist
7 = Polyclinic
8 = Doctor
9 = Ambulatory Center
10 = Diagnostic Centres
11 = Radiology
12 = Medical Supplies Company
13 = Gym/Fitness Centres
14 = Mental Wellbeing
15 = Child Care
16 = Maternal Health
17 = Emergency Service
18 = Public Health Facility
Example Usage:
GET /api/v2/miscs/providers-list?provider_type=1&state_id=10&city_id=115&search_text=ABC Health&plan_id=85
Example Response:
{
"status": true,
"message": "Providers List Retrieved Successfully!",
"data": [
{
"name": "ABC Health",
"category": "category",
"email": "abc@health.com",
"phone": "+234909291111111",
"code": "ABC-HEALTH",
"addressLine1": "Address line 1",
"addressLine2": "Address line 2",
"state": "Lagos",
"city": "Ikeja",
"longitude": "0.000000024",
"latitude": "0.000232108",
"rating": "5"
},
]
}