POST /api/v2/conversations/calls returning 400 — malformed participant address

Running into a 400 Bad Request when trying to initiate an outbound call via the Genesys Cloud API from our Kotlin backend. The error payload keeps flagging a malformed participant address, but the JSON structure looks identical to the working examples in the docs.

Here’s the request body I’m sending:

{
 "to": {
 "phoneNumber": "+15551234567",
 "phoneNumberType": "work"
 },
 "from": {
 "phoneNumber": "+15559876543",
 "phoneNumberType": "work"
 }
}

The response comes back with:

{
 "errors": [
 {
 "code": "malformedRequest",
 "message": "Malformed participant address"
 }
 ]
}

I’ve tried changing phoneNumberType to mobile and home, but no luck. The phone numbers are definitely valid E.164 formatted strings. Is there a specific format requirement for the to object that’s not documented? Or maybe an issue with how the SDK serializes the nested map?

Using genesys-cloud-kotlin v4.2.1.