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

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.

Título
Benefícios
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.

Título
Aumento de receita
Text

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.

Título
Diferenciais
Text
  • 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.
Título
Dúvidas frequentes

Como realizamos a consulta? (Webservice?)

A consulta é realizada através de integração com nossa API. Em nosso
portal você encontra toda documentação e exemplos de código para utilizar a API.

A cobrança é por consulta?

Não, a cobrança é feita por resposta e informação entregue.

Título
Documentação
Text

Nome da tab
Documentação
Título
Claro Brasil - Customers Validations - REST API
Text

Versão: 1;2019-08-15

Criada por: Logicalis

Data: 15/08/2019

Modificações

  • [Claro API Monetization MVP] Versão inicial
Título
Obtenha a precisão dos endereços dos clientes
Text

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.

Título
Respostas

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.

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

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'"}}}'

Título
Java
Text
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");
    	
    	HttpEntity request = 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;
			}

    	}
    }  
}
,>
Título
Python
Text
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 ))

Título
PHP
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
Solicitar

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.

Solicitar