Decide document workflow

POST/api/v1/documents/{ref}/workflow-decision

Approve or reject a pending document workflow

Permission

An OAuth access token with this scope. How to get a token

workflows:approve
Approve or reject workflows.

Parameters

Not sure what to enter? Here’s where to find IDs.

refpath · stringrequired
The document’s number, shown as #1234 in the ID column of your documents list and beside the title in the editor. Enter it without the #. In API responses it’s displayId.Matches ^\d+$.
client_idquery · stringrequired
The Client ID of your OAuth client. It’s public, and goes on every request alongside your access token. Find it in QuoteCloud under Settings → API dashboard → Manage Integrations → OAuth Clients.Length at least 1.

Request body

Sent as application/json.

resultstringrequired
One of approved, rejected.
reasonstring

Responses

200Workflow decision applied.
dataobjectrequired
Fields
idstringrequired
documentRefstringrequired
resultstringrequired
One of approved, rejected.
statusstringrequired
approvalsRemainbooleanrequired
400Invalid request or validation failure.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
401Missing or invalid bearer token or client ID.
errorstringrequired
error_descriptionstring
403Insufficient scope, missing add-on, usage limit, or permission denial.

Exactly one of these:

OAuthError
errorstringrequired
error_descriptionstring
ApiErrorEnvelope
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired
404Requested resource was not found in the token's company.
dataobjectrequired
Fields
statusstringrequired
Always error.
messagestringrequired
codestring
documentRefstring
assetGenerationIdstring
errorsarray of object
Item fields
fieldstringrequired
messagestringrequired

Rate limit

120 requests a minute per company, shared across REST, Zapier and MCP. On a 429, wait for Retry-After.