Este pacote foi construído com o objetivo de simplificar a integração com a API do Plugnotas. Para obter informações sobre o funcionamento e contratações acesse nosso site ou a documentação oficial.
Aconselhamos a instalação do pacote pelo Composer. Composer é um gerenciador de dependências para PHP que lhe permite declarar e instalar as dependências em seu projeto de forma simplificada.
O pacote pode ser adicionado utilizando o comando do próprio composer:
php composer.phar require tecnospeedsa/plugnotas:~1.4
Ou adicionado manualmente no arquivo composer.json
:
{
"require": {
"tecnospeedsa\plugnotas": "~1.4"
}
}
O carregamento do pacote é realizado com o autoloader do Composer, caso você não tenha adicionado ao seu projeto é necessário incluir o seguinte require:
require 'vendor/autoload.php;'
Para maiores informações de como instalar, utilizar e melhores práticas para definir dependências em seu projeto acesse o site oficial getcomposer.org.
Para enviar uma NFSe deve ser criado um objeto do tipo relacionado (TecnoSpeed\Plugnotas\Nfse
), o qual é composto de vários outros objetos agrupados dentro de seu namespace.
Uma vez o objeto criado deve-se chamar o método send
do mesmo, este processo pode ser bem complexo e extenso, não se preocupe existe uma forma mais fácil citada a seguir.
Um exemplo do envio de uma NFSe criando os objetos de forma manual pode ser encontrado aqui.
A classe TecnoSpeed\Plugnotas\Builders\NfseBuilder
é uma classe auxiliar que permite você criar de forma fácil um objeto TecnoSpeed\Plugnotas\Nfse
.
Com esta classe auxiliar utilizando os métodos: withTomador
, withPrestador
, withServico
, withRps
, withImpressao
e withCidadePrestacao
você pode compor o objeto Nfse, um exemplo disso é mostrado no arquivo nfse.simple.php.
O cadastro de Prestador, Tomador e Serviço simplifica o envio da NFSe, sendo que uma vez cadastrado você pode enviar a nota com menos parâmetros pois o que já tem cadastrado será consultado.
Nos links a seguir você encontra exemplos dos cadastros dos tipos:
Para consultar uma NFSe é necessário criar um objeto do tipo TecnoSpeed\Plugnotas\Configuration
, setar ele num novo objeto TecnoSpeed\Plugnotas\Nfse
utilizando o método setConfiguration
.
Após este setup realizado, existe duas possibilidades de consulta, pelo ID da nota ou protocolo gerado na hora que você enviou a nota, ou passando o ID Integração e o CNPJ do Prestador utilizado para criar a NFSe. Os respectivos métodos são: findByCnpjAndIdIntegracao
e findByIdOrProtocol
.
Exemplo utilizando o método findByCnpjAndIdIntegracao pode ser encontrado aqui e exemplo utilizando o método findByIdOrProtocol pode ser encontrado aqui.
Da mesma forma que a consulta o download do PDF da Nfse necessita de um objeto do tipo TecnoSpeed\Plugnotas\Configuration
, o qual deve ser setado num novo objeto TecnoSpeed\Plugnotas\Nfse
utilizando o método setConfiguration
.
Uma particularidade é que é necessário indicar a pasta para escrita dos arquivos no objeto de configuração utilizando o método setNfseDownloadDirectory
.
Existe a possibilidade de realizar o download utilizando o ID da nota retornado na criação utilizando o método download
, como também realizar o download utilizando o CNPJ do Prestador e o ID Integração utilizados no envio da NFSe através do método downloadPdfByCnpjAndIdIntegracao
.
Os arquivos serão salvos na pasta configurada (a qual precisa ter permissão de escrita), o padrão do nome do arquivo será o seguinte:
- Quando utilizado o método
download
:<pasta informada>/<id>.pdf
- Quando utilizado o método
downloadPdfByCnpjAndIdIntegracao
:<pasta informada>/<cnpj>-<id integração>.pdf
Exemplo de download utilizando o ID pode ser encontrado aqui e exemplo de download utilizando o CNPJ e ID Integração aqui.
O cancelamento de uma NFSe pode ser realizado da mesma forma com que a busca e o download, informando o ID da Nfse ou o Cnpj do prestador e o ID Integração.
Da mesma forma que a consulta e o download do PDF da Nfse é necessário de um objeto do tipo TecnoSpeed\Plugnotas\Configuration
, o qual deve ser setado num novo objeto TecnoSpeed\Plugnotas\Nfse
utilizando o método setConfiguration
.
Os respectivos métodos para realizar este procedimento são: cancel
e cancelByCnpjAndIdIntegracao
.
Ao criar um cancelamento será retornado um protocolo, tal protocolo pode ser utilizado para consultar o status do cancelamento utilizando a rota cancelStatus
.
Você pode conferir alguns exemplos na pasta /examples
.
Todos os objetos decompostos em arrays podem ser vistos no arquivo nfse.array.php.
Acesse o Changelog da aplicação por este link.