At the counter: pharmacy claims reject for recurring reasons: eligibility, formulary and coverage, quantity and days-supply limits, refill timing, prior authorization, and data mismatches. The plan returns each as an NCPDP reject code. First determine whether the code points to claim data the pharmacy can correct or to a coverage rule that needs payer or prescriber action.
The code is a signal, not a universal diagnosis or fix. In two or three characters, the processor identifies the field or rule it objected to. This reference covers selected recurring codes: what the published text says, whether the response points first to claim data or plan design, and what to check next. Every code and its official reject text below is checked against a published NCPDP reject-code list. The payer's additional message and current instructions remain authoritative.
How to read a pharmacy claim reject
Pharmacy claim adjudication is a real-time transaction. When you submit a claim, the pharmacy management system packages it in the NCPDP Telecommunication Standard (the messaging format the industry runs on) and sends it to a claims processor. The processor answers in seconds while the patient is still at the counter.
The BIN or IIN and PCN route the claim to a processor and plan or line of business; Group may further identify the employer or benefit group. Incorrect routing or member data can send the claim to the wrong benefit and produce a rejection. For the broader context, see what prescription data entry actually involves.
The processor then runs the claim against the plan's rules, including eligibility, coverage, quantity, and refill timing, and returns an adjudication response. A paid response carries pricing information; a rejected response carries one or more codes explaining the issue. Those codes come from a standard list maintained by the National Council for Prescription Drug Programs (NCPDP). The full list is licensed, but state Medicaid programs publish working subsets, and the codes below are drawn from those publications.
One convention to know before the table: a code that starts with M/I means Missing or Invalid. The plan isn't saying the value is wrong in the world. It's saying the field is blank, malformed, or doesn't match what the plan expects in that position. That distinction points you straight at the fix.
Pharmacy reject codes: 70, 75, 76, 79 and more
These twenty-four codes recur in published pharmacy claim material and cover distinct counter workflows. They are not a nationwide frequency ranking: the Louisiana Medicaid SFY 2023 denied-claims appendix is one state-program example, not evidence of uniform frequency across payers. The compact row shows the official text; expand it for a likely issue and a payer-bounded next check.
07M/I Cardholder IDMember field missing or invalid
The submitted member ID is blank, malformed, or does not match the plan's record.
Compare the value and any alpha prefix with the current card, then recheck eligibility before resubmitting.
13M/I Other Coverage CodeOther-coverage result missing or invalid
The submitted Other Coverage Code is blank, invalid, or inconsistent with the other payer's result.
Review the primary payer response, then use the secondary payer's current OCC and COB instructions for that result.
19M/I Days SupplyDays-supply field missing or invalid
The submitted days supply is missing or fails the payer's edit, including a mismatch with quantity or directions.
Recompute it from the dispensed quantity and maximum use permitted by the directions, then follow the payer's rounding rule.
21M/I Product/Service IDProduct identifier missing or invalid
The product or service identifier is absent or invalid for the submitted claim.
Verify the reimbursement-format NDC and its padding against the package actually dispensed.
22M/I DAW/Product Selection CodeProduct-selection field missing or invalid
The payer reported field 408-D8 as missing or invalid under its claim rules.
Use the code that documents the actual selection decision, then follow the payer's additional message and current instructions.
25M/I Prescriber IDPrescriber identifier missing or invalid
The prescriber identifier or qualifier is absent, malformed, inactive, or not the identifier the payer expects.
Validate the prescriber's current individual NPI and the submitted qualifier against the payer's instructions.
39M/I Diagnosis CodeDiagnosis field missing or invalid
The submitted diagnosis code is blank, malformed, or not accepted for the claim as submitted.
Confirm whether the payer requires a diagnosis and submit only a code supported by the prescription or prescriber documentation.
40Pharmacy Not Contracted With Plan On Date Of ServiceNetwork participation not established
The processor does not recognize the pharmacy as contracted for this plan on the submitted date of service.
Confirm the intended benefit and date of service, then verify the pharmacy's current network or enrollment status with the processor.
41Submit Bill To Other Processor Or Primary PayerOther coverage pays first
The response indicates that another payer must adjudicate the claim first.
Bill the primary payer, then use the secondary payer's current OCC and COB instructions with the primary response.
50Non-Matched Pharmacy NumberSubmitted pharmacy identifier did not match
The processor cannot match the submitted pharmacy service-provider identifier to its records for this transaction.
Verify the submitted pharmacy identifier and qualifier, then confirm enrollment or routing with the processor before resubmitting.
54Non-Matched Product/Service ID NumberSubmitted product did not match
The processor cannot match the submitted product or service identifier.
Compare the NDC with the dispensed package and the payer's response or current product data.
65Patient Is Not CoveredCurrent eligibility not established
The member data does not establish active coverage for this claim.
Verify current eligibility and plan information before changing or resubmitting the claim.
69Filled After Coverage TerminatedFill date follows plan termination
The date of service falls after the coverage termination date in the payer's record.
Confirm whether the patient has a current plan and bill the coverage active for the fill date.
6EM/I Other Payer Reject CodePrimary-payer reject detail missing or invalid
The other payer's reject code is absent, invalid, or inconsistent with the submitted COB detail.
Compare the primary response with the secondary payer's required other-payer fields and submit only the returned reject information it accepts.
70Product/Service Not CoveredSubmitted product or service is not covered
The current benefit does not cover the submitted product or service in this context.
Use the payer's message to determine whether a covered NDC, alternative, exception, or authorization path exists.
75Prior Authorization RequiredCoverage requires payer review
The plan requires authorization review before it may cover the drug.
Follow the plan's authorization process and coordinate required information with the prescriber. Approval is not guaranteed.
76Plan Limitations ExceededClaim exceeds a benefit limit
The claim exceeds a quantity, days-supply, network, or other limit applied by the plan.
Determine which limit fired and whether the payer permits another dispensing path, clarification, or authorization.
77Discontinued Product/Service ID NumberSubmitted identifier is discontinued
The submitted NDC is no longer active in the processor's product data.
Confirm the NDC on the stock actually dispensed and use the payer's current product instructions.
79Refill Too SoonPlan says insufficient time has elapsed
The plan's refill threshold has not been reached, sometimes because the prior fill carried an incorrect days supply.
Verify the prior fill first. If it is correct, follow the payer's documented override, help-desk, clarification-code, or waiting process.
83Duplicate Paid/Captured ClaimA matching transaction may already be paid
The processor found a previously paid or captured claim that matches the submitted transaction.
Check claim history for the same patient, product, prescription, refill, and date of service before retransmitting or reversing anything.
88DUR Reject ErrorClinical utilization edit returned
The response identifies a DUR edit, with the detailed conflict supplied in the accompanying response fields.
Evaluate and document the clinical issue, then submit only the intervention and outcome values the payer accepts when warranted.
99Host Processing ErrorProcessor could not complete the transaction
The processor reported an internal host error rather than a specific claim-field or coverage edit.
Confirm whether the original transaction reached a final status before resubmitting, then follow the processor's outage or help-desk instructions.
9GQuantity Dispensed Exceeds Maximum AllowedSubmitted quantity exceeds the payer limit
The dispensed quantity is above the maximum the payer applies to this product or claim.
Verify quantity and days supply, then determine whether the payer permits a smaller covered fill, an exception, or authorization.
MRProduct Not on FormularyDrug is outside the current formulary
The submitted product is not on the plan's formulary for this claim.
Use the payer's message to identify a covered alternative, formulary exception, or authorization path; do not substitute without appropriate authorization.
Published text is checked against the Medi-Cal Rx and Missouri state code lists. The expanded workflow notes are directional, not universal: the July 2026 Medi-Cal Rx Provider Manual and New York Medicaid's product-rejection guidance illustrate why the additional message and payer instructions control the actual resolution.
Some codes overlap without being interchangeable. MR (Product Not on Formulary) and 70 both signal coverage issues, but the payer's response message and current instructions determine the next step. A refill-too-soon condition can surface as either 79 or a DUR edit under 88, depending on the plan; the published Medi-Cal list explicitly cross-references the two.
Which pharmacy rejects point to data-entry issues?
Several codes in the table can trace back to prescription, patient, product, or claim data. The codes map to the work this way:
- 07 (Cardholder ID), 13/6E (other-payer detail), 41 (other processor), and 65/69 (not covered / terminated) point first to member or insurance information. A new card is a data-entry event, not a filing one: a transposed member ID or a stale card in the profile can be the difference between paid and rejected.
- 19 (Days Supply), 76 (Plan Limitations Exceeded), and 9G (quantity exceeds maximum) are the quantity-and-days-supply group. The submitted values may be internally inconsistent or may exceed a payer limit even when entered correctly.
- 21/54 (Product/Service ID) and 22 (DAW) are the drug field. A malformed NDC, a code for the wrong package, or a DAW that doesn't match who chose the brand all reject here.
- 25 (Prescriber ID) and 39 (Diagnosis Code) point to prescriber or clinical claim data. Verify the documented value and payer requirement rather than supplying one by inference.
- 50 (Pharmacy Number) points to the submitting pharmacy's identifier, qualifier, enrollment, or routing rather than patient data.
The instructive one is 79, refill too soon. It can look like a timing problem today but trace back to days supply on the last fill: a 30 keyed where the insulin math said 37 starts the plan's refill clock early, and the reject lands weeks later on a claim that was entered correctly. The claim that rejects is not necessarily the one with the original entry problem. Each field and its failure mode is walked through in what prescription data entry actually is. When one of these codes returns, the next move may be correcting the earlier field rather than resubmitting the same claim.
Which pharmacy rejects come from plan rules?
Codes 70, 75, 76, 9G, MR, and some instances of 79 can reflect the plan's coverage rules rather than a pharmacy error. The claim may be clean and the answer may still be no, or not yet. These rejects usually need a conversation with the patient or prescriber, not another trip through data entry.
75, prior authorization required. The plan requires authorization review before it may cover the drug. Follow the plan's process, coordinate the required information with the prescriber, and explain the current status to the patient. Approval and timing are payer-specific.
76, plan limitations exceeded. A claim can exceed a quantity, days-supply, network, or other plan limit even when the prescription is valid. Determine whether the plan permits a covered partial quantity, mail-order or network option, exception, or authorization, and whether changing the dispense requires prescriber clarification.
70 (and MR), product not covered / not on formulary. Check whether the issue applies to the drug, the submitted NDC, or the benefit. The available path may be a covered alternative, another covered package, a formulary exception, prior authorization, or no covered option under the current plan.
79, refill too soon. Verify the previous fill's date and days supply first. If they are correct, use the payer's documented process for the specific reason, which may involve an authorized override, a Submission Clarification Code, a help-desk call, or waiting until the eligible date.
First identify whether a rejection reflects incorrect claim data or a benefit rule. Correct data errors; route benefit issues through the payer, prescriber, or other process the current instructions require.
Sources6 linked sources
- NCPDP reject codes: Medi-Cal Rx Appendix D (published subset of the NCPDP standard, April 2026)
- Louisiana Medicaid pharmacy claims denied after authorization, SFY 2023 (state-program frequency example)
- NCPDP reject codes for the Telecommunication Standard: Missouri MO HealthNet published list
- DAW/Product Selection Code definitions: eMedNY (NCPDP field 408-D8)
- Medi-Cal Rx Provider Manual, July 1, 2026 (payer-specific prescriber, product, and COB claim instructions)
- New York Medicaid Update, April 2025, revised July 2025 (product rejection messages and resolution resources)
- What prescription data entry actually involves (PillPilot)