如何通过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
相关产品推荐
相关产品推荐

