Why was my invoice rejected? An INVOIC checklist
INVOIC is the most frequently rejected EDI message. The reason is usually not complicated: a few wrong fields, a total that does not add up, or a missing reference. Here are the most common causes, in order.
1. The totals do not add up
This is the leading cause. The MOA qualifiers in the summary section get mixed up:
| Code | Meaning |
|---|---|
79 | Goods total (excluding tax) |
124 | Tax amount |
77 | Grand total (including tax) |
9 | Amount payable |
The rule is simple: 79 + 124 = 77. The receiving system checks this arithmetically and will not process an invoice where it fails.
MOA+79:1228.00'
MOA+124:245.60'
MOA+77:1473.60'
The line-level MOA+203 values must also sum to 79. Rounding differences bite here: rounding each line separately and then adding can give a different result from rounding once.
2. Missing or wrong order reference
The receiving system usually performs a three-way match: the order (ORDERS), the goods receipt (RECADV) and the invoice must agree. For that, the invoice has to carry the order number:
RFF+ON:PO-2026-0042'
The ON qualifier means "order number". If that line is absent, or the number is not character-for-character what the buyer has on file, the match fails. Leading zeros and spaces matter; PO-42 and PO-0042 are different numbers.
3. Quantity does not match what was despatched
An invoice should bill the despatched quantity, not the ordered one. On a partial delivery the difference shows up here:
- Ordered: 120 pieces (
QTY+21) - Despatched: 100 pieces (
QTY+12) - To be invoiced: 100 pieces (
QTY+47)
An invoice raised for 120 will be rejected. This is the easiest error for automated checks to catch.
4. Missing tax information
The TAX segment carries the rate and the type:
TAX+7+VAT+++:::20'
Here 7 is the qualifier meaning "tax", VAT is the tax type, and the trailing 20 is the percentage. If the rate is absent, or the line-level rates contradict the tax amount in the summary, the invoice comes back.
Where line items carry different rates, a separate tax subtotal per rate may be required; this depends on the specification.
5. The GLN does not match
Parties are identified by GLN number, not by name:
NAD+SE+8712345678901::9++ACME FOODS BV+...'
A GLN that is not registered in the buyer's system means the invoice cannot be attributed to a supplier. Spelling the company name correctly does not rescue this — the match runs on the number.
A common variant: the legal entity raising the invoice (SE) differs from the warehouse that shipped the goods (SU), and the specification says which belongs where.
6. No currency stated
Without a CUX segment the receiving system does not know which currency the amounts are in:
CUX+2:EUR:9'
Partners working in a single currency sometimes omit it and assume a default, but where the specification requires it, it is mandatory.
What to do after a rejection
1. Look for a CONTRL message — if it is a syntax error, it gives you the segment number 2. If the syntax is valid, the fault is in a business rule: check the totals first, then the references 3. Open the invoice and the related order side by side and compare line by line
The quickest way to make that comparison is to open both files and read the MOA, QTY and RFF lines in plain language.