Collect billing line items from your time-and-billing system with required LEDES 1998B fields: invoice date, invoice number, client ID, law firm matter ID, billing period start/end, timekeeper ID, timekeeper name, timekeeper classification, task code (UTBMS L-codes), activity code (UTBMS A-codes), expense code, hours, rate, and fees.
Map your internal billing categories to UTBMS (Uniform Task-Based Management System) task and activity codes; maintain a mapping table as codes differ by matter type (litigation L-codes vs transactional B-codes vs counseling C-codes).
Format the output as a pipe-delimited flat file with the header line 'LEDES1998B' on the first row, a column header row on the second row, and one billing line per subsequent row; terminate each line with a pipe character.
Validate the file against LEDES 1998B format rules: all required fields present, date format YYYYMMDD, numeric fields without currency symbols, task/activity/expense codes from the approved UTBMS code set.
Transmit the validated file to the client's e-billing platform (e.g., TyMetrix, eBillingHub, Counsel Go) via their upload portal or API; handle rejection codes and resubmit corrected invoices.
Retain a copy of each submitted LEDES file and the platform's acceptance/rejection confirmation as billing records.
Known gotchas
LEDES 1998B has no official schema validation tool; client e-billing platforms implement their own validation rules that may be stricter than the published specification — test with a sample invoice before submitting production billing.
UTBMS code sets are not universal; some clients require a subset of codes or add custom codes via their e-billing platform — obtain the client's approved code list before mapping your billing categories.
Time entries with missing or incorrect task codes are commonly rejected by e-billing platforms, triggering rework; enforce task code selection at time-entry creation rather than attempting to infer codes at export time.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp