Nordlet

← All features

面向应用开发者的 Nordlet

通过一个 JSON API、类型化的 SDK、Webhook、MCP 服务器和沙盒公司,将开票、记账和欧盟税务申报功能集成到您的软件中。

许多应用都会产生资金事件: 订单支付、订阅续费、退款发出。这些事件最终都需要记入公司的账簿。

Nordlet 是一个以 API 为先构建的会计软件。网页应用能做的所有事情,也都可以通过一个 JSON API 来完成。您的应用发送事件,Nordlet 则负责记账并准备税务申报。

Nordlet 的功能

  • 将每一个操作公开为 POST /v1/{module}/{resource}/{action} 并带有 JSON 请求体,例如 /v1/sales/invoices/create。
  • 使用属于某家公司的 API 密钥对每个请求进行身份验证。每个密钥都带有权限范围 (scope),例如 sales:read 或 sales:write,用于限制其可执行的操作。
  • 将金额作为十进制字符串接收,绝不使用浮点数,从而避免因四舍五入而丢失分文。
  • 在每个变更请求中接受 Idempotency-Key 请求头。使用相同密钥重试会返回第一次的结果,而不是重复执行操作。幂等性 (idempotency) 意味着重复请求的效果与单次请求相同。
  • 以统一的共享格式返回所有错误。
  • 每个 API 密钥每分钟允许 300 个请求。
  • 在审计日志 (audit log) 中记录每一项变更。

API 规范指南详细介绍了其中每一项规则。

保持准确的账簿

  • 开具发票会分配连续且无间断的编号,检查会计期间 (accounting period)是否开放,并在同一个数据库事务中过账分录 (journal entry)。
  • 每笔过账必须借贷平衡。保存事务时,数据库会自行检查这一点。
  • 已开具和已登记的单据无法删除。错误的银行匹配通过冲销分录来撤销,而不是通过修改旧分录。这就是不可变账本 (immutable ledger)的含义。

SDK、MCP 与 Webhook

  • 类型的 SDK 是根据同一份 OpenAPI 规范为 TypeScript、Python、Go、Java、C#、Ruby、PHP、Swift 和 Rust 生成的。在 SDK 发布之前,您可以从其源码仓库进行安装。请参阅 SDK 指南。
  • 提供包含所有端点的 Postman 集合。
  • MCP 服务器允许像 Claude Code 这样的 AI 助手搜索 API 并使用您的 API 密钥调用它。每次调用都是一个普通的 API 请求,受相同的权限范围和限制约束。
  • Webhook 会在发生某些事件时通知您的应用,例如 sale_invoice.issued 或 sale_invoice.paid。每次推送都带有 HMAC 签名,以便您验证其是否来自 Nordlet。发送失败的推送会在约 24 小时内进行重试。

使用沙盒公司进行测试

  • 创建带有 isSandbox: true 的公司,或者在应用中设置公司时勾选沙盒复选框。
  • 沙盒公司的运作方式与真实公司完全相同: 相同的模块、相同的 API。
  • 它会被明确标记为测试数据,并且您无法将真实公司转换为沙盒公司,反之亦然。
  • 沙盒公司的申报表和电子发票 (e-invoice)将发送至税务机关的测试服务。
  • 沙盒公司的使用情况会像真实公司一样进行计量和计费。

快速入门指南将带领您了解第一个 API 密钥、第一张发票以及完整的业务循环。

FAQ

一个应用可以为多家公司服务吗?

可以。每个 API 密钥都属于一家公司,因此您需要为每家公司创建一个密钥。每个 Webhook 推送都携带其所属公司的 companyId,因此单个接收端可以为多家公司服务。

我必须自己构建税务申报功能吗?

不需要。Nordlet 会根据账簿自动生成申报表。对于每项申报,它会根据不同国家/地区的要求直接发送、生成供您上传的文件,或者显示供您手动录入的数据。申报支持对照表列出了所有情况。

相关链接