Getting Your Billing Right When There's No Real Industry Code Set
Most people starting out in massage therapy think there's a neat little set of codes waiting for them, like CPT 97xxx and they're done. It doesn't work that way. The reality is messier and depends entirely on what state you practice in, whether you're billing through a therapist's license or a medical provider's license, and which payer you're dealing with. Massage Therapy Billing Codes are primarily CPT codes from the American Medical Association's Current Procedural Terminology system. There isn't a separate "massage code universe." You pull from existing physical medicine and rehabilitation codes. The main ones are 97140 for manual therapy, 97110 for therapeutic exercise, and 97124 for massage of one or more areas. There are others you might see like 97760 for therapeutic activities or 97530 for wheelchair management, but those are fringe use cases. I spent three years trying to force 97124 into every claim before I learned it barely gets paid by most commercial payers. United Healthcare, Aetna, and many Medicaid programs simply exclude it or require documentation that basically amounts to a medical necessity narrative. I wasted about eight months submitting denied claims because I assumed the code itself would carry the weight. It won't.
The Practical Structure Most People Get Wrong
Here's what actually works. You document the time spent on each code if your payer allows time-based billing. CPT codes 97140 and 97124 are typically time-based at 15-minute units. So if a patient gets 30 minutes of manual therapy and 15 minutes of therapeutic exercise, you bill 97140 twice and 97110 once, not some combined code that doesn't exist. This matters more than you'd think because bundling errors are the single biggest reason claims get denied on review. A few payers do allow 97124 on its own as a standalone code. Some require a modifier like GO for physical therapy services provided by an authorized provider under a plan of care. I keep a running spreadsheet of which payers in my state accept what because the rules change without notice. Last year, one major plan dropped coverage for 97140 entirely for their Medicaid population and moved everything to a diagnostic-related group payment that made individual procedure billing pointless for those patients.
Modifiers and What They Actually Mean
You'll need modifiers and getting them wrong is how audits start. The most common ones you'll encounter are GO for physical therapy services, GP for services provided under a written plan of care, and KX when you need to show that specific criteria have been met. Some payers require modifier AI to indicate that the service was performed by an alternative provider rather than a physician. Using AI on a claim submitted by a licensed massage therapist who isn't a physician can trigger an automatic denial. I learned this the hard way when a whole batch of claims got rejected and the explanation just said "provider type mismatch." For Medicare, the rules shift again. Medicare doesn't recognize all the same modifiers and has specific requirements around physical therapy statements of medically necessary treatment. If you're billing Medicare directly, you need a physician-delegated plan of care and you need to submit Form CMS-485 at the start and at certain intervals. This is non-negotiable and there's no workaround.
Get the Full Details

Where Massage Therapy Billing Codes Break Down Completely
Let me be straightforward about the limitations because this is where people lose money. The biggest issue is that many commercial insurance plans classify massage therapy as an excluded benefit periodontal, vision, or dental-style exclusion that's baked into the policy language. No CPT code combination will overcome that. You can submit the claim and get the denial letter, but it's a denial regardless of how correctly you code it. The denial reason code will usually be something like "service excluded under benefit plan" and there's nothing in the coding to fix it. Self-pay is actually simpler in these cases. You charge a flat rate, provide a superbill with the CPT codes for the patient to submit themselves, and you're done. The patient's insurer may still deny it but that's between them and the patient. I stopped trying to get insurance to cover massage when it was explicitly excluded and just shifted those patients to a direct contract model. Revenue went up because I stopped spending four hours a week on appeal paperwork for claims that were never going to pay.
Documentation Requirements That Actually Matter
Payers don't care about the code until they ask for documentation. The note needs to include the specific technique used, the anatomical areas treated, the medical diagnosis being addressed with a valid ICD-10 code, the time spent on each procedure, and the functional improvement or goal being worked toward. I've seen claims denied because the note said "soft tissue work on lower back" instead of "manual myofascial release to right lumbar paraspinals, 15 minutes." The difference between those two descriptions is the difference between a paid claim and a request for additional documentation that you had to pull from two months ago to respond to. ICD-10 coding is its own problem. M54.5 for low back pain and M79.1 for myalgia are the bread and butter codes but they need to be specific enough. Some payers reject claims when the diagnosis code doesn't match the procedure in a reasonable way. If you're billing 97110 for therapeutic exercise but the diagnosis is a skin condition, that's a red flag on review. Keep the diagnosis and the procedure logically connected.
A Workflow That Saves Time
I use a simple system now instead of guessing at coding each session. Before the appointment, I look up the patient's active insurance and check the payer portal for any coverage updates. I note which CPT codes are covered for that specific plan on a quick reference sheet. During the session, I log the time spent on each technique in real time using a timer app with separate timers for each procedure. After the session, I map the timed procedures to CPT codes with the correct units, attach the ICD-10 codes from the patient's active diagnosis list, apply the right modifiers based on the payer, and run a claim scrubber before submission. This workflow takes about 12 minutes per patient after the appointment. Before I had the system, it took me roughly 45 minutes because I was second-guessing code combinations and then dealing with denials later. The claim scrubber catches modifier errors and missing information before the claim leaves my system. I'd recommend clearinghouse-based scrubbers like Waystar, Change Healthcare, or even the built-in scrubbers in practice management software like SimplePractice or Theranice. They're not perfect but they catch the obvious mistakes.

When to Use ICD-10 Codes and Which Ones
You need a valid diagnosis code for every claim. The most common ones are M79.1 for myalgia and myositis, M54.5 for low back pain, M54.2 for cervicalgia, and M25.5 for general joint pain. If you're treating a post-surgical patient, you'll use the appropriate injury or injury aftercare code. M86.171 for example for staphylococcal osteomyelitis of the right ankle, though that's rare in a massage context. More realistically, you'll see codes like Z47.89 for aftercare following orthopedic surgery or M19.071 for primary osteoarthritis of the right ankle. Don't just throw diagnosis codes at the wall. Pick the one that best represents the primary reason for the treatment session. If a patient has both neck pain and lower back pain and you're treating the neck, the diagnosis code should reflect the neck issue. Mixing them randomly is a common audit trigger.
The NPI Question
You need a National Provider Identifier to bill insurance. If you're a licensed massage therapist in a state that allows direct billing, you apply for an individual NPI through the NPPES website. This takes about two weeks if everything is correct. If you're working under a physician's supervision where required by your state, the physician's NPI may be used on the claim instead. This varies by state and by payer policy. California allows LMFTs and certain other licensed therapists to bill directly in some contexts but LMTs generally cannot bill Medicare. Check your state's scope of practice laws before you assume you can bill under your own NPI. The coding itself is the easy part. The hard part is understanding payer policies, keeping up with changes, maintaining documentation standards, and knowing when a claim is worth fighting versus when it's better to bill the patient directly. Most of the revenue loss in a small massage practice doesn't come from bad coding. It comes from treating insurance billing as an afterthought instead of building the workflow around it from the beginning. If you're just starting out, pick one or two payers in your area, learn their specific requirements inside and out, and build your process around those rules before you try to handle everyone. You'll save more time than you think.