Comments (2)
The unfortunate naming is mostly copied from the banks' MT940 definition files and other MT940 definition standards documentation. And that is the problem as well, the MT940 standard is not well defined, some parts are defined as a standard but most banks have their own interpretation of the standard and what to put in specific fields.
In general my advise would be to read the documentation of the bank who's MT940 file you are reading because the entry_date
that one bank uses can be inconsistent with what another bank calls the entry_date
. The entry_date
and value_date
field names themselves appear to be standard, there meaning however, do not.
This is also why the guessed_entry_date
exists, there are cases where the entry_date
combined with the entry_day
and entry_month
cross over to a new year or the previous year. In those cases we need to add or remove a year from the actual entry_date
. That is why the guessed_entry_date
exists, it uses some heuristics to automatically determine the real entry_date
. But since it's based on heuristics and is not a fixed standard between multiple banks, I have added the guessed
prefix.
The same goes for the id
field. When I initially created the library I was expecting that the standard was well defined so I used the documentation from the first source I could find to define the tags and the names of the fields. After a little while this turned out to be a mistake but the first releases were already out in the wild and I really hate breaking backwards compatibility.
The source I used most initially was: https://www.sepaforcorporates.com/swift-for-corporates/account-statement-mt940-file-format-overview/
from mt940.
I've added some additional documentation that might help, but the entire standard is honestly a huge mess... every bank has its own opinion about the fields: https://mt940.readthedocs.io/en/latest/mt940.tags.html#mt940.tags.Statement
from mt940.
Related Issues (20)
- Parsing transactions : key 64 HOT 8
- Multiple accounts in one file HOT 7
- Parser doesn't show running balance or opening/closing balance at transaction level HOT 2
- Status and Fund code , when Currency ends with a D HOT 2
- Getting only single account data instead of multiple accounts HOT 1
- Non-numeric statement number HOT 2
- Exporting to tabular format HOT 1
- cannot run for citibank? HOT 1
- Single "account_identification" field HOT 2
- Statement line is parsed incorrectly for customer/bank reference HOT 2
- MT940 Issues parsing with :61: HOT 4
- AttributeError: module 'mt940' has no attribute 'parse' HOT 5
- Transaction Reference Number is not returned by the parser HOT 5
- Dropping Transaction Data? HOT 1
- First intermediate_opening_balance line missing HOT 5
- AttributeError: 'NoneType' object has no attribute 'encoding' HOT 1
- How to read closing, opening and available balances HOT 3
- Minor parsing errors
- New transaction is only created on `:61:` tag (statement) and not `:20:` tag (transaction reference number)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mt940.