# @ekwo-ai/camt053 中文文档

规范地址：https://npmcn.com/package/%40ekwo-ai/camt053/

版本：0\.25\.2
npm 元数据更新时间：2026-11-13T14:09:20.449Z
中文译文更新时间：2026-11-13T10:20:39.844Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ekwo-ai/camt053
原文对照：https://npmcn.com/package/%40ekwo-ai/camt053/?lang=original
项目主页：https://github.com/Ekwo-ai/ekwo-os/tree/main/packages/formats/camt053#readme
源码仓库：https://github.com/Ekwo-ai/ekwo-os

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：105 kB，23 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-09-18T16:05:57.317Z
- 最新版本发布：2026-11-13T14:09:20.020Z
- 近 30 天下载量：6953（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：33（近 12 个月 33 个）

## 中文简介

在 TypeScript 中将 ISO 20022 银行对客户对帐单(camt.053) 读入平方对象:账户,余额和行,金额作为小数字符串,以及不相加的内容. 零依赖性,它自己的严格的XML读取器.

## 安装

```sh
npm install @ekwo-ai/camt053
```

也可以使用：`pnpm add @ekwo-ai/camt053`、`yarn add @ekwo-ai/camt053`、`bun add @ekwo-ai/camt053`

## README

# `@ekwo-ai/camt053`

读取一个 **ISO 20022 银行对客户对账单** —— 说 `camt.053`,账户 语句库作为 XML 发送到平面对象, 在 TypeScript 中, 没有 依赖性.

把文件交给它 它会给你其中的陈述 他们的行,还有 列表中不添加的内容.

```ts
import { readCamt053 } from '@ekwo-ai/camt053';

const { version, statements, violations } = readCamt053(bytesOrString);

for (const statement of statements) {
  statement.account.identifier; // { kind: 'iban', value } or { kind: 'other', value, scheme, issuer }
  statement.openingBalance;     // { type: 'OPBD', amount: '1000.00', currency: 'EUR', date: '2026-03-01' }
  statement.closingBalance;
  statement.balanced;           // true, false, or null when it could not be checked
  for (const line of statement.lines) {
    line.amount;                // '-450.50' — signed, a decimal string, never a float
    line.bookingDate;           // '2026-03-05'
    line.counterparty;          // { name, account, agentBic, ultimateName }
    line.remittance;            // { unstructured: ['Invoice 2026-0107'], structured: [{ reference, type, issuer }] }
    line.bankReference;         // the bank's own reference for the movement
  }
}
```

