Skip to content
This repository has been archived by the owner on Sep 25, 2019. It is now read-only.

my-flow/mt940

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MT940 parser for Elixir

Build Status Coverage Status Hex.pm Inline docs

This is a library to parse MT940 account statements. It was ported from Ruby and is based on Thies C. Arntzen's mt940 library. MT940 is a standard structured customer statement message format developed by SWIFT. It is an end-of-day statement file which details all entries booked to a bank account.

Basic usage

Include a dependency in your mix.exs:

deps: [{:mt940, "~> 0.3.2"},]

use MT940 and parse! the raw input:

defmodule BankAccount do
  use MT940

  def balance(raw) when is_binary(raw) do
    %{amount: amount, currency: currency} = raw
    |> parse!
    |> Enum.at(-1)
    |> MT940.CustomerStatementMessage.closing_balance
    "#{amount} #{currency}"
  end

  def transactions(raw) when is_binary(raw) do
    raw
    |> parse!
    |> Enum.flat_map(&MT940.CustomerStatementMessage.statement_lines/1)
  end
end

If you want to have a more detailed, low-level list of MT940 commands, use the MT940.Parser.parse! command.

Specification

Find the specification in the MT940 Format Overview or in the SWIFT MT 940 Customer Statement Message Report.

Documentation

API documentation is available at https://hexdocs.pm/mt940.

Copyright & License

Copyright (c) 2015 Florian J. Breunig

Licensed under MIT, see LICENSE file.