7 个版本 (3 个稳定版)
1.0.2 | 2022 年 10 月 5 日 |
---|---|
1.0.1 | 2022 年 2 月 2 日 |
1.0.0 | 2022 年 1 月 30 日 |
0.3.2 | 2019 年 9 月 24 日 |
0.2.0 | 2018 年 11 月 13 日 |
#275 in 财务
89KB
1.5K SLoC
mt940-rs
使用 Rust 编写的严格的 MT940 银行对账单解析器。
特性
- 解析 MT940 银行对账单。
- 严格且经过深入研究。
- 非常简单的 API 和良好的 Rust 结构体。
- 一个小型命令行工具,允许快速轻松地将 MT940 对账单转换为 JSON。
- 经过良好测试,具有许多自动化测试以发现奇异的边缘情况。
- 非常快.
计划中的特性
- MT941 支持
- MT942 支持
库使用示例
use mt940::parse_mt940;
fn main() {
let input = "\
:20:3996-11-11111111\r\n\
:25:DABADKKK/111111-11111111\r\n\
:28C:00001/001\r\n\
:60F:C090924EUR54484,04\r\n\
:61:0909250925DR583,92NMSC1110030403010139//1234\r\n\
:86:11100304030101391234\r\n\
Beneficiary name\r\n\
Something else\r\n\
:61:0910010930DR62,60NCHGcustomer id//bank id\r\n\
:86:Fees according to advice\r\n\
:62F:C090930EUR53126,94\r\n\
:64:C090930EUR53189,31\r\n\
\r\n";
let input_parsed = parse_mt940(input).unwrap();
assert_eq!(input_parsed[0].transaction_ref_no, "3996-11-11111111");
}
命令行使用示例
cargo run --bin sta2json tests/data/mt940/full/danskebank/MT940_DK_Example.sta
文档
文档在这里:https://docs.rs/mt940.
性能
解析提供的 MT940_FI_Example.sta
的时间
mt940-rs (此包) | mt940-js (NodeJS) | mt-940 (Python) | |
---|---|---|---|
文件时间 | 0.054ms | 0.08ms | 1.15ms |
性能 | 每秒 600,000 行 | 每秒 400,000 行 | 每秒 28,000 行 |
严格性
一些银行使用不严格遵循规范的 MT940 的怪异衍生版本。在这种情况下,您应尝试自行或使用提供的清理程序进行一些预处理。
资源和致谢
正确引用文档很重要,因为银行似乎对 MT940 的实现严格性有些宽容。以下是我引用的资源列表。
其他项目
- 从 https://github.com/WoLpH/mt940 复制了大量测试数据
iotafinance.com
惊人的交互式文档。
DanskeBank
他们提供了大量的优秀文档。
- https://danskebank.com/en-uk/ci/Products-Services/Transaction-Services/Online-Services/Integration-Services/Documents/Formats/FormatDescriptionSWIFT_MT940/MT940.pdf
- https://danskebank.com/en-uk/ci/Products-Services/Transaction-Services/Online-Services/Integration-Services/Documents/Formats/FormatDescriptionSWIFT_MT942/MT942.pdf
- https://danskebank.com/en-uk/ci/Products-Services/Transaction-Services/Online-Services/Integration-Services/Formats/Pages/SWIFT-formats.aspx
- https://www-2.danskebank.com/Link/ExtendedMT940/$file/Extended_MT940.pdf
Bank Austria
Deutsche Bank
ABN AMRO
- https://www.abnamro.nl/nl/images/Generiek/PDFs/020_Zakelijk/03_OfficeNet/Formatenboek_MT94_(engels).pdf
- https://www.abnamro.nl/en/images/Generiek/PDFs/020_Zakelijk/04_Migratie/Derde_banken_Specificaties_EN.pdf
Westpac Banking
Societe Generale Srbija
Bank Millennium
DZ Bank
Handelsbanken
ING Bank
Kontopruef
Rabo Bank
SEPA for Corporates
依赖项
~7–17MB
~227K SLoC