Back to Blog

OHIP Claim Rejected? AT3, V41, AD9, and the Other Rejection Codes to Know from your Error Report


Every OHIP claim you submit goes through the Ministry's edit checks before it's paid, and when something doesn't line up, you get a short alphanumeric code on your Claims Error Report instead of a payment. These codes are consistent and well-documented, but nobody hands you a decoder ring when you start billing.

Here are the rejection codes Ontario family doctors run into most, what each one actually means, how to fix a claim that's already been rejected, and how to stop seeing it going forward.

AT3: No patient-physician relationship

What it means: You billed a comprehensive virtual care service (video or phone) without a documented in-person relationship with that patient.

How to fix it: If an in-person visit with this patient actually occurred within the required window, correct and resubmit the claim with that visit's date on file. If no prior in-person visit exists, rebill the service as limited virtual care (A101/A102) instead, since that doesn't require the relationship criteria.

How to prevent it: Confirm and document an in-person visit before billing comprehensive virtual care for a patient in your billing history before submitting an assessment code with K301.

V41: Fee submitted is missing or invalid

What it means: The fee field wasn't submitted as six numeric digits, or the amount falls outside the allowed range. Since May 2026, this code has also been showing up for a new reason: the Ministry began actively rejecting hourly-rate codes (Q310–Q313) submitted with a $0 fee, whereas previously those claims were silently adjusted.

How to fix it: Correct the fee field to the proper six-digit numeric value (in cents, e.g., $37.95 as 003795) and resubmit. For Q310–Q313 claims, make sure the fee reflects the actual per-unit hourly rate (not $0) before resubmitting.

How to prevent it: Confirm your EMR is configured to bill the correct dollar value per unit (for hourly codes, 1 unit = $17–$20 depending on the code, not $0).

AD9: Not allowed alone / premium not allowed

What it means: You billed an add-on or premium code (like Q012 after-hours, or Q014/Q015 newborn premiums) attached to the wrong (or without) the corresponding base code. Premiums aren't standalone services; they need a qualifying assessment or visit code alongside them, on the correct date.

How to fix it: Resubmit the premium on the same claim as its eligible base code, with both sharing the identical service date. If the base code wasn't billed at all, submit it alongside the premium rather than resubmitting the premium alone.

How to prevent it: Check that the premium is attached to an eligible base code and that both share the same service date. See our after-hours premium guide for the full list of what Q012 does and doesn't attach to.

A2A: Patient is underage or overage for this service code

What it means: The patient's age falls outside the eligible range for the code billed. Common trigger: billing a newborn premium (Q014/Q015) for a patient who has already turned 1, or billing an 18-month well-baby code (A002) outside the eligible age window.

How to fix it: Don't resubmit the same code! Rebill the visit using the age-appropriate code instead (for example, a standard assessment code rather than a newborn-specific one once the patient has turned 1).

How to prevent it: Cross-check the patient's date of birth against the code's age restriction before submitting, especially for pediatric and newborn-specific codes with tight windows.

V21: Diagnostic code required

What it means: Your claim is missing the required 3-digit OHIP diagnostic code. Most codes, including K005, K030, and most P-prefix pregnancy codes, require a specific diagnostic code to process.

How to fix it: Add the correct 3-digit diagnostic code to the rejected line and resubmit. If you billed two services on the same visit, check that each has its own distinct diagnostic code before resubmitting (not just one filled in and one left blank).

How to prevent it: Never submit a claim with a blank or placeholder diagnostic field. If you're billing two services on the same visit (like A007 + K005), make sure each has its own distinct diagnostic code from the outset.

A36: Claimed by other practitioner

What it means: Another physician has already billed a code with a per-patient limit (like Q040, billable once per patient per year) for the same patient in the same period.

