Skip to content

fix(qif): preserve transactions with repeated check references - #1

Draft
smitzo wants to merge 1 commit into
Maxed-OSS:mainfrom
smitzo:agent/fix-qif-reference-dedup
Draft

fix(qif): preserve transactions with repeated check references#1
smitzo wants to merge 1 commit into
Maxed-OSS:mainfrom
smitzo:agent/fix-qif-reference-dedup

Conversation

@smitzo

@smitzo smitzo commented Aug 10, 2026

Copy link
Copy Markdown

Summary

  • keep QIF N check/reference values in the raw record instead of exposing them as bank-assigned FITIDs
  • let QIF transactions use the existing content-based deduplication path
  • add an end-to-end regression test proving two distinct NATM transactions both survive normalization
  • correct the QIF deduplication entry in the format support matrix

Root cause

QIF defines N as a check or reference value, not a guaranteed-unique downloaded transaction identifier. The parser stored N in Transaction.fitid, while the deduplication layer treats every non-empty FITID as authoritative. Repeated values such as ATM or EFT could therefore cause later, unrelated transactions to be silently discarded—even within one input statement.

The QIF N value remains available in Transaction.raw for traceability.

Format evidence

Impact

Normalization no longer loses distinct QIF transactions merely because they share a check/reference value.

Compatibility

QIF JSON now reports fitid: null instead of mislabeling N as a FITID. Python callers can still read the original N value from Transaction.raw. Introducing a new public reference field is intentionally left outside this focused correctness fix.

@smitzo
smitzo force-pushed the agent/fix-qif-reference-dedup branch from 29c24ae to 0959af4 Compare August 10, 2026 05:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant