2017 © Pedro Peláez
 

library sped-gnre

API para a emissão de guias GNRE para a SEFAZ

image

nfephp-org/sped-gnre

API para a emissão de guias GNRE para a SEFAZ

  • Sunday, January 28, 2018
  • by robmachado
  • Repository
  • 19 Watchers
  • 35 Stars
  • 89 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 34 Forks
  • 0 Open issues
  • 9 Versions
  • 197 % Grown

The README.md

Build status (PHP Composer) Coverage Status Total Downloads Latest Stable Version Latest Unstable Version License, (*1)

Atenção!!

Caso encontre algum estado que possua uma regra especial para gerar uma GNRE por favor informar abrindo uma issue. Dessa forma podemos manter a API atualizada e ajudar a todos que utlizam a GNRE PHP, (*2)

Atenção 2!!

Se você possui um certificado da certisign e está com o erro "Bad request" veja a solução encontrada pelo renandelmonico utilizando as classes da sped-common nesse link, (*3)

Os certificados da certisign possuem algum problema em que não é possível extrair a cadeia de certificação, portanto é necessário fazer o download da cadeia manualmente nesse link (Hierarquia V5)., (*4)

Após o download é necessário extrair usando o openssl, copiar o conteúdo gerado pelos 3 certificados e colar em um novo arquivo .pem., (*5)

openssl x509 -inform der -in ARQUIVO.cer -pubkey -noout > ARQUIVO.pem

Depois de realizar o processo acima, é necessário utilizar o método addCurlOption da classe Sped\Gnre\Webservice\Connection para alterar algumas configurações e informar manualmente a cadeia de certificação., (*6)

$webService->addCurlOption([
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_SSL_VERIFYPEER => 1,
    CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1,
    CURLOPT_CAINFO => 'ARQUIVO.pem'
]);

Versões suportadas

PHP GNRE
PHP 5.6 0.1.4
HHVM 0.1.4
PHP 7.0 0.1.5
PHP 7.3 0.1.6

Antes de usar a API

  • Verifique se seu certificado digital não foi expedido através da certisign, pois existe um problema na cadeia do certificado que impossibilita a emissão de guias GNRE. Certificados expedidos através do SERASA funcionam normalmente para a emissão (até agora nenhum erro foi relatado)., (*7)

  • É permitido utilizar o mesmo certificado utilizado para emitir NF-e., (*8)

  • É necessário entrar em contato com a SEFAZ de cada estado pedindo liberação do serviço de emissão de GNRE., (*9)

  • Leita todos os tópicos no FAQ oficial em http://www.gnre.pe.gov.br/gnre/portal/faq.jsp. Os tópicos abordados são muito úteis para quem está começando nesse serviço., (*10)

GNRE PHP

Objetivo

API possibilita a comunicação com a SEFAZ para a emissão da nota GNRE (Guia Nacional de Recolhimento de Tributos Estaduais). A API GNRE tem como maior inspiração a API NFEPHP que você pode encontrar através do link https://github.com/nfephp, (*11)

Dependências


Road-map

Atualmente estamos utilizando o trello para gerenciar o que será implementado nas próximas versões e melhorias na API, esse road map poe ser acessado em https://trello.com/b/kNP1tvsi/gnre-api-github, (*12)


Informações úteis

Descrição Endereço
Grupo de discussão https://groups.google.com/forum/#!forum/gnrephp
Site oficial do governo http://www.gnre.pe.gov.br/gnre/index.html
Site do Projeto http://nfephp-org.github.io/sped-gnre/
Wiki, onde é possível encontrar maiores informações de como utilizar a API https://github.com/nfephp-org/sped-gnre/wiki
Site oficial da SEFAZ de todo os estados http://www.gnre.pe.gov.br/gnre/portal/linksUteis.jsp
  1. Antes de gerar qualquer guia GNRE com o seu certificado, tenha CERTEZA que você possui autorização para isso. A geração de GNRE depende de cada estado, ou seja, se você deseja gerar a guia para o Acre (com destino ao Acre) tenha certeza que já pediu a liberação do certificado no SEFAZ Acre e repita esse processo para cada estado.

Documentação

  • Documentação da GNRE PHP gerada com o PHPDOC pode ser visualizada aqui, (*13)

  • Nosso wiki de como utilizar a API e gerar as GNRES está disponível aqui no github, (*14)

  • Exemplos com código fonte são encontrados na pasta exemplos/, (*15)

Instalação via composer

Adicionando a GNRE PHP em um projeto existente com o composer, (*16)

Caso você não possua o composer veja esse link antes de prosseguir, (*17)

Adicione a dependência da GNRE PHP no arquivo composer.json :, (*18)

Para PHP <= 5.5 ``` json { "nfephp-org/sped-gnre": "0.1.1" }, (*19)


Para PHP = 5.6 ``` json { "nfephp-org/sped-gnre": "0.1.4" }

Para PHP >= 7.0 ``` json { "nfephp-org/sped-gnre": "0.1.5" }, (*20)


Atualize suas depedências existentes no composer : ``` terminal composer update

Possíveis erros

Erro : unable to use client certificate (no key found or wrong pass phrase?), (*21)

Se você está obtendo essa mensagem após enviar a requisição para o web service da SEFAZ verifique a senha que você está utilizando, pois esse erro ocorre quando a senha informada não bate com a senha do certificado utilizado, (*22)

Erro: [InvalidArgumentException] Could not find package marabesi/gnre at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability, (*23)

Esse problema ocorre pois não estamos informando ao composer qual a versão mínima que queremos utilizar, para resolver esse problema basta adicionar a seguinte linha no seu arquivo composer.json, (*24)

``` json { "minimum-stability": "dev" }, (*25)

-----
Quick start
-----
Clone o repositório do projeto
``` terminal
git clone https://github.com/nfephp-org/sped-gnre.git

Vá para a pasta de exemplos, (*26)

cd exemplos/

Rode o servidor built-in do PHP, (*27)

php -S localhost:8181

Abra o seu navegador e digite a seguinte URL, (*28)

http://localhost:8181/gerar-xml.php

Caso queira ver outros exemplos utilizados pela API acesse esse link https://github.com/nfephp-org/sped-gnre/tree/master/exemplos, (*29)

The Versions

19/10 2016

dev-debug-mode

dev-debug-mode

API para a emissão de guias GNRE para a SEFAZ

  Sources   Download

GNU

The Requires

 

by Leandro Pereira

29/06 2016
11/01 2016
26/06 2015

dev-dev-pdf

dev-dev-pdf

API para a emissão de guias GNRE para a SEFAZ

  Sources   Download

GNU

The Requires

 

by Leandro Pereira