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

 

O Claro Alerta identifica as alterações operacionais ocorridas em uma linha móvel.

 

Cruzando o status de alterações (ex.: troca de chip e troca de aparelho) com outras fontes de dados, pode-se detectar uma fraude em um serviço digital.

 

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

Os alertas 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.

Í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 Alerts Service - REST API
Text

Versão: 1;2019-11-06

Criada por: Logicalis

Data: 06/11/2019

Modificações

  • [Claro API Monetization MVP] API changes

 

Título
Seja notificado sobre as atividades do cliente.
Text

Receba alertas de notificação sobre várias atividades de clientes na rede GSM da Claro, bem como dinâmicas relacionadas ao perfil de dispositivo móvel da Claro. 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.

406 - Servidor não pode produzir uma resposta que combine com a lista de valores aceitáveis definidas.

415 - O servidor falhou ao atender uma solicitação. Por que o formato do payload não é um formato suportado.

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_alerts=https://api.claro.com.br/customers/v1/alerts
url_token=https://api.claro.com.br/oauth2/v1/token
networkMsisdn="XXXXXXXXXXXXX"
key=XXXXXXXXXXXXXXXXXXXXXXX
secret=XXXXXXXXXXXXX


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_alerts -H 'Content-Type: application/json' -H 'cache-control: no-cache' -H "x-client-auth: Bearer $token" -H "X-CustomerID: claro_exemplo" -H "event-types: SIMCARD_CHANGED,DEVICE_CHANGED" -d '{"data": {"customer":{"networkMsisdn": "'$networkMsisdn'"}}}'

Título
Java
Text
package client.alerts;

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 = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
	
	private static final String SECRET = "XXXXXXXXXXXXXXXX";
	
	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_ALERTS = "/customers/v1/alerts";
	
	
    public static void main( String[] args ) throws URISyntaxException, JsonProcessingException, IOException{
    	
    	App app = new App();
    	
    	String token = app.getAccessToken();
    	String networkMsisdn = "XXXXXXXXXXXXX";
    	
    	System.out.println("Alerta: " + app.getAlert( token , networkMsisdn ));
    }
    
    public String getAlert(String acessToken, 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(networkMsisdn), headers);
    	
    	RestTemplate restTemplate = new RestTemplate();
    	ResponseEntity result = restTemplate.postForEntity(new URI(URL + END_POINT_API_ALERTS), 
    			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 networkMsisdn) {
			this.data = new Data(networkMsisdn);
		}

		private Data data;

		public Data getData() {
			return data;
		}

		public void setData(Data data) {
			this.data = data;
		}
    }
    
    class Data{
    	
    	public Data(String networkMsisdn) {
			this.customer = new Customer(networkMsisdn);
		}
 
		private Customer customer;
		
    	public Customer getCustomer() {
			return customer;
		}

		public void setCustomer(Customer customer) {
			this.customer = customer;
		}

		class Customer{
    		
    		public Customer(String networkMsisdn) {
				this.networkMsisdn = networkMsisdn;
			}
			private String networkMsisdn;

			public String getNetworkMsisdn() {
				return networkMsisdn;
			}

			public void setNetworkMsisdn(String networkMsisdn) {
				this.networkMsisdn = networkMsisdn;
			}
    	}
    }  
}

,>
Título
PHP
Text
$key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

$secret = 'XXXXXXXXXXXX';

$networkMsisdn = 'XXXXXXXXXXXXX';

$token = getAccessToken();

$alerta = getAlerta($token , $networkMsisdn);

echo $alerta;

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 getAlerta($token , $networkMsisdn){
    
    try {
        
        $payload = '{"data":{"customer":{"networkMsisdn":' . $networkMsisdn . '}}}';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://api.claro.com.br/customers/v1/alerts");
        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;
    }
}

Título
Python
Text

import requests, json
import base64

KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXX"
SECRET="XXXXXXXXXXXX"

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_ALERTS = "/customers/v1/alerts";

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',
		   'event-types':'SUBSCRIPTION_CANCELED,SIMCARD_CHANGED,MSISDN_CHANGED'
                   'cache-control':'no-cache',
                   'user-agent':'curl/7.60.0',
                   'x-client-auth': 'Bearer {}'.format(token)}

    networkMsisdn = "XXXXXXXXXXXXX"
    data_app = {"data":{"customer":{"networkMsisdn": networkMsisdn }}}

    respAlerta = requests.post(URL + END_POINT_API_ALERTS, headers=headers_app , data= json.dumps(data_app))

    if respAlerta.status_code != 200:
        print('Erro: ' + str(respAlerta.status_code))
    else:
        print('Alerta ' + str( respAlerta.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