Centrapay SWIFT 解析器
JavaScript的SWIFT银行对账单解析器(ES2015). 支助 MT 940 客户 语句消息 财务报告和审定财务报表 MT 942 临时交易报告。 。 。 .
安装
npm install @centrapay/swift-parser
使用量
const parser = require('@centrapay/swift-parser');
const statements = parser.parse({
type: 'mt940',
data: fs.readFileSync(path, 'utf8'),
});
statements.forEach(stmt => {
console.log(stmt.statementDate, stmt.accountIdentification, stmt.number.statement);
stmt.transactions.forEach(txn => {
console.log(txn.amount, txn.currency);
};
};
国 际
这个软件包还包括一个CLI,它分析一个SWIFT文件,并将结果输出为JSON:
swift-parse -t mt942 my-statement.txt
API 密码
parse () (帮助)
解析 SWIFT 语句文档 .
若为 parser.parse() 以 { validate: true } 然后是MT940语句
经进一步验证的有:
- 所有严格要求的标记
- 期初/期末余额货币相同
- 期初余额+营业额=期末余额
回返情况: 矩阵<声明>
参数 :
| 参数 | 类型 | 说明 |
|---|---|---|
| 数据 | 字符串 | 原始 SWIFT 信件文本 |
| 类型 | 字符串 | 信件格式( mt940 或 mt942) |
| 验证 | 布尔 | 可选 执行额外的语义错误检查 |
声明
| 外地 | 类型 | 说明 |
|---|---|---|
| 交易参考 | 字符串 | 标记 20 引用 |
| 相关参考 | 字符串 | 标记 21 引用 |
| 账户识别 | 字符串 | 标记 25 自己的银行账户识别 |
| 编号。报表 | 字符串 | 标记 28 主语句编号 |
| 数字.顺序 | 字符串 | 标记 28 语句子编号(序列) |
| 数字. 节 | 字符串 | 标记 28 语句子编号( 存在于一些银行) |
| 语句日期 | 日期 | 标记 62(MT940,日精度)或标记 13D(MT942,分精度) |
| 打开目标 | 日期 | 标记 60 语句打开日期 |
| 关闭目标 | 日期 | 标记 62 语句关闭日期 |
| 关闭 Availbalance 数据 | 日期 | 标记 64 期末可用余额日期,默认=期末日期 |
| 前置易碎电池 | 日期 | 页:1 |
| 货币 | 字符串 | 报表货币 (美元,欧元.) |
| 打开屏蔽 | 大数 | 报表的期初余额(有符号,根据借方/贷方标记计算) |
| 关闭 | 大数 | 报表期末余额(有符号,根据借项/贷记号计算) |
| 关闭易碎品 | 大数 | 标记 64 期末可用余额,默认为期末余额 |
| 前进的易碎品 | 大数 | 页:1 |
| 资料 给会计 | 字符串 | 附加声明级别信息 |
| 交易 | 数组 | 收取交易 |
| 信件锁定 | 对象 | 如果存在语句信息块( 警告) |
交易
| 外地 | 类型 | 说明 |
|---|---|---|
| 日期 | 日期 | 交易日期 |
| 金额 | 大数 | 交易金额(带有符号、信用+、去比特-) |
| 倒转 | 布尔 | 交易为倒转 |
| 货币 | 字符串 | 交易货币(报表货币副本) |
| 细节 | 字符串 | 有关86个标签的内容,可以是多行(\n 已删除) |
| 交易类型 | 字符串 | MT940交易类型代码(例如NTRF.) |
| 参考文献 | 字符串 | 付款参考字段 |
| 条目日期 | 日期 | 输入日期字段 |
| 基金代码 | 字符串 | 基金代码字段 |
| 银行参考 | 字符串 | 银行参考 |
| 其他细节 | 字符串 | 额外细节(补充细节) |
| 结构细节 | 对象 | 如果检测到结构化细节 |
| 非线性 | 字符串 | 与交易有关的NS标签的内容(标签后61或86) |
结构化交易细节
这个 transaction.structuredDetails 属性可用于访问结构化
数据来自语句交易细节(SWIFT"86"标记). 以下内容:
支持结构化细节格式 :
'<sep>DD'时<sep>可能会是'>'或者说'?'财务报告和审定财务报表DD是两位数'/TAG/value'时TAG是 2 至 4 大写字符.
示例
>20some details >30more data
{
"20": "some details",
"30": "more data"
}
示例
/ORDP/Smith Corp
{
"ORDP": "Smith Corp"
}
历史
见 更改日志
法律
版权:"2015" 亚历山大·齐布尔斯基 和其他贡献者。 版权 2020 百分点付费。 。 。 .
这个软件根据Apache-2.0许可证获得许可. 请看 自由主义 详细情况.
贷项
从 a-fas/mt940 (单位:千美元)。最初灵感来自 WoLpH/mt940 电话。 。 。 .