Predictive Routing API 400 on BYOC Trunk ID mapping

I’m curious as to why the /api/v2/outbound/campaigns endpoint returns a 400 Bad Request when linking a BYOC trunk ID to a predictive dialer campaign? The trunk is active and registered in the Singapore region, but the validation fails during the final configuration step.

Environment details:

  • Genesys Cloud Version: 2024-09.0
  • Region: ap-southeast-1 (Singapore)
  • Trunk Type: BYOC SIP
  • Error Code: 400 (Invalid trunk association for predictive routing)

TL;DR: The trunk_id in the payload must match the internal Genesys Cloud resource identifier, not the external carrier-assigned DID or SIP URI.

Check your outbound campaign configuration payload. The 400 Bad Request typically occurs when the trunk_id field contains the external SIP trunk name or a partial identifier instead of the full UUID assigned by Genesys Cloud during the BYOC setup.

Retrieve the correct identifier via GET /api/v2/telephony/providers/edges/{edgeId}/trunks. Locate the id field corresponding to your Singapore trunk. This UUID must be passed explicitly in the campaign’s settings object.

Example payload structure:

{
 "settings": {
 "trunk_id": "a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8",
 "dialer": "predictive"
 }
}

Ensure the trunk status is ACTIVE and that no regional restrictions prevent predictive routing in ap-southeast-1. If the trunk was recently provisioned, wait for the full propagation cycle (approx. 15 minutes) before retrying the API call.