You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Xero API上传文件至现有发票时遇请求处理错误排查求助

Xero API发票附件上传VBA代码排查

问题描述

尝试通过Xero API将文件上传至现有发票始终失败,认证环节无异常(可正常通过API获取文件)。以下是测试用VBA代码及返回错误信息,需排查问题根源是代码还是Xero API本身。

测试代码

Dim URL As String
Dim http As Object
Dim invfilepath As String
Dim bdy As String

Set http = CreateObject("MSXML2.XMLHTTP")
guidtarget = "995f6b3e-085b-4ec7-82e5-f8b78235f8e3"   '目标发票GUID

URL = "https://api.xero.com/api.xro/2.0/Invoices/" & guidtarget & "/Attachments/test.txt"

bdy = "This is a test"
toke = Trim(DLookup("[Access_token]", "Xero_Tokens"))   '获取当前token
tid = get_registry("Tenant_ID", "")                    '获取租户ID

http.Open "POST", URL, False
http.setRequestHeader "Authorization: ", "Bearer " & toke
http.setRequestHeader "xero-tenant-id: ", tid
http.setRequestHeader "Content Type:", "text/plain"
http.Send bdy

responsedata = http.responseText

Me!resp = responsedata

返回错误信息

An error occurred while processing your request.
Reference #253.95b92917.1711691972.45a51cbe
https://errors.edgesuite.net/253.95b92917.1711691972.45a51cbe

排查分析与修正方案

1. 请求头格式错误(核心问题)

setRequestHeader的第一个参数不能带末尾冒号,且Content Type的标准HTTP头名称是Content-Type(连字符而非空格)。错误的头格式会导致服务器无法解析请求,直接返回通用错误。

修正后的请求头代码:

http.setRequestHeader "Authorization", "Bearer " & toke
http.setRequestHeader "xero-tenant-id", tid
http.setRequestHeader "Content-Type", "text/plain"

2. API端点与文件名处理

Xero官方文档中,发票附件上传的标准端点为https://api.xero.com/api.xro/2.0/Invoices/{InvoiceID}/Attachments,文件名通常通过请求头Xero-FileName指定,而非直接拼在URL中。建议调整端点并添加文件名头:

URL = "https://api.xero.com/api.xro/2.0/Invoices/" & guidtarget & "/Attachments"
http.setRequestHeader "Xero-FileName", "test.txt"

3. 请求内容格式验证

部分场景下Xero API要求用multipart/form-data格式上传附件,若修正头信息后仍失败,可尝试改用表单格式发送内容(需构造multipart请求体)。

后续排查步骤

  • 用Postman等工具模拟符合规范的请求,验证API端点、token、租户ID的有效性。
  • 登录Xero开发者平台查看详细错误日志,获取比边缘节点通用错误更具体的信息。
  • 对照Xero API官方文档(发票附件上传章节),确认所有请求参数、头信息符合要求。

内容的提问来源于stack exchange,提问作者Stacky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:17:17