What is the TUSS table?
The TUSS table is the official terminology that gives a unique numeric code to each procedure, supply, drug, daily rate, fee and message exchanged between providers and Brazilian health plans (operadoras). It is the Health Concept Representation Component of the TISS standard (Troca de Informações na Saúde Suplementar, Brazil's mandatory data exchange standard). ANS sets and updates it [1][4].
In practice, “the TUSS table” is a singular name for a set of numbered tables. Table 87 lists all of them, and the ANS platform shows 65 domain tables [1][3]. Many of them fill fields on claim forms; only a few code what is billed.
Each term carries a code, a term name, a description, a start date, an end date and an implementation deadline [1]. There is no price field.
For US readers, TUSS plays the role that CPT, HCPCS, NDC and revenue codes play together, plus the CARC and RARC denial codes. The difference is that one agency runs all of it. The TUSS code is the basis of the coding step in hospital billing, and the data exchange rules are in the TISS standard guide.
The five tables hospital billing uses
Tables 18, 19, 20 and 22 code what goes on the claim; table 38 codes the health plan's responses. The Organizational Component sets, for each one, where the terms come from and which forms the codes may appear on [1]:
| Table | What it codes | Source of terms | Where the code may appear | Where not to use it |
|---|---|---|---|---|
| 18 — Daily rates, fees and medical gases | Daily rates (including global and semi-global rates), fees and medical gases | Discussions at COPISS, the ANS committee on supplementary health information standards | Other expenses attachment (SP/SADT and inpatient summary), chemotherapy and radiotherapy attachments, dental treatment | Consultation form and professional fee form |
| 19 — Supplies and OPME | Routine supplies and órteses, próteses e materiais especiais (OPME: orthotics, prostheses and special materials, mostly implants) | Health products database of Anvisa, Brazil's health products regulator | OPME attachment, other expenses attachment (SP/SADT and inpatient summary), dental OPME attachment | Consultation form and professional fee form |
| 20 — Drugs | Drugs | Anvisa data, updated with the CMED database (Brazil's drug market pricing board) | Other expenses and chemotherapy attachments (SP/SADT), other expenses attachment (inpatient summary), dental treatment | Consultation form and professional fee form |
| 22 — Procedures and health events | Consultations, tests, therapies, surgeries and other procedures | CBHPM (the Brazilian hierarchical classification of medical procedures) and CBHPO (dental); codes for other professionals created by ANS | All forms except the OPME attachment | On the consultation form, only elective consultation codes |
| 38 — Messages | Denials (claim denials, full or partial), authorization denials and other messages | Discussions at COPISS | Authorization responses, claim review statements and data returned to ANS | Not used for billing |
Three rules matter day to day. Every procedure in the Rol, the ANS list of mandatory coverage, is in table 22 [1]. Table 19 has three levels: technical name, Anvisa registration and model or reference, the last one only for implantable devices; technical-name terms show “Não se aplica” (not applicable) in the manufacturer and reference fields [1]. In tables 19 and 20, new terms follow the Anvisa database [1].
One example from each table, as shown in the official lookup [3]:
- Table 22: 10101012 — Consulta em consultório (no horário normal ou preestabelecido), an office consultation during regular hours.
- Table 18: 60036494 — Diária global semi-UTI neonatal, a global daily rate for a neonatal step-down unit.
- Table 38: 3209 — Cobrança de procedimento/item assistencial em duplicidade, duplicate billing of a procedure or item (active since 12/01/2025).
What each denial message means is covered in the TISS denial codes guide.
How do you look up the official TUSS table?
The official lookup is on the ANS website and open to the public. Since July 2026, ANS has offered an online lookup platform built on Open Concept Lab (OCL), an open-source tool for health terminologies [2]. There are three routes:
- Online search. The “Códigos da TUSS” (TUSS codes) page on the ANS website links to the platform. Pick the table (for example, 22) and search by name or code. The result shows the term and its three dates.
- Download. The tables are available in Excel, CSV and JSON [2]. They also ship in the TISS version package, in the file “PadrãoTISS_Representação de Conceitos em Saúde_AAAAMM.ZIP”, where AAAAMM is the year and month the version takes effect [1].
- API. The platform offers an application programming interface so that hospital and billing systems can pull the latest versions automatically [2].
What changed in each version is in the file “Padrão TISS_Histórico da TUSS_AAAAMM.ZIP” (TUSS change history), with the table, code, dates and action type (added, changed or deactivated) for each term [1]. Third-party code finders help, but they can be out of date: the item master should be checked against the ANS source.
See the steps as text
- Identify the item: procedure, supply, implant (OPME), drug, daily rate or fee.
- Pick the table: 22 for procedures, 18 for daily rates, fees and gases, 19 for supplies and OPME, 20 for drugs.
- Check the dates: the code must be active and within its implementation deadline.
- Apply the contract price: TUSS has no price field; each health plan has its own.
- Use the right form: codes from tables 18, 19 and 20 never go on the consultation or professional fee form.
- Read the response: denials come coded with TUSS table 38.
The three dates on each code and what to do with them
The dates on each term say whether the code can be used and from when it becomes mandatory. The rules for filling them in are in the Organizational Component [1]:
| Term status | Start date | End date | Implementation deadline | What billing should do |
|---|---|---|---|---|
| Added | 1st day of the month after the version is published | Blank | At least 3 months after the start date | Load the code and the contract price rule before the deadline |
| Changed | 1st day of the month after publication | Blank on the new record; the old record is deactivated the day before | Keeps the original date | Update the description in the item master |
| Deactivated | Unchanged | At least 3 months after the version is published (for Communication Component terms, that component's start date) | Blank (the original date stays in the history) | Replace the code in the item master and price tables before the end date |
The volume of change is large. The September 2026 version alone added 21,234 terms to table 19 and 781 to table 20, and added 2, changed 8 and deactivated 2 terms in table 22 [1]. On the ANS platform, table 20 held 43,376 records and table 18 held 3,595 in October 2026 [3].
In October 2026, the current TUSS version was 202609 [4].
Does the TUSS code set the price?
No. The TUSS code identifies the item; the contract between the hospital and the health plan sets what it is worth. The terminology has no price field [1]. Law 9,656/1998, art. 17-A, requires a written contract with the prices of services, the criteria and frequency of adjustments, and the billing and payment deadlines [5].
That is why the same code can have a different price at each health plan. For supplies and drugs, contracts often use market price publications such as Brasíndice and Simpro as a reference, with negotiated percentages. For procedures, a common reference is CBHPM or the contract's own fee table. The details are in the Brasíndice and Simpro and CBHPM guides. For US readers, this works much like a payer fee schedule keyed to CPT codes.
The hospital has to keep two things in sync: the item master, with the active TUSS code, and each contract's price table. When ANS adds or deactivates a term, both change together. Otherwise the claim goes out with the right code and the wrong price, and comes back as a denial.
When an item has no TUSS code: health plan tables and limits
If there is no TUSS term for an item, the health plan may create a code in its own table [1]. The allowed health plan tables are 00 (general own table), 90 (dental packages) and 98 (packages) [1]. ANS recommends that the health plan's code start with the two digits of the matching domain table, for example 19 for a supply, and caps the code at 10 characters [1].
The Organizational Component also sets limits for health plans [1]:
- right after creating its own code, the health plan must request the term's inclusion in TUSS, except for packages;
- once the implementation deadline for a TUSS term has passed, it may not keep or use its own code for the same item;
- denying care, supply or reimbursement because there is no TUSS or own-table code is an infraction subject to penalties;
- requiring a plan member to provide the TUSS code is also an infraction [1][2].
For the hospital, a health plan's own table should be the exception and temporary. A demand for an own code on an item already implemented in TUSS can be logged and taken to contract negotiation.
Which coding errors most often become denials?
Coding errors tend to show up as administrative denials or as rejected batches. The most frequent ones, and how to prevent them:
| Error | How it shows up | How to prevent it |
|---|---|---|
| Code deactivated or outside its validity on the date of service | XML submission edit or item denial | Check the TUSS change history at each version and update the item master |
| Code from the wrong table for the item type (e.g., a fee billed as a procedure) | Denial for incompatible code | Map each item master entry to the right table (18, 19, 20 or 22) |
| Code on a form that does not accept it (e.g., a drug on the professional fee form) | Item or form rejected | System rule that blocks tables 18, 19 and 20 on consultation and fee forms |
| Supply or implant at the wrong level of table 19 | Denial for mismatch with the authorization or the invoice | For implants, use the code of the authorized model, tied to its Anvisa registration |
| Right code, outdated price | Partial denial for a price above the contract | Update each health plan's price table together with the item master |
Checking these points before submission is part of medical claim audit. File errors are covered in the TISS XML errors guide, and the full picture of causes in Claim denials.
What we see in our work
At Accrua, the TUSS code is checked on every item of every health plan claim before submission. Accrua OS runs on top of the item master in the hospital's existing HIS/ERP and checks the code posted against its validity dates in the ANS table, the form it must appear on and the contract with that health plan, which sets the price.
The errors we look for are the ones this guide describes: a code past its end date, a code from one table used in another, an item on the wrong form, a health plan's own code used in place of a term TUSS already covers. When we read a hospital's denial history, we tie each of those denials to the item master entry that caused it.
Fixing the item master is a fix at the source: it solves the next claim, not just this one. Changing an item that affects the value of a claim goes to a person, who gets the item, its validity and the health plan's rule together. Every change is logged in an audit trail.
Where to start
- Check the TUSS version your hospital's system uses and compare it with the current version published by ANS.
- Download the TUSS change history for each new version and filter tables 18, 19, 20 and 22 for the items your hospital uses.
- Map each item master entry to the right table and flag the ones that use a health plan's own code.
- Sync price and code: at each addition or deactivation, update each contract's price table.
- Build system rules that block inactive codes and tables that do not fit the form.