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())