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.
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.
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.
• 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!
Versão: 0.1.0
Criada por: GSMA Open Gateway
Data: 10/11/2025
200 – Sucesso
400 – Erro de requisição
401 – Autenticação
403 – Permissão
404 – Não encontrado
422 – Conteúdo não processável
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.
#!/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"'"
}
}'
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);
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());
}
}
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
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.