我正在使用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获得联系人、帐户和税务类型,只是在尝试发布发票时获得禁止的403消息。
如果您能提供任何帮助,我们将不胜感激。
发布于 2020-06-09 11:48:22
如果你得到的是403禁止,你需要检查你用来进行post调用的帐户的权限。
读取有关帐户权限的See here
除了上面的链接
How do I check a user's access permissions
若要确切了解当前用户拥有哪些权限,并确保他们具有应用程序正常运行所需的正确权限,请向{{company_file_uri}}/{{company_file_id}}/CurrentUser终结点发出GET请求。
下面的响应告诉您用户对每个url拥有哪些权限。
{
"UserAccess": [
{
"ResourcePath": "https://{{company_file_uri}}/{{company_file_id}}/Banking/BankAccount/",
"Access": [
"GET"
]
},
{
"ResourcePath": "https://{{company_file_uri}}/{{company_file_id}}/Banking/ReceiveMoneyTxn/",
"Access": [
"GET",
"POST",
"PUT",
"DELETE"
]
},
...
]
}https://stackoverflow.com/questions/62273715
复制相似问题