Pabau Engage inbox

Pabau Engage is here: every patient conversation in one inbox.

Learn more
CPT Code

CPT code 86703 – HIV-1 and HIV-2 antibody test


Code Definition

A rapid HIV-1/2 antibody test that reads simply reactive or nonreactive is billed with CPT code 86703. The code covers one assay that detects antibodies to both HIV-1 and HIV-2 and returns one combined result. Its official descriptor is “Antibody; HIV-1 and HIV-2, single result.”

The result format decides the code, not the number of viruses tested. A differentiation assay that reports each virus separately is billed 86701 + 86702. A kit that also detects p24 antigen is 87389. Below, we cover how to tell the tests apart, which diagnoses fit, and how Medicare bills screening.

Section
80047-89398 Pathology and laboratory
Subsection
86000-86849 Immunology
Related codes
86701 (HIV-1 antibody), 86702 (HIV-2 antibody)
Billable
No
Code also known as
HIV-1/2 combination antibody test, combined HIV antibody screen
Save time. Improve accuracy. Get paid faster.
Automate coding with Pabau

Let Pabau's smart automation suggest the right codes, reduce claim denials, and keep your practice compliant—effortlessly.

  • AI-powered code suggestions
  • Real-time compliance checks
  • Faster claims, fewer denials
Why practices choose Pabau
Save hours every week

Automate repetitive tasks and focus on what matters most—your patients.

Improve accuracy

Reduce coding errors and ensure compliance with the latest regulations.

Get paid faster

Clean claims, fewer denials, and faster reimbursements.

Grow with confidence

Powerful insights and reporting to help your practice thrive.

HIPAA compliant SOC 2 certified GDPR-compliant Trusted by 4,000+ clinics worldwide

Key takeaways

Key takeaways

CPT code 86703 reports one assay that detects HIV-1 and HIV-2 antibodies and returns a single, undifferentiated result.

A differentiation assay that reports HIV-1 and HIV-2 separately, such as Geenius, is billed 86701 + 86702, not 86703.

A kit that also detects p24 antigen is 87389, even though it detects antibodies too.

Medicare pays 86703 under the Clinical Laboratory Fee Schedule for diagnostic testing. Routine screening under NCD 210.7 is billed with HCPCS G-codes instead.

Read the result lines on the lab report before you code, because the report decides between 86703 and 86701 + 86702.

CPT code 86703 means one combined HIV antibody result

CPT code 86703 carries the official AMA descriptor: Antibody; HIV-1 and HIV-2, single result. It sits in the Immunology subsection (86000-86849) of the Pathology and Laboratory chapter. The code reports a qualitative immunoassay that detects antibodies to both HIV-1 and HIV-2. It returns one combined result from one specimen.

The “single result” wording decides the code. The assay answers one question: are HIV antibodies present? It doesn’t say whether those antibodies belong to HIV-1 or HIV-2. A combined antibody screen or a rapid HIV-1/2 antibody test that reads reactive or nonreactive fits this description.

An assay that reports HIV-1 and HIV-2 as separate results is a different test. Differentiation assays such as the Bio-Rad Geenius HIV-1/2 Supplemental Assay work this way. They’re billed 86701 for the HIV-1 result and 86702 for the HIV-2 result.

86703 covers antibodies only, not antigen or RNA

So what sits just outside the code? The table sets what 86703 covers against the neighboring HIV tests that take a different code.

What 86703 coversWhat 86703 does NOT cover
Combined HIV-1 and HIV-2 antibody detection in a single assayHIV-1 antigen detection alone (87390, not 86703)
Qualitative result (reactive / nonreactive)Quantitative HIV-1 RNA (viral load), billed as 87536
Single specimen (serum, plasma, whole blood or oral fluid, per the kit)Fourth-generation antigen/antibody combination screen, billed as 87389
Antibody tests that return one combined HIV-1/2 result, lab-based or rapidDifferentiation assays that report HIV-1 and HIV-2 separately, billed as 86701 + 86702

The line between 87389 and 86703 trips up plenty of coders. CPT 87389 covers the fourth-generation screen that detects HIV-1 p24 antigen alongside HIV-1 and HIV-2 antibodies. CPT 86703 covers an antibody-only assay with one combined result. If the kit detects p24 antigen, it’s 87389, even though it also detects antibodies.

86703 sits outside the CDC’s three-step lab algorithm

CPT code 86703 isn’t one of the three steps in the CDC-recommended laboratory HIV testing algorithm. Instead, the code changes at each step of that sequence:

  1. Step 1 (CPT 87389): Fourth-generation HIV-1/2 antigen/antibody combination immunoassay. If it’s nonreactive, testing stops.
  2. Step 2 (CPT 86701 + 86702): HIV-1/HIV-2 antibody differentiation immunoassay, run when step 1 is reactive. It reports HIV-1 and HIV-2 separately, so it takes two codes rather than 86703.
  3. Step 3 (HIV-1 NAT): Run when step 2 is nonreactive or indeterminate, to confirm or exclude acute HIV-1 infection. A qualitative HIV-1 NAT is typically 87535.

