Trying to bypass the standard Messenger widget and send messages directly via the Guest API. We need to trigger a conversation from a legacy web form without loading the full SDK UI. The docs say I can POST to /api/v2/conversations/messaging/messages with a to object and a text body. I’ve got a valid conversationId from an existing thread, but the API keeps rejecting the payload with a 400 Bad Request. The error message is vague: Invalid message payload. Here’s the JSON I’m sending:
{
"to": {
"id": "conv_12345abc",
"type": "conversation"
},
"text": "Test message from backend service"
}
I’m using a service account token with conversations:view and conversations:write scopes. The token works fine for other endpoints. I’ve tried adding a from object with a guest identity, but that just adds more noise. The conversation exists and is active. I’m checking the Berlin logs and nothing stands out. Is there a specific format for the to object when using the Guest API that isn’t in the docs? The standard SDK handles this automatically, but we’re trying to avoid the dependency. Any ideas why the payload is invalid?