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.
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.
Find the specification in the MT940 Format Overview or in the SWIFT MT 940 Customer Statement Message Report.
API documentation is available at https://hexdocs.pm/mt940.
Copyright (c) 2015 Florian J. Breunig
Licensed under MIT, see LICENSE file.