Pular para o conteúdo
Telenova Developers

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.

O teste real (“Try it”) está desabilitado para todas as rotas desta API neste portal.

Bootstrap

Obter dados de bootstrap do usuário

GET/webphone/user-info
https://{cliente}.telenova.com.br/fusionapi TenantApiKeygetWebphoneUserInfosomente backend confiável
A resposta contém dado sensível: extension_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

  • userIdstringopcional

    Identificador do usuário (maior precedência).

  • userIDstringopcional

    Identificador do usuário (precedência intermediária).

  • useridstringopcional

    Identificador do usuário (menor precedência).

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Configuração

Listar vínculos do tenant

GET/webphone/configs
https://{cliente}.telenova.com.br/fusionapi TenantApiKeylistWebphoneConfigssomente backend confiável

Lista todos os vínculos de Webphone do tenant, sem paginação e sem filtros.

Respostas

  • 200Lista de vínculos.object
  • 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/configs" \
  -H "Authorization: Bearer SUA_TENANT_API_KEY" \
  -H "Accept: application/json"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Configuração

Obter vínculo de um usuário

GET/webphone/configs/{userId}
https://{cliente}.telenova.com.br/fusionapi TenantApiKeygetWebphoneConfigsomente backend confiável

Parâmetros de caminho

  • userIdstringobrigatório

    Identificador do usuário no sistema do tenant.

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Configuração

Criar ou substituir vínculo

PUT/webphone/configs/{userId}
https://{cliente}.telenova.com.br/fusionapi TenantApiKeyputWebphoneConfigsomente backend confiável

Cria ou substitui integralmente o vínculo do usuário. extension, active e uiConfig são obrigatórios.

Parâmetros de caminho

  • userIdstringobrigatório

    Identificador do usuário no sistema do tenant.

Corpo da requisição · application/jsonobrigatório

CampoTipoDetalhes
extensionobrigatóriostring—
activeobrigatórioboolean—
uiConfigobrigatórioUiConfig—

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Configuração

Atualizar vínculo parcialmente

PATCH/webphone/configs/{userId}
https://{cliente}.telenova.com.br/fusionapi TenantApiKeypatchWebphoneConfigsomente backend confiável

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ório

    Identificador do usuário no sistema do tenant.

Corpo da requisição · application/jsonobrigatório

PatchWebphoneConfig· envie ao menos 1 propriedade· Ao menos uma propriedade. uiConfig, se enviado, substitui totalmente o anterior.
CampoTipoDetalhes
extensionstring—
activeboolean—
uiConfigUiConfig—

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Configuração

Alterar o userId de um vínculo

POST/webphone/configs/{userId}/change-id
https://{cliente}.telenova.com.br/fusionapi TenantApiKeychangeWebphoneUserIdsomente backend confiável

Parâmetros de caminho

  • userIdstringobrigatório

    Identificador do usuário no sistema do tenant.

Corpo da requisição · application/jsonobrigatório

CampoTipoDetalhes
newUserIdobrigatóriostringNovo identificador do usuário.

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Administração

Listar configurações (formato legado)

GET/webphone/config
https://{cliente}.telenova.com.br/fusionapi AdminJwtlistLegacyWebphoneConfigssomente backend confiável

