SDK em PHP para consulta a API RESTful da Procob S.A.
SDK em PHP para consulta a API RESTful da Procob S.A. Documentação da API da Procob S/A
Via Composer
composer require vitorccs/procob-api-php
Parâmetro | Obrigatório | Padrão | Comentário |
---|---|---|---|
PROCOB_API_USER | Sim | - | Usuário da API para autenticar. |
PROCOB_API_PWD | Sim | - | Senha da API para autenticar. Se omitido, será usuado o de teste. |
PROCOB_API_TIMEOUT | Não | 30 | Timeout em segundos para estabelecer conexão com a API |
- Os parâmetros podem ser definidos por váriaveis de ambiente:
putenv('PROCOB_API_USER=sandbox@procob.com');
putenv('PROCOB_API_PWD=TesteApi');
putenv('PROCOB_API_TIMEOUT=30');
ou passados por array
:
\Procob\Http\Procob::setParams([
'PROCOB_API_USER' => 'sandbox@procob.com',
'PROCOB_API_PWD' => 'TesteApi',
'PROCOB_API_TIMEOUT' => 30
]);
- Em seguida, basta utilizar qualquer um dos métodos disponíveís:
$consulta = \Procob\Person::getByCpfCnpj($cpfCnpj);
Você poderá usar o usuário e senha de testes da Procob (sandbox@procob.com | TesteApi), porém, os dados retornados pela API são todos fictícios
// CPF/CNPJ Completo
Procob\Person::getByCpfCnpj($cpfCnpj)
// CPF/CNPJ pelo Nome
Procob\Person::getByName($cpfCnpj, $params = [])
// DDD + Telefone
Procob\Person::getByPhone($ddd, $number)
// Sintegra
Procob\Person::getCpfCnpjStatus($cpfCnpj, $params = [])
// Quadro Societário / Participação em Empresa(s)
Procob\Person::getCompanyPartners($cnpj)
// Vizinhos
Procob\Person::getNeighbors($params)
// CPF/CNPJ pelo E-mail
Procob\Person::getByEmail($email)
// Número do Benefício
Procob\Person::getNationalInsuranceStatus($cpf)
// Dados Gerais
Procob\Person::getBasicData($cpfCnpj)
// Perfil CNPJ
Procob\Person::getCompanyProfile($cnpj)
- Os dados de CPF e CNPJ podem ser passados no formato número ou texto, com ou sem máscaras.
- Os números de CPF e CNPJ sempre passam por validação de dados da própria SDK, evitando com isso consumir uma requisição a API.
- A SDK reconhece automaticamente quando a API da Procob não teve sucesso (código diferente de "000") e nestes casos, lança uma "exceção" (Exception) com a mensagem de erro.
use Procob\Exceptions\ProcobApiException;
use Procob\Exceptions\ProcobRequestException;
error_reporting(E_ALL);
ini_set('display_errors', 1);
require __DIR__ . '/vendor/autoload.php';
putenv('PROCOB_API_TIMEOUT=30');
putenv('PROCOB_API_USER=sandbox@procob.com');
putenv('PROCOB_API_PWD=TesteApi');
try {
$response = Procob\Person::getByCpfCnpj('06.116.543/0001-55');
print_r($response);
} catch (ProcobApiException $e) { // erros retornados pela API Procob
echo sprintf("%s (%s)", $e->getMessage(), $e->getErrorCode());
} catch (ProcobRequestException $e) { // erros de servidor (erros HTTP 4xx e 5xx)
echo sprintf("%s (%s)", $e->getMessage(), $e->getErrorCode());
} catch (\Exception $e) { // demais erros
echo $e->getMessage();
}
Caso queira contribuir, por favor, implementar testes de unidade em PHPUnit.
Para executar:
composer test