Open Messaging API: Quick Reply payloads rejected with 400 Bad Request

We’re trying to push structured messages (specifically quick replies) back to guests via the Genesys Cloud Open Messaging API. I’ve been digging through the docs and the OpenAPI spec, but the validation seems stricter than expected.

Here’s the payload I’m sending to /api/v2/conversations/messaging/messages:

{
 "to": [
 {
 "id": "guest-12345-67890",
 "type": "guest"
 }
 ],
 "text": "Please select an option:",
 "quickReplies": [
 {
 "title": "Yes",
 "value": "yes_val"
 },
 {
 "title": "No",
 "value": "no_val"
 }
 ]
}

The API responds with a 400 Bad Request. The error body is pretty opaque:

{
 "code": "bad_request",
 "message": "Invalid message payload",
 "errors": [
 "Field 'quickReplies' is not valid for this conversation type."
 ]
}

I’ve verified that the conversation ID is definitely a Web Messaging channel (not SMS or Email). I can send plain text messages to the same guest without issue. It’s just the structured data that fails.

I’ve tried:

  1. Removing the text field and sending only quickReplies. Same 400 error.
  2. Changing the quickReplies structure to match the actions format seen in some older forum posts. Still fails.
  3. Checking the guest’s capabilities via the Participant API. It shows supportsQuickReplies: true.

Is there a specific header I’m missing? Or is this API endpoint actually not supporting quick replies for Web Messaging guests yet, despite what the schema suggests? I’m using the Python SDK to build the request, but I’ve also tested it directly in Postman to rule out SDK serialization bugs. The behavior is identical.

Any ideas on the correct payload structure for Web Messaging quick replies? The documentation is silent on this specific error message.