API actions/approvals endpoint returns UNAPPROVABLE despite user having full permissions and being the assigned approver

API actions/approvals endpoint returns UNAPPROVABLE despite user having full permissions and being the assigned approver

Hi Team,

We are trying to programmatically approve a record via the CRM API but consistently receive an UNAPPROVABLE error, even though the same user can approve the record without issue from the UI.

Endpoint called:
POST https://www.zohoapis.com/crm/v6/{module}/{record_id}/actions/approvals

Request body:

{
  "approval": {
        "action": "approve",
        "comments": "Approved via API"
  }
}

Error received:

{
    "code": "UNAPPROVABLE",
    "details": {
        "id": "7056278000025150001"
    },
    "message": "You are not allowed to approve this record",
    "status": "error"
}

$approval metadata for this same record (from GET), confirming approval is allowed:

"$approval": {
                "delegate": true,
                "takeover": false,
                "approve": true,
                "reject": true,
                "resubmit": false
            },

OAuth scope on the token used:
ZohoCRM.modules.ALL ZohoCRM.settings.ALL

What we have confirmed so far:

  • The user associated with the OAuth token is the correctly assigned approver for this record (visible under Approvals tab in the CRM UI, with an active "Respond" action).
  • The same user can successfully approve this exact record from the CRM UI.
  • The token's scope includes ZohoCRM.modules.ALL, which per your documentation should include the modules.approvals method.
  • Module: EOI (custom module)

Could you please help me resolve this? Or if there's a different/correct endpoint I should be using for this, could you guide me on how to use it correctly?

Thanks, 
Nishad M