86703 fits antibody-only tests that return one combined answer, such as a point-of-care rapid HIV-1/2 test. A reactive result from one of those tests is preliminary. The patient then moves into the laboratory algorithm for supplemental testing.

Labs often reflex supplemental tests automatically. That makes the paperwork matter: a standing order protocol or a real-time order from the treating provider must be on file. Payers deny a reflexed test when no order connects it to the screen that triggered it.

86703 vs. 86701 and 86702: Count the results on the report

The three HIV antibody codes look alike, but the choice turns on one question. How many results does the assay report? One combined result is 86703. Separate HIV-1 and HIV-2 results are 86701 and 86702.

CPT codeWhat it reportsWhen to use itBilling note
86701HIV-1 antibody resultWhen the assay reports an HIV-1 antibody result on its own linePaired with 86702 when a differentiation assay reports both types separately
86702HIV-2 antibody resultWhen the assay reports an HIV-2 antibody result on its own linePaired with 86701 when a differentiation assay reports both types separately
86703HIV-1 and HIV-2 antibodies, one combined resultWhen one assay detects both antibody types and returns one undifferentiated resultNever added to 86701 + 86702 for the same differentiation assay

Read the result format on the lab report before you code. A reactive/nonreactive line for “HIV-1/2 antibodies” supports 86703. Separate interpretations for HIV-1 and HIV-2, as a Geenius report gives, support 86701 + 86702. Laboratories that run differentiation panels bill them with 86701 and 86702.

Here’s a quick example. A sexual health practice runs a rapid HIV-1/2 antibody test for a commercially insured patient, and it reads nonreactive. That’s 86703, one unit, with Z11.4. The same screen for a Medicare patient goes on G0435 instead.

The decision tree below runs the whole check in the order a coder meets it.

Decision diagram for HIV test coding
Two questions settle most HIV test claims, and Medicare screening adds a third check. Built from AMA CPT descriptors and CMS NCD 210.7.

Z11.4 or Z20.6 usually carries the diagnosis for 86703

Every CPT code 86703 claim needs a paired ICD-10-CM diagnosis code that establishes medical necessity. Missing or unsupported diagnosis codes are a leading reason these claims come back.

ICD-10-CM codeDescriptionTypical use with 86703
Z11.4Encounter for screening for HIVAsymptomatic screening, the most common pairing for routine tests. Medicare screening goes on a G-code instead.
Z20.6Contact with and (suspected) exposure to human immunodeficiency virus [HIV]Documented or suspected HIV exposure. Supports testing outside routine screening.
Z21Asymptomatic HIV infection statusKnown HIV status. Antibody testing is unusual here, so document why it was ordered.
B20Human immunodeficiency virus diseaseEstablished HIV disease. As with Z21, the record should explain the antibody test.

With commercial payers, Z11.4 usually supports a routine screen on 86703 by itself. When testing follows a specific exposure, Z20.6 documents why the test was ordered. Confirm with each payer whether Z11.4 alone satisfies medical necessity.

Antibody testing for a patient coded Z21 or B20 needs a clear reason in the chart. Their HIV status is already known, so a payer will ask why the test was repeated.

For those patients, ongoing monitoring usually runs on viral load testing, billed as 87536. If the order says antibody test, the note should say what question it answers.

Medicare pays 86703 for diagnostic testing, not routine screening

Medicare reimburses CPT code 86703 under the Clinical Laboratory Fee Schedule (CLFS), not the Physician Fee Schedule. CMS publishes the CLFS data files each quarter. Rates change, so check the current file before you quote a figure to a provider or patient.

These are the Medicare rules that shape an 86703 claim:

  • Screening uses G-codes: Under NCD 210.7, Medicare HIV screening is billed with HCPCS G0432, G0433 or G0435, or G0475 for the antigen/antibody combination assay. CMS transmittals R3778CP and R3835CP list those codes.
  • Frequency limits attach to the G-codes: Screening is covered once a year at ages 15 to 65, or for anyone at increased risk. Pregnant beneficiaries can be screened up to three times per pregnancy.
  • 86703 is for diagnostic testing: For Medicare, 86703 covers diagnostic HIV antibody tests, such as testing after a documented exposure. Non-Medicare payers may accept it for screening, so check each payer’s HIV screening code policy.
  • Place of service (POS): Independent reference laboratories bill under POS 81 and are paid at the CLFS rate. Hospital outpatient laboratories follow OPPS packaging rules, so a test may be paid as part of the visit.
  • Medicaid: Coverage and rates vary by state. Most state Medicaid programs cover HIV testing, but check your state’s fee schedule for the current rate.

Pro Tip

Before you send a Medicare HIV claim, decide whether the test was screening or diagnostic. Screening goes on the G-code, while diagnostic testing goes on 86703 at the current CLFS rate.

How an 86703 claim moves from order to payment

Think of the claim as five handoffs. A slip at any one of them shows up later as a denial.

  1. The order: A signed order from a licensed provider must be on file before the test runs. For reflex testing, a standing order protocol or real-time order covering the reflex trigger does the same job.
  2. The test: The lab runs one combined assay and records it as one unit. A reactive result doesn’t add a unit for HIV-1 or HIV-2.
  3. The coding: The coder matches the result format to 86703, 86701 + 86702 or 87389. Then they pair the diagnosis and, for Medicare, confirm the test wasn’t routine screening.
  4. The claim: It goes out on the 837P electronic transaction or the CMS-1500 paper form. It needs both the performing laboratory’s NPI and the ordering provider’s NPI, plus the right place of service.
  5. The remittance: The payer’s electronic remittance advice (ERA/835) comes back paid, adjusted or denied. Post it against the claim the day it lands, so a pattern of denials shows up early.

Place of service is where many hospital labs slip. Independent labs use POS 81. Hospital-based labs typically use POS 22 (on-campus outpatient hospital) or POS 19 (off-campus outpatient department).

Run this checklist before you submit an 86703 claim

A two-minute check before the claim leaves catches most of the denials covered further down. Tick off each line:

  • The lab report shows one combined HIV-1/2 antibody result, not separate HIV-1 and HIV-2 lines.
  • The kit doesn’t detect p24 antigen. If it does, the code is 87389.
  • A Medicare claim carries a diagnostic reason, because routine Medicare screening goes on a G-code.
  • A diagnosis code sits on the line, usually Z11.4 or Z20.6, with a documented reason for Z21 or B20.
  • The ordering provider’s NPI and the performing lab’s NPI are both on the claim.
  • A standing or real-time order covers any test the lab reflexed.
  • The claim shows one unit per assay.

Check the NCCI tables before you pair 86703 with other lab codes

Check the CMS NCCI procedure-to-procedure (PTP) edit tables for the quarter that matches the date of service. The tables list which code pairs are edited and whether a modifier can bypass the edit.

86701 and 86702 belong together, without 86703

Billing 86701 and 86702 together is the expected coding for a differentiation assay that reports HIV-1 and HIV-2 separately. The error to avoid is adding 86703 for that same assay. Doing so reports one test under two sets of codes, and the claim no longer matches the lab report.

Modifier 59 needs a documented, distinct service

Modifier 59 (Distinct Procedural Service) applies only when a PTP edit exists for the pair and the services were separate. Typical examples are different specimens, different encounters or different dates of service. The medical record must document what made the procedures distinct.

Routine use of modifier 59 to unbundle codes is a compliance risk. The AMA’s CPT guidelines and the CMS NCCI Policy Manual both caution against using modifiers to get around edits without documented clinical justification.

Six reasons 86703 claims come back denied

Most CPT code 86703 denials fall into one of six patterns. Each one has a fix you can build into the workflow.

  • Missing or unsupported ICD-10-CM code: The claim lacks a covered diagnosis, or the paired code doesn’t satisfy the payer’s policy. Fix: Confirm the pairing before submission with the CDC ICD-10-CM lookup tool.
  • Medicare screening billed on the wrong code: A Medicare screen sent as 86703 with Z11.4 risks a denial. Screening belongs on G0432, G0433, G0435 or G0475. A G-code screen past the NCD 210.7 limit denies as non-covered. Fix: Use the G-code for screening, and document the clinical reason for repeat testing.
  • Code doesn’t match the result format: 86703 was billed for a differentiation assay that reported HIV-1 and HIV-2 separately. The reverse error is 86701 + 86702 for a single-result test. Fix: Match the code to the result lines on the lab report.
  • Missing ordering provider NPI: The claim lacks the ordering NPI in box 17b (CMS-1500) or the 837P NM1 segment. Fix: Make the lab information system require the ordering NPI before claim batching.
  • No documented order for reflex testing: A supplemental test ran automatically after a reactive screen, but no standing reflex order is on file. Fix: Write a standing order protocol and keep it on file for audit.
  • Non-covered service: Some commercial plans exclude HIV screening. Fix: Verify benefits before the encounter with a real-time eligibility check, for example through the Claim.MD clearinghouse.

Repeated denials on the same code usually point to an intake or order workflow problem, not a one-off coding slip. Tracking denial reasons by code through structured denial management shows those patterns before they turn into write-offs.

Documentation for 86703 lives in two places

A CPT code 86703 claim needs supporting records at two levels: the ordering provider’s record and the performing laboratory’s record.

Ordering provider documentation

  • Signed lab order with date, ordering provider name, and NPI
  • Clinical indication: routine screening, a documented exposure (Z20.6), or the reason for testing a patient with known HIV status (B20 or Z21)
  • For standing reflex orders: a written protocol authorizing the lab to run supplemental testing when a screen is reactive

Performing laboratory documentation

  • Laboratory report identifying the performing lab’s CLIA number and NPI
  • Specimen type and collection date
  • Test methodology note naming the assay used and confirming that it reports one combined HIV-1/2 antibody result
  • Result: reactive or nonreactive for HIV-1/2 antibodies, reported as a single line

The methodology note is what defends the code choice in an audit. If the report shows separate HIV-1 and HIV-2 interpretations, the payer will expect 86701 + 86702. Map each assay to its code in your lab order templates, so the choice is made once rather than claim by claim.

The same mapping logic applies across the lab menu. Our index of CPT codes covers the neighboring immunology and molecular codes when you build those templates.

How claims management software keeps CPT code 86703 claims clean

HIV lab claims tend to fail on details set at intake. The usual culprits are a code mapped to the wrong assay, a missing ordering NPI, or a plan that excludes screening. Without a clearinghouse check, those errors surface weeks later on the remittance.

In Pabau, the practice management platform we build, the claim form fills from the patient record. The CPT code attached to the service lands on the charge line. Pabau’s claims management software then checks that required fields are complete before the claim can be sent.

For US practices, Pabau connects to the Claim.MD clearinghouse. Your team checks eligibility in real time before the test runs, submits 837P claims, and posts ERA/835 remittances against each claim. If 86703 keeps coming back from one payer, claim tracking shows the pattern, so you can fix the assay mapping at its source.

Pabau claims tracking screen following a claim from submission to payment
Pabau’s claim tracking follows each HIV lab claim from submission to payment, so a rejected 86703 line is visible the day it comes back.

Manage HIV lab billing from order to payment

Pabau fills each claim from the patient record and sends it through Claim.MD, with eligibility checks before the test and ERA posting after. Your 86703 claims go out complete.

Pabau claims management dashboard

Conclusion

Code HIV antibody tests by the result format on the lab report, not by the viruses the test detects. For Medicare, add one more question before you code: was this screening or a diagnostic test?

Settle both answers once, when the lab adds an assay to its menu, and map each assay to its code in the lab information system. A reactive screen then stops triggering a coding guess on every claim. The trade-off is upkeep. When the lab switches kits, the mapping has to change with it.

Once the mapping is right, the claim itself is the easy part. Book a demo to see how Pabau carries HIV lab claims from order to payment.

Continue your research

Continue your research

Need to decode a remittance? Denial codes in medical billing explains the CARC and RARC codes that appear on HIV lab remittances and how to act on them.

Billing Medicare for lab work? Medicare billing for practices walks through a Medicare claim from appointment to payment.

Want fewer rejections on the first pass? What is a clean claim covers the fields and checks that get a claim paid without rework.

Checking your billing against the rules? Medical billing compliance covers the regulatory framework behind electronic claim submission and payer requirements.

New to the billing cycle? What is medical billing lays out each stage from charge capture to payment posting.

Frequently asked questions

Which modifiers apply to CPT 86703?

Two come up most. Modifier 92 marks a test run on a single-use, disposable kit, such as many rapid HIV tests. Medicare also expects QW on a CLIA-waived test. Check the CMS waived-test list and your payer’s rules before adding either.

Do you need a CLIA certificate to bill 86703?

Yes. Any practice that runs the test needs a CLIA certificate, and a Certificate of Waiver covers waived rapid HIV tests. The CLIA number goes on the claim, and a missing one causes rejections.

Does an oral fluid HIV test use 86703?

Yes, when it reports one combined HIV-1/2 antibody result. The specimen type doesn’t change the code. For Medicare screening, an oral fluid rapid test goes on G0435 instead.

Is the blood draw billed separately from 86703?

Usually, yes. When your practice draws a venous sample, report the venipuncture with 36415 alongside 86703. A rapid test on oral fluid has no draw to bill.

Can 86703 be billed with 87389 on the same date?

Only when both assays were run and the record documents each one. A lab that runs both on one specimen should be able to explain why. Check the NCCI PTP tables before adding modifier 59.

Avatar photo
Monika Lazarevska
Content Writer

Monika Lazarevska writes content for owners and healthcare professionals who want clear, no-fluff content that actually helps them run their practice better. With a background in storytelling and SEO, she knows how to make even the driest topics worth reading. Off the clock, you'll find her in a café somewhere in Europe, probably with a good book and an even better coffee.
×