通过Postman调用API在ERPNext中创建POS销售发票报错求助
ERPNext POS场景销售发票API请求错误排查与正确方案
请求报错核心是字段混用、结构不符合Sales Invoice DocType的接口规范,具体问题如下:
- 单据类型字段完全错配:目标是创建销售发票,但请求大量使用采购发票专属字段:
supplier(供应商字段,销售发票需使用customer客户字段)、credit_to(应付账款科目,采购发票专属,销售发票对应应收科目字段为debit_to)、命名系列用了采购发票前缀PINV-,税目同时混用进项税(Input GST)和销项税(Output GST),销售发票仅可使用销项税类科目。 - 子表结构不符合规范:
items是子表字段,必须传数组格式,当前传单个对象会触发数据类型校验错误payment_schedule_section、accounting_details_section是前端表单的折叠区块标识,不属于API可识别的业务字段,直接传入会触发未知字段报错,相关业务字段需直接放在请求根层级
- 字段缺失、格式与逻辑错误:
- POS场景单据必须显式传
is_pos: 1作为标识,同时需传payments子表记录收款方式、收款金额,否则无法通过POS单据校验 - ERPNext API默认接受
YYYY-MM-DD格式日期,当前传入的DD-MM-YYYY格式会触发日期解析错误 - 税表行缺失必填字段:税率
rate、成本中心cost_center,仅传charge_type和account_head无法通过校验 base_grand_total、grand_total为系统自动计算字段,无需手动传入,你手动填写的总金额354,和200元商品金额、18% GST税率计算出的236元实际应付金额完全不匹配,会直接触发金额校验报错- 付款时间逻辑冲突:根层级填的
due_date为2022-06-23,付款计划里填的到期日为2022-08-13,日期冲突会触发付款计划校验错误。
- POS场景单据必须显式传
Postman调试正确配置参考
基础请求配置
- 请求方法:
POST - 请求路径:
{你的ERPNext站点地址}/api/resource/Sales Invoice - 请求头必填项:
Authorization: token {你的api_key}:{你的api_secret}Content-Type: application/json
请求体参考
{ "naming_series": "SINV-.YY.-", "customer": "实际存在的客户名称", "posting_date": "2022-06-21", "due_date": "2022-06-23", "currency": "INR", "selling_price_list": "Standard Selling", "is_pos": 1, "items": [ { "item_code": "实际存在的商品编码", "item_name": "Dis", "qty": 1, "rate": 200, "warehouse": "实际出货仓库名称 - RL", "cost_center": "默认成本中心 - RL" } ], "taxes_and_charges": "Output GST In-state - RL", "taxes": [ { "charge_type": "On Net Total", "account_head": "Output Tax SGST - RL", "rate": 9, "cost_center": "默认成本中心 - RL" }, { "charge_type": "On Net Total", "account_head": "Output Tax CGST - RL", "rate": 9, "cost_center": "默认成本中心 - RL" } ], "payments": [ { "mode_of_payment": "实际存在的收款方式(如现金、银行卡)", "amount": 236 } ], "debit_to": "Debtors - RL" }
注意:请求中涉及的客户、商品、仓库、成本中心、收款方式必须替换为你站点内已存在的对应记录名,不要直接使用占位文本。如果不需要自定义付款计划,无需传payment_schedule相关字段,系统会自动根据due_date生成对应记录。
内容的提问来源于stack exchange,提问作者Shyam Sundar
相关产品推荐
相关产品推荐