How to fix it: Confirm with the other billing physician whether their claim was correct. If it was billed in error, they'll need to void or correct it before your claim can be resubmitted. If your claim was the error (e.g., a covering physician already billed appropriately), don't resubmit! Bill a different, non-conflicting code if the visit warrants one.

How to prevent it: This is common in shared-roster or locum situations. Confirm with covering physicians who have billed which annual/limited codes before submitting your own (or simply check the billing history yourself).

VJ7: Stale-dated claim

What it means: You're outside the 3-month window OHIP allows for original electronic claim submission.

How to fix it: Electronic resubmission is no longer available. Submit a Remittance Advice Inquiry (RAI) using Form 0918-84 to your MOHLTC district office, along with supporting documentation for the original service date.

How to prevent it: Submit claims promptly rather than batching them monthly, so you never approach the 3-month deadline in the first place.

AT4: Modality not allowed

What it means: The fee code was submitted with a modality indicator (K300 video or K301 phone) that doesn't apply to that service, or a required modality indicator is missing altogether.

How to fix it: Remove the incorrect modality code from the claim, confirm the correct modifier for how the service was actually delivered, and resubmit as an individual claim with the corrected modality attached.

How to prevent it: Check that the K300/K301 modifier attached to your claim matches a service actually eligible for that delivery method, and that video-only services aren't being submitted with a phone modifier or vice versa.

A3E: No such service code for date of service

What it means: The fee code you billed doesn't exist (or no longer exists) for the date of service. This often happens when a code was retired or replaced (for example, older virtual care K-codes that were phased out) and someone's EMR template hasn't been updated.

How to fix it: Check the current Schedule of Benefits for the code that replaced or superseded the one you billed, then resubmit the claim using the correct, currently valid code for that service date.

How to prevent it: Refer to the current Schedule of Benefits before billing any code you haven't used recently, especially after a fee schedule update. If your EMR autocompletes billing codes, periodically check those templates against current valid codes.

A3H: Maximum number of services reached

What it means: You've hit the maximum number of units or services allowed for that code, per the Fee Schedule Master's unit restrictions (daily, annual, or per-patient limits).

How to fix it: If you're not entitled to bill beyond the maximum, don't resubmit as-is. If circumstances genuinely justify an exception (documented medical necessity, for example), flag the claim for manual review and resubmit with supporting documentation such as clinical notes.

How to prevent it: Check the code's unit cap before submitting: e.g., annual limits (like K013's 3-per-365-days cap) are the most commonly missed.

AC1: Maximum reached (resubmit alternate code)

What it means: Similar to A3H, but specific to consultation codes, you've reached the allowable limit for a consultation code for that patient within the relevant period (often once per 12 months).

How to fix it: Don't resubmit the original consultation code. Rebill using the appropriate alternate code instead, typically a repeat consultation or follow-up code that reflects the ongoing nature of care.

How to prevent it: For a genuinely new problem or a repeat consultation, bill the appropriate alternate code from the start, rather than defaulting to the original consultation code every time.

The pattern behind most rejections

Look closely and most of these codes fall into a few buckets: premium/base-code pairing (AD9), missing or outdated fields (V21, V41, A3E), eligibility and relationship mismatches (A2A, AT3, AT4), and limits and timing (VJ7, A36, A3H, AC1). None of these are clinical documentation problems; they're submission-detail problems, which makes them entirely preventable with the right check in place before the claim leaves your EMR, and usually straightforward to fix once you know which lever to pull.

Catch it before OHIP does

Quip validates fee values, diagnostic codes, age eligibility, premium pairings, virtual care relationship rules, and unit maximums automatically as part of your daily billing, so V41, AD9, A2A, AT3, and the rest show up far less often, because the claim is corrected before it's ever submitted.

Book a demo to see how Quip reduces rejections and keeps your claims moving on the first submission.


Quip Medical builds AI-powered OHIP billing optimization for Ontario physicians. This post reflects billing rules as of July 2026; always confirm current requirements with the OMA and Ministry of Health.