QuickBooks生产API如何获取Vendor的TDS、GSTIN等额外字段
QuickBooks 读取Vendor端点生产环境缺失印度本地化税务字段解决方法
问题现象
调用QuickBooks官方API Explorer读取Vendor端点时,响应会携带TDSEnabled、TDSEntityTypeId、TDSSectionTypeId、TDSOverrideThreshold、GSTIN、GSTRegistrationType等字段,但调用生产环境端点quickbooks.api.intuit.com时,上述字段缺失。
Intuit官方API Explorer返回响应示例
{ "Vendor": { "BillAddr": { "Id": "9", "Line1": "31/2-34/2B, G01, Ground Floor (P V Enclave, V-Step Road)", "Line2": "Kempapura", "City": "Bangalore", "Country": "India", "CountrySubDivisionCode": "karnataka", "PostalCode": "560037" }, "BusinessNumber": "ABPFA3772K", "Balance": 12960, "BillRate": 0, "Vendor1099": false, "CurrencyRef": { "value": "INR", "name": "Indian Rupee" }, "TDSEnabled": true, "TDSEntityTypeId": 2, "TDSSectionTypeId": 20, "TDSOverrideThreshold": false, "GSTIN": "29ABPFA3772K1ZT", "GSTRegistrationType": "GST_REG_REG", "CostRate": 0, "domain": "QBO", "sparse": false, "Id": "5", "SyncToken": "3", "MetaData": { "CreateTime": "2021-11-29T04:13:02-08:00", "LastUpdatedTime": "2022-06-19T11:18:01-07:00" }, "CompanyName": "Asyncauto", "DisplayName": "Asyncauto", "PrintOnCheckName": "Asyncauto", "Active": true, "V4IDPseudonym": "002085e0c7fca007484293913d58943f84b215", "PrimaryPhone": { "FreeFormNumber": "1231231234" }, "PrimaryEmailAddr": { "Address": "123123@mralbert.in" } }, "time": "2022-06-19T19:00:23.349-07:00" }
生产环境端点返回响应示例
{ "Vendor": { "BillAddr": { "Id": "9", "Line1": "31/2-34/2B, G01, Ground Floor (P V Enclave, V-Step Road)", "Line2": "Kempapura", "City": "Bangalore", "Country": "India", "CountrySubDivisionCode": "karnataka", "PostalCode": "560037" }, "BusinessNumber": "ABPFA3772K", "Balance": 12960.00, "Vendor1099": false, "CurrencyRef": { "value": "INR", "name": "Indian Rupee" }, "domain": "QBO", "sparse": false, "Id": "5", "SyncToken": "3", "MetaData": { "CreateTime": "2021-11-29T04:13:02-08:00", "LastUpdatedTime": "2022-06-19T11:18:01-07:00" }, "CompanyName": "Asyncauto", "DisplayName": "Asyncauto", "PrintOnCheckName": "Asyncauto", "Active": true, "PrimaryPhone": { "FreeFormNumber": "1231231234" }, "PrimaryEmailAddr": { "Address": "123123@mralbert.in" } }, "time": "2022-06-19T19:04:59.703-07:00" }
解决步骤
按以下顺序检查配置,即可在生产环境响应中拿到缺失字段:
- 确认QuickBooks Online公司所属区域:上述缺失的TDS(印度源头扣税)、GST(印度商品服务税)字段均为印度区域专属本地化字段,仅印度区QBO公司支持返回对应字段,非印度区公司无此功能,接口不会返回相关字段。
- 请求携带正确的minorversion请求头:印度本地化税务字段从minorversion 40版本开始逐步对外开放,API Explorer默认会携带当前最新的minorversion版本调用,生产环境调用如果未指定该参数,会使用极低的默认版本,自动过滤高版本才支持的区域字段。调用时在请求头添加
minorversion: 65即可(65为当前兼容的稳定高版本,可根据实际情况选择不低于40的版本)。如果使用官方SDK调用,需要检查SDK配置的minorversion参数,不要使用SDK默认的低版本配置。 - 关闭SDK的响应字段自动裁剪:部分低版本官方SDK内置了全局字段白名单,仅保留文档标注的全球通用字段,印度本地化字段不在默认白名单内,会被SDK自动过滤。遇到这种情况可以直接发送原生HTTP请求调用接口,或者修改SDK的字段过滤逻辑,关闭自动裁剪功能。
- 确认QBO后台税务配置已开启:登录对应QBO公司后台,检查是否已经开启TDS扣税功能、是否已完成GST信息注册并填写了对应供应商的GSTIN、TDS配置。如果后台本身未开启对应功能、未填写相关信息,即使接口支持返回该类字段,也不会带出对应值。
内容的提问来源于stack exchange,提问作者Echo Alex
相关产品推荐
相关产品推荐