它不知道数据库、分类账和国家。 它返回的形状是 已声明 [`src/types.ts`](https://npmcn.com/package/%40ekwo-ai/camt053/src/types.ts) 和从哪里进口.

这个旁边的砖块 _写入_ 行政部门需要的文件。 这个 一个 _读取_ 银行发送的文件,并更改必须证明的内容: 输出是有效的, 但输入被理解了—— 文件 写来伤害读者不是.

## 它会做什么

-   读取 **02至14号版本** 信息,和 **说它读哪一个** (单位:千美元)`version`, (中文(简体) ), `namespace`) (中文(简体) ). 该版本是命名空间的最后一部分 文档元素,则无任何假设。 同样发明的语句是 十三个版本中每个版本都写着,与 ISO 计划相反 为该版本出版,并且必须读取所有对象中的相同对象 十三岁 后一版本仍作为 `version_not_verified`; 01版本被拒绝, 因为用同名它 这是另一个信息.
-   回返 **每个语句** 文件的 - 信件可能包含多个 并说每一次违反.
-   以 **文件给出的**一个IBAN _或者说_ `Othr/Id` 与 其计划和发行人。 ISO 20022提供了选择,因为世界上有一半人 没有IBAN;只返回IBANs的读者会阅读一半的语句.
-   在账户持有人一方的每个金额上签字——现金为正数,a 过度透支的余额为负数,并作为 **十进制字符串 所写文件的位数**。以千分之百的整数进行总和 (计划允许小数点后五分;没有数字通过 `number`。 。 。 .
-   检查一下 **期初余额+已记账账项=期末余额**页:1 最后一个小数。 当它不是, 声明回来的银行写它, `balanced` 实值 `false`,以及 `balance_mismatch` 说差别相. **没什么 更正**: 调整平衡的读取器隐藏了检查的事实 已存在以显示 .
-   只计数 **预定** 条目(`BOOK`) (中文(简体) ). 待定或信息性条目为 返回, 标记 `booked: false`,并留出 算术,即 银行在计算期末余额时做了什么.
-   留着 **有条不紊的交流和自由的交流**,并保持两者 当一笔报酬同时带有两个。 债权人的参考是付款人复制的东西 发票和机器可以匹配;免费文本是个人的东西 键入。 将一个扯入另一个 将分歧的调和抛出 继续生活.
-   **将批次分成交易** - 每行一行 `TxDtls` - 何时和何时 只有在每笔交易都带有入帐货币的金额时 准确的说就是这个条目 然后每行都有自己的参考资料, 交易和通信,加 `entry`, (中文(简体) ), `detail`, (中文(简体) ), `detailCount` 财务报告和审定财务报表 `entryAmount` 把批量放回去 否则就只留下一个 线条和 `batch_not_split` 说为什么 无论哪种方式,一个语句的行添加 因此,余额核对不取决于 选择。 (和解需要交易;余额需要输入. 分出只当两人都得到他们想要的. )
-   名称 **对手** 作为金钱的债务人和债权人 钱会流出... 而反之 `RvslInd` 说条目 撤销了先前的一条,即当事方保留其在 原作: 被弹出转会回来 _从_ 被派去的派对.
-   拿着 **银行写的那天**。 。 。 . `2026-03-31T23:30:00+02:00` 为3月31日 不被移动到协调世界时, 它将在另一天预订 地球上的一半.
-   返回银行本身的引用( E)`AcctSvcrRef`交易,或 条目、条目引用、端到端标识符 **已写入** —— 说 包括《京都议定书》 `NOTPROVIDED` 占地者,是银行的字眼,而不是 读者应该决定——授权、银行交易代码 (ISO域名/家族/子家族和专有家族),回归原因, 以另一种货币订的.

## 声明是恶意输入

它通过电子邮件,下载,第三方API到达. XML 读取器 在此包中写着,约300行,并严格按以下目的:

-   **任意 `<!DOCTYPE` 被拒绝**未读。 不需要声明 10亿个家庭和外部实体家庭都需要一个. 没有要扩展的实体表格, 没有打开文件或套接字的表格 .
-   5个预定义的实体和数字字符引用被解码; **任何其它实体都是错误**,而不是空字符串。 字符参考 这不是 XML 字符是一个错误.
-   **大小** 在读取字符前选中( e)`maxBytes`,32个米B by 默认), **深度** 财务报告和审定财务报表 **元素计数** 读取时(`maxDepth` 64岁, `maxElements` 2 000 000美元。 读者不再重复:十万 筑巢元素被深度限制所拒绝 并且不会触碰 堆叠.
-   **仅UTF-8型,可致命地解码.** 一个不是UTF-8的字节是错误而不是错误 以某人的名义替换角色 宣告另一个文件 编码被拒绝:解码并传递字符串.
-   命名空间解决了,所以 `<Document xmlns="…">` 财务报告和审定财务报表 `<ns2:Document xmlns:ns2="…">` 是同一语句,也是 另一个命名空间 永远不会被读作声明的.
-   形状不完善不读 : 标记不匹配, 第二个根, 一个赤色 `&`页:1 重复属性,一个控制字符.

它不是一个通用的 XML 解析器: 元素和属性名称是 ASCII, 它 iSO 20022 的每个名称都是, 运行时不会对一个计划进行验证 .

## 抛出的东西, 回来作为违反

**丢弃** (单位:千美元)`StatementFileError`,带有 `code`),因为没有陈述 报告:

