A segunda versão do Claro valida endereço, traz uma modelagem estatística como diferencial, garantindo assim uma maior flexibilidade no processo de validação de informação para as empresas. Ideal para compor com outras variáveis ou modelos próprios, como também definir a melhor regra para o seu negócio por meio de um score.
O score entregue utiliza a mais alta tecnologia de triangulação de antenas juntamente com a base de mais de 50 milhões de registros nos produtos Claro. Quanto maior a pontuação do score, maior a probabilidade de a informação realmente pertencer àquele CPF.
O acesso ocorre por meio da nossa API que permiti uma fácil integração com qualquer plataforma ou sistema de consulta.
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.
A utilização de validação cadastral associada a outras medidas protetivas, garantem resultados mais seguros e sustentáveis no ambiente de negócios. Dessa forma é possível, minimizar o risco de práticas de fraudes e de entradas de informações incorretas e não qualificadas nas empresas.
- Validação em tempo real: agilidade nos processos de confirmação das informações, reduzindo esforço humano manual;
- Flexibilidade para o negócio: possibilidade de definir o parâmetro do score que melhor se adapta as politicas de risco da empresa;
- Informações adicionais: com base na proximidade das antenas , o score considera tanto endereço quanto número de telefone para melhor acuracidade da validação.
Versão: 1;2019-08-15
Criada por: Logicalis
Data: 15/08/2019
Modificações
- [Claro API Monetization MVP] Versão inicial
Esta operação retorna um inteiro que expressa a probabilidade de que o cliente Claro endereços são confiáveis para uso, bem como detalhes de riscos potenciais associados às partes do endereço fornecido. Backend: claro-api-managment.azure-api.net.
200 - A solicitação foi bem sucedida.
400 - A solicitação não pôde ser entendida pelo servidor devido à sintaxe incorreta. O cliente NÃO DEVE repetir o pedido sem modificações.
401 - A solicitação requer autenticação do usuário.
403 - O servidor entendeu a solicitação, mas está se recusando a atendê-la.
404 - O servidor não encontrou nada que corresponda ao Request-URI.
500 - O servidor falhou ao atender uma solicitação aparentemente válida.
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_validationsaddress=https://api.claro.com.br/customers/v2/validationsaddress url_token=https://api.claro.com.br/oauth2/v1/token addressZipCode="XXXXXXXX" addressNumber="XXXXX" cpf="XXXXXXXXXXX" networkMsisdn="XXXXXXXXXXXXX" key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX secret=XXXXXXXXXXXXXX senha=$( echo -n $key:$secret | base64) curl -X POST $url_token -H 'Content-Type: application/x-www-form-urlencoded' -H 'cache-control: no-cache' -d 'grant_type=client_credentials' -H "x-client-auth: Basic $senha" > json grep 'access_token' json > atributoJson token=$(cut -d'"' -f4 atributoJson ) curl -X POST $url_validationsaddress -H 'Content-Type: application/json' -H 'cache-control: no-cache' -H "x-client-auth: Bearer $token" -H "X-CustomerID: claro_exemplo" -d '{"data": {"customer": {"addressZipCode": "'$addressZipCode'","addressNumber": "'$addressNumber'", "networkMsisdn":"'$networkMsisdn'" ,"cpf": "'$cpf'"}}}'
package client.validationsAddress; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.Base64; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.ObjectMapper; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; public class App { private static final String KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; private static final String SECRET = "XXXXXXXXXXXXXX"; private static final String GRANT_TYPE = "client_credentials"; private static final String URL = "https://api.claro.com.br"; private static final String END_POINT_ACCESS_TOKEN = "/oauth2/v1/token"; private static final String END_POINT_API_VALIDATIONS_ADDRESS = "/customers/v2/validationsaddress"; public static void main( String[] args ) throws URISyntaxException, JsonProcessingException, IOException{ App app = new App(); String token = app.getAccessToken(); String addressZipCode = "XXXXXXXX"; String addressNumber = "XXXXX"; String cpf = "XXXXXXXXXXX"; String networkMsisdn="XXXXXXXXXXXXX"; System.out.println("Válida Endereço: " + app.getValidationsAddress( token , addressZipCode , addressNumber , cpf,networkMsisdn )); } public String getValidationsAddress(String acessToken, String addressZipCode, String addressNumber, String cpf , String networkMsisdn) throws RestClientException, URISyntaxException { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.add("cache-control","no-cache"); headers.add("x-client-auth", "Bearer " + acessToken); headers.add("X-CustomerID", "claro_exemplo"); HttpEntityrequest = new HttpEntity<>(new NetworkMsisdn(addressZipCode , addressNumber , cpf , networkMsisdn), headers); RestTemplate restTemplate = new RestTemplate(); ResponseEntity result = restTemplate.postForEntity(new URI(URL + END_POINT_API_VALIDATIONS_ADDRESS), request, String.class); return result.getBody(); } public String getAccessToken() throws URISyntaxException, JsonProcessingException, IOException { String senha = Base64.getEncoder().encodeToString( App.KEY.concat(":").concat(App.SECRET).getBytes() ); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.add("cache-control","no-cache"); headers.add("x-client-auth", "Basic " + senha); MultiValueMap parameters = new LinkedMultiValueMap<>(); parameters.add("grant_type", GRANT_TYPE); HttpEntity > request = new HttpEntity<>(parameters, headers); RestTemplate restTemplate = new RestTemplate(); ResponseEntity result = restTemplate.postForEntity(new URI(URL + END_POINT_ACCESS_TOKEN), request, String.class); return new ObjectMapper().readTree(result.getBody()).get("access_token").asText() ; } class NetworkMsisdn{ public NetworkMsisdn(String addressZipCode,String addressNumber , String cpf, String networkMsisdn) { this.data = new Data(addressZipCode, addressNumber , cpf,networkMsisdn); } private Data data; public Data getData() { return data; } public void setData(Data data) { this.data = data; } } class Data{ public Data(String addressZipCode,String addressNumber , String cpf, String networkMsisdn) { this.customer = new Customer(addressZipCode , addressNumber , cpf, networkMsisdn); } private Customer customer; public Customer getCustomer() { return customer; } public void setCustomer(Customer customer) { this.customer = customer; } class Customer{ public Customer(String addressZipCode,String addressNumber , String cpf, String networkMsisdn) { this.addressZipCode = addressZipCode; this.addressNumber = addressNumber; this.cpf = cpf; this.networkMsisdn = networkMsisdn; } private String cpf; private String networkMsisdn; private String addressNumber; private String addressZipCode; public String getCpf() { return cpf; } public void setCpf(String cpf) { this.cpf = cpf; } public String getAddressNumber() { return addressNumber; } public void setAddressNumber(String addressNumber) { this.addressNumber = addressNumber; } public String getAddressZipCode() { return addressZipCode; } public void setAddressZipCode(String addressZipCode) { this.addressZipCode = addressZipCode; } } } } ,>
import requests, json import base64 KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" SECRET="XXXXXXXXXXXXXX" SENHA = base64.b64encode( (KEY + ':' + SECRET ).encode('ascii') ).decode('ascii') GRANT_TYPE = "client_credentials"; URL = "https://api.claro.com.br"; END_POINT_ACCESS_TOKEN = "/oauth2/v1/token"; END_POINT_API_VALIDATIONSADDRESS = "/customers/v2/validationsaddress"; headers={'Content-Type':'application/x-www-form-urlencoded','cache-control':'no-cache','x-client-auth': 'Basic {}'.format(SENHA)} data = {'grant_type': 'client_credentials'} respToken = requests.post(URL + END_POINT_ACCESS_TOKEN , headers=headers , data= data) if respToken.status_code != 200: print('Erro:' + str( respToken.status_code)) else: token = json.loads( respToken.text)['access_token'] headers_app = {'Content-Type': 'application/json', 'X-CustomerID': 'claro_exemplo', 'cache-control':'no-cache', 'user-agent':'curl/7.60.0', 'x-client-auth': 'Bearer {}'.format(token)} addressZipCode="XXXXXXX" addressNumber="XXXXX" cpf="XXXXXXXXXXX" networkMsisdn="XXXXXX" data_app = {"data": {"customer": {"addressZipCode": addressZipCode,"addressNumber": addressNumber ,"cpf": cpf , "networkMsisdn":networkMsisdn}}} resp = requests.post( URL + END_POINT_API_VALIDATIONSADDRESS, headers=headers_app , data= json.dumps(data_app)) if resp.status_code != 200: print('Erro: ' + str(resp.text)) else: print('Valida ' + str( resp.text ))
$key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; $secret = 'XXXXXXXXXXXX'; $addressZipCode = 'XXXXXXX'; $addressNumber = 'XXXX'; $cpf = 'XXXXXXXXXXX'; $networkMsisdn = 'XXXXXXXXXXXXX'; $token = getAccessToken(); $validationsaddress = getValidationsAddress($token , $addressZipCode, $addressNumber , $cpf, $networkMsisdn); echo $validationsaddress; function getAccessToken() { try{ $senha = base64_encode($GLOBALS['key'] . ':' . $GLOBALS['secret']); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.claro.com.br/oauth2/v1/token"); curl_setopt( $ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/x-www-form-urlencoded', 'x-client-auth: Basic ' . $senha ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLINFO_HEADER_OUT, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=client_credentials'); $response = curl_exec($ch); if (!$response){ $error = curl_error($ch); $info = curl_getinfo($ch); die("cURL request failed, error = {$error}; info = " . print_r($info, true)); } if(curl_errno($ch)){ curl_close($ch); echo 'error:' . curl_error($ch); } else { curl_close($ch); return json_decode($response)->access_token; } } catch (Exception $e) { return 'Erro '. $e; } } function getValidationsAddress($token , $addressZipCode, $addressNumber , $cpf , $networkMsisdn){ try { $payload = '{"data": {"customer": {"addressZipCode":' . $addressZipCode . ',"addressNumber": ' . $addressNumber .',"networkMsisdn":'.$networkMsisdn.' , "cpf": ' . $cpf . '}}}'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.claro.com.br/customers/v2/validationsaddress"); curl_setopt( $ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'X-CustomerID: claro_exemplo', 'x-client-auth: Bearer ' . $token ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLINFO_HEADER_OUT, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); $response = curl_exec($ch); if (!$response){ $error = curl_error($ch); $info = curl_getinfo($ch); die("cURL request failed, error = {$error}; info = " . print_r($info, true)); } if(curl_errno($ch)){ curl_close($ch); echo 'error:' . curl_error($ch); } else { curl_close($ch); return $response; } } catch (Exception $e) { return 'Erro '. $e; } }
Plano Trial
Para você comecar a desenvolver já!
- 1000 requisições free
- Período de 3 meses
- Relatório de consumo
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 sua solicitação.