【发布时间】:2020-06-09 01:42:51
【问题描述】:
我正在使用 RestSharp 向 MYOB 推送发票。
RestClient myobPostInvoicesClient = new RestClient("https://api.myob.com/");
RestRequest myobPostInvoicesRequest = new RestRequest("au/essentials/businesses/" + business_uid + "/sale/invoices", Method.POST);
myobPostInvoicesRequest.AddHeader("Authorization", "Bearer " + access_token);
myobPostInvoicesRequest.AddHeader("x-myobapi-key", clientId);
myobPostInvoicesRequest.AddHeader("x-myobapi-version", "v0");
myobPostInvoicesRequest.AddHeader("Content-Type", "application/json");
我发送到端点的 JSON 如下
{{
"contact": {
"uid": "26939970"
},
"invoiceNumber": "IV00000000082",
"issueDate": "2020-06-07T09:00:00",
"dueDate": "2020-07-07T09:00:00",
"gstInclusive": "true",
"status": "Open",
"lines": [
{
"unitOfMeasure": "Qty",
"quantity": 5.0,
"unitPrice": 1000.0,
"total": 5000.0,
"taxType": {
"uid": "10"
},
"account": {
"uid": "9"
},
"description": "Test Description"
}
]
}}
我从 MYOB Invoice API 端点得到的响应是
"{\"errors\":[{\"field\":\"\",\"message\":\"Forbidden\",\"code\":\"403\"}]}"
访问令牌和客户端 ID 均有效,我根据以下链接遵循发票的结构
https://developer.myob.com/api/essentials-accounting/endpoints/sale/invoices/
我在请求中包含之前标记为必填但 MYOB 已修改 UI 的字段。
仅供参考,我可以从 MYOB 获取联系人、帐户和税款类型,只需返回 Forbidden 403 消息以尝试发布发票。
您能提供的任何帮助将不胜感激。
【问题讨论】:
-
使用 postman 测试一些 Get 调用...如果它们有效,然后尝试使用 postman 中的选项创建 c# 代码...找出差异并更新您的调用。
-
我可以从 MYOB 获取联系人、帐户和税种。他们回来得很好。
-
那么您使用的帐户很可能没有发布数据的权限
-
MYOB 上是否有任何页面可供您参考,我可以在哪里启用 POST 权限?我在与 AccountRight 集成时没有遇到此问题。