The handful of real breaking changes when migrating from Plivo to Vobiz - XML verb renames, path casing, required status params, webhook signatures, SIP domains, and DID cool-off - plus one common false alarm.
Moving from Plivo to Vobiz is mostly drop-in: the same PascalCase REST paths, the same header-based auth, the same XML control flow, and the same HMAC webhook scheme. You can repoint most of your code at https://api.vobiz.ai and keep going.But a handful of things genuinely bite. This page lists every real breaking change, each with the fix - and calls out one thing that looks like a change but isn’t.
Plivo’s <GetDigits> and <GetInput> verbs are renamed to a single <Gather> verb in VobizXML. Two attributes also rename: type becomes inputType, and timeout becomes executionTimeout.Fix: rename the verb to <Gather>, rename type to inputType, and rename timeout to executionTimeout. <Gather> uses executionTimeout and nevertimeout - if you leave a timeout attribute on <Gather> it is ignored. See XML migration for the full verb-by-verb mapping.
Call endpoints are PascalCase with a trailing slash: POST /api/v1/Account/{auth_id}/Call/. Lowercasing any segment (/account/.../call/) or dropping the trailing slash returns 401, not a helpful error.This is the same convention Plivo uses, so it usually survives a host swap untouched - but it’s easy to break when you hand-edit a URL. Fix: keep Account and Call capitalized and keep the trailing slash; copy the exact path from the matching doc page when in doubt. See Make a call.
The status query param is required when you retrieve in-progress calls. Use ?status=live for live calls or ?status=queued for queued calls.Fix: always send status. Omitting it does not list live calls - it returns the finalized CDR or a 404, which looks like the call vanished. See Make a call.
The webhook signature header changes from X-Plivo-Signature-V3 to X-Vobiz-Signature-V2 / X-Vobiz-Signature-V3. The underlying scheme is identical - HMAC-SHA256 over the URL plus a nonce - so you only swap the header name and point your validator at the new header.Fix: read the signature from X-Vobiz-Signature-V2/V3 and validate with the same HMAC-SHA256-plus-nonce logic you already have. See Webhooks and signatures.
SIP URIs move off Plivo’s domain. sip.plivo.com becomes app.vobiz.ai for applications and <trunk>.sip.vobiz.ai for trunks.Fix: update any hardcoded SIP URIs - in to parameters, dial targets, SIP endpoints, and device configs - to the Vobiz domains.
Unassigning a recently used DID from a sub-account is subject to a 15-day cool-off. If the number had a call within the last 15 days, the unassign is rejected with 409 did_cool_off_in_effect (the response includes cool_off_until and cool_off_remaining_seconds). A DID that was never used moves back immediately.Fix: wait out the cool-off, or have an admin override it with ?force=true (this writes an audit record). See Phone numbers.
The bulk-dial separator did not change. Both Plivo and Vobiz use the < separator to pass multiple destinations in the to parameter (for example 14157654321<14153464321). There were never commas to “fix” - leave your to strings exactly as they are. Swapping < for , will break bulk dialing on Vobiz.