如何通过Xero Accounting API为无匹配记录的AR客户添加还款?
解决Xero中无对应单据的客户退款记账问题
针对你遇到的Xero银行交易限制,这里提供一个符合Xero账务逻辑的可行方案:
核心思路:先创建客户贷项通知单,再匹配付款交易
Xero的PAYMENTS类型交易必须关联已存在的客户单据(发票/贷项通知单),而预收款类型无法处理负数退款场景。通过以下两步可以绕过限制:
创建客户贷项通知单(Credit Note)
先为目标客户生成一张贷项通知单,记录退款金额,为后续付款交易提供可匹配的单据:{ "CreditNotes": [ { "Contact": {"ContactID": "49445ede-1278-4f58-b3aa-0480236a95d2"}, "Date": "2023-12-07", "Reference": "Job No : 110765", "LineItems": [ { "Description": "Payment refunded to card on job 110765", "Quantity": 1, "AccountCode": "620", "UnitAmount": 375.31, "TaxType": "NONE", "LineAmount": 375.31 } ], "Status": "AUTHORISED" } ] }这一步会在客户应收账款账户中记录贷方金额,明确需要退还客户的款项。
创建匹配贷项通知单的
PAYMENTS交易
基于生成的贷项通知单ID,创建PAYMENTS类型交易,完成银行资金流出和客户账户冲销:{ "Payments": [ { "CreditNote": {"CreditNoteID": "<生成的贷项通知单ID>"}, "BankAccount": {"AccountID": "e12ec8b0-4a25-47d9-88e6-9e02e62c2d1f"}, "Date": "2023-12-07", "Amount": 375.31, "Reference": "Job No : 110765 - Refund" } ] }该操作会从指定银行账户扣除375.31,同时冲销客户的贷项通知单,确保银行账户与客户账户的账务方向完全正确。
方案优势
- 完全符合Xero的账务规则,避免了
RECEIVE-PREPAYMENT的负数金额限制和SPEND-PREPAYMENT误入应付账款的问题; - 解决了
PAYMENTS交易必须匹配前期单据的要求,不会触发"Document not found"错误; - 账务轨迹清晰,便于后续过账和审计。
内容的提问来源于stack exchange,提问作者Andy Hilton
相关产品推荐
相关产品推荐

