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

如何通过Business Central API更新销售发票状态或标记为已付?

如何通过Microsoft Business Central API更新销售发票状态为已付?

问题背景

我尝试通过Microsoft Business Central的销售发票更新API修改销售发票状态,过程中遇到了以下问题:

初始请求及错误

使用的cURL命令如下:

curl --location --request PATCH 
https://api.businesscentral.dynamics.com/v2.0/<tenant id>/<environment name>/api/v2.0/companies(<company id>)/salesInvoices(<sales invoice id>)
--header 'Authorization: Bearer <token>'
--header 'If-Match: <valid etag>'
--header 'Content-Type: application/json'
--data-raw '{"status": "Paid"}'

请求返回的响应:

  • 状态码:400 Bad Request
  • 响应体:
<error xmlns="https://docs.oasis-open.org/odata/ns/metadata">
    <code>RequestDataInvalid</code>
    <message>Request data is invalid.</message>
</error>

我已经确认tenant id、environment name、company id、销售发票id以及eTag都是正确的,同时不解为什么响应格式是application/xml。

后续排查后新问题

我找到了第一个错误的原因:从GET API获取的ETag里带有反斜杠,需要移除后再传给PATCH API。但修正后又遇到新的错误:

Control 'status' is read-only. CorrelationId: <id>

核心疑问

如何通过API更新Microsoft Business Central中销售发票的状态?或者说,怎么通过API把销售发票标记为已付(Paid)?


内容的提问来源于stack exchange,提问作者Jignesh M. Khatri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:05:31