| 代码 | 何时 |
| --- | --- |
| `too_large`, (中文(简体) ), `too_deep`, (中文(简体) ), `too_many_elements` | 超过限制 |
| `unsupported_encoding` | 不使用UTF-8 |
| `doctype_forbidden`, (中文(简体) ), `undefined_entity` | 见上文 |
| `malformed_xml` | 未形成 |
| `not_a_statement` | 成型良好,而非相机 053 —相机 052, HTML 错误页面 |
| `unsupported_version` | camt.053.001.01 (英语) |
| `incomplete_statement` | 没有 `Stmt`,或没有标识符或账户的报表 |

**已返回** 内 `violations`,与语句和它的行,因为 一条坏线不应该浪费另外三百条:

| 代码 | 何时 |
| --- | --- |
| `balance_mismatch` | 打开 + 预定的条目 + 关闭 ; 消息 表示差异 |
| `opening_balance_missing`, (中文(简体) ), `closing_balance_missing` | 没有 `OPBD` (或 `PRCD`),无 `CLBD`; 未检查余额 |
| `balance_currency_mismatch` | 以账户以外的其他货币计算的余额 |
| `foreign_currency_entry` | (a) 以账户以外的另一种货币输入——报告, **未转换**; 未检查余额 |
| `invalid_amount`, (中文(简体) ), `invalid_direction`, (中文(简体) ), `invalid_date` | 线回与 `null` 那边 |
| `booking_date_missing` | a 未经预订的条目 `BookgDt` (计划允许它) |
| `invalid_iban` | 以 IBAN 写入, 并且失败 ISO 13616 自己的检查数字 —— 按已写返回 |
| `duplicate_bank_reference`, (中文(简体) ), `duplicate_entry_reference` | 一份说明的两个条目 |
| `batch_not_split`, (中文(简体) ), `batch_count_mismatch` | 见上文 |
| `version_not_verified` | 此软件包没有用于 |

`invalid_amount`, (中文(简体) ), `invalid_direction` 财务报告和审定财务报表 `invalid_date` 每一个东西 schema拒绝:测试将每个都放入一个文件,并观看验证失败. `balance_mismatch` 恰恰相反,而这个软件包存在的原因—— 测试显示计划 **接受** 一种不相加的陈述.

## 它不会做的

-   **它不会改变任何东西.** 报告以另一种货币输入 以美元为单位的订单 以美元为单位的回报 而不是账户中移动的 货币。 收费率属于保存这些书的人.
-   **什么都没有.** 它不知道一张工资发票。 手拿着 对于和解需要什么, 分离.
-   **它不决定什么是重复.** 同一日期的两行, 金额和对等方为两行; 文件是否已导入 问谁持有前一个.
-   **它不读每个元素.** 收费、利息、税款、证券和 某方的卡片细节、可用性和邮政地址不 已经返回。 它们被跳过,而不是被误读.
-   **它不读相机052或相机054.** 日内报告和 借记/贷记通知与报表分享其大多数类型 但报告没有预定结束 平衡检查和通知 根本没有余额,所以它们是其他 以其他担保方式提交的文件,并被姓名拒绝,直到某人 需要他们.
-   **报告没有全文.** `StmtPgntn` 返回( e)`page`(三); 打开并关闭每个页面 临时结余(`ITBD`),此软件包返回其中 `balances` 并且确实 不需要开场或闭幕 如此一页的报告 `opening_balance_missing` 而不是猜测.

## 来源

