Guest API: Sending messages without the widget via /api/v2/conversations

Hey folks,

We’re trying to build a custom chat UI for a client who doesn’t want the standard Genesys Messenger widget. The idea is to use the Guest API to handle the conversation lifecycle entirely from our own frontend code.

I can successfully create a conversation using POST /api/v2/conversations with the mediaType set to webchat. The response gives me the conversationId and the guestToken, which looks good so far.

The issue comes when trying to send the first message. I’m hitting POST /api/v2/conversations/{id}/guests/messages with the following payload:

{
 "text": "Hello from custom UI",
 "senderId": "guest-123"
}

I’m passing the guestToken in the header, but I keep getting a 403 Forbidden. I’ve double-checked that the token hasn’t expired and that it matches the conversation ID.

Is there a specific permission scope I’m missing for the Guest API? Or is there a step between creating the conversation and sending the first message that I’m skipping? The docs are a bit light on the sequence of events for headless implementations.

Thanks.