Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/my-flow/mt940
MT940 parser for Elixir
https://github.com/my-flow/mt940
Last synced: 7 days ago
JSON representation
MT940 parser for Elixir
- Host: GitHub
- URL: https://github.com/my-flow/mt940
- Owner: my-flow
- License: other
- Archived: true
- Created: 2015-05-03T22:56:25.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-11-27T20:04:18.000Z (almost 8 years ago)
- Last Synced: 2024-10-13T10:38:26.747Z (26 days ago)
- Language: Elixir
- Size: 99.6 KB
- Stars: 9
- Watchers: 4
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- freaking_awesome_elixir - Elixir - MT940 (standard structured SWIFT Customer Statement message) parser for Elixir. (Text and Numbers)
- fucking-awesome-elixir - mt940 - MT940 (standard structured SWIFT Customer Statement message) parser for Elixir. (Text and Numbers)
- awesome-elixir - mt940 - MT940 (standard structured SWIFT Customer Statement message) parser for Elixir. (Text and Numbers)
README
MT940/MT942 parser for Elixir
=============================[![Build Status](https://travis-ci.org/my-flow/mt940.svg?branch=master)](https://travis-ci.org/my-flow/mt940)
[![Coverage Status](https://coveralls.io/repos/my-flow/mt940/badge.svg?branch=master)](https://coveralls.io/r/my-flow/mt940?branch=master)
[![Hex.pm](https://img.shields.io/hexpm/v/mt940.svg)](https://hex.pm/packages/mt940)
[![Inline docs](http://inch-ci.org/github/my-flow/mt940.svg)](http://inch-ci.org/github/my-flow/mt940)This is a library to parse MT940 and MT942 account statements. It was ported from Ruby and is based on
[Thies C. Arntzen's mt940 library](https://github.com/betterplace/mt940_parser).
The MT94x category of SWIFT messages are meant for customer statements and cash management:
- **MT940** is the standard structured _Customer Statement Message_ format (end-of-day statement file which details all entries booked to a bank account). Usually you receive a customer statement message the next morning of the day of business.
- **MT942** is the standard structured _Interim Transaction Report_ format. MT942 gives a report of the debits/credits any given time of the day.## Basic usage
Include a dependency in your `mix.exs`:
```elixir
deps: [{:mt940, "~> 1.1.2"}, …]
````use MT940` and `parse!` the raw input:
```elixir
defmodule BankAccount do
use MT940def balance(raw) when is_binary(raw) do
%{amount: amount, currency: currency} = raw
|> parse!
|> Enum.at(-1)
|> MT940.CustomerStatementMessage.closing_balance
"#{amount} #{currency}"
enddef 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](http://www.sepaforcorporates.com/swift-for-corporates/account-statement-mt940-file-format-overview/)
or in the [SWIFT MT 940 Customer Statement Message Report](http://martin.hinner.info/bankconvert/swift_mt940_942.pdf).## Documentation
API documentation is available at [http://hexdocs.pm/mt940](http://hexdocs.pm/mt940).
## Copyright & License
Copyright (c) 2015-2016 [Florian J. Breunig](http://www.my-flow.com)
Licensed under MIT, see LICENSE file.