Referência da Webphone API
Gerada a partir da especificação OpenAPI 3.0.3 v1.0.0. Exemplos de resposta são sintéticos e segredos aparecem mascarados.
Bootstrap
Obter dados de bootstrap do usuário
/webphone/user-infoextension_password. Não exponha ao navegador, logs ou analytics.Retorna os dados necessários para iniciar o Webphone do usuário, incluindo `extension_password` (senha SIP sensível).
Precedência dos parâmetros de identificação: userId > userID > userid.
Parâmetros de query
userIdstringopcionalIdentificador do usuário (maior precedência).
userIDstringopcionalIdentificador do usuário (precedência intermediária).
useridstringopcionalIdentificador do usuário (menor precedência).
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X GET "https://clientex.telenova.com.br/fusionapi/webphone/user-info?userId=usuario-123" \
-H "Authorization: Bearer SUA_TENANT_API_KEY" \
-H "Accept: application/json"{
"user_id": "usuario-123",
"active": true,
"extension": "1001",
"extension_password": "•••••••• (EXEMPLO MASCARADO)",
"domain_name": "empresa.telenova.com.br",
"ui_config": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"effective_caller_id_name": "Atendimento 01"
}Teste real desabilitado
Retorna extension_password (senha SIP) e exige a API key do tenant. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Configuração
Listar vínculos do tenant
/webphone/configsLista todos os vínculos de Webphone do tenant, sem paginação e sem filtros.
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X GET "https://clientex.telenova.com.br/fusionapi/webphone/configs" \
-H "Authorization: Bearer SUA_TENANT_API_KEY" \
-H "Accept: application/json"{
"items": [
{
"userId": "usuario-123",
"extension": "1001",
"active": true,
"uiConfig": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"updatedAt": "2025-11-26T10:15:00"
}
]
}Teste real desabilitado
Exige a API key do tenant, que não pode ser usada em um frontend público. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Configuração
Obter vínculo de um usuário
/webphone/configs/{userId}Parâmetros de caminho
userIdstringobrigatórioIdentificador do usuário no sistema do tenant.
Respostas
- 200Vínculo encontrado.WebphoneConfig
- 401Não autenticado ou credencial inválida.ApiError
- 404Recurso não encontrado.ApiError
- 422Dados inválidos.ApiError
- 500Erro interno.ApiError
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X GET "https://clientex.telenova.com.br/fusionapi/webphone/configs/usuario-123" \
-H "Authorization: Bearer SUA_TENANT_API_KEY" \
-H "Accept: application/json"{
"userId": "usuario-123",
"extension": "1001",
"active": true,
"uiConfig": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"updatedAt": "2025-11-26T10:15:00"
}Teste real desabilitado
Exige a API key do tenant, que não pode ser usada em um frontend público. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Configuração
Criar ou substituir vínculo
/webphone/configs/{userId}Cria ou substitui integralmente o vínculo do usuário. extension, active e uiConfig são obrigatórios.
Parâmetros de caminho
userIdstringobrigatórioIdentificador do usuário no sistema do tenant.
Corpo da requisição · application/jsonobrigatório
| Campo | Tipo | Detalhes |
|---|---|---|
extensionobrigatório | string | — |
activeobrigatório | boolean | — |
uiConfigobrigatório | UiConfig | — |
Respostas
- 200Vínculo substituído.WebphoneConfig
- 201Vínculo criado.WebphoneConfig
- 401Não autenticado ou credencial inválida.ApiError
- 404Recurso não encontrado.ApiError
- 409Conflito.ApiError
- 422Dados inválidos.ApiError
- 500Erro interno.ApiError
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X PUT "https://clientex.telenova.com.br/fusionapi/webphone/configs/usuario-123" \
-H "Authorization: Bearer SUA_TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "extension": "1001", "active": true, "uiConfig": { "showDialpad": true, "showHistory": true, "showMute": true, "showHold": true, "showTransfer": true, "showDtmf": true, "showConfig": true, "startAsButton": true, "tabGuard": true, "lockedNumber": "" } }' \
-H "Accept: application/json"{
"userId": "usuario-123",
"extension": "1001",
"active": true,
"uiConfig": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"updatedAt": "2025-11-26T10:15:00"
}Teste real desabilitado
Modifica vínculos e exige a API key do tenant. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Configuração
Atualizar vínculo parcialmente
/webphone/configs/{userId}Envie ao menos uma das propriedades extension, active ou uiConfig.
Atenção: se uiConfig for enviado, ele substitui totalmente o objeto anterior (não há mescla).
Parâmetros de caminho
userIdstringobrigatórioIdentificador do usuário no sistema do tenant.
Corpo da requisição · application/jsonobrigatório
| Campo | Tipo | Detalhes |
|---|---|---|
extension | string | — |
active | boolean | — |
uiConfig | UiConfig | — |
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X PATCH "https://clientex.telenova.com.br/fusionapi/webphone/configs/usuario-123" \
-H "Authorization: Bearer SUA_TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "active": false }' \
-H "Accept: application/json"{
"userId": "usuario-123",
"extension": "1001",
"active": true,
"uiConfig": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"updatedAt": "2025-11-26T10:15:00"
}Teste real desabilitado
Modifica vínculos e exige a API key do tenant. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Configuração
Alterar o userId de um vínculo
/webphone/configs/{userId}/change-idParâmetros de caminho
userIdstringobrigatórioIdentificador do usuário no sistema do tenant.
Corpo da requisição · application/jsonobrigatório
| Campo | Tipo | Detalhes |
|---|---|---|
newUserIdobrigatório | string | Novo identificador do usuário. |
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X POST "https://clientex.telenova.com.br/fusionapi/webphone/configs/usuario-123/change-id" \
-H "Authorization: Bearer SUA_TENANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "newUserId": "usuario-456" }' \
-H "Accept: application/json"{
"userId": "usuario-123",
"extension": "1001",
"active": true,
"uiConfig": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"updatedAt": "2025-11-26T10:15:00"
}Teste real desabilitado
Modifica vínculos e exige a API key do tenant. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Administração
Listar configurações (formato legado)
/webphone/configRetorna todas as configurações no formato legado, sem paginação.
Respostas
- 200Lista de configurações.array<LegacyWebphoneConfig>
- 401Não autenticado ou credencial inválida.ApiError
- 500Erro interno.ApiError
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X GET "https://clientex.telenova.com.br/fusionapi/webphone/config" \
-H "Authorization: Bearer SEU_ADMIN_JWT" \
-H "Accept: application/json"[
{
"user_id": "usuario-123",
"extension": "1001",
"active": true,
"ui_config": {
"showDialpad": true,
"showHistory": true,
"showMute": true,
"showHold": true,
"showTransfer": true,
"showDtmf": true,
"showConfig": true,
"startAsButton": true,
"tabGuard": true,
"lockedNumber": ""
},
"updated_at": "2025-11-26T10:15:00"
}
]Teste real desabilitado
Exige o JWT do painel administrativo e pode retornar ou criar chaves de integração. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Administração
Ativar ou desativar Webphone de um usuário
/webphone/activatetenantApiKey. Não exponha ao navegador, logs ou analytics.Quando active=true, a resposta inclui tenantApiKey.
Corpo da requisição · application/jsonobrigatório
| Campo | Tipo | Detalhes |
|---|---|---|
userIdobrigatório | string | — |
extensionobrigatório | string | — |
activeobrigatório | boolean | — |
uiConfig | UiConfig | — |
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X POST "https://clientex.telenova.com.br/fusionapi/webphone/activate" \
-H "Authorization: Bearer SEU_ADMIN_JWT" \
-H "Content-Type: application/json" \
-d '{ "userId": "usuario-123", "extension": "1001", "active": true, "uiConfig": { "showDialpad": true, "showHistory": true, "showMute": true, "showHold": true, "showTransfer": true, "showDtmf": true, "showConfig": true, "startAsButton": true, "tabGuard": true, "lockedNumber": "" } }' \
-H "Accept: application/json"{
"tenantApiKey": "tnv_•••••••••••• (EXEMPLO MASCARADO)"
}Teste real desabilitado
Exige o JWT do painel administrativo e pode retornar ou criar chaves de integração. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Administração
Consultar chave de integração
/webphone/integration-keyapiKey. Não exponha ao navegador, logs ou analytics.Respostas
- 200Chave atual (ou null).ApiKeyResponse
- 401Não autenticado ou credencial inválida.ApiError
- 500Erro interno.ApiError
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X GET "https://clientex.telenova.com.br/fusionapi/webphone/integration-key" \
-H "Authorization: Bearer SEU_ADMIN_JWT" \
-H "Accept: application/json"{
"apiKey": "tnv_•••••••••••• (EXEMPLO MASCARADO)"
}Teste real desabilitado
Exige o JWT do painel administrativo e pode retornar ou criar chaves de integração. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Administração
Criar ou reutilizar chave de integração
/webphone/integration-keyapiKey. Não exponha ao navegador, logs ou analytics.Cria a chave do tenant ou reutiliza a existente. Não há rotação, revogação ou expiração automática.
Respostas
- 200Chave existente retornada.ApiKeyResponse
- 201Chave criada.ApiKeyResponse
- 401Não autenticado ou credencial inválida.ApiError
- 500Erro interno.ApiError
# Execute SOMENTE no servidor (backend confiável). Nunca no navegador.
curl -X POST "https://clientex.telenova.com.br/fusionapi/webphone/integration-key" \
-H "Authorization: Bearer SEU_ADMIN_JWT" \
-H "Accept: application/json"{
"apiKey": "tnv_•••••••••••• (EXEMPLO MASCARADO)"
}Teste real desabilitado
Exige o JWT do painel administrativo e pode retornar ou criar chaves de integração. Chame somente do seu backend.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Runtime
Carregar script do Webphone
/api/webphoneGera o JavaScript do Webphone. O registro SIP ocorre após o carregamento.
Identificação: userID ou userid (precedência nessa ordem). userId não é aceito nesta rota. Em integração externa, forneça o identificador.
Parâmetros de query
userIDstringopcionalIdentificador do usuário (maior precedência).
useridstringopcionalIdentificador do usuário.
startAsButtonbooleanopcionalInicia o Webphone recolhido como botão.
customCssUrlstring (uri)opcionalURL HTTPS confiável de uma folha de estilo personalizada.
widgetstringopcionalSomente o valor '1' desconsidera a configuração de interface salva, sem alterar dados.
curl -X GET "https://webphone.telenova.com.br/api/webphone?userID=usuario-123" \
-H "Authorization: Bearer SUA_TENANT_API_KEY""string"Teste real desabilitado
Carregaria e executaria o script real do Webphone (com registro SIP) e exigiria a API key do tenant. Use os trechos de integração fictícios.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Runtime
Página do Webphone para iframe
/embedRetorna HTML para incorporação via iframe. Precedência de identificação: userid > userId > userID. O token é obrigatório na query.
Qualquer origem pode incorporar esta página e atualmente não há validação da origem/janela remetente das mensagens postMessage.
Parâmetros de query
useridstringopcionalIdentificador do usuário (maior precedência).
userIdstringopcionalIdentificador do usuário.
userIDstringopcionalIdentificador do usuário (menor precedência).
tokenstringobrigatórioAPI key do tenant (aparece na URL).
startAsButtonbooleanopcionalInicia o Webphone recolhido como botão.
customCssUrlstring (uri)opcionalURL HTTPS confiável de uma folha de estilo personalizada.
widgetstringopcionalSomente o valor '1' desconsidera a configuração de interface salva, sem alterar dados.
curl -X GET "https://webphone.telenova.com.br/embed?userid=usuario-123&token=SUA_TENANT_API_KEY""string"Teste real desabilitado
O token vai na URL e ficaria exposto em histórico do navegador, logs e cabeçalho Referer. O portal também não incorpora o iframe real.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
]
}
}Esquema
UiConfig
| Campo | Tipo | Detalhes |
|---|---|---|
showDialpad | boolean | — |
showHistory | boolean | — |
showMute | boolean | — |
showHold | boolean | — |
showTransfer | boolean | — |
showDtmf | boolean | — |
showConfig | boolean | — |
startAsButton | boolean | — |
tabGuard | boolean | — |
lockedNumber | string | Número fixo para discagem.máx. 64 caracterespadrão ^[0-9+*#().\s-]*$ |
Esquema
WebphoneConfig
| Campo | Tipo | Detalhes |
|---|---|---|
userIdobrigatório | string | — |
extensionobrigatório | string | — |
activeobrigatório | boolean | — |
uiConfigobrigatório | UiConfig | — |
updatedAt | string (date-time) | date-time |
Esquema
PutWebphoneConfig
| Campo | Tipo | Detalhes |
|---|---|---|
extensionobrigatório | string | — |
activeobrigatório | boolean | — |
uiConfigobrigatório | UiConfig | — |
Esquema
PatchWebphoneConfig
| Campo | Tipo | Detalhes |
|---|---|---|
extension | string | — |
active | boolean | — |
uiConfig | UiConfig | — |
Esquema
ActivateInput
| Campo | Tipo | Detalhes |
|---|---|---|
userIdobrigatório | string | — |
extensionobrigatório | string | — |
activeobrigatório | boolean | — |
uiConfig | UiConfig | — |
Esquema
LegacyWebphoneConfig
| Campo | Tipo | Detalhes |
|---|---|---|
user_id | string | — |
extension | string | — |
active | boolean | — |
ui_config | UiConfig | — |
updated_at | string (date-time) | date-time |
Esquema
BootstrapUser
Contém extension_password (senha SIP). Dado sensível.
| Campo | Tipo | Detalhes |
|---|---|---|
user_idobrigatório | string | — |
activeobrigatório | boolean | valores: true |
extensionobrigatório | string | — |
extension_passwordobrigatório | string | Senha SIP do ramal. SENSÍVEL. |
domain_nameobrigatório | string | — |
ui_config | UiConfig | — |
effective_caller_id_name | string | — |
Esquema
ApiKeyResponse
| Campo | Tipo | Detalhes |
|---|---|---|
apiKey | stringpode ser nulo | — |
Esquema
ApiError
| Campo | Tipo | Detalhes |
|---|---|---|
errorobrigatório | object | — |