Pular para o conteúdo principal

SDK para PHP

Comece a usar rapidamente a Nuvem Fiscal com o nosso SDK para PHP! O SDK é uma biblioteca open source cujo código-fonte completo está disponível no GitHub:

Instalação e uso

Requisitos

PHP 7.4 ou posterior.

Composer

Para instalar os bindings via Composer, adicione o seguinte ao composer.json:

{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/nuvem-fiscal/nuvemfiscal-sdk-php.git"
}
],
"require": {
"nuvem-fiscal/nuvemfiscal-sdk-php": "*@dev"
}
}

Então execute composer install

Instalação manual

Baixe os arquivos e inclua o autoload.php:

<?php
require_once('/path/to/NuvemFiscal/vendor/autoload.php');

Guia rápido

Siga os passos para instalação e então execute o seguinte:

<?php
require_once(__DIR__ . '/vendor/autoload.php');

// Obter token a partir das credenciais
$token = get_oauth2_token(
'https://auth.nuvemfiscal.com.br/oauth/token',
getenv('NUVEMFISCAL_CLIENTID'),
getenv('NUVEMFISCAL_CLIENTSECRET'),
'cep cnpj' // defina o scope a ser usado
);

// Configurar access token OAuth2 para autorização: oauth2
$config = NuvemFiscal\Configuration::getDefaultConfiguration()->setAccessToken($token->access_token);

// Configurações gerais
$config->setBooleanFormatForQueryString(Configuration::BOOLEAN_FORMAT_STRING);

// Efetuar a chamada ao endpoint
$apiInstance = new NuvemFiscal\Api\CepApi(
// Se quiser usar um client http customizado, passe um client que implemente `GuzzleHttp\ClientInterface`.
// Isso é opcional, `GuzzleHttp\Client` será usado por padrão.
new GuzzleHttp\Client(),
$config
);
$cep = '80030030'; // string | CEP sem máscara.

try {
$result = $apiInstance->consultarCep($cep);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling CepApi->consultarCep: ', $e->getMessage(), PHP_EOL;
}

A função get_oauth2_token é uma função genérica para buscar o token OAuth2 a partir das credenciais. Isso não é definido pela Nuvem Fiscal, mas sim pelo padrão OAuth2. A seguir apresentamos uma sugestão básica de uso, mas essa função fica sob sua responsabilidade:

function get_oauth2_token($auth_url, $client_id, $client_secret, $scope) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $auth_url);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
'grant_type' => 'client_credentials',
'scope' => $scope,
)));

$headers[] = "Authorization: Basic " . base64_encode($client_id . ":" . $client_secret);
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

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

curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
return json_decode($response);
}
}

Referência completa

O repositório do GitHub contém a lista de todos os endpoints e métodos correspondentes, classes DTOs, parâmetros, e mais. Visite o repositório para uma referência completa do SDK para PHP: