Coding for Allergy Testing


In a recent webinar, the College asked allergists and their staff which allergy testing coding topics were the most confusing. Do these results ring true for you as well?

Clearly, the coding for allergy testing can be challenging!

In this module, we want to clear away the confusion and make allergy testing coding as clear and simple as possible. We’ll take it category by category, code by code, starting with the allergist’s bread and butter: skin testing. Then we’ll cover the guidelines for...

  • Oral challenges
  • Local anesthetics
  • Venoms
  • Penicillin
  • Patch testing

By the end of this module you’ll know which codes to use, when to use them (and when not to), and why.

Ready to conquer these codes? Let’s go!

Skin Testing

The Codes

  • ICD-10: Use the ICD-10 code appropriate for the main reason you’re doing the testing. Consult your ICD-10 book for code details.
  • CPT: Use 95004, which says, “Percutaneous tests (scratch, puncture, prick) with allergenic extracts, immediate type reaction, including test interpretation and report, specify number of tests.”

Tips for Successful Billing and Collections for Skin Testing

Here are a few tips that will help you be more successful in getting reimbursed for skin testing:


    Verify benefits and payer-specific limits up front. You may need to do some digging to uncover testing limits, since they aren’t always published on the insurance website and may not be disclosed when speaking with an insurance rep.

    Encourage your billing department or service to use previous denials proactively to become familiar with testing limits.

    Remember not to bill Medicare for control tests.

    Give patients a financial quote up front to avoid any surprise bills later on.

For more billing and collections tips, check out our Allergy Office Essentials module “Patient Financial Counseling”!

Tips for Coding: Skin Testing

Gary N. Gross, M.D.Dallas Allergy & Asthma Center

Oral Challenges

The Codes

  • ICD-10: Examples of ICD-10 codes to document food allergy status would be Z91.01X:
    • Z91.010: Allergy to peanuts
    • Z91.011: Allergy to milk products (excludes lactose intolerance)
    • Z91.012: Allergy to eggs
    • Z91.013: Allergy to seafood (including allergy to shellfish, octopus or squid ink)
    • Z91.018: Allergy to other foods (including allergy to nuts other than peanuts)
  • CPT: 95076, 95079, or sometimes an E/M code

Tips for Successful Coding and Billing for Oral Challenges

Here are some tips for effectively coding your oral challenges:

  1. Oral challenges must be face-to-face

    – but they don’t require a provider be face-to-face with the patient the entire time; a nurse can meet this requirement for a portion of the challenge.
  2. CPT coding for oral challenges is time-based.

    Here are the details of what this means:


When to Use CPT 95076 vs. an E/M code

You use CPT code 95076 for the initial 120 minutes of testing. This doesn’t mean the testing must take exactly two hours. Rather, you have to use at least half of that time – 61 minutes – before you can use the code.

  • If you have to stop testing before 61 minutes have passed, use an E/M code instead – not the 95076 code – along with the treatment you’re giving (epinephrine, nebulizer, etc.).
  • If you have to stop after 61 minutes, then use 95076 plus the E/M code and the treatment you’re giving.
  • Note that code 95076 requires “sequential and incremental ingestion of test items,” which suggests at least two doses be used for the oral challenge.

When to Use CPT 95079

If you go over 120 minutes by at least 31 minutes (the CPT code book says “for each additional 60 minutes of testing time [not physician face-to-face time]”), you can use the add-on code 95079. Be sure to bill both codes 95076 and 95079.

When to Use an E/M Code

You usually don’t use an E/M code for oral challenges unless...

  • the provider needs to treat for a reaction. This means providing intervention therapy, which is a separate service.
  • the provider saw the patient for an unrelated office visit the same day as testing.


This office visit cannot be part of the testing and needs to independently contain at least two of the three key components of an E/M visit (history, physical exam, and medical decision-making) for a follow-up patient. For a new patient, it must contain all three components. You can’t double-count the testing time; the oral challenge is distinct time from an E/M code. If you do code an E/M visit with an oral challenge, add modifier 25 to the E/M code (99202-99205 or 99212–99215).

Document, document, document!

You need to have excellent documentation for oral challenges. Be very clear about the time testing begins and ends, as well as the amount of food or drug given, any adverse reactions, and discussion of test results. Be prepared to submit your medical records if asked, because denials are not uncommon.

Tips for Coding: Oral Challenges

Gary N. Gross, M.D.Dallas Allergy & Asthma Center


Coding for penicillin testing can be especially challenging, so here’s how to navigate this terrain.

T or Z: Which ICD-10 Code to Use

  • Typically, you’ll use a T code when evaluating patients for penicillin allergy.
  • However, there are some instances when Z88.0 might make more sense.

Unfortunately, there’s no one right answer. One thing to keep in mind is that T codes also require another diagnosis for the nature of an adverse effect (anaphylaxis, urticaria, dermatitis, etc.), and sometimes that information is just not available. So in that case, Z88.0 might be a better option.

Also, carriers have different policies and vary in what they want, so there’s no consistent answer as to which ICD-10 code to use.

How to Use a T Code

To code for an adverse effect of a drug that has been correctly prescribed and properly administered...

  • first assign the appropriate code for the nature of the adverse effect (for example, urticaria),
  • next, choose the appropriate code for the adverse effect of the drug (T36-T50).

The code for the drug should have a 5th or 6th character ("5" for example T36.0X5#).

Use A, D, or S as appropriate for the seventh character (“S” is rarely used by allergists). “A” is used for the initial encounter and continues until active treatment has ended. “D” is used for subsequent encounters when the patient is receiving routine care for the condition. Sometimes it’s not clear what the correct 7th character should be, and some insurers may have their own unique interpretations. So you may need to resubmit the claim with a different 7th character if the initial claim is denied.

Here’s an example:

Step 1: Choose an ICD-10 code for the reaction. Here are some common ICD-10 codes for allergists:

  • T88.6XXA: Anaphylactic reaction due to an adverse effect of correct drug properly administered, initial encounter (or T88.6XXD for subsequent visit following completed evaluation)
  • L27.0: Dermatitis (generalized), due to drugs taken internally
  • L27.1: Dermatitis (localized), due to drugs taken internally
  • L50.0: Urticaria allergic, due to drug

Step 2: Choose an ICD-10 code for the adverse effect of the medication that caused the reaction:

  • T36.0X5A (or D): Adverse effect of penicillin
  • T36.1X5A (or D): Adverse effect of cephalosporins and other beta-lactam antibiotics

With the code for reacting to a cephalosporin, be sure to document why penicillin testing was required.

CPT Codes to Use

There are three CPT codes you can use for penicillin testing:

  • This is the code to use when skin testing for an allergy to any drug. It is used for both prick and intradermal tests.
  • On one line on the claim form, enter 95018 + the total number of prick and intradermal tests performed.
  • When billing Medicare, don’t count control tests.
  • Most commercial payers will pay for controls, but check with each carrier to confirm.
  • For additional oral challenges over a period of time. Remember, these are time-based codes:
    • For first 61-120 minutes of the challenge,
      • Time starts when test is explained to the patient, or vitals are taken, or prior reaction history is discussed (see Oral Challenges above).
      • Time ends with a negative result or with reactions needing treatment.
    • If you spend less than 61 minutes on the challenge, use an E/M code instead.
  • Also for oral challenges over time.
  • This is an add-on code after testing has reached at least 151 minutes (unlikely for penicillin testing). It’s billable for each additional hour beyond the first 120 minutes of the challenge, which means that you have to spend at least half of the time (31 minutes) before you can add it to 95076.

See the College’s Penicillin Toolkit for more information on penicillin allergy testing.

Local Anesthetics

Coding for local anesthetics can be a little tricky, so let’s dive in.

ICD-10 Codes to Use

You’ll typically use T codes when evaluating patients for drug allergies. Remember, when using a T code, you first code for the type of reaction the patient had (dermatitis, urticaria, anaphylaxis, etc.), and then you code for the medication that produced the reaction. However, like penicillin testing, there might be some instances when a Z code – in this case, Z88.4 - might make more sense.

Let’s walk through an example for a patient who developed hives after a dose of xylocaine. How would you code this?

  1. Code for the adverse effect: urticaria, L50.5.

  2. Code for the drug that caused it: xylocaine, T41.3X5D.

Looking for ICD-10 T codes used for adverse drug effects? Check out the Advocacy Council's quick Reference Guide.

CPT Codes to Use

There are two codes for local anesthetic testing:

  • For allergy testing (prick, scratch, and puncture, as well as intradermal tests).
  • Specify the number of tests (but don’t include control tests).
  • For therapeutic, prophylactic or diagnostic injection – several subcutaneous doses given over a period of time.
  • When coding 96372: specify the number of injections (keep in mind that MUEs are currently 4).
  • When billing 96372 for anesthetic testing: bill on one line with quantity (per MUE).

Also, remember to use the J code for the anesthetic.

(For more information about MUEs, read this Advocacy Council article.)

Tips for Coding: Local Anesthetics Testing

Gary N. Gross, M.D.Dallas Allergy & Asthma Center


Here’s the scoop on which ICD-10 and CPT codes to use for venom testing.

ICD-10 Codes: T vs. Z Again!

Like testing for allergies to drugs, you can use a T or Z code depending on the situation. Consider T codes first, but remember, if you use a T code, you also need to include another diagnosis for the nature of the adverse effect of the allergy. This can be tricky because the initial diagnosis may not be available – the patient may have a history of a reaction to a sting from a long time ago or just have a vague recollection of what happened. If that’s the case, a Z code might be more appropriate.

And again, insurance carriers vary in what they’re looking for, so there’s no consistent answer as to which ICD-10 code to use.

T Codes

Use T63 to indicate toxic effect of various venoms, including snakes, spiders, reptiles and insects. Consult your ICD-10 book for code details. Here are some common T codes for allergists:

T63.441#Toxic effect of venom of bees, accidental (unintentional)image
T63.451#Toxic effect of venom of hornets, accidental (unintentional)image
T63.461#Toxic effect of venom of wasps, accidental (unintentional)
(Includes toxic effect of yellow jacket)image
T63.481#Toxic effect of venom of other anthropod, accidental (unintentional).
(Fire ant is a good example).image

Remember, when using a T code, you also need to document the nature of the toxic effect – for example, anaphylaxis.

Z Codes

Use Z codes to document an insect allergy status:

  • Z91.030: Bee allergy status
  • Z91.038: Other insect allergy status

CPT Code to Use: 95017

There’s only one code for venom allergy testing: 95017. That’s nice and simple, huh? You use this for...

  • any combination of percutaneous (prick, scratch, puncture) and intradermal (intracutaneous) tests.
  • sequential and incremental tests with venoms (you need to use at least two doses).

You need to specify the number of tests (but don’t include control tests). And remember that 95017 is just for allergy testing. Don’t confuse this code with immunotherapy codes (95145-95149).

Patch Testing

There’s a lot of confusion about how to bill for patch testing. Let’s take a look.

ICD-10 Codes to Use

When it comes to patch testing, the allergist is primarily looking for allergic contact dermatitis. So you’ll use the codes under the category L23. Check your ICD-10 book for specific codes.

CPT Codes to Use

Now for the confusing part – the CPT codes. Let’s break the process down.

  • First Visit: Placement of Patch Tests

    Use CPT code 95044, which covers supplies and the nurse’s time.

    • Specify the number of patches or application tests.
    • It does not include physician work – only the nurse’s time involved in testing.
    • If the provider needs to intervene, then you could bill an E/M code when the patches are placed on the patient, using modifier 25, in addition to 95044.
  • Second Visit: Reactions Read

    • Some carriers include the second visit in the original 95044 code that was previously billed.
    • Others let you bill it as a level 1 E/M visit. If the nurse is spending a lot of time on this visit, you should document it and bill for it.
    • If a provider sees the patient at this visit to evaluate the test results, you could bill an E/M visit instead.
  • Third Visit: Final Results

    Bill this as an E/M visit.

    • The patient’s final visit is with a provider and typically involves reviewing and explaining test results and counseling the patient. This may also include a discussion of treatment options, along with the risks and benefits of each.
    • If more than 50% of the visit time is spent providing counseling, a time-based E/M code is appropriate. This means that time alone can be used to select a level of care, regardless of the extent of the history, exam, or the medical decision making, if the majority of the encounter involves counseling.

With the third visit, though, what counts toward the “time”? For out-patient visits, you can only count face-to-face time with the patient or family, which includes:

  • the time spent counseling
  • the time associated with any history, exam or medical decision making that you perform.

The time you spend reviewing records and documenting the encounter without the patient or family present DOES NOT count (however, if an excessively long time is spent reviewing old records without the patient present, you could separately bill a prolonged service code). Also, only time spent by the primary provider (allergist, physician assistant or nurse practitioner) counts as face-to-face time; nurse and medical assistant time don’t count.

Here’s a breakdown of what the E/M codes will look like, based on time:

New Patient VisitTypical Time
Established Patient VisitTypical Time

If using a time-based E/M code, be sure to document:

  • The total duration of face-to-face time.
  • That more than 50% of the visit was spent counseling the patient/family.
  • A detailed description of the counseling provided. The documentation needs to provide sufficient information about the advice provided during counseling. Simply writing “test reviewed” won’t do. Make sure your note is thorough enough to justify the amount of time reported.

Keep in mind that even with time-based codes, Medicare is looking at medical decision-making. They want to see that the nature of the problem warranted the amount of time.


Do you feel like you have a better handle on the codes to use for the various allergy tests? To help reinforce what you’ve learned, test your knowledge with this little quiz.

Question 1 of 3

Ten-year-old Lucy is an existing patient with a suspected milk allergy who comes in for testing. At 1 p.m., the family is checked in and put in a room. At 1:10, a nurse comes in to take vitals and history of prior reactions. At 1:20, the allergist comes in and explains the test along with the risks and obtains consent. Testing begins at 1:35 and ends at 3:05 p.m. without any reaction. How would you code this?

(Correct! Time begins at 1:10, when the nurse takes vitals, and ends at 3:05, for a total of 115 minutes. 95076 is used for the first 120 minutes of testing, so this is the correct code.)

(Incorrect. Time begins at 1:10, when the nurse takes vitals, and ends at 3:05, for a total of 115 minutes. 95076 is used for the first 120 minutes of testing, so this is the correct code. There was no additional time, so there’s no need for the 95079 code.)

(Incorrect. There is no reason for an E/M code here, since there was no reaction and no independent office visit took place.)

Question 2 of 3

A new adult Medicare patient comes in for penicillin testing because she vaguely remembers having a reaction (hives) as a child but wants to confirm whether or not she’s actually allergic. A total of six prick tests, including two controls, is administered. The test ends with a positive reaction. How would you code this?

(Incorrect. Remember, you can’t bill Medicare for controls.)

(Correct. You can’t bill Medicare for controls, so you can only bill the four remaining tests.)

(Incorrect. This is the code for an oral challenge, but skin testing was performed. You need the code for skin testing.)

Question 3 of 3

An existing patient has been experiencing allergic contact dermatitis, but she doesn’t know the source. She thinks it might be related to her sunscreen or cosmetics. Thirty patch tests are applied during her first visit. During the second visit, a nurse removes the patches and checks her reactions. During the third visit, Dr. Suzy Allergist spends 20 minutes with the patient, 12 of which are spent counseling her on the results of the test as well as on options going forward. How do you code the first, second and third visits?

(Incorrect. Visits 1 and 3 are coded correctly. But visit 2 should be 99211 (existing patient), not 99201 (new patient).

(Incorrect. Visits 1 and 2 are correct, although you could try billing a nurse visit of 99211 for visit 2, depending on the insurer. However, Visit 3 is incorrect. The physician spent 12 out of 20 minutes, or 60% of the visit, counseling the patient. So the visit does qualify for a time-based E/M code. However, it should be 99213, not 99214. 99213 is used for time-based visits lasting 15-24 minutes.)

(Correct! Use an existing patient level 1 code for the nurse visit on Visit 2. For Visit 3, the physician spent 12 out of 20 minutes, or 60% of the visit, counseling the patient. So the visit qualifies for a time-based E/M code. The total time of the visit, 20 minutes, corresponds to a 99213, which is used for a visit lasting 15-24 minutes.)


How did you do? Coding for allergy testing can be a challenge, but remember: you’re not on your own! If you need or would like some additional resources, please check out the ones provided below.

Helpful Resources

  1. College Coding toolkit (a member benefit): underwent a major update in 2018 – and we continue to add new information all the time!
    • Includes a new FAQ section sorted by topic. This should be your first go-to when you have an allergy/immunology coding question.
    • Includes an interactive ICD-10 code-it quiz, which presents different A/I coding scenarios. This is perfect for new allergists, NPs and PAs who need to learn ICD-10.
  2. View our coding webinars presented by College coding experts:
  3. Discounted coding books for College members
  4. College members can contact the Advocacy Council with coding questions at