Code Monkey home page Code Monkey logo

Comments (2)

wolph avatar wolph commented on July 16, 2024

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.

wolph avatar wolph commented on July 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.