Garanta a precisão e a confiabilidade dos seus dados com a nossa API "Know your customer". Ela permite comparar as informações cadastrais fornecidas pelo usuário com os registros verificados da Operadora, utilizando dados de alta segurança. Com essa integração, você pode validar informações cruciais como número de telefone, nome, CEP, endereço, data de nascimento, e-mail e muito mais, de maneira rápida e eficiente, sem comprometer a privacidade dos seus clientes.
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.2.1
Criada por: GSMA Opengateway
Data: 28/03/2025
Passo a passo
Caso ainda tenha duvidas, baixe o PDF abaixo com o tutorial de integração da API Know Your Customer. Ele te explica passo a passo como utilizá-la.
Em caso de duvidas técnicas por favor entre em contato através do Fale conosco
200 -A solicitação foi bem-sucedida. A resposta contém o resultado da validação dos dados do cliente.
400 - A solicitação não pôde ser entendida pelo servidor devido à sintaxe incorreta ou parâmetros inválidos. O cliente deve corrigir e reenviar a requisição.
401 - A solicitação requer autenticação. O token de acesso está ausente, inválido ou expirado.
403 - O servidor compreendeu a solicitação, mas se recusa a atendê-la. Pode ocorrer por falta de permissão, inconsistência nos dados ou token inválido para o contexto.
404 - O recurso solicitado não foi encontrado. Pode indicar que o número de telefone ou o usuário não existem na base de dados.
500- Erro interno do servidor. Um problema inesperado ocorreu no processamento da solicitação.
503 - O serviço está temporariamente indisponível. O cliente deve tentar novamente mais tarde.
504 - O servidor não conseguiu receber uma resposta a tempo para completar a solicitação. Recomenda-se tentar novamente.
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
# URL de obtenção do token
url_token="https://api.claro.com.br/oauth2/v1/token"
# URL da API KYC Match
url_kyc="https://api.claro.com.br/mobile/v1/gsma/gateway/knowyourcustomer/match"
# Credenciais
key="XXXXXXXXXXXXXXXXXXXXXXXXX"
secret="XXXXXXXXXXXXXXXXXXXXX"
# Dados do cliente para validação
phoneNumber="+5511999999999"
idDocument="123456789"
name="João da Silva"
birthdate="1990-01-01"
# Gerar senha em base64
senha=$(echo -n "$key:$secret" | base64)
# Requisição para obter o token de acesso
token=$(curl -s -X POST "$url_token" \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H "Authorization: Basic $senha" \
-d 'grant_type=client_credentials' | jq -r .access_token)
# Requisição para validar o KYC
curl -X POST "$url_kyc" \
-H "Authorization: Bearer $token" \
-H "Content-Type: application/json" \
-H "cache-control: no-cache" \
-d '{
"phoneNumber": "'"$phoneNumber"'",
"idDocument": "'"$idDocument"'",
"name": "'"$name"'",
"birthdate": "'"$birthdate"'"
}'
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class KycClient {
public static void main(String[] args) throws Exception {
String key = "XXXXXXXXXXXXXXXXXXXXX";
String secret = "XXXXXXXXXXXXXXXXXXXXX";
String credentials = Base64.getEncoder().encodeToString((key + ":" + secret).getBytes());
// Obter o token
URL urlToken = new URL("https://api.claro.com.br/oauth2/v1/token");
HttpURLConnection connToken = (HttpURLConnection) urlToken.openConnection();
connToken.setRequestMethod("POST");
connToken.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connToken.setRequestProperty("Authorization", "Basic " + credentials);
connToken.setDoOutput(true);
connToken.getOutputStream().write("grant_type=client_credentials".getBytes());
BufferedReader in = new BufferedReader(new InputStreamReader(connToken.getInputStream()));
String inputLine;
StringBuilder responseToken = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
responseToken.append(inputLine);
}
in.close();
String token = responseToken.toString().split("\"access_token\":\"")[1].split("\"")[0];
// Chamar a API KYC
URL urlKyc = new URL("https://api.claro.com.br/mobile/v1/gsma/gateway/knowyourcustomer/match");
HttpURLConnection connKyc = (HttpURLConnection) urlKyc.openConnection();
connKyc.setRequestMethod("POST");
connKyc.setRequestProperty("Content-Type", "application/json");
connKyc.setRequestProperty("Authorization", "Bearer " + token);
connKyc.setDoOutput(true);
String jsonInputString = "{ \"phoneNumber\": \"+5511999999999\", \"idDocument\": \"123456789\", \"name\": \"João da Silva\", \"birthdate\": \"1990-01-01\" }";
try(OutputStream os = connKyc.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
BufferedReader in2 = new BufferedReader(new InputStreamReader(connKyc.getInputStream()));
StringBuilder responseKyc = new StringBuilder();
while ((inputLine = in2.readLine()) != null) {
responseKyc.append(inputLine);
}
in2.close();
System.out.println(responseKyc.toString());
}
}
[
'header' => "Authorization: Basic $credentials\r\n" .
"Content-Type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query(['grant_type' => 'client_credentials'])
]
];
$context = stream_context_create($options);
$result = file_get_contents($tokenUrl, false, $context);
$response = json_decode($result, true);
$token = $response['access_token'];
// Chamar a API KYC
$kycUrl = 'https://api.claro.com.br/mobile/v1/gsma/gateway/knowyourcustomer/match';
$data = [
'phoneNumber' => '+5511999999999',
'idDocument' => '123456789',
'name' => 'João da Silva',
'birthdate' => '1990-01-01'
];
$options = [
'http' => [
'header' => "Authorization: Bearer $token\r\n" .
"Content-Type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($kycUrl, false, $context);
echo $result;
?>
import requests
import base64
import json
key = "XXXXXXXXXXXXXXXXXXXXX"
secret = "XXXXXXXXXXXXXXXXXXXXX"
credentials = base64.b64encode(f"{key}:{secret}".encode()).decode()
# Obter token
token_url = "https://api.claro.com.br/oauth2/v1/token"
token_headers = {
"Authorization": f"Basic {credentials}",
"Content-Type": "application/x-www-form-urlencoded"
}
token_data = {'grant_type': 'client_credentials'}
token_response = requests.post(token_url, headers=token_headers, data=token_data)
token = token_response.json()['access_token']
# Requisição para o KYC
kyc_url = "https://api.claro.com.br/mobile/v1/gsma/gateway/knowyourcustomer/match"
kyc_headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
kyc_data = {
"phoneNumber": "+5511999999999",
"idDocument": "123456789",
"name": "João da Silva",
"birthdate": "1990-01-01"
}
response = requests.post(kyc_url, headers=kyc_headers, json=kyc_data)
print(response.json())
Plano Pay Per Use
A melhor escolha para o seu negócio. Após testar nossa trial, você passa a consumir nosso plano em produção, cobrado por consumo conforme seu contrato.
- A sua melhor escolha!
- Faça consultas sob demanda e pague apenas pelo o que usar.