## TL;DR
Semicolons and embedded newlines inside quotes are a legitimate CSV dialect, common in European bank exports, and a parser assuming comma delimiters will split every field wrong and treat each embedded newline as a row break. Inspect the file's first lines to confirm the dialect, then configure the parser explicitly: delimiter, quote character, and multiline field support. Parse a sample and count columns per row; every data row should have the same count before the full import runs.

```text
the agent's CSV parser broke on the bank's "semicolon-delimited with quoted newlines" format
```

## Use this when
- The parser errors or produces garbage on a specific bank's CSV file.
- The file uses semicolons, and text fields contain quoted newlines or the delimiter itself.
- Other banks' comma-delimited files parse normally with the same agent.

## Not for this skill when
- The file is truncated, binary, or encoded in an unexpected charset. Those are file quality issues to fix at the source.
- The agent's parser works but maps columns wrong. That is a column mapping problem, not a dialect problem.

## Steps
1. Open the raw file and identify the dialect: delimiter, quote character, header row, and whether newlines appear inside quoted fields. Verify: the dialect is stated from the file, not from the bank's documentation alone
2. Configure the CSV parser explicitly with the detected delimiter, quote rules, and multiline record support, disabling delimiter sniffing. Verify: the parser settings are set in code or config, not auto-detected
3. Parse a sample of rows and verify every row yields the same column count with headers aligned. Verify: column counts are uniform across the sample
4. Check a row containing a quoted newline to confirm it parses as one record, not two broken rows. Verify: the multiline row round-trips as a single record
5. Parse the full file, then reconcile row count and amount totals against the bank statement summary. Verify: the parsed file ties to the bank's own totals

## Variant phrasings
### CSV parser semicolon delimited quoted newlines bank
The dialect phrasing.
### agent CSV parse European bank export delimiter quote
When configuring for the bank.

Compatibility: CSV parsing in agent bank import pipelines handling European bank exports.

## Why it happens
CSV is a family of formats, not one format, and the comma is just the most common member. Bank exports follow local spreadsheet conventions, and quoted fields may legally contain the delimiter and line breaks. A parser defaulting to commas reads such files as chaos: fields multiply, rows split, and the errors look like data corruption when they are really dialect mismatch. Explicit dialect configuration is the fix because sniffing is unreliable exactly on the files that need it most.

## Edge cases / pitfalls
- Encoding matters too: European exports are often in Latin-1 or with a byte-order mark, which breaks parsers expecting plain UTF-8.
- After parsing, validate column semantics: a date column should parse as dates, an amount column as numbers, before importing a single row.
- Keep one dialect profile per bank in configuration; the next export from the same bank will need the same settings.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_L7fdS8kvevGTZHOziZDUSA
