具备 API 的会计软件
Nordlet 的所有功能均可通过一个 JSON API 进行访问,同时提供 SDK、Webhook、具备幂等性的重试机制以及用于 AI 助手的 MCP 服务器。
API(应用程序接口)是程序之间进行通信的一种方式。通过会计 API,您的软件可以自行创建发票、记录付款并读取报表,而无需人工在屏幕上进行点击操作。
Nordlet 是一款以 API 为核心的会计软件。网络应用程序所能执行的一切操作,均可通过相同的 JSON API 实现。本页面专为开发人员以及负责决定产品集成方案的决策者而编写。
Nordlet 的功能
- 统一的请求结构。 每个调用均为带有 JSON 请求体的
POST /v1/{module}/{resource}/{action},例如sales/invoices/create或bank/transactions/match。 - 带权限范围(scope)的 API 密钥。 每个密钥均归属于一家公司,并带有诸如
sales:read或bank:write的权限范围。缺少所需权限范围的密钥将收到 403 响应。 - 以文本形式表示金额。 金额为最多支持 4 位小数的十进制字符串,绝不使用浮点数,从而避免因舍入而导致分文误差。
- 统一的错误格式。 所有错误均采用包含错误代码、错误消息和请求 ID 的相同响应信封。
- 共享的列表查询。 所有的
list调用均采用相同的分页、排序和筛选字段,并可返回合计金额。 - 严谨的会计规则。 分录(journal entry)必须借贷平衡,凭证编号不得有断号,且已结账的会计期间(accounting period)将对新的过账请求返回 409 错误进行拒绝。任何更改都会写入审计日志。
利用幂等性确保安全重试
如果网络在您的请求处理完成之后、但在您收到响应之前发生故障,此时进行重试可能会导致同一张发票被重复创建。幂等性(idempotency)意味着重复请求产生的影响与首次请求相同。
- 在任何修改数据的调用中发送
Idempotency-Key请求头。 - 使用相同密钥和相同请求体的重试将返回已存储的响应,并带有
x-idempotent-replay: true响应头。 - 使用相同密钥但不同请求体的请求将被拒绝。
- 密钥将保留 24 小时。
Webhook
Webhook 是当发生某些事件(例如 sale_invoice.paid)时,Nordlet 发送给您服务器的消息。
- 事件与更改写入同一数据库事务中,因此回滚的更改不会发送任何事件。
- 每次投递均使用您的订阅密钥通过 HMAC-SHA256 进行签名,以便您验证其是否来自 Nordlet。
- 投递失败的事件将重试约 24 小时。您也可以手动重新发送。
- 订阅管理可通过账户 (Account) -> Webhook 或 API 进行。
开发人员工具
- API 参考文档。 基于 OpenAPI 描述构建的交互式API 参考文档,以及 Postman 集合。
- SDK。 根据相同的描述生成的适用于 TypeScript、Python、Go、Java、C#、Ruby、PHP、Swift 和 Rust 的类型化客户端。请参阅SDK 指南。
- MCP 服务器。 Claude 等 AI 助手可以使用您的 API 密钥搜索并调用 API。请参阅MCP 服务器指南。
- 沙箱公司。 测试公司的运作方式与真实公司相同,但被标记为测试数据,且仅向税务机关的测试端点发送申报表和电子发票(e-invoice)。
- 速率限制。 每个 API 密钥每分钟限制 300 个请求,并通过响应头显示剩余额度。
FAQ
我可以通过 API 执行哪些操作?
产品中的所有功能:开票、采购、总账(general ledger)、银行对账、库存、资产、薪酬、报表以及国家/地区税务申报。入门指南详细介绍了从开票到增值税数据的完整业务周期。
我可以将会计功能构建到我自己的产品中吗?
可以。Nordlet 中的每家公司都拥有各自的账簿,您的软件可以通过其 API 密钥对这些账簿进行操作。API 中不包含任何用于编辑或删除已过账分录的操作。更正必须通过新分录来完成,从而维护不可变总账(immutable ledger)。