edi — An EDI interchange, as rows — openbash

X12 as CSV: the 820 remittance and the 812 adjustment, with the reason code on every line.

edi

edi is a command on the openbash shell, reachable over HTTP, SSH and MCP with one key. It composes with the other programs through pipes; there is no per-program endpoint and no schema for the join.

edi /dropbox/ap/unfi-820-2026-09.edi

kind,trace,payment_total,payment_date,reference,amount,invoice_amount,reason_code
payment,0012345678,14820.55,2026-09-02,INV-88213,9310.00,9310.00,
adjustment,0012345678,14820.55,2026-09-02,INV-88213,412.80,,59

help

edi: an X12 interchange, as rows.

USAGE
  edi [--json] FILE

WHAT IT READS
  820  the remittance advice — what was PAID against each invoice (RMR) and
       what was TAKEN BACK and under which reason code (ADX). Both are in one
       table because a list of deductions that cannot be reconciled to the
       payment is a list nobody can act on.
  812  the credit/debit adjustment — the chargeback document itself, one row
       per CDD, carrying whether it was a debit or a credit.

RETURNS
  CSV on stdout, so it foots with `csv` or `awk` like any other table.
  `--json` gives every segment as it stands, which is what to use for a
  transaction set this does not model.

IT DOES NOT SAY WHAT A REASON CODE MEANS
  The code is printed, never translated. What a retailer's code means is the
  `deduction-reason-codes` skill's work, and it reports the ones it cannot map
  rather than guessing — a meaning invented here would end up under a number in
  a dispute sent to a deduction desk.

SEPARATORS
  Read from the ISA segment, not assumed. A file punctuated with `|` is
  ordinary and reads correctly.