Nome da tab
Apresentação
Título
O que é?
Text

A API Tenure ajuda a aumentar a confiança na identidade móvel ao verificar o tempo de posse de um número de telefone com a operadora atual, apoiando decisões mais precisas e a redução de fraudes. A solução pode ser combinada com a API de Number Recycling para uma visão completa do período de atividade de uma linha com o titular atual.

Título
Beneficios
Ícone
Fácil Integração
Título
Fácil Integração
Text

A nossa API é “restful”, ou seja, o nosso protocolo de comunicação foi criado de uma forma que pode interpretar qualquer linguagem de programação. Isso torna o processo de integração do lado dos nossos clientes e parceiros mais flexível e de fácil entendimento. Na página de documentação deixamos alguns exemplos de linguagem, caso seja necessário.

Ícone
Aumento em segurança
Título
Aumento em segurança
Text

Os retornos fornecidos, quando vinculados a outras medidas, podem se tornar meios eficazes de evitar que sejam praticadas fraudes, minimizando assim, o seu impacto no ambiente de negócios.

Ícone
Título
Principais ganhos
Text

• Validação em tempo real dos dados fornecidos.
• Acesso a informações verificadas pela Operadora.
• Garantia de precisão e segurança nos processos de verificação.
• Total conformidade com as regulamentações de privacidade.

Melhore a qualidade dos dados, reduza fraudes e ofereça uma experiência mais confiável para seus usuários com a nossa solução robusta e eficiente. Integre facilmente e eleve o nível de confiabilidade do seu serviço!

Título
Dúvidas frequentes

A cobrança é por consulta?

Sim, a cobrança é feita por consulta com sucesso e com entrega de informações. Se ao menos um dos dados fornecidos na entrada for validado com 'true' ou 'false', a consulta será considerada um sucesso para fins de faturamento.

Como é feita a integração?

A integração é feita por meio de API e toda a documentação está disponível aqui no portal! 

Como irão enviar os dados do plano?

Teremos os seguintes códigos de retorno:
• PAYG = pré pago, flex
• PAYM = pós-pago, controle
• Business = corporativo

Caso a data de ativação não seja correspondente, irão devolver o dado correto?

Não, a API apenas valida a correspondência em nossa base. 

Com que frequência o dado é atualizado?

Diariamente.

Título
Documentação
Text

Nome da tab
Documentação
Título
Claro Brasil - API Claro Tenure KYC family
Text

Versão: 0.1.0
Criada por: GSMA Open Gateway
Data: 10/11/2025

Título
Respostas da API

200 – Sucesso

400 – Erro de requisição

401 – Autenticação

403 – Permissão

404 – Não encontrado

422 – Conteúdo não processável

Título
Passo a passo
Text

Caso ainda restem dúvidas, baixe o PDF que contém o tutorial de consumo da API, que explica passo a passo como utiliza-la.

Título
Códigos de Exemplo
Título
CURL
Text
#!/bin/bash

# Endpoints
url_token="https://api.claro.com.br/oauth2/v1/token"
url_tenure="https://api.claro.com.br/gsma/gateway/kyc/tenure/check"

# Credenciais do app
client_key="SEU_CLIENT_ID"
client_secret="SEU_CLIENT_SECRET"

# Número a verificar (MSISDN)
phoneNumber="5511999999999"

# Codifica credenciais em Base64
auth64=$( echo -n "$client_key:$client_secret" | base64 )

echo ">>> Obtendo token..."
token_response=$(curl -s -X POST "$url_token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "x-client-auth: Basic $auth64" \
  -d "grant_type=client_credentials")

access_token=$(echo "$token_response" | grep -oP '(?<="access_token":")[^"]+')

echo "Token obtido: $access_token"

echo ">>> Chamando Tenure Check..."
curl -X POST "$url_tenure" \
  -H "Content-Type: application/json" \
  -H "x-client-auth: Bearer $access_token" \
  -d '{
    "data": {
      "phoneNumber": "'"$phoneNumber"'"
    }
  }'

Título
PHP
Text
post($urlToken, [
    'headers' => [
        'Content-Type' => 'application/x-www-form-urlencoded',
        'x-client-auth' => "Basic $auth64"
    ],
    'form_params' => [
        'grant_type' => 'client_credentials'
    ]
]);

