NHRPL Tariff Codes Explained: Medical Aid Billing Codes in SA
Updated 2026-07-06 ยท Written for South African healthcare practitioners by Sphygmos.
Every service a South African doctor bills to a medical scheme is identified by a tariff code, and most of those codes trace back to the National Health Reference Price List, the NHRPL. The list itself was set aside by the High Court in 2010, yet its coding structure still shapes how schemes price and process claims. This guide explains what tariff codes are, where they came from, how schemes set their own rates today, and why the pairing with the ICD-10 diagnosis code decides whether a claim pays.
What a tariff code is on a medical scheme account
A tariff code, also called a procedure code or practice code, identifies the service on a claim line: the consultation, the procedure, the item supplied. Where the ICD-10 code tells the scheme why the patient was treated, the tariff code tells it what was done, and a South African scheme claim needs both, because ICD-10 diagnosis coding is required on all scheme claims.
Schemes and their administrators adjudicate claims by code, not by narrative. The tariff code determines which benefit the claim draws from and which rate the scheme applies, so the codes on the line, not the wording on the account, are what gets paid.
Where the codes come from: the 2004 end of negotiated tariffs
Until the early 2000s, private healthcare tariffs in South Africa were effectively set through recommended fee guidelines: the South African Medical Association published a tariff book for doctors, the Hospital Association of South Africa published hospital fee guidelines, and the Board of Healthcare Funders published a scale of benefits for schemes.
In 2004 the competition authorities found that these recommended tariff arrangements amounted to price fixing under the Competition Act. SAMA, HASA and the BHF were penalised, and collective negotiation of tariffs was prohibited. The industry needed a replacement benchmark, and the reference price list filled that role.
From NHRPL to RPL: a short history of the reference price list
The National Health Reference Price List was compiled under the Council for Medical Schemes, working with the Department of Health, as a public benchmark of what each coded service could reasonably cost. It was a reference, never a fixed national tariff: schemes and practitioners remained free to set their own numbers against it.
From 2007 the National Department of Health took over the process and published regulations under the National Health Act for the determination and publication of a Reference Price List, the RPL. Providers objected that the published rates no longer reflected the cost of running a practice, and the dispute went to court.
The 2010 judgment: why South Africa has no national tariff
In Hospital Association of South Africa v Minister of Health, judgment delivered on 28 July 2010, the North Gauteng High Court declared the RPL regulations and the price lists made under them null and void and set them aside. The court found the process by which the rates were determined unfair, unlawful, unreasonable and irrational.
No successor list has been promulgated since. South Africa has had no statutory reference price list for private healthcare from that judgment to today, a gap the Department of Health itself has repeatedly acknowledged. What survived is the coding structure: the code numbers that identified services on the NHRPL and RPL continue as the shared language of private-practice billing.
How medical schemes set their rates today
With no statutory list, each scheme publishes its own tariff schedule, commonly called the scheme rate or scheme tariff. These rates are typically expressed against the reference price list lineage, and plan options then cover professional fees at a stated percentage of the scheme rate.
The practical consequence for a practice is that a tariff code has no single value. The same code can pay differently on every scheme, on every plan option within a scheme, and in every benefit year. This guide deliberately quotes no Rand values for that reason: the only reliable source for what a code pays is the current published schedule of the scheme being billed.
- The tariff code identifies the service; the value attached to it is set by each scheme, per plan option, per benefit year.
- Plan options commonly reimburse professional fees at a stated percentage of the scheme rate.
- Practitioners in private practice set their own fees; where the fee exceeds the scheme rate, the balance can fall to the patient, depending on plan rules.
- Rates change with each benefit year, so last year's schedule is not evidence of this year's rate.
Why the tariff code must agree with the ICD-10 code
ICD-10 diagnosis coding is required on every South African medical scheme claim, and scheme systems validate the pairing, not each code in isolation. A tariff code that is valid on its own can still be rejected when the diagnosis code beside it is missing, invalid in the South African Master Industry Table, or clinically inconsistent with the service billed.
The pairing also carries benefit consequences. Prescribed Minimum Benefit entitlement is identified by diagnosis code, so a correct procedure billed against an imprecise diagnosis can move a claim from a benefit the scheme must fund to one it may decline.
What a coding error costs the practice
A claim the scheme accepts is payable within 30 days under the Medical Schemes Act. A claim it rejects is unpaid until corrected, resubmitted and adjudicated again, and the regulations put hard edges on that process: accounts must reach the scheme before the end of the fourth month after the service, and a returned account must be corrected and resubmitted within 60 days.
Each bounce adds administration the consultation fee never priced in, delays practice cash flow, and can end with the account owed by the patient or written off entirely. The cheapest point to get the codes right is before the claim leaves the practice, which is a drafting problem, not an adjudication problem.
How Sphygmos helps
Sphygmos prepares billing-ready drafts with the ICD-10 and tariff codes already on the account, paired the way scheme systems expect, for the doctor to review. It drafts against the WHO ICD-10 classification used in South Africa and keeps every code visible for confirmation, because a claim that is right when it leaves the practice is a claim that gets adjudicated once. Every generated account is a draft that stays under your control until you confirm it.
See Sphygmos, the clinical operating system for South African doctors
Frequently asked questions
What are NHRPL tariff codes?
They are the service codes South African private practices use on medical scheme accounts, inherited from the National Health Reference Price List. The list's published rates were set aside by the High Court in 2010, but its coding structure remains the shared language schemes and practices bill in. Each code identifies a consultation, procedure or item, and each scheme attaches its own current rate to it.
Does the NHRPL still exist?
Not as a live price list. The North Gauteng High Court declared the Reference Price List regulations and the lists made under them null and void on 28 July 2010, and no statutory successor has been promulgated. Schemes now set their own tariff schedules, typically expressed against the old reference list structure.
What is the difference between NHRPL, RPL and NRPL?
They refer to the same reference price list lineage. NHRPL is the National Health Reference Price List compiled under the Council for Medical Schemes, RPL is the Reference Price List the Department of Health published from 2007, and NRPL is a common informal abbreviation for the same lists. All were set aside by the 2010 judgment, and the names now survive mainly as labels for the coding structure.
Why do two schemes pay different amounts for the same tariff code?
Because no statutory tariff has existed since 2010, each scheme determines its own rates. A tariff code identifies the service; the value attached to it is set per scheme, per plan option and per benefit year. The current published schedule of the scheme being billed is the only reliable source for what a code pays.
What is the difference between a tariff code and an ICD-10 code?
The tariff code states what was done, the service or procedure billed, and the ICD-10 code states why, the diagnosis behind it. South African scheme claims need both on every line, and schemes validate the pairing: a valid tariff code against a missing, invalid or inconsistent diagnosis code is a common rejection cause.
Where do I find the current rate for a tariff code?
From the scheme itself. Each scheme publishes its own tariff schedule for the current benefit year, and rates differ per scheme and per plan option. No public national list has existed since the 2010 judgment, so any general table of code values is either a single scheme's schedule or out of date.
Can a doctor charge more than the scheme rate?
Private practitioners set their own fees, since no statutory tariff binds them. The scheme reimburses at its own rate, and where the practice fee exceeds it the balance can fall to the patient, depending on the rules of the plan. Prescribed Minimum Benefit claims follow their own funding rules under the Medical Schemes Act regulations.
Sources
- Medical Schemes Act 131 of 1998 (gov.za)
- National Health Act: draft regulations on reference price lists (gov.za)
- Council for Medical Schemes - Acts and Regulations
- Council for Medical Schemes - Prescribed Minimum Benefits
This guide is general information for healthcare practitioners, not billing or legal advice. Verify current tariffs and scheme rules before relying on any detail.