Procob API

Bem vindo a API RESTFul da Procob S.A. Com ela você pode ter acesso a todos os produtos que dispomos, bem como exemplos de retorno e explicação detalhada de cada um deles. Abaixo temos um esquema de requisição, veja como é simples.

Schema requisição Procob

Explorando a API

É possível explorar a API Procob de duas formas: Usuários já cadastrados e com permissão de acesso e usuário teste da API. Para usuários já cadastrados, as informações trazidas no retorno das consultas são informações reais e serão tarifadas de acordo com o plano do cliente. Para usuários que não possuem cadastro, eles podem se utilizar do usuário de testes da API, basta usar as credenciais abaixo e fornecer no campo de usuário e senha, no topo da página. Os dados apresentados no retorno da API para usuários de testes são todos fictícios.

Usuário: sandbox@procob.com

Senha: TesteApi

Nossa API trabalha com o padrão REST tendo como resposta sempre um JSON

Autenticação

Todas as chamadas a API devem ser autenticadas, o formato escolhido é a autenticação basic através do header Basic Authorization. Nesse header é enviado o email concatenado por dois pontos (:) mais a senha, tudo junto sem espaços. Esse conteúdo é convertido para uma chave usando algoritmos de base 64, ficando como o exemplo abaixo:

Authorization: Basic UUAN5678e9WsdDdsSaD54854=

É possível gerar o valor a ser enviado no cabeçalho através do comando unix abaixo:

echo -n conta:senha | base64

É possível fazer esse procedimento através do site base64Encode gratuitamente.

Para realizar os testes aqui no Sandbox basta preencher o usuário e senha no formulário no topo superior direito da página.

Request

Separamos alguns exemplos de requisição em diversas linguagens de programação que retorna somente se a comunicação foi bem sucedida



var client = new RestClient("https://api.procob.com/consultas/teste");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp");
IRestResponse response = client.Execute(request);
package main

	import (
		"fmt"
		"net/http"
		"io/ioutil"
	)

	func main() {

		url := "https://api.procob.com/consultas/teste"

		req, _ := http.NewRequest("GET", url, nil)

		req.Header.Add("authorization", "Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp")

		res, _ := http.DefaultClient.Do(req)

		defer res.Body.Close()
		body, _ := ioutil.ReadAll(res.Body)

		fmt.Println(res)
		fmt.Println(string(body))

	}
package javaapplication1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
 *
 * @author anderson
 */
public class JavaApplication1 {

    public static final String HOST = "https://api.procob.com";
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws MalformedURLException, IOException {
        
        String path = "/consultas/teste";
        
        URL obj = new URL(HOST + path);
        
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        
        con.setRequestMethod("GET");
        con.setRequestProperty("Authorization", "Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp");
        
        BufferedReader in = new BufferedReader(
		        new InputStreamReader(con.getInputStream()));
		String inputLine;
		StringBuilder response = new StringBuilder();

		while ((inputLine = in.readLine()) != null) {
			response.append(inputLine);
		}
		in.close();

		System.out.println(response.toString());
    }
}
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.procob.com",
  "port": 443,
  "path": "/consultas/teste",
  "headers": {
    "authorization": "Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp",
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"authorization": @"Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp"};

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.procob.com/consultas/teste"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.procob.com/consultas/teste",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "authorization: Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import http.client

conn = http.client.HTTPConnection("api.procob.com")

headers = {
    'authorization': "Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp"
    }

conn.request("GET", "/consultas/teste", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.procob.com/consultas/teste")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp'

response = http.request(request)
puts response.read_body
import Foundation

let headers = [
  "authorization": "Basic c2FuZGJveEBwcm9jb2IuY29tOlRlc3RlQXBp"
]

var request = NSMutableURLRequest(URL: NSURL(string: "https://api.procob.com/consultas/teste")!,
                                        cachePolicy: .UseProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.HTTPMethod = "GET"
request.allHTTPHeaderFields = headers

let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    println(error)
  } else {
    let httpResponse = response as? NSHTTPURLResponse
    println(httpResponse)
  }
})

dataTask.resume()

Retorno

Após os passos acima, você deverá receber um retorno da nossa API. Caso o retorno seja de sucesso, retornamos um JSON como o exibido abaixo:

{
  "code": "000",
  "message": "Pesquisa feita com sucesso",
  "date": "2017-02-23",
  "hour": "14:37:21",
  "revision": "13084",
  "server": "20",
  "saldo": "23.46",
  "content": {}
}
			

A resposta da API se da sempre em um bloco contendo o código da resposta, a mensagem, a data e hora da consulta e o conteúdo da consulta efetuada, caso ele exista.

Clique aqui para ver a lista de retornos disponíveis.

Documentation auto-generated on Tue, 26 Sep 17 04:07:12 -0300