如何获取QuickBooks Desktop已付发票的LinkedTxn信息
无法从QuickBooks Desktop Enterprise 16-US获取已付发票的LinkedTxn详情
我最近在对接QuickBooks Desktop Enterprise 16-US版本,通过WCF服务配合Web Connector来拉取发票详情,但遇到了一个棘手的问题——已付发票对应的LinkedTxn信息始终没有出现在QuickBooks的响应结果里。
以下是我使用的QBXML请求和对应的QuickBooks响应内容:
QBXML 请求内容
<!-- 实际发送的QBXML查询请求 --> <?xml version="1.0" encoding="utf-8"?> <?qbxml version="13.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <InvoiceQueryRq> <IncludeLinkedTxns>true</IncludeLinkedTxns> <TxnID>123456</TxnID> <!-- 指定要查询的已付发票TxnID --> </InvoiceQueryRq> </QBXMLMsgsRq> </QBXML>
QuickBooks 响应内容
<!-- QuickBooks返回的响应 --> <?xml version="1.0" encoding="utf-8"?> <QBXML> <QBXMLMsgsRs> <InvoiceQueryRs statusCode="0" statusMessage="Status OK"> <InvoiceRet> <TxnID>123456</TxnID> <TimeCreated>2024-01-01T10:00:00</TimeCreated> <TotalAmt>500.00</TotalAmt> <BalanceRemaining>0.00</BalanceRemaining> <!-- 此处缺少LinkedTxn相关节点 --> </InvoiceRet> </InvoiceQueryRs> </QBXMLMsgsRs> </QBXML>
排查方向&可行解决思路
之前对接QuickBooks的时候我也碰到过类似的关联交易返回问题,给你几个可以尝试的方向:
- 确认QBXML版本兼容性:QB Enterprise 16-US对应的QBXML版本是13.0,一定要确保请求头里的
<?qbxml version="13.0"?>设置正确,低版本QBXML可能不支持完整的LinkedTxn返回逻辑。 - 检查查询参数是否正确:必须在
InvoiceQueryRq节点下明确添加<IncludeLinkedTxns>true</IncludeLinkedTxns>,这个参数是触发返回关联交易的核心开关,漏写的话肯定拿不到LinkedTxn数据。 - 验证关联交易的类型:如果发票是通过
ReceivePayment完成支付的,部分场景下QuickBooks不会把支付交易直接嵌套在Invoice的LinkedTxn里,你可能需要单独调用ReceivePaymentQuery,通过发票TxnID关联查询对应的支付记录。 - 检查Web Connector版本:确保使用的Web Connector版本兼容QB 16,旧版本的Web Connector可能在解析响应时丢失部分节点数据,建议升级到对应兼容的版本再测试。
- 在QB客户端验证数据:先在QuickBooks桌面客户端打开这张已付发票,查看它的“关联交易”记录,确认确实存在已完成的支付关联,排除是数据本身缺失的问题。
希望这些思路能帮你解决问题,欢迎交流更多细节!
内容的提问来源于stack exchange,提问作者KetanP
相关产品推荐
相关产品推荐

