Checked the formatting. No spaces. The E.164 prefix is there. scripts work fine with these numbers. Is the API expecting a specific URI scheme like tel:+1… instead of just the string? Tried that too. Still fails.
The to object usually needs a name field, not just phoneNumber. Try adding that. Also, make sure your from number is actually a provisioned outbound caller ID in Genesys Cloud. The API validates that the originator exists and is permitted to call that destination. Check your telephony settings.
adding the name field didn’t fix it. turns out the issue was the from number. it wasn’t fully provisioned in the telephony settings for outbound use. once i added it to the allowed caller IDs, the 400 vanished.