DID Routing

Activate the number

Complete provisioning after KYC is verified: the number is purchased, assigned to your workspace, and inbound routing is configured so the chosen agent answers calls. Requires job status `kyc_verified` or later.

POST
/dids/managed/{jobId}/finalize

Complete provisioning after KYC is verified: the number is purchased, assigned to your workspace, and inbound routing is configured so the chosen agent answers calls. Requires job status kyc_verified or later.

Authorization

ApiKeyAuth
X-API-Key<token>

Voice platform authentication secret. Create one from the API Keys endpoint or your dashboard.

In: header

Path Parameters

jobId*string

Provisioning job id.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/dids/managed/string/finalize" \  -H "Content-Type: application/json" \  -d '{    "agentId": "agt_8skd92ja"  }'
{  "id": "job_9f2ka",  "status": "active",  "selectedDidNumber": "+911408620000",  "steps": [    {      "label": "Number reserved",      "status": "completed"    },    {      "label": "KYC verified",      "status": "completed"    },    {      "label": "Number purchased & assigned",      "status": "completed"    },    {      "label": "Inbound routing configured",      "status": "completed"    },    {      "label": "Status webhook configured",      "status": "completed"    },    {      "label": "Ready for inbound calls",      "status": "completed"    }  ],  "did": {    "id": "did_81mm9",    "didNumber": "+911408620000",    "provider": "carrier",    "mode": "managed",    "countryCode": "IN",    "didType": "mobile",    "agentId": "agt_8skd92ja",    "isDefault": false,    "provisioningStatus": "active",    "updatedAt": "2026-06-18T11:30:00Z"  }}
{  "statusCode": 400,  "message": [    "name should not be empty"  ],  "error": "Bad Request"}
{  "statusCode": 401,  "message": "Unauthorized",  "error": "Unauthorized"}