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

Django项目调用Xero API删除付款失败,寻求解决方案

删除Xero付款接口调用失败问题

我是首次提问,迫切希望找到解决方案。我正在运行一个Django项目,其中一个功能是删除Xero中的付款。查阅文档后,我认为只需在resourceID中传入参数即可完成操作,但收到如下错误:

{"Title":"An error occurred","Detail":"An error occurred in Xero. Check the API Status page http://status.developer.xero.com for current service status.","Status":500,"Instance":"f137f1e1-4011-43ed-b921-1e1827a90dad"}

以下是我的代码片段:

for paymentID in payment_IDs:
    token = XeroOAuth2Token.objects.latest('id')
    delete_payment_endpoint = f'https://api.xero.com/api.xro/2.0/Payments/{paymentID}'

    headers_del_payments = {
        "Authorization":f"Bearer {token.access_token}",
        "Xero-Tenant-Id": TENANT_ID,
        "Accept": "application/json",
        "Content-Type": "application/json"
    }

    response = requests.post(delete_payment_endpoint, headers=headers_del_payments)
    return HttpResponse(response.text)

我尝试在请求体中添加Status:DELETE或paymentID:{ID here},但返回了Error14:

{ "ErrorNumber": 14, "Type": "PostDataInvalidException", "Message": "Invalid Json data" }

问题分析与解决

核心问题:请求方法错误

Xero的付款删除接口要求使用**DELETE HTTP方法**,你当前使用的POST方法不符合接口规范,这是触发500错误的主要原因。

次要问题:多余的请求体

删除付款不需要任何请求体参数,你添加的Status:DELETE或paymentID内容完全多余,反而会因为格式不符合要求触发PostDataInvalidException(Error14)。

修正后的代码

for paymentID in payment_IDs:
    token = XeroOAuth2Token.objects.latest('id')
    delete_payment_endpoint = f'https://api.xero.com/api.xro/2.0/Payments/{paymentID}'

    headers_del_payments = {
        "Authorization":f"Bearer {token.access_token}",
        "Xero-Tenant-Id": TENANT_ID,
        "Accept": "application/json"
    }

    # 替换为DELETE请求,无需请求体
    response = requests.delete(delete_payment_endpoint, headers=headers_del_payments)
    return HttpResponse(response.text)

额外排查点

  1. 确认TENANT_ID和access_token是否有效,过期或错误的凭证也可能引发500错误。
  2. 检查目标付款是否处于可删除状态——Xero中部分已关联对账等不可撤销操作的付款无法被删除。

内容的提问来源于stack exchange,提问作者Mark Francis Beltran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:02:52