I recently had to switch a system that downloaded daily bank statements via the STA order on EBICS, to intra-day processing.

The old way was the the system made an STA order at the end of each day, which returned a SWIFT MT-940 statement type, and I parsed it using the js library mt940-js and processed each transaction. When moving to Intra-Day statements, its neccesary to use a new order type.

The order type for Intra-Day is VMK, and instead of getting an MT940, you get an MT942, which is a lot more brief. It still contains a lot of the same info, specifically tag :61: however I did notice that the type just before the amount could be EC and ED instead of C and D, this is something specific to MT942. I raised a PR against that nodeJs library, and its just been merged.

Whilst I'm talking about EBICS, its worth noting a few things that I discovered that may help other people (Perhaps some of these are especially relevant with intraday)

  • Each intra-day cut of produces a statement with a unique reference, and then statement rows beneath it. Each of these :61: statement rows doesn't have a reference number attached thats unique (Unless the sender has entered one, in my case the sender might send 3 payments all with the same reference) so its necessary to do some hashing to create something unique per row (For example, to avoid re-processing)
  • Sometimes reference numbers from foreign accounts turn up in the description field but not the reference field
  • Sometimes theres some odd characters popup in the descriptions so make sure you are handling a wide char set
  • MT942 doesnt contain the senders IBAN number (Very important if you are relying on this for deposits of some kind, you would need to work around by giving the sender a unique reference number)