403 Forbidden on POST /api/v2/conversations/calls with valid JWT

How should I properly to initiate an outbound call on behalf of an agent using the Conversations API when the agent is not explicitly listed as a participant in the request body?

Background

I am building a quality automation script that needs to trigger test calls. I am using the genesys-cloud-node-sdk to call POST /api/v2/conversations/calls.

Issue

The request returns 403 Forbidden. The payload is minimal:

{
 "type": "outbound",
 "to": {"phoneNumber": "+15550001234"},
 "from": {"phoneNumber": "+15550009999"},
 "participants": [
 {
 "id": "agent-user-id",
 "role": "agent"
 }
 ]
}

The JWT has conversations:write and quality:write scopes. The user ID exists and is active.

Troubleshooting

  • Verified the agent is not on break.
  • Checked that the IVR configuration allows the from number.
  • Tried adding callType: "outbound" to the root object. No change.
  • The error message is generic: Access denied. Is there a specific permission on the user profile or a different API endpoint for programmatic agent dialing?