跳到内容
All articles
Setup

ERP、账单与银行对账

将付款和已接受的报价发送到您的 ERP,并自动将银行交易与待处理付款进行对账,全部采用自带模型(ERP 和银行账户都是您自己的)。

该集成是面向您财务运营的通用、中立、全球化连接器,具备两项独立能力:(1)在付款确认或报价被接受时,将数据发送到您的 ERP/会计系统;以及(2)通过开放银行、金融聚合器(如 Plaid、Tink 或 TrueLayer)或银行本身接收交易,并自动与待处理付款进行对账。它适用于任何国家和货币,兼容任何 ERP(QuickBooks、Xero、NetSuite、SAP 等)以及任何银行。自带模型:账户和凭据都是您自己的,我们这边不产生任何费用。

两者默认都处于静默状态:在您完成配置并激活之前不会发生任何操作。密钥(ERP API 密钥和银行 webhook 密钥)会加密存储,且不会再次显示。

前提条件

  • ERP/账单:您的 ERP(QuickBooks、Xero、NetSuite、SAP 或其他)中有一个能够接收 POST JSON 的 HTTP 端点,以及用于认证的凭据(API 密钥或令牌)。
  • 银行对账:拥有一个能发送交易 webhook 并使用 HMAC-SHA256 签名的银行或开放银行聚合器(Plaid、Tink、TrueLayer 或银行本身)账户。
  • 在 Sellio 中,拥有管理员权限,以便在“设置 → 集成”中保存并激活这些连接器。

ERP / 账单(发送)

当付款被确认时(通过支付服务商的 webhook 或银行对账),或当关联的报价被接受时,CRM 会向您的 ERP 端点发起 POST 请求,请求体是格式为 { event, data, source, sentAt } 的 JSON 信封。event 表示具体事件(例如 payment.paid),data 携带具体字段(金额、货币、参考号、报价/商机 id)。

  1. 打开“设置 → 集成”,进入“ERP / 账单”卡片。
  2. 端点(URL):粘贴您 ERP 接收 POST 请求的地址(例如 https://erp.yourcompany.com/api/webhooks/crm)。
  3. 认证请求头和前缀:输入认证方式(例如带前缀“Bearer ”的 Authorization,或不带前缀的自定义请求头,如 X-Api-Key)。
  4. API 密钥:粘贴您的 ERP 密钥。它会被加密存储。
  5. 保存该连接器,使用“发送测试”进行验证,然后点击激活。只有在连接器被激活后才会自动发送。
💡 发送采用尽力而为策略:如果您的 ERP 宕机或拒绝该调用,不会影响 CRM,付款依然会照常正常记录。

银行对账(接收)

您需要将银行/开放银行的 webhook 指向 CRM 生成的 URL。对于收到的每一笔交易(包含金额、货币、参考/描述和外部 id 的 JSON),CRM 会查找与之匹配的待处理付款,并将其标记为已付款。

  1. 在“银行对账”卡片上,输入 Webhook 密钥(用于签名调用的密钥)并保存。
  2. 生成 webhook URL,并将其粘贴到您的银行/开放银行/聚合器中。
  3. 配置该服务商,使用 HMAC-SHA256 对每次调用的请求体进行签名,并将签名放入 X-Signature 请求头中发送(十六进制或 base64 格式,可带或不带 sha256= 前缀)。
  4. 激活该集成。

匹配原理

CRM 会保守地进行对账(这是资金,因此绝不猜测)且不区分国家:(1)它先按精确金额筛选待处理付款,若交易中报告了货币,则同时按相同货币筛选;(2)如果交易带有参考/描述,会优先选择其标识符(id、外部 id、报价或商机)出现在该参考中的付款;(3)如果没有参考可用于区分,只有当恰好只有一笔金额相同的待处理付款时才会进行对账。如果有多笔付款金额相同且无法区分,该交易将保持未对账状态(供您手动处理)。

Example: 交易:{ amount: 199.90, currency: "USD", reference: "Payment quote q_8f2a", external_id: "tx_123" } → 与报价为 q_8f2a、金额为 199.90 的待处理付款匹配,并将其标记为已付款。
💡 对账是幂等的:由于只有待处理付款会参与匹配,如果银行重新发送同一笔交易,已付款的付款不会被再次处理。无法匹配的交易会被记录下来,且不会中断接收流程。

如何测试

  1. ERP:在连接器已激活的情况下,在“ERP / 账单”卡片上点击“发送测试”,并在您的 ERP 中确认该 POST 已到达(查找已接收的 webhook 记录/日志)。
  2. 银行对账:创建一笔金额唯一的待处理付款,并在您的银行/聚合器中触发(或模拟)一笔金额相同、参考中提及该报价/商机的交易。检查该付款是否变为“已付款”。
  3. 查看集成历史记录/日志,了解已接收的调用及对账结果。

故障排查

  • “发送测试”失败并返回 401/403:ERP API 密钥错误,或认证请求头/前缀不匹配。请重新粘贴密钥,并检查请求头名称(例如 Authorization“Bearer ”,或 X-Api-Key)。
  • 发送时出现 404:ERP 端点错误,或该路由不存在。请确认接收 POST 请求的完整 URL。
  • 对账时出现无效签名(webhook 被拒绝):CRM 中的 webhook 密钥与银行用于签名的密钥不一致,或签名未放在 X-Signature 请求头中(HMAC-SHA256,十六进制或 base64)。请确保双方使用相同的密钥。
  • 交易未对账:可能存在多笔金额相同的待处理付款,且没有参考可用于区分,请在交易描述中包含 id/报价信息,或手动对账。同时请确认货币是否一致。
  • 发送时没有任何反应:只有在连接器被激活后才会自动发送。保存后请记得激活。

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

免费创建账户
ERP、账单与银行对账 · Sellio