Convert a lead into a customer (partner-api)
Creates a customer under the lead's partner (named after the lead's email), marks the lead converted and emails the lead your signup link so they can set up their own PBX, exactly as Convert does in the portal. Runs once: converting a converted lead answers 422. No request body.
Required scopes: partner-api and partner-leads-write.
Partner API key. A bearer token that a Reseller Admin generates in the partner
portal under Settings, API keys. It belongs to the reseller partner, not to a
person, and carries the scopes ticked at creation time. Send it on every request as
Authorization: Bearer <partner_api_key>.
Every response is confined to the partner the key belongs to. Keep the key secret and call the API from your server only, never from a browser app.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <partner_api_key>
application/jsonResponses
dataobject
550e8400-e29b-41d4-a716-446655440101prospect@example.comCHfr550e8400-e29b-41d4-a716-446655440201Business Trialnew contacted qualified converted lostnewAsked for a callback on Monday.2026-10-28T09:12:00+00:002026-10-29T14:05:00+00:00customerobject
550e8400-e29b-41d4-a716-446655440001Sales Team Inc1user@example.com+12125550101addressobject
Main Street1210001New YorkUScrm-42planobject | null
550e8400-e29b-41d4-a716-446655440020Business22025-03-10T10:15:00+00:002026-09-02T16:45:00+00:00This API key is missing a required scope.required_scopesarray<string>
This API key is missing a required scope.required_scopesarray<string>
errorsobject
https://cockpit.voxbi.com/api/v1/api/v1/leads/{lead}/convert
curl -X POST 'https://cockpit.voxbi.com/api/v1/api/v1/leads/{lead}/convert' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/api/v1/leads/{lead}/convert', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.post('https://cockpit.voxbi.com/api/v1/api/v1/leads/{lead}/convert',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/api/v1/leads/{lead}/convert', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": { … },
"customer": { … }
"address": { … },
{ … }
application/json{ … }
application/json{ … }
application/json{ … }
"errors": { … }
"status": [ … ]
application/json{ … }
30application/json