All Projects → nfe → client-php

nfe / client-php

Licence: MIT License
Official NFe.io API Client for PHP

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to client-php

Asset Packagist
Asset Packagist
Stars: ✭ 235 (+552.78%)
Mutual labels:  packagist, composer
composer-localdev-plugin
Composer Plugin for local development
Stars: ✭ 31 (-13.89%)
Mutual labels:  packagist, composer
Satis
Simple static Composer repository generator - For a full private Composer repo use Private Packagist
Stars: ✭ 2,722 (+7461.11%)
Mutual labels:  packagist, composer
Ansible Role Composer
Ansible Role - Composer PHP Dependency Manager
Stars: ✭ 149 (+313.89%)
Mutual labels:  packagist, composer
The-PHP-Workshop
A New, Interactive Approach to Learning PHP
Stars: ✭ 30 (-16.67%)
Mutual labels:  packagist, composer
Hprose Php
Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
Stars: ✭ 1,952 (+5322.22%)
Mutual labels:  packagist, composer
packagist
🐳 Dockette out-of-box Packagist (Nginx / Solr 6 / PHP 7.1+FPM)
Stars: ✭ 32 (-11.11%)
Mutual labels:  packagist, composer
Satis Server
🐳 Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion. HTTP API, HTTPs support, webhook handler, scheduled builds, Slack and HipChat integration.
Stars: ✭ 96 (+166.67%)
Mutual labels:  packagist, composer
composer-diff
Compares composer.lock changes and generates Markdown report so you can use it in PR description.
Stars: ✭ 51 (+41.67%)
Mutual labels:  packagist, composer
ip
Immutable value object for IPv4 and IPv6 addresses, including helper methods and Doctrine support.
Stars: ✭ 212 (+488.89%)
Mutual labels:  packagist, composer
Laravel Paket
Composer GUI. Manage Laravel dependencies from web interface without switching to command line!
Stars: ✭ 143 (+297.22%)
Mutual labels:  packagist, composer
alfred-packagist
Alfred workflow to search for PHP packages with Packagist
Stars: ✭ 21 (-41.67%)
Mutual labels:  packagist, composer
Security Advisories
A database of PHP security advisories
Stars: ✭ 1,740 (+4733.33%)
Mutual labels:  packagist, composer
Private Composer Installer
Composer install helper outsourcing sensitive keys from the package URL into environment variables
Stars: ✭ 168 (+366.67%)
Mutual labels:  packagist, composer
Packeton
📦 Private, self-hosted Packagist/Composer/Satis repository with unlimited private repos.
Stars: ✭ 115 (+219.44%)
Mutual labels:  packagist, composer
generator-composer
🐘 Yeoman (http://yeoman.io) generator for a PHP Composer project
Stars: ✭ 16 (-55.56%)
Mutual labels:  packagist, composer
Packagist Mirror
Alibaba Cloud Packagist Mirror
Stars: ✭ 63 (+75%)
Mutual labels:  packagist, composer
Keygen Php
A fluent PHP random key generator.
Stars: ✭ 93 (+158.33%)
Mutual labels:  packagist, composer
private-packagist-api-client
Private Packagist API Client
Stars: ✭ 28 (-22.22%)
Mutual labels:  packagist, composer
composer-velocita
Velocita - Composer plugin for transparent caching
Stars: ✭ 26 (-27.78%)
Mutual labels:  packagist, composer

Cliente PHP para emissão de notas fiscais - NFe.io

Onde acessar a documentação da API?

Acesse a nossa documentação para mais detalhes e referências.

Como realizar a instalação do pacote?

Você pode instalar via Composer, executando o comando a seguir:

composer require nfe/nfe

Para usar a biblioteca, use o Composer autoload:

require_once('vendor/autoload.php');

Observação: A versão do PHP deverá ser 5.4 ou superior.

Dependencias

Esta biblioteca requer as seguintes extensões para funcionamento correto:

- curl

- json

Se você usa o Composer, essas dependencias são gerenciadas automaticamente. Caso tenha feito a instalação manual, você precisa ter certeza que estas extensões estão instaladas e disponíveis.

Se você não quiser utilizar o Composer, você pode fazer o download de uma das últimas versões, utilizando o endereço https://github.com/nfe/client-php/releases

Exemplos de uso

Depois de baixar o pacote, inclua a biblioteca em seu arquivo PHP, utilizando o código abaixo:

require_once("caminho-para/client-php/lib/init.php");

Observação: Caso você utilizar mais de um arquivo .php para fazer a integração, o código acima deverá ser replicado nos outros arquivos.

Como emitir uma Nota Fiscal de Serviço?

Abaixo, temos um código-exemplo para realizar uma Emissão de Nota Fiscal de Serviço:

require_once("caminho-para/client-php/lib/init.php");

NFe_io::setApiKey('c73d49f9649046eeba36dcf69f6334fd'); // Ache sua chave API no painel (https://app.nfe.io/account/apikeys)

$invoiceCreated = NFe_ServiceInvoice::create(
  // ID da empresa, você deve copiar exatamente como está no painel
  '64555e0ee340420fdc94ad09',
  // Dados da nota fiscal de serviço
  array(
    // Código do serviço de acordo com o a cidade
    'cityServiceCode' => '2690',
    // Descrição dos serviços prestados
    'description'     => 'TESTE EMISSAO',
    // Valor total do serviços
    'servicesAmount'  => 0.01,
    // Dados do Tomador dos Serviços
    'borrower' => array(
      // CNPJ ou CPF (opcional para tomadores no exterior)
      'federalTaxNumber' => 191,
      // Nome da pessoa física ou Razão Social da Empresa
      'name'             => 'BANCO DO BRASIL SA',
      // Email para onde deverá ser enviado a nota fiscal
      'email'            => '[email protected]', // Para visualizar os e-mails https://www.mailinator.com/
      // Endereço do tomador
      'address'          => array(
        // Código do pais com três letras
        'country'               => 'BRA',
        // CEP do endereço (opcional para tomadores no exterior)
        'postalCode'            => '70073901',
        // Logradouro
        'street'                => 'Outros Quadra 1 Bloco G Lote 32',
        // Número (opcional)
        'number'                => 'S/N',
        // Complemento (opcional)
        'additionalInformation' => 'QUADRA 01 BLOCO G',
        // Bairro
        'district'              => 'Asa Sul',
        // Cidade é opcional para tomadores no exterior
        'city' => array(
            // Código do IBGE para a Cidade
            'code' => '5300108',
            // Nome da Cidade
            'name' => 'Brasilia'
        ),
        // Sigla do estado (opcional para tomadores no exterior)
        'state' => 'DF'
      )
    )
  )
);

echo($invoiceCreated->id);

Como cancelar uma nota?

Abaixo, temos um código-exemplo para efetuar o cancelamento de uma nota:

require_once("caminho-para/client-php/lib/init.php");

NFe_io::setApiKey("c73d49f9649046eeba36dcf69f6334fd"); // Ache sua chave API no painel (https://app.nfe.io/account/apikeys)

$invoice = NFe_ServiceInvoice::fetch(
  '64555e0ee340420fdc94ad09', // ID da empresa, você deve copiar exatamente como está no painel
  'wPi7i954QAcr6kmy17BtEKtN'  // ID da nota fiscal
);

if ( $invoice->status == 'Issued' ) {
  $invoice->cancel();
}

Como criar uma empresa para realizar a emissão de notas fiscais?

Abaixo, temos um código-exemplo de criação de uma empresa, para realizar a emissão de nota fiscal:

require_once("caminho-para/client-php/lib/init.php");

NFe_io::setApiKey("c73d49f9649046eeba36dcf69f6334fd"); // Ache sua chave API no painel (https://app.nfe.io/account/apikeys)

$companyCreated = NFe_Company::create(
  array(
    'federalTaxNumber' => 87502637000164, // Use esse gerador para testar: http://www.geradordecnpj.org/
    'name'             => 'BANCO DO BRASIL SA',
    'tradeName'        => 'BANCO DO BRASIL',
    'email'            => '[email protected]', // Para visualizar os e-mails https://www.mailinator.com/inbox2.jsp?public_to=nfe
     // Endereço da empresa
    'address'          => array(
      // Código do pais com três letras
      'country'               => 'BRA',
      // CEP do endereço (opcional para tomadores no exterior)
      'postalCode'            => '70073901',
      // Logradouro
      'street'                => 'Outros Quadra 1 Bloco G Lote 32',
      // Número (opcional)
      'number'                => 'S/N',
      // Complemento (opcional)
      'additionalInformation' => 'QUADRA 01 BLOCO G',
      // Bairro
      'district'              => 'Asa Sul',
      // Cidade é opcional para tomadores no exterior
      'city' => array(
          // Código do IBGE para a Cidade
          'code' => '5300108',
          // Nome da Cidade
          'name' => 'Brasilia'
      ),
      // Sigla do estado (opcional para tomadores no exterior)
      'state' => 'DF'
    )
  )
);

echo($companyCreated->id);

Como efetuar o download de uma nota em PDF?

Abaixo, temos um código exemplo para baixar uma nota em PDF:

require_once("caminho-para/client-php/lib/init.php");

NFe_io::setApiKey('c73d49f9649046eeba36dcf69f6334fd'); // Ache sua chave API no painel (https://app.nfe.io/account/apikeys)

$url = NFe_ServiceInvoice::pdf(
  '64555e0ee340420fdc94ad09', // ID da empresa, você deve copiar exatamente como está no painel
  'wPi7i954QAcr6kmy17BtEKtN'  // ID da nota fiscal
);

file_put_contents( './invoice_file.pdf', file_get_contents($url) );

Como validar o Webhook?

PHP > 5.3

define('WEBHOOK_SECRET_KEY', 'COLOQUE SUA CHAVE DEFINIDA NO SITE AQUI');
function verify_webhook($data, $hmac_header)
{
    $calculated_hmac = base64_encode(hash_hmac('sha1', $data, WEBHOOK_SECRET_KEY,true));
    return ($hmac_header == $calculated_hmac);
}

$hmac_header = str_replace("sha1=", '', $_SERVER['HTTP_X_NFEIO_SIGNATURE']);
$data = file_get_contents('php://input');
$verified = verify_webhook($data, $hmac_header);
if(!$verified) {
	//Código para requisição que não foi validada
} else {
	//Código para requisição validada
}

Testes

Instale as dependências necessárias para executar os testes. O client-php do NFe utiliza SimpleTest.

composer update --dev

Execute a comitiva de testes:

php ./test/NFe.php
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].