POST /api/v2/conversations/calls returning 403 Forbidden when trying to initiate outbound call for agent

Hey folks,

I’m trying to build a small tool to help our team initiate outbound calls on behalf of specific agents. We are currently hitting a wall with the Genesys Cloud API. The goal is to use the POST /api/v2/conversations/calls endpoint to create a call where the agent is the caller.

Here is the JSON payload I am sending in the request body:

{
 "to": {
 "phoneNumber": "+15551234567"
 },
 "from": {
 "phoneNumber": "+15559876543"
 },
 "routing": {
 "type": "user",
 "userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 }
}

The userId corresponds to an active agent in our Chicago queue. I have verified that the user is available and not on a break. The API application has the call:write and conversation:write permissions enabled in the Developer Portal.

When I send this request via Postman using a bearer token generated from our service account, I get a 403 Forbidden response. The error message is quite generic:

{"code":"forbidden","message":"You do not have permission to perform this operation."}

I’ve checked the permissions on the service account again. It has the “Administrator” role assigned. I also tried adding the call:transfer permission just in case, but that didn’t change anything. The documentation for this endpoint isn’t super detailed about what specific permissions are needed beyond the basic ones.

Is there a specific capability or role permission I am missing? Or maybe the routing.type needs to be something other than user? I’ve looked at the examples in the docs, but they don’t seem to cover this specific use case of initiating a call for another user programmatically.

Any help would be appreciated. I’m stuck on this for a couple of days now.