How do I make a PUT request to QBO using Zapier?
I am thrilled to see the custom App Extensions feature as part of Zapier. However, I am trying to use it with Quickbooks and seem to have run into a problem.
I am simply trying to “SEND” an estimate. Zapier has a good integration with QBO already, but is sadly missing this very important function.
When using the App Extensions for a GET request, everything works fine. But when I try a PUT request it fails with error 405. From the QBO developer docs it appears that an “Authorization” header is missing. Below are the responses provided by Zapier for each request.
{
"request": {
"method": "GET",
"url": "https://quickbooks.api.intuit.com/v3/company/<realmID>/estimate/669",
"querystring": {},
"headers": {},
"body": ""
},
"response": {
"status": 200,
"headers": {
"date": "Fri, 23 Jun 2023 21:21:00 GMT",
"content-type": "application/json;charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"intuit_tid": "<deleted>",
"x-spanid": "<deleted>",
"x-amzn-trace-id": "<deleted>",
"x-content-type-options": "nosniff",
"x-xss-protection": "1; mode=block",
"qbo-version": "2007.158",
"service-time": "total=80, db=23",
"expires": "0",
"content-encoding": "gzip",
"cache-control": "max-age=0, no-cache, no-store, must-revalidate, private",
"x-envoy-upstream-service-time": "109",
"strict-transport-security": "max-age=31536000",
"server": "envoy"
},
"data": {
"Estimate": {
"ExpirationDate": "2023-07-23",
"domain": "QBO",
"sparse": false,
....
However, when using a PUT request, I get a 405 error.
{
"request": {
"method": "PUT",
"url": "https://quickbooks.api.intuit.com/v3/company/<realmID>/estimate/669/send",
"querystring": {},
"headers": {},
"body": "{\n\"sparse\": true, \n\"EmailStatus\": \"NeedToSend\",\n}"
},
"response": {
"status": 400,
"headers": {
"date": "Fri, 23 Jun 2023 21:06:33 GMT",
"content-type": "application/json",
"content-length": "236",
"connection": "keep-alive",
"intuit_tid": "<deleted>",
"x-spanid": "<deleted>",
"x-amzn-trace-id": "<deleted>",
"x-content-type-options": "nosniff",
"x-envoy-upstream-service-time": "46",
"strict-transport-security": "max-age=31536000",
"server": "envoy"
},
"data": {
"Fault": {
"Error": >
{
"Message": "Unsupported Operation",
"Detail": "Operation No resource method found for PUT, return 405 with Allow header is not supported.",
"code": "500"
}
],
"type": "ValidationFault"
},
"time": "2023-06-23T14:06:33.695-07:00"
},
"body": "{\"Fault\":{\"Error\":a{\"Message\":\"Unsupported Operation\",\"Detail\":\"Operation No resource method found for PUT, return 405 with Allow header is not supported.\",\"code\":\"500\"}],\"type\":\"ValidationFault\"},\"time\":\"2023-06-23T14:06:33.695-07:00\"}"
}
}