Getting Paid by HMOs in Nigeria: The Complete 2027 Guide for Hospital Owners and Billers
A step-by-step guide for Nigerian hospital owners and billers: set up each HMO, bill its share at the till, send claims and record every payment.
By ClinikEHR Team
Duration
27 MINSThe patient has been treated, but part of the bill belongs to the HMO (health maintenance organisation), and nobody is sure which part has been paid. This guide shows how to get paid by HMOs in Nigeria, from registration to write-off in ClinikEHR. You set up each HMO once, bill its share at the till, send the claim and record every payment. It also covers six HMO billing problems and how an HMO can connect through the ClinikEHR API (api.clinikehr.com), which lets its own software read your claims.
Quick Answer
To get paid by HMOs in Nigeria, set up each HMO once, bill its share at the till, send a matching claim and record every payment.
- Set Insurance to Outside the US, then add each HMO with its plans and agreed price list. HMO billing is available on any plan once that setting is on.
- Record the member number, plan and expiry at registration, and raise a pre-authorization where the plan needs one.
- Use Bill HMO at the till, so the patient pays only their share and the HMO's share becomes a draft claim.
- Check the claim, then deliver it through the HMO's chosen channel or send it by hand.
- Watch HMO receivables, record each transfer once, and write off only what an HMO will not pay.
What Is HMO Billing, in Plain Words
An HMO, short for health maintenance organisation, is a company that pays part of a member's care under a plan. When a member visits your hospital, the bill is split. The member pays a co-payment, which is their share of the bill. In ClinikEHR the co-payment is a percentage set on the plan, never a fixed amount. The HMO pays the rest.
Each HMO agrees a price list with your hospital. This guide calls it a tariff, the word ClinikEHR uses. The bill you send the HMO is a claim. For some services the HMO wants to agree first. That agreement is a pre-authorization, and the HMO gives you an authorization code, called a PA code, to put on the claim.
Where Nigerian Law Fits In
Nigeria changed its health insurance law in 2022. The National Health Insurance Authority Act, 2022 repealed the National Health Insurance Scheme Act. The old name still turns up in searches: NHIS (now NHIA).
Two points matter to a biller. First, it is an offence for an HMO to fail to settle claims within the time the operational guidelines allow:
fails to settle fee-for-service or other claims from the Health Care Providers within the stipulated time allowed in the operational guidelines
National Health Insurance Authority, 2022, section 48(1)(d)
Second, a dispute between parties under the Act, which include HMOs and providers, goes first to the Authority for mediation and conciliation. If that fails, the parties may go to arbitration.
The Act gives no number of days. NHIA lists its Operational Guidelines 2023 and a claims procedure online, and this guide does not quote them. Read the current text before you rely on a figure. ClinikEHR does not connect to NHIA. This is general information, not legal advice.
The Whole Flow at a Glance
The table shows who does each step, where it happens and which Help Center guide covers it. Steps 1 and 2 are set up once, and so is each HMO's channel in Step 7. The other steps repeat as patients and claims come in.
| Step | Who does it | Where in ClinikEHR | Help Center guide |
|---|---|---|---|
| 1. Set Insurance and currency | Owner | Settings, General and Billing | General settings |
| 2. Add each HMO | Owner or manager | Insurance, HMOs and Pricing | HMO setup |
| 3. Record cover | Front desk | The patient's Insurance details | Insurance overview |
| 4. Ask for approval | Staff | The Insurance pages | Pre-authorization |
| 5. Bill HMO | Anyone who can collect payments | The Payments page | Bill HMO |
| 6. Check the claim | Anyone who can edit claims | The Insurance pages | Claims |
| 7. Send the claim | Anyone who can edit claims | The Insurance pages | How claims reach HMOs |
| 8. Watch what is owed | Owner, manager, accountant or biller | HMO receivables | HMO receivables |
| 9. Record payment | Staff with the Record HMO payments permission | HMO receivables | HMO receivables |
| 10. Write off | Owner or manager, by default | HMO receivables | HMO write-offs |
Set Up Your Hospital for HMO Billing
Step 1: Set Insurance to Outside the US and the currency to naira
The owner opens Settings, General and sets Insurance to Outside the US (HMO and international insurers). Only the owner can change it, and new workspaces start on United States. It is a setting, not a location test. It opens the patient's HMO, the claims register and pre-authorization. HMO billing is available on any plan once it is on. The pricing page lists the plans.
Next, set the currency under Settings, Billing. New hospital workspaces start in US dollars, and claims are recorded in the currency you set. On the hospital layout, the Insurance menu also needs the Insurance care area switched on under Settings, Facility.
What you need: the owner's login.
How you know it worked:
- The sidebar shows the Insurance pages, not a message asking you to change the setting.
- Amounts appear in naira.
The mistake people make: leaving the setting on United States, the default, then wondering why the HMO pages will not open.
Step 2: Add each HMO, its plans and its agreed price list
Owners and managers set up each HMO as an insurer. Add the HMO's plans. On each plan, enter Patient pays (%), the share of each bill the patient pays. The insurer covers the rest. Switch on Pre-authorization required for plans that demand approval before treatment, so your team raises a request first.
Then load the price list agreed with the HMO. Each row holds a tariff code and item name, the price for one unit, the Tariff band, and valid-from and valid-until dates. Use Import CSV to load a whole list from a spreadsheet file. A row with the same code, Tariff band and start date is updated, not duplicated. ClinikEHR matches a bill line to a price by code first, then by name. When a code has two versions, the one in force on the day of service is used.
What you need: each HMO's price list as a file, and each plan's co-payment percentage.
How you know it worked:
- Each HMO shows its plans, and each plan shows its patient share.
- In Step 5, the Price column shows the insurer's tariff for items on the list.
The mistake people make: overtyping a price on each claim. If the HMO has no matching price, the claim goes out at your own price. Add the missing row to the list once instead.
Register Patients and Get Approval First
Step 3: Record the member number, plan and expiry at registration
At registration, the front desk opens the Insurance details panel. Record the Insurer, the Plan, the Insurance number and Valid until. Primary cover is the one used first when a bill is split.
Know the limit. ClinikEHR records what you type. It does not ask the HMO whether the member is covered, and it does not check the HMO's own member list. It does treat a cover as expired after the Valid until date, and it refuses to bill it. A cover carried over from older fields that cannot be matched shows Needs review. Select Fix, correct it, and save.
What you need: the member's number, plan and expiry date as the HMO gave them.
How you know it worked:
- The profile shows the insurer, plan, number and valid-until date.
- No Needs review flag appears.
The mistake people make: letting the expiry date pass without updating it. Bill HMO then refuses to bill and says the insurance may have expired.
Step 4: Raise a pre-authorization request where the plan needs one
Raise the request from the patient's cover, which decides the HMO and the plan. A request needs at least one diagnosis from ICD-10 (the standard list of diagnosis codes) and at least one item. A person sends the request. Nothing goes to an HMO on its own. Select Submit to HMO, which uses the channel from Step 7. The request then reads Waiting for the insurer and can no longer be edited. When the HMO answers, record its decision. For an approval, enter the authorization code. You can add valid-from and valid-until dates and an approved amount, which cannot exceed what you asked for.
What you need: a cover on file, a diagnosis and the items you want approved.
How you know it worked:
- The request moves from Waiting for the insurer to Approved.
- The code is on the request, ready for the claim in Step 6.
The mistake people make: treating an approval as a promise of payment. The claim still has to match the approval on items, amounts and dates.
Bill the HMO at the Till
Step 5: Use Bill HMO so the patient pays only their share
On the Payments page, choose Bill HMO. For these hospitals, Insurance is no longer a payment method. The patient's share is paid with Cash, Card, Bank Transfer, Mobile Money or Other.
Bill HMO splits the bill once. For each item, the sheet shows the Price, what the insurer pays and what the patient pays. The insurer's share becomes a draft claim and is never recorded as cash received. The patient pays only their share.
Both shares are worked out on the same price. When a tariff prices the line, that is the tariff times the quantity, never above your own price. An agreed price above your own is not used. When it is lower, the difference is not billed to anyone, so your hospital absorbs the gap. Tax, additional charges and fees are never billed to the insurer. They are added to the patient's payment.
The table shows a plan where the patient pays 20 percent. The amounts are invented to show the rules.
| Case (illustrative) | Your price | HMO's agreed price | Line priced at | HMO pays | Patient pays |
|---|---|---|---|---|---|
| Agreed price lower | ₦1,500 | ₦1,200 | ₦1,200 | ₦960 | ₦240 |
| Agreed price higher | ₦1,500 | ₦1,800 | ₦1,500 | ₦1,200 | ₦300 |
| No agreed price | ₦1,500 | none | ₦1,500 | ₦1,200 | ₦300 |
What you need: the patient's insurer on file and a co-payment on the plan.
How you know it worked:
- The sheet names the draft claim and shows what the patient pays.
- The invoice reads HMO billed, then Paid once the patient has paid their share.
- The receipt has a Billed to HMO section and a Patient portion line.
The mistake people make: leaving Patient pays (%) empty. ClinikEHR then treats the patient as paying in full, so there is nothing to bill the HMO. A plan where the patient pays 100 percent also has nothing to bill.
Step 6: Build the claim from the sale and check every line
The draft claim from Step 5 lands in the claims register. You can also start a claim from a patient's invoice, with the lines at the insurer's agreed prices.
A claim started from an approved pre-authorization opens with the PA code and the lines the HMO approved, at the amounts it approved. A line above the approval is flagged. The flag changes nothing, so you decide whether to ask the HMO or bill the difference to the patient.
Check every line before you save. Once a claim is submitted, it can no longer be edited or deleted.
What you need: the draft claim, the PA code and the diagnoses.
How you know it worked:
- Every line is at an agreed price, or you know why it used your price.
- Every item has a supporting diagnosis, and the PA code is on the claim.
The mistake people make: saving an item with no supporting diagnosis. The Help Center warns that this is a denial risk.
Send the Claim and Track What Is Owed
Step 7: Choose the HMO's channel and send the claim
Every HMO has one way of receiving claims and requests. An owner or manager chooses it once on the insurer record. After that, Submit to HMO uses it, and nothing is sent twice. The channels this guide covers are:
- The ClinikEHR API (api.clinikehr.com). The claim becomes available to the HMO's connected organization, which reads it through the API. This needs API access on, the Enterprise plan and an organization linked to this HMO. The ClinikEHR API is not ClinikAPI (clinikapi.com), a separate product built around FHIR R4, a health-data standard, with its own site, keys and licence.
- A signed webhook. A webhook is a message that one system posts to another system's web address. Here a signed message with the claim goes to the HMO's public web address, and the HMO checks it with a secret you share. The secret needs at least 16 characters.
- An email with a secure link. The email carries no patient details. The link opens one claim and expires after 7 days.
- The HMO's own portal. Nothing is sent from ClinikEHR. Staff submit on the HMO's site and record the reference.
Sending by hand is not a channel. It is what you do for an HMO with no channel chosen. To record a claim you sent by hand, select Submit Claim and choose how you sent it (Email, Fax, Insurer portal, Post or Handed over in person). ClinikEHR records that you did, and how. In short, you prepare, price and track claims in ClinikEHR and, where you have set up a channel for that HMO, deliver them by it. Nothing is sent until a person selects Submit to HMO.
What you need: the channel's details, and permission to edit claims.
How you know it worked:
- The claim reads Submitted, and ClinikEHR shows how it was delivered.
- For the HMO's own portal, the reference is recorded with the claim.
The mistake people make: treating Submit Claim as delivery. It only records a claim you sent by hand. Submit to HMO uses the channel.
Step 8: Watch HMO receivables and ageing
An HMO receivable is money an HMO owes your hospital. The HMO receivables page lists each insurer that owes you. It shows Open claims, Owed, how old the debt is (0-30 days, 31-60, 61-90 and Over 90) and Credit held. Credit held is money received but not yet shared across claims.
Ageing counts from the date the claim was submitted. A claim counts as owed only after it is submitted. Drafts are not in the receivable, and neither are claims that are denied, paid or written off. Illustrative: a ₦200,000 claim submitted 45 days ago is in the 31-60 days group. At 95 days, it is in Over 90. The amount is invented. The insurer's share is not hospital income until you record the insurer's payment in Step 9.
What you need: submitted claims, and a routine for opening the page.
How you know it worked:
- Each insurer row shows open claims, the amount owed and its age.
- The page reads Nothing is waiting on an insurer when no HMO owes you.
The mistake people make: reading the age groups as the time since the visit.
Record Payments and Close What Will Not Be Paid
Step 9: Record each HMO transfer once and share it across claims
An HMO usually pays many claims in one transfer. Record payment takes that one payment and shares it across the claims it settles. Choose the Insurer, the Date received, the Amount received and How it was paid. Add a Reference, the transfer or cheque number, to match it to the bank statement. Then select Share oldest first, or type an amount against each claim.
You cannot share out more than was received. Money you do not share is kept as Credit held, and you can apply it to a claim later without recording new money. The cash is recorded once, on the day it arrived, and labelled HMO remittance (the HMO's payment). A claim reads Part paid or Paid only after a payment is recorded against it.
The table shows one invented transfer of ₦500,000, shared oldest first.
| Claim (illustrative) | Owed | Shared from the transfer | Still owed |
|---|---|---|---|
| First, oldest | ₦300,000 | ₦300,000 | ₦0 |
| Second | ₦150,000 | ₦150,000 | ₦0 |
| Third | ₦100,000 | ₦50,000 | ₦50,000 |
With a ₦600,000 transfer, ₦550,000 would be shared and ₦50,000 kept as Credit held.
An HMO connected through the ClinikEHR API can post a payment advice, a note of what it paid and for which claims. It is only a message for your staff to check against the bank statement. Nothing is recorded in your books until you record it, and no money moves through the API.
What you need: the bank statement line and the permission to record HMO payments.
How you know it worked:
- Each settled claim reads Part paid or Paid, and the amount owed falls.
- Unshared money shows as Credit held.
The mistake people make: leaving the reference empty. Without the transfer or cheque number, matching the entry to the bank statement becomes guesswork.
Step 10: Write off what an HMO will not pay, with a reason
A write-off closes what an HMO will not pay, so the claim stops showing as owed. It is permanent, it needs a reason, and it is recorded against the person who made it. You cannot write off more than the insurer owes. Owners and managers can do it by default.
A second person's approval is optional. To make larger write-offs wait, an owner or manager opens Approving write-offs on HMO receivables. They switch on Require a second person for larger write-offs and set Needs approval above. Up to that amount, a write-off applies at once. Above it, the button reads Send for approval, and nothing changes until a different person approves. Approve cannot be undone.
What you need: the permission to write off HMO balances, and a reason in words.
How you know it worked:
- The claim reads Written off, and the amount leaves HMO receivables.
- With second approval on, the write-off waits under Write-offs until someone else acts.
The mistake people make: writing off a balance to tidy the list, before the HMO has refused it.
Six HMO Billing Problems Nigerian Hospitals May Run Into, and What to Do About Each
This guide has no source for how common any of them is, so none comes with a number. Each row shows what ClinikEHR does and does not do, and the step to follow.
| Problem | What ClinikEHR does | What it does not do | Go to |
|---|---|---|---|
| 1. Unpaid HMO receivables | Lists what each HMO owes by age, from the submission date, with credit held | Chase the HMO | Steps 7, 8 and 10 |
| 2. The patient is charged the HMO's share | Shows what the HMO pays and what the patient pays before you confirm | Make a mistake impossible, because you still confirm | Step 5 |
| 3. Tariff disputes | Keeps each HMO's agreed prices with dates, prices lines from them and never goes above your price | Settle a dispute or compare prices with NHIA | Steps 2 and 5 |
| 4. Lost pre-authorization codes | Records the code on the request and carries it onto the claim | Get a code from the HMO or check one with it | Steps 4 and 6 |
| 5. Denials with no reason | Shows the claim as Denied and returns its items to the patient's list | Show the HMO's reason on any screen the Help Center describes, so read it in the HMO's own response | Step 6 |
| 6. One lump-sum payment that covers many claims | Records one transfer once and shares it across claims | Read your bank statement or match transfers by itself | Step 9 |
These steps work on any plan once the Step 1 setting is on. An HMO that wants to read your claims itself connects through the ClinikEHR API, explained next.
How an HMO Connects to Your Hospital Through the API
The ClinikEHR API is the first channel in Step 7. The API for HMOs and insurers is for HMOs and insurers that work with clinics outside the United States. The API documentation has the detail.
You cannot simply invite an HMO. Each HMO needs its own approved workspace first, and then each hospital chooses to link it.
The HMO's side, which it arranges with ClinikEHR:
- A verified developer workspace, with a domain check and a business profile.
- The Enterprise contract plan, which ClinikEHR sets on request. There is no self-serve checkout, so the HMO uses Contact us to go live at /contact.
- Approval for the Insurer claims, authorizations and enrollees kind of data (enrollees are HMO members), decided by a ClinikEHR reviewer with no stated timeline.
- Acceptance of the current data-protection addendum.
Your side, which you control:
- The Enterprise plan. This gates the API and is separate from HMO billing, which is available on any plan once Insurance is set to Outside the US.
- The owner has set Insurance to Outside the US.
- API access is on, and the owner has approved the connection with the insurance permissions and a recorded legal basis.
- An owner or manager links the organization to your insurer record under Settings, API access, Insurer links.
An insurer sees only its own rows, and never a claim you are still preparing. You can end the link at any time, and the HMO's access stops with it.
What you need: the HMO's approval from ClinikEHR, plus your own plan, API access and link.
How you know it worked: the organization shows as linked to your insurer record under Settings, API access, Insurer links.
The mistake people make: expecting to invite the HMO yourself. It must be approved first.
Mistakes That Cost Hospitals Money
- Waiting for ClinikEHR to chase the HMO. The Pays within (days) field records payment terms. Nothing flags an overdue claim or sends a reminder, so review the ageing yourself.
- Trusting the plan limit field. You can record a plan limit per member, but ClinikEHR does not apply it when it works out the HMO's share. Check large bills yourself.
- Reading Paid · HMO pending as fully paid. It means the patient has paid their share and the HMO's part is pending.
- Skipping the channel test. On save, ClinikEHR checks the channel and says what is missing. For a webhook or email channel you can also send a test with no claim in it. Run it before the first real claim.
- Switching on second approval when only one person can approve. The person who asked can never approve their own write-off, so it would wait. Give a second person the permission first.
Frequently Asked Questions
How do I get paid by HMOs in Nigeria?
Set up each HMO and its price list once. Record each patient's member number, plan and expiry at registration, and raise a pre-authorization where the plan needs one. Bill the HMO's share at the till, check the claim, and deliver it through the HMO's channel or send it by hand. Then track what is owed and record each payment. ClinikEHR supports each step once the owner sets Insurance to Outside the US.
Can I bill HMOs in ClinikEHR on the Free plan?
Yes. HMO billing is available on any plan, including Free, once the owner sets Insurance to Outside the US under Settings, General. Plans and prices are on the pricing page. Linking an HMO through the ClinikEHR API is a separate matter with its own requirements.
Does ClinikEHR check whether a patient is covered by an HMO, or connect to NHIA?
No. Registration records the member number, plan and expiry that your staff type, and ClinikEHR refuses to bill once the expiry date has passed. It does not ask the HMO whether a member is covered. It has no connection to NHIA.
Does ClinikEHR send claims to HMOs for me?
Not by itself. A person selects Submit to HMO. ClinikEHR then delivers the claim through the channel set for that HMO. The channels are the ClinikEHR API, a signed webhook, an email with a secure link, and the HMO's own portal, where nothing is sent from ClinikEHR. If no channel is set, you send the claim by hand and record how you sent it.
What happens to the HMO's share when a patient is billed?
Bill HMO splits the bill once. The patient pays only their share. The HMO's share becomes a draft claim and is never recorded as cash received. It does not count as income until you record the HMO's payment.
How do I record one lump-sum payment from an HMO?
Select Record payment. Choose the insurer, the date received, the amount and how it was paid, and add the transfer or cheque number as a reference. Share the payment across the claims it settles, oldest first or by hand. Any money you do not share stays as Credit held, and you can apply it to claims later.
Can I write off an HMO balance?
Yes. A write-off closes what an HMO will not pay, so the claim stops showing as owed. It needs a reason, it is permanent, and it is recorded against the person who made it. An owner or manager can require a second person to approve write-offs above an amount, and the person who asked can never approve.
How can an HMO connect to my hospital through the ClinikEHR API?
The HMO needs its own verified developer workspace, the Enterprise contract plan set by ClinikEHR on request, a ClinikEHR reviewer's approval for insurer data and acceptance of the data-protection addendum. Your hospital also needs API access on and the Enterprise plan for this link. An owner or manager then links the organization to your insurer record, and you can end the link at any time.
Conclusion
Getting paid by an HMO is a chain of small records: cover, approval, price, share, claim, channel and payment. In ClinikEHR each link is a screen your team can check, so you can see what each HMO owes and how old it is. ClinikEHR does not chase an HMO, so the routine stays with your team.
See the pricing page for plans. To connect an HMO through the API, contact ClinikEHR.
Bill your HMOs inside ClinikEHR
Related Articles
- Top 5 EMR for Hospitals in Nigeria 2026: Complete Guide to Hospital Management Software
- HMO Tariffs vs Hospital Prices in Nigeria: How to Bill Each HMO Line Correctly (2027)
- 10 Checks Before You Send an HMO Claim in Nigeria (2027 Hospital Checklist)
- Best HMO Billing Software for Nigerian Hospitals (2027 Comparison)
- NHIA and Private HMOs in 2027: What Digital Claims Mean for Hospital and HMO Relationships in Nigeria
- Best EMR for Private Clinics in Nigeria 2027: Complete Guide to Private Practice Software
- Best EMR for Clinics in Nigeria: Complete Guide to Affordable EHR Software 2027
- Best EMR for Government Hospitals in Nigeria 2027: Complete Guide to Public Hospital EHR Systems
- ClinikEHR pricing
- ClinikEHR API documentation
Facts are as of the dates shown. Check the linked sources for updates. This is general information, not legal or professional advice.
Stay in the loop
Subscribe to our newsletter for the latest updates on healthcare technology, HIPAA compliance, and exclusive content delivered straight to your inbox.