You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

ERPNext通过REST API实现付款对账的问题咨询

ERPNext通过REST API实现付款对账的问题咨询

我之前也帮朋友排查过类似的ERPNext API对账问题,你遇到的这种“调用返回成功但实际没生效”的情况其实挺常见的,咱们一步步拆解来看:

一、核心Doctype选择

直接对应手动对账操作的是Payment Reconciliation这个Doctype,这是专门用来处理发票和付款匹配对账的单据类型。另外,你也可以通过创建Payment Entry(付款单/收款单)来间接完成对账,这种方式更偏向于从付款动作出发关联发票,很多场景下用起来更灵活。

二、必须传递的关键字段(触发对账生效的核心)

不管用哪种Doctype,有几个字段是绝对不能少的,而且要确保参数正确:

  • 对于Payment Reconciliation
    • company:明确指定操作所属的公司,这是ERPNext多公司架构下的必填项
    • party_type:比如Customer(客户)或Supplier(供应商),对应你要对账的对象类型
    • party:具体的客户/供应商名称或系统ID
    • reconciliation_details:数组格式的明细,每一项需要包含reference_type(如Sales Invoice/Purchase Invoice)、reference_name(目标发票的名称或ID)、allocated_amount(本次要对账的金额)
    • 最重要的:一定要加submit: 1(或者布尔值True),只保存单据(docstatus=0)不会触发对账逻辑,必须提交单据(docstatus=1)才会更新发票的付款状态
  • 对于Payment Entry
    • payment_type:选Receive(收款)或Pay(付款)
    • party_typeparty:和上面的要求一致
    • references:数组格式,每一项关联发票信息,包含reference_doctypereference_nameallocated_amount
    • 同样要传递submit: 1来提交单据,生效对账

三、排查小技巧

就算API返回“成功”,也建议你做这几步检查:

  • 调用API后,再请求获取该单据的详情,查看docstatus字段的值:1代表已提交,0代表仅保存,只有1才会生效
  • 核对allocated_amount和发票的未付金额:如果分配金额大于发票未付金额,或者金额不匹配,系统可能不会报错,但也不会完成对账
  • 检查权限:确保你用的API账号有Payment ReconciliationPayment Entry的提交权限,有时候权限不足会导致单据无法提交,表面上API返回成功但实际没操作

内容来源于stack exchange

火山引擎 最新活动