Connect a BYO subaccount or elect the platform account
const url = 'https://api.vocapable.com/v1/telephony-accounts';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"mode":"byo","provider":"twilio","credentials":{"account_sid":"example","auth_token":"example"},"a2p_brand_ref":"example","ftc_san_refs":[{"san":"example","area_codes":["example"]}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.vocapable.com/v1/telephony-accounts \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "mode": "byo", "provider": "twilio", "credentials": { "account_sid": "example", "auth_token": "example" }, "a2p_brand_ref": "example", "ftc_san_refs": [ { "san": "example", "area_codes": [ "example" ] } ] }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Connect a BYO subaccount, or elect the platform account with mode: managed.
object
Carrier credentials on their way to the vault. Never present on a response.
SecretStr so a body that reaches a log line, a traceback, or a validation error
renders as ********** rather than a usable secret (docs/10-security.md §secrets).
The two fields are the incumbent’s credential pair, and pinning them here is deliberate: the vault beneath stores an arbitrary flat map and the account row holds an opaque text reference, so a second carrier’s credential shape is a change to this model plus its readers - a contracts change, never a migration (ADR-0030 decision 8).
object
One FTC Subscription Account Number and the area codes it covers (CANON fact 5).
object
Responses
Section titled “Responses”Successful Response
An account as its tenant sees it - credential material is structurally absent.
object
One FTC Subscription Account Number and the area codes it covers (CANON fact 5).
object
Example
{ "mode": "byo", "verification_status": "pending"}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}