CSV overview
Real-world invoice CSVs come in three fundamentally different shapes. Nuntiq's inbound framework ships a global format template for each. The two whose column order is stable (one-invoice-per-file and repeated-header) also ship a column-named variant, for a total of five.
The three shapes
One invoice per file. Every file holds exactly one invoice. Row 1 is the header (invoice number, dates, party names, totals). Row 2 onwards are line items. Consultants pick this when the sender exports one invoice at a time.
Repeated header per line. Every row is a line item, and header-level fields repeat on each line. A new invoice starts on any change of the invoice number. Consultants pick this when the sender's ERP flattens the invoice into "one row per line item" and doesn't emit a separate header row. This is the most common shape for accounting-system exports.
Line-type discriminator. Column 1 is a record-type flag: H for header,
L for line item, T for tax detail, D for cash discount, C for
invoice-level charges (freight, handling, insurance, …). The rest of each
row's columns are interpreted according to the flag. Consultants pick this
when the sender's file already models the different record types explicitly,
which is typical for EDI-ish CSVs.
Column names vs positional
For the one-invoice-per-file and repeated-header shapes, we ship two variants:
- Column names. The first physical row is a header row that names each
column. The seed's field locators reference those names (
InvoiceNumber,DueDate, …). Choose this when the sender consistently emits the same header row. - Positional. No header row. The seed's locators use
col_N, 1-based. Choose this when the sender omits the header row or when the column names drift between files but the column order is stable.
The line-type discriminator shape is positional only. Each record type (H,
L, T, D, C) carries its own column layout, so a single header row
can't describe the file. Any preamble the sender includes is skipped via the
format's from_line parse setting.
Parse settings
Each seed carries its own parse_settings (delimiter, has-header-row, skip
rows). Adjust those in the format detail page's Basic Information rail if the
sender's file uses a semicolon or tab, a BOM, or a preamble that needs
skipping.
Field coverage
Every seed maps a realistic invoice subset out of the box: header dates and totals, supplier and customer, bill-to and ship-to addresses, payment details, and per-line product / quantity / price / totals. The line-type seed adds per-invoice tax detail rows and cash-discount rows.