-   国际标准化组织20022, _银行对客户现金管理_编辑 `BankToCustomerStatement` (单位:千美元)`camt.053.001.02` 改为 `.14`\- 计划下 [`test/xsd/`](https://npmcn.com/package/%40ekwo-ai/camt053/test/xsd/README.md),来自 ISO 20022 消息目录和 归档, [https://www.iso20022.org/iso-20022-message-definitions (中文(简体) )](https://www.iso20022.org/iso-20022-message-definitions)。 。 。 .
-   ISO 13616 — IBAN及其计数(ISO 7064,MOD 97-10).
-   ISO 11649——结构债权人参考(`RF…`),该软件包 返回,而不验证.
-   可扩展标记语言 (XML) 1.0, 第5版, 以及 XML 中的命名空间 1.0 - 对 [https://www.w3.org/TR/xml/ (中文(简体) )](https://www.w3.org/TR/xml/), (中文(简体) ), [https://www.w3.org/TR/xml-names/ (中文(简体) )](https://www.w3.org/TR/xml-names/)。 。 。 .

## 何为已核实,何为未核实

**已验证**: 测试此软件包的每个文件首先针对 化学式 ISO 为其版本出版(`test/schema.test.ts`13个计划, 未修改 `test/xsd/`,没有网络和系统工具)——因此 阅读器通过camt.053进行测试,而不是根据作者的camt.053的想法进行测试. 一个 语句以所有13个版本写成,并读取相同的对象. 蓄意违反《公约》规定的行为,经证实被 计划; 最重要的, 平衡, 显示 **没有** 成为。 这个 敌对文件按姓名分别被拒绝,要求时间或 在试验措施的范围内拒绝记忆.

写下反对阴谋的固定装置 驳斥了第一稿 同样的 小时 : `BIC` 成为 `BICFI` 在03版,而不是在04版,因为草案有它。 还有 获取计划发现两个版本 草案不知道:14,出版 在2026年3月,和01, 以同名服务,是另一个 留言.

**未核实** - 这是更大的一半:

-   **没有银行的文件.** 这里的每个陈述都是发明的 因为一个真实的 是某人的账户。 计划说银行什么的 _可能_ 发送; 不发送 说什么银行 _已经_ 发送。 银行对此有不同之处 软件包关心: 批次是否详细, 引用在哪里 (单位:千美元)`AcctSvcrRef` 进入、交易、交易和交易, 不论支付卡片的对方是当事人还是免费文本, 什麽 `PRCD` 意味着一个星期一. _传出发明文件的读取是 说明,不是证据_每个银行的第一个真实对账单是 测试谁都没跑过.
-   **无使用准则.** EPC、CGI-MP,以及执行指南 国家银行联合会限制信息 填充,用哪个代码 无一被测试.
-   **逆转的对手.** 双方保持原有的 角色当 `RvslInd` 此软件包读取信件是真实的 定义和共同惯例;计划不能说,银行可能 不同之处.
-   **02和08版本为所使用.** 其余11个已经核实 他们的阴谋 和,就提交人所知, 没有其他的: 这里没有人见过野外的相机053.001.11.
-   **外部代码集** (银行交易代码、收益原因、余额) 类型)作为书面返回,而不与 ISO 的发布相核对 列表.
-   **业绩** 被绑定, 未被测量: 默认大小的语句 限制在记忆中读取,作为一个整体.

## 许可证

麻省理工学院. 见 [`LICENSE`](https://npmcn.com/package/%40ekwo-ai/camt053/LICENSE)。 。 。 .

## 常见问题

### @ekwo-ai/camt053 是什么？

在 TypeScript 中将 ISO 20022 银行对客户对帐单\(camt\.053\) 读入平方对象:账户,余额和行,金额作为小数字符串,以及不相加的内容\. 零依赖性,它自己的严格的XML读取器\.

### 如何安装 @ekwo-ai/camt053？

在项目目录运行 npm install @ekwo-ai/camt053，或使用 pnpm add / yarn add / bun add。

### @ekwo-ai/camt053 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ekwo-ai/camt053 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ekwo-ai/camt053 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ekwo-ai/camt053 可以商用吗？

@ekwo-ai/camt053 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ekwo-ai/camt053 的下载量有多少？

根据 npm 官方下载统计，@ekwo-ai/camt053 在 2026/10/13 – 2026/11/11 这 30 天内被下载 6,953 次，日均约 232 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ekwo-ai/camt053 还在维护吗？

最新版本 0\.25\.2 发布于 2026/11/13（今天）；至今共发布 33 个版本，其中过去 12 个月发布了 33 个；首次发布于 2026/09/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

