# File interface sample: claims bordereaux to reinsurer > Fictional training artifact — synthetic sample. Shows what a > **file-based/batch** integration contract looks like. Referenced by wiki > ch 02 and 06. ("Bordereaux" = periodic detailed report of claims/premiums > an insurer sends its reinsurer.) ## Interface summary | Item | Value | |------|-------| | Direction | Insurer → reinsurer (both fictional) | | Transport | SFTP upload to `sftp.reinsureco.example:/incoming/balticshield/` | | Schedule | Nightly, 02:00–03:00 EET; file contains claims **changed during the previous day** | | Filename | `CLAIMS_BORDEREAUX_YYYYMMDD.csv` (date = business date covered) | | Format | CSV, UTF-8, `;` delimiter, ISO 8601 dates, decimal point `.` | | Acknowledgement | The reinsurer drops `CLAIMS_BORDEREAUX_YYYYMMDD.ack` (or `.err` + reason) into `/outgoing/` within 2h | | Empty days | File is still sent with header + trailer only (proves the job ran) | ## File structure One header record, N data records, one trailer record. ``` H;CLAIMS_BORDEREAUX;20260608;BALTICSHIELD;1.3 D;CLM-2026-000871;MTPL-2026-104782;COLLISION;2026-06-05;UNDER_REVIEW;2500.00;EUR;2026-06-08 D;CLM-2026-000874;CASCO-2025-099310;THEFT;2026-06-04;APPROVED;14200.00;EUR;2026-06-08 T;2;16700.00 ``` ### Data record columns | # | Column | Format | Notes | |---|--------|--------|-------| | 1 | Record type | `D` | Data row marker | | 2 | Claim ID | `CLM-YYYY-NNNNNN` | Same ID as in the Claims API | | 3 | Policy number | string | | | 4 | Incident type | enum | Same values as Claims API `incidentType` | | 5 | Incident date | `YYYY-MM-DD` | | | 6 | Claim status | enum | Same values as `ClaimStatus` | | 7 | Reserve amount | decimal | Current reserve estimate | | 8 | Currency | `EUR` | Fixed for now | | 9 | Change date | `YYYY-MM-DD` | The business date this row reflects | ### Trailer `T;;` — the receiver validates both; on mismatch the whole file is rejected (`.err`). ## Operational rules (typical batch requirements — reuse these prompts) - **Reconciliation:** trailer counts/sums must match; sender keeps a delivery log. - **Late/missing file:** if no file by 04:00 EET, the reinsurer raises an incident; insurer-side monitoring alerts at 03:15. - **Resend/correction:** full-file replacement with same filename + `_R1`, `_R2` suffix; receiver processes highest suffix only. - **Idempotent loading:** receiver must handle the same file delivered twice. - **Data protection:** no claimant personal data in the file; claim/policy IDs only.