Meet Cmxl your friendly MT940 bank statement parser

Eine der wichtigsten Informationen von Finanzapplikation sind meist die Transaktionsinformationen von verschiedenen Bankkonten. - Sprich die Informationen die auf dem Kontoauszug zu finden sind.

Viele Banken stellen diese Informationen im MT940 Format zum Datenaustausch zur Verfügung. MT940 ist eines der von der Society for Worldwide Interbank Financial Telecommunication (kurz SWIFT) standardisierten Dateiformaten für den Austausch von Finanzinformationen. MT940 ist dabei nur eines von vielen definierten "Message Types".

Das MT940 Format besteht aus einem Header, Content und einem Final Block welche zeilenbasiert verarbeitet werden müssen. Die einzelnen Felder beginnen jeweils mit einem in Doppelpunkten eingeschlossenen Tag der die Art der nachfolgende Information beschreibt. Dabei sind einige Eigenheiten zu beachten wie z.B. dass das Feld 86 Detailinformationen zu dem vorangegangen Feld 61 beschreibt. usw. Ich erspar euch die Details, hier nur ein Beispiel: :)

:20:TELEWIZORY S.A.
:25:BPHKPLPK/320000546101
:28C:00084/001
:60F:C031002PLN40000,00 
:61:0310201020C20000,00FMSCNONREF//8327000090031789 
Card transaction 
:86: 020?00Wyplata-(dysp/przel)?2008106000760000777777777777?2115617?
22INFO INFO INFO INFO INFO INFO 1 END?23INFO INFO INFO INFO INFO 
INFO 2 END?24ZAPLATA ZA FABRYKATY DO TUB?25 - 200 S ZTUK, TRANZY 
STORY-?26300 SZT GR544 I OPORNIKI-5?2700 SZT GTX847 FAKTURA 333/ 
2?28003.?3010600076?310000777777777777?32HUTA SZKLA TOPIC UL 
PRZEMY?33SLOWA 67 32-669 WROCLAW?38PL081060007600007777777 
77777 
:61:031020
   
(Beispiel aus: http://martin.hinner.info/bankconvert/swift_mt940_942.pdf)

Meet Cmxl - your fiendly MT940 parser in ruby

Unser Ziel ist es einfache Anwendungen zu entwickeln, die einfach zu warten sind und von Entwicklern ohne großes Vorwissen weiterentwickelt werden können. Um dies zu ermöglichen werden typischerweise die komplizierten Teile abstrahiert und hinter einfach zu bedienenden Interfaces versteckt.

Für das Verarbeiten von MT940 Dateien haben wir deshalb das Cmxl ruby gem gebaut. Cmxl erlaubt es die statement Informationen im typisch-ruby style zu verarbeiten und macht es einfach die MT940 Informationen in Ruby Anwendungen zu integrieren.

Solltet ihr also Kontoauszüge im MT940 Format verarbeiten wollen... Cmxl to the rescue! :) Mehr Informationen findet ihr im Readme.

Wir freuen uns auf Feedback und falls ihr Probleme habt, wir helfen gerne! Ich hoffe wir schaffen mit Cmxl einen MT940 ruby parser für möglichst alle Banken anbieten zu können.

Mehr von uns

Unsere Stories

  • We are the champions AKA our evoke e-Ink hack

    Last weekend Cologne hosted one of the biggest demoparties in Europe: the Evoke. With over 498 visitors this event brought fans of the demoscene, C 64 and other technical and visual enthusiasts together for a creative competition and a get-together for the scene.
  • My Way into Clojure: Building a Card Game with Om - Part 1

    In order to gain hands-on experiences with functional programming, I wrote an HTML5 card game with Om, a “JavaScript MVC” written in ClojureScript. This first post starts our journey travelling down the Clojure rabbit hole. I'll share my experiences getting started with Clojure, introduce the language's features and explain why its LISP syntax is a logical consequence of its deep infatuation with simplicity.