Invoice format & report guide
The earlier format, preserved as reference. Not a current upload invitation.
Start with the full sample report. The guide below explains its inputs and outputs. Contact us before sharing records; no API availability, key-delivery time or retention promise is made here.
Invoice fields
invoice_id
yesyour own id, visible in the report. Use opaque ids : an id like ACME-NORTHWIND-0007 puts a name in the one field not hashed. Each row needs its own id : a tape that repeats one is refused, because a finding names an invoice and two rows under one id cannot both be the invoice we mean. A re-raised invoice gets a new id
borrower_ref
yes64-character lowercase hex : a hash, never a name (see below)
debtor_ref
yes64-character lowercase hex hash
amount
yesdigits and a decimal point, no currency symbol (thousands commas are ignored). Zero or below is a credit row (see below)
invoice_date
yesISO date, YYYY-MM-DD
due_date
yesISO date
status
yesone of open , settled , late , failed , written_off
funded_date
noISO date; absent means never funded
settled_date
noISO date
payee_ref
no64-character hex hash; absent means paid to the borrower. It makes the unapproved-payee check possible
cure_date
noISO date
item_code
itemyour own product code: letters, digits, . , _ or - , at most 64, no spaces
quantity
itema plain positive number, at most six decimals
unit
itemthe unit it's billed in, like 1K-tokens or vCPU-hour : same characters, at most 32
Each row needs its own id. Invoice ids are not hashed, so they must not contain names. Dates use YYYY-MM-DD. The item_code, quantity and unit fields come together: all three or none. Amounts at zero or below represent credit rows, which the older format left out of the checks; a positive credit cannot be distinguished from an invoice.
An example file
The original three-row fixture uses placeholder references. It is synthetic, not a lender export. Download the example CSV ↗
Read the example rows +
invoice_id,borrower_ref,debtor_ref,amount,invoice_date,funded_date,due_date,settled_date,cure_date,status,payee_ref INV-1001,b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1,d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1,48000.00,2026-06-02,2026-06-03,2026-08-02,2026-07-30,,settled,e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 INV-1001-R,b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1,d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1,48000.00,2026-06-02,2026-06-11,2026-08-02,,,open,e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 INV-1014,b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1,d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2,52000.00,2026-06-20,2026-06-22,2026-08-20,2026-08-18,,settled,e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
Optional context
The earlier report format accepted a declared approval limit, currency and price list. Approval limits support split-invoice checks. Declared USD selected inflation adjustment; a price list contained item_code, unit, unit_price and currency, with optional valid_from and valid_to dates. A missing input must remain visible as not evaluated, not silently scored clean.
Validation and errors
The earlier documentation described 400 for format or option errors, 401 for a missing or unknown key, and 413 above its 8 MiB file limit. These are historical protocol details, not a guarantee of current endpoint availability. Unknown columns and extra cells were rejected.
Read the five report sections
Control profiles
For strict, middle and permissive profiles, the report shows which invoices would have been held in the simulated replay, the reasons, and which holds depend on a cap rather than an unseeded payee history. A hold is a review referral, not a refusal.
Possible duplicates
Invoices with the same borrower, debtor and amount, dated close together. They are questions to check: a tape cannot by itself tell a re-raised invoice from two genuine deliveries.
The book and the stop ladder
Concentration by borrower and debtor, plus what the ladder would have done. The sample book is not rated.
Context checks
Amounts against each borrower and debtor's earlier history; invoices split below a declared approval limit; large first invoices to new parties; prices compared with a declared price list or mapped market series. The report states coverage, missing inputs and why each invoice was flagged.
Borrowing-base reconciliation
Aging-roll breaks, receivables falling without collections and eligibility against declared terms. These are reconciliation questions, not findings. Missing second-period tapes or agreement terms are explicitly NOT EVALUATED.
Preparation and data handling
Read the preparation reference and sharing boundaries. Hashing references alone does not make a file safe to share. The local preparation helper hashes references on your device. It has a 2 MiB / 5,000-row limit and accepts finite decimal amounts, including zero or negative credit rows and thousands commas. Preparing a credit row does not make it part of the older checks. It does not upload records.