Skip to content
LedesReady › Guides › Why Was My LEDES Invoice Rejected? Common Errors and Fixes

Why Was My LEDES Invoice Rejected? Common Errors and Fixes

E-billing portals validate a LEDES file before a human sees it. These are the errors that bounce invoices most often, and what to do about each.

1. Totals don't add up

LINE_ITEM_TOTAL must equal units × unit cost + adjustment, to the cent, and INVOICE_TOTAL must equal the sum of all line totals. Rounding hours after calculating the amount, or applying a discount only to the invoice total, are the usual causes. Fix: recompute every line from units and rate; put discounts in LINE_ITEM_ADJUSTMENT_AMOUNT as a negative number.

2. Unit cost blank or zero (often shown as INV059)

Every F and E line needs a unit cost. No-charge entries are usually rejected — leave them off the LEDES file or ask the client how they want them shown.

3. No line items (often shown as INV005)

A file with only the two header lines, or line items that don't end in [], is read as an invoice with no lines.

4. Wrong first line or header

The first line must be exactly LEDES1998B[], and the header must list the 24 fields in order. Files saved from Excel often lose the [] or add quotes.

5. Dates outside the billing period, or not YYYYMMDD

Each LINE_ITEM_DATE must fall between BILLING_START_DATE and BILLING_END_DATE.

6. Missing or invalid UTBMS codes

Fees need a task code (and usually an activity code), expenses need an expense code. Phase codes like L100 are rejected by many portals. See the UTBMS code list.

7. Timekeeper problems

Each fee line needs a TIMEKEEPER_ID, a name in "Last, First" form and a classification (PT, AS, OC, LA, OT). The same timekeeper must not appear with different rates unless the client approved it.

8. Rate higher than the approved rate

Insurers set maximum rates per classification. A rate above the cap is cut or the invoice is rejected.

9. Characters the portal can't read

Curly quotes, accented letters, pipes and line breaks inside descriptions break the format. Use plain ASCII.

LedesReady's validator checks all of these and the fixer repairs the mechanical ones automatically.

Check my LEDES file →