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)。
- 打开“设置 → 集成”,进入“ERP / 账单”卡片。
- 端点(URL):粘贴您 ERP 接收 POST 请求的地址(例如 https://erp.yourcompany.com/api/webhooks/crm)。
- 认证请求头和前缀:输入认证方式(例如带前缀“Bearer ”的 Authorization,或不带前缀的自定义请求头,如 X-Api-Key)。
- API 密钥:粘贴您的 ERP 密钥。它会被加密存储。
- 保存该连接器,使用“发送测试”进行验证,然后点击激活。只有在连接器被激活后才会自动发送。
银行对账(接收)
您需要将银行/开放银行的 webhook 指向 CRM 生成的 URL。对于收到的每一笔交易(包含金额、货币、参考/描述和外部 id 的 JSON),CRM 会查找与之匹配的待处理付款,并将其标记为已付款。
- 在“银行对账”卡片上,输入 Webhook 密钥(用于签名调用的密钥)并保存。
- 生成 webhook URL,并将其粘贴到您的银行/开放银行/聚合器中。
- 配置该服务商,使用 HMAC-SHA256 对每次调用的请求体进行签名,并将签名放入 X-Signature 请求头中发送(十六进制或 base64 格式,可带或不带 sha256= 前缀)。
- 激活该集成。
匹配原理
CRM 会保守地进行对账(这是资金,因此绝不猜测)且不区分国家:(1)它先按精确金额筛选待处理付款,若交易中报告了货币,则同时按相同货币筛选;(2)如果交易带有参考/描述,会优先选择其标识符(id、外部 id、报价或商机)出现在该参考中的付款;(3)如果没有参考可用于区分,只有当恰好只有一笔金额相同的待处理付款时才会进行对账。如果有多笔付款金额相同且无法区分,该交易将保持未对账状态(供您手动处理)。
如何测试
- ERP:在连接器已激活的情况下,在“ERP / 账单”卡片上点击“发送测试”,并在您的 ERP 中确认该 POST 已到达(查找已接收的 webhook 记录/日志)。
- 银行对账:创建一笔金额唯一的待处理付款,并在您的银行/聚合器中触发(或模拟)一笔金额相同、参考中提及该报价/商机的交易。检查该付款是否变为“已付款”。
- 查看集成历史记录/日志,了解已接收的调用及对账结果。
故障排查
- “发送测试”失败并返回 401/403:ERP API 密钥错误,或认证请求头/前缀不匹配。请重新粘贴密钥,并检查请求头名称(例如 Authorization“Bearer ”,或 X-Api-Key)。
- 发送时出现 404:ERP 端点错误,或该路由不存在。请确认接收 POST 请求的完整 URL。
- 对账时出现无效签名(webhook 被拒绝):CRM 中的 webhook 密钥与银行用于签名的密钥不一致,或签名未放在 X-Signature 请求头中(HMAC-SHA256,十六进制或 base64)。请确保双方使用相同的密钥。
- 交易未对账:可能存在多笔金额相同的待处理付款,且没有参考可用于区分,请在交易描述中包含 id/报价信息,或手动对账。同时请确认货币是否一致。
- 发送时没有任何反应:只有在连接器被激活后才会自动发送。保存后请记得激活。