如何在QBXML中通过InvoiceQuery查询获取InvoiceLine发票行数据?
QBXML查询发票行数据方法
核心配置
你需要在构造InvoiceQueryRq请求时,手动添加<IncludeLineItems>true</IncludeLineItems>配置,该字段默认值为false,因此默认查询接口不会返回发票行数据。
完整请求示例
<?xml version="1.0" encoding="utf-8"?> <?qbxml version="13.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <InvoiceQueryRq requestID="1"> <!-- 可选:填入目标发票的TxnID,仅查询单条发票;删除该行则返回全量发票 --> <TxnID>目标发票的TxnID</TxnID> <!-- 关键配置:开启发票行数据返回 --> <IncludeLineItems>true</IncludeLineItems> </InvoiceQueryRq> </QBXMLMsgsRq> </QBXML>
响应数据结构说明
请求成功后,返回内容的InvoiceRet节点(对应单张发票的完整信息)下会包含多个InvoiceLineRet节点,每个节点对应一条你之前通过InvoiceLineAdd添加的发票行数据,核心字段如下:
TxnLineID:当前发票行的唯一标识,可用于后续修改、删除对应行数据ItemRef:该行关联的商品/服务引用信息Desc:发票行描述内容Quantity:商品/服务数量Amount:该行合计金额- 你添加发票行时传入的其余自定义字段也会对应返回
响应结构示例:
<InvoiceRet> <!-- 发票主信息 --> <TxnID>xxxx-xxxx-xxxx</TxnID> <CustomerRef> <FullName>客户名称</FullName> </CustomerRef> <TotalAmt>200.00</TotalAmt> <!-- 第一条发票行 --> <InvoiceLineRet> <TxnLineID>yyyy-yyyy-yyyy</TxnLineID> <ItemRef> <FullName>商品A</FullName> </ItemRef> <Desc>测试商品A</Desc> <Quantity>1</Quantity> <Amount>100.00</Amount> </InvoiceLineRet> <!-- 第二条发票行 --> <InvoiceLineRet> <TxnLineID>zzzz-zzzz-zzzz</TxnLineID> <ItemRef> <FullName>商品B</FullName> </ItemRef> <Desc>测试商品B</Desc> <Quantity>1</Quantity> <Amount>100.00</Amount> </InvoiceLineRet> </InvoiceRet>
注意事项
如果查询全量发票,每个InvoiceRet节点下都会携带对应发票的所有InvoiceLineRet数据,无需单独发起多次查询。
内容的提问来源于stack exchange,提问作者Tyler
相关产品推荐
相关产品推荐