$bodyToken = json_decode($responseToken->getBody(), true);
$accessToken = $bodyToken['access_token'];

echo "Token obtido: $accessToken\n";

// -------------------------
// 2) Chamada Tenure Check
// -------------------------
$responseTenure = $client->post($urlTenure, [
    'headers' => [
        'Content-Type' => 'application/json',
        'x-client-auth'  => "Bearer $accessToken"
    ],
    'json' => [
        'data' => [
            'phoneNumber' => $phoneNumber
        ]
    ]
]);

$bodyTenure = json_decode($responseTenure->getBody(), true);

echo "Resposta Tenure:\n";
print_r($bodyTenure);

Título
Java HttpClient
Text
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;

public class TenureCheckExample {

    public static void main(String[] args) throws Exception {

        String urlToken  = "https://api.claro.com.br/oauth2/v1/token";
        String urlTenure = "https://api.claro.com.br/gsma/gateway/kyc/tenure/check";

        String clientId     = "SEU_CLIENT_ID";
        String clientSecret = "SEU_CLIENT_SECRET";

        String phoneNumber = "5511999999999";

        HttpClient client = HttpClient.newHttpClient();

        // -------------------------------------------
        // 1) Gerar token
        // -------------------------------------------
        String auth64 = Base64.getEncoder().encodeToString((clientId + ":" + clientSecret).getBytes());

        HttpRequest requestToken = HttpRequest.newBuilder()
                .uri(new URI(urlToken))
                .header("Content-Type", "application/x-www-form-urlencoded")
                .header("x-client-auth", "Basic " + auth64)
                .POST(HttpRequest.BodyPublishers.ofString("grant_type=client_credentials"))
                .build();

        HttpResponse responseToken = client.send(requestToken, HttpResponse.BodyHandlers.ofString());

        System.out.println("Token Response: " + responseToken.body());

        // Extrai o access_token (simples, sem libs)
        String accessToken = responseToken.body()
                .replaceAll(".*\"access_token\":\"", "")
                .replaceAll("\".*", "");

        System.out.println("Token obtido: " + accessToken);

        // -------------------------------------------
        // 2) Chamada Tenure Check
        // -------------------------------------------
        String payload = "{ \"data\": { \"phoneNumber\": \"" + phoneNumber + "\" } }";

        HttpRequest requestTenure = HttpRequest.newBuilder()
                .uri(new URI(urlTenure))
                .header("Content-Type", "application/json")
                .header("x-client-auth", "Bearer " + accessToken)
                .POST(HttpRequest.BodyPublishers.ofString(payload))
                .build();

        HttpResponse responseTenure = client.send(requestTenure, HttpResponse.BodyHandlers.ofString());

        System.out.println("Resposta Tenure Check:");
        System.out.println(responseTenure.body());
    }
}

Título
Python
Text
import base64, requests, json
url_token="https://api.claro.com.br/oauth2/v1/token"
url_tenure="https://api.claro.com.br/gsma/gateway/kyc/tenure/check"
client_id="SEU_CLIENT_ID"
client_secret="SEU_CLIENT_SECRET"
phone_number="5511999999999"
auth64=base64.b64encode(f"{client_id}:{client_secret}".encode()).decode()
response_token=requests.post(url_token,headers={"Content-Type":"application/x-www-form-urlencoded","x-client-auth":f"Basic {auth64}"},data={"grant_type":"client_credentials"})
access_token=response_token.json().get("access_token")
response_tenure=requests.post(url_tenure,headers={"Content-Type":"application/json","x-client-auth":f"Bearer {access_token}"},json={"data":{"phoneNumber":phone_number}})
print(json.dumps(response_tenure.json(),indent=2))

Plano Trial

Para você comecar a desenvolver já!
•1.000 solicitações gratuitas
• Período de 3 meses
• Relatório de consumo

Para você começar a desenvolver já!

Plano Pay Per Use

A melhor escolha para o seu negócio. Depois de testar nosso teste, você pode começar a utilizar nosso plano de produção, cobrado com base no consumo de acordo com suas solicitações.

  • A sua melhor escolha!
  • Faça consultas sob demanda e pague apenas pelo o que usar.
Contratar