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
Ícone
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.

Ícone
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.

Ícone
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

A cobrança é por consulta?

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

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.

Título
Documentação
Text

Nome da tab
Documentação
Título
Claro Brasil - Customers Addresses Service - 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 utilizá-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

key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
secret=XXXXXXXXXXXXXX
guid="X"
cpf=XXXXXXXXXXX
customerID="QUOD"
cep=XXXXXXXX
number=XXX
phone="XXXXXXXXXXX"
lat=XXXXXXXXX
lng=XXXXXXXXX
alg="scorealgorithmimpl"
cust="XXXXXXXXX"

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 GET $url_validationsaddress -H "Content-Type: application/json" -H "X-
CustomerID: $customerID" -H "x-client-auth: Bearer $token" -H "guid: $guid" -H "cpf:
$cpf" -H "cep: $cep" -H "number: $number" -H "phone: $phone" -H "lat: $lat" -H "lng:
$lng" -H "alg: $alg" -H "cust: $cust"
Título
Java
Text
package client.validationsLocations;

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.HttpMethod;
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 = "XXXXXXXXXXXXXXXXXXXXXXXXXXX";

    private static final String SECRET = "XXXXXXXXXXX";

    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_LOCATIONS =
    "/customers/v1/validationslocations";

    public static void main( String[] args ) throws URISyntaxException, JsonProcessingException, IOException {

        App app = new App();

        String token = app.getAccessToken();

        String guid="X";
        String cpf= "XXXXXXXXXXX";
        String customerID="QUOD";
        String cep = "XXXXXXXX";
        String number="XXX";
        String phone="XXXXXXXXXXX";
        String lat="XXXXXXXXX";
        String lng="XXXXXXXXX";
        String alg="scorealgorithmimpl";
        String cust="XXXXXXXXXX";

        System.out.println("Válida Localização: " + app.getValidationsLocations( token , guid , cpf , customerID,cep,number,phone,lat,lng,alg,cust ));
    }

    public String getValidationsLocations(String acessToken, String guid , String cpf , String customerID, String cep, String number,String phone,String lat, String lng, String alg, String cust) throws RestClientException, URISyntaxException {

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("cache-control","no-cache");
        headers.add("guid",guid);
        headers.add("cpf",cpf);
        headers.add("number",number);
        headers.add("cep",cep);
        headers.add("phone",phone);
        headers.add("lat",lat);
        headers.add("lng",lng);
        headers.add("alg",alg);
        headers.add("cust",cust);
        headers.add("x-client-auth", "Bearer " + acessToken);
        headers.add("X-CustomerID", customerID);

        HttpEntity entity = new HttpEntity(headers);

        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> result = restTemplate.exchange(new URI(URL +
        END_POINT_API_VALIDATIONS_LOCATIONS), HttpMethod.GET, entity, 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<String, String> parameters = new LinkedMultiValueMap<>();
        parameters.add("grant_type", GRANT_TYPE);

        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(parameters,
        headers);

        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> result = restTemplate.postForEntity(new URI(URL +
        END_POINT_ACCESS_TOKEN),
        request, String.class);

        return new ObjectMapper().readTree(result.getBody()).get("access_token").asText() ;
    }
}
Título
PHP
Text
    $key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

    $secret = 'XXXXXXXXXXXXXXX';

    $guid="X";

    $cpf=XXXXXXXXXXX;
    $cep=XXXXXXXX;
    $number=XXX;
    $phone="XXXXXXXXXXX";
    $lat=XXXXXXXXX;
    $lng=XXXXXXXXX;
    $alg="scorealgorithmimpl";
    $cust="XXXXXXXXXX";

    $token = getAccessToken();

    $validationsLocations = getValidationsLocations($token , $guid, $cpf , $cep,
    $number, $phone, $lat, $lng, $alg, $cust );

    echo $validationsLocations;

    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 getValidationsLocations($token , $guid, $cpf , $cep, $number, $phone, $lat, $lng, $alg, $cust ) {

        try {
        echo $token;

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,
            "https://api.claro.com.br/customers/v1/validationslocations");

            curl_setopt( $ch, CURLOPT_HTTPHEADER, [
                'Content-Type: application/json',
                'guid: ' . $guid,
                'cpf: ' . $cpf,
                'cep: ' . $cep,
                'number: ' . $number,
                'phone: ' . $phone,
                'lat: ' . $lat,
                'lng: ' . $lng,
                'alg: ' . $alg,
                'cust: ' . $cust,
                'X-CustomerID: QUOD',
                'x-client-auth: Bearer ' . $token
            ]);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLINFO_HEADER_OUT, true);
            curl_setopt($ch, CURLOPT_HTTPGET, true);

            $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;
        }
    }
Título
Python
Text
import requests, json
import base64

KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
SECRET="XXXXXXXXXXX"

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/v1/validationslocations";

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']

    guid="X"
    cpf=XXXXXXXXXXX
    customerID="QUOD"
    cep=XXXXXXXX

    number=XXX
    phone="XXXXXXXXXXX"
    lat=XXXXXXXXX
    lng=XXXXXXXXX
    alg="scorealgorithmimpl"
    cust="XXXXXXXX"

    headers_app = {'Content-Type': 'application/json',
    'X-CustomerID': 'claro_exemplo',
    'guid':guid,
    'cpf':str(cpf),
    'customerID':customerID,
    'cep':str(cep),
    'number':str(number),
    'phone':phone,
    'lat':str(lat),
    'lng':str(lng),
    'alg':alg,
    'cust':cust,
    'cache-control':'no-cache',
    'user-agent':'curl/7.60.0',
    'x-client-auth': 'Bearer {}'.format(token)}

    resp = requests.get( URL + END_POINT_API_VALIDATIONSADDRESS,
    headers=headers_app )

    if resp.status_code != 200:
        print('Erro: ' + str(resp.text))
    else:
        print('Valida ' + str( resp.text ))

Plano Trial

Para você comecar a desenvolver já!

  • 1000 requisições free
  • Período de 3 meses
  • Relatório de consumo
Teste sem pagar nada