Retorna todas as configurações no formato legado, sem paginação.

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
[
  {
    "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Administração

Ativar ou desativar Webphone de um usuário

POST/webphone/activate
https://{cliente}.telenova.com.br/fusionapi AdminJwtactivateWebphonesomente backend confiável
A resposta contém dado sensível: tenantApiKey. Não exponha ao navegador, logs ou analytics.

Quando active=true, a resposta inclui tenantApiKey.

Corpo da requisição · application/jsonobrigatório

CampoTipoDetalhes
userIdobrigatóriostring—
extensionobrigatóriostring—
activeobrigatórioboolean—
uiConfigUiConfig—

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Administração

Consultar chave de integração

GET/webphone/integration-key
https://{cliente}.telenova.com.br/fusionapi AdminJwtgetWebphoneIntegrationKeysomente backend confiável
A resposta contém dado sensível: apiKey. Não exponha ao navegador, logs ou analytics.

Respostas

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Administração

Criar ou reutilizar chave de integração

POST/webphone/integration-key
https://{cliente}.telenova.com.br/fusionapi AdminJwtcreateWebphoneIntegrationKeysomente backend confiável
A resposta contém dado sensível: apiKey. 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

# 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"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
{
  "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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Runtime

Carregar script do Webphone

GET/api/webphone
https://webphone.telenova.com.br TenantApiKeyou RuntimeQueryKeyloadWebphoneScript

Gera 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

  • userIDstringopcional

    Identificador do usuário (maior precedência).

  • useridstringopcional

    Identificador do usuário.

  • startAsButtonbooleanopcional

    Inicia o Webphone recolhido como botão.

  • customCssUrlstring (uri)opcional

    URL HTTPS confiável de uma folha de estilo personalizada.

  • widgetstringopcional

    Somente o valor '1' desconsidera a configuração de interface salva, sem alterar dados.

Respostas

  • 200Script do Webphone.string
  • 403Acesso negado.ApiError
  • 429Limite de requisições excedido.ApiError
  • 500Erro interno.ApiError
curl -X GET "https://webphone.telenova.com.br/api/webphone?userID=usuario-123" \
  -H "Authorization: Bearer SUA_TENANT_API_KEY"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
"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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Runtime

Página do Webphone para iframe

GET/embed
https://webphone.telenova.com.br RuntimeQueryKeyloadWebphoneEmbed

Retorna 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

  • useridstringopcional

    Identificador do usuário (maior precedência).

  • userIdstringopcional

    Identificador do usuário.

  • userIDstringopcional

    Identificador do usuário (menor precedência).

  • tokenstringobrigatório

    API key do tenant (aparece na URL).

  • startAsButtonbooleanopcional

    Inicia o Webphone recolhido como botão.

  • customCssUrlstring (uri)opcional

    URL HTTPS confiável de uma folha de estilo personalizada.

  • widgetstringopcional

    Somente o valor '1' desconsidera a configuração de interface salva, sem alterar dados.

Respostas

curl -X GET "https://webphone.telenova.com.br/embed?userid=usuario-123&token=SUA_TENANT_API_KEY"
Resposta de sucesso · EXEMPLO SINTÉTICO (segredos mascarados)
"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.

Erro · ApiError · EXEMPLO SINTÉTICO
{
  "error": {
    "code": "string",
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Esquema

UiConfig

CampoTipoDetalhes
showDialpadboolean—
showHistoryboolean—
showMuteboolean—
showHoldboolean—
showTransferboolean—
showDtmfboolean—
showConfigboolean—
startAsButtonboolean—
tabGuardboolean—
lockedNumberstringNúmero fixo para discagem.máx. 64 caracterespadrão ^[0-9+*#().\s-]*$

Esquema

WebphoneConfig

CampoTipoDetalhes
userIdobrigatóriostring—
extensionobrigatóriostring—
activeobrigatórioboolean—
uiConfigobrigatórioUiConfig—
updatedAtstring (date-time)date-time

Esquema

PutWebphoneConfig

CampoTipoDetalhes
extensionobrigatóriostring—
activeobrigatórioboolean—
uiConfigobrigatórioUiConfig—

Esquema

PatchWebphoneConfig

· envie ao menos 1 propriedade· Ao menos uma propriedade. uiConfig, se enviado, substitui totalmente o anterior.
CampoTipoDetalhes
extensionstring—
activeboolean—
uiConfigUiConfig—

Esquema

ActivateInput

CampoTipoDetalhes
userIdobrigatóriostring—
extensionobrigatóriostring—
activeobrigatórioboolean—
uiConfigUiConfig—

Esquema

LegacyWebphoneConfig

CampoTipoDetalhes
user_idstring—
extensionstring—
activeboolean—
ui_configUiConfig—
updated_atstring (date-time)date-time

Esquema

BootstrapUser

Contém extension_password (senha SIP). Dado sensível.

CampoTipoDetalhes
user_idobrigatóriostring—
activeobrigatóriobooleanvalores: true
extensionobrigatóriostring—
extension_passwordobrigatóriostringSenha SIP do ramal. SENSÍVEL.
domain_nameobrigatóriostring—
ui_configUiConfig—
effective_caller_id_namestring—

Esquema

ApiKeyResponse

CampoTipoDetalhes
apiKeystringpode ser nulo—

Esquema

ApiError

CampoTipoDetalhes
errorobrigatórioobject—