Download the PHP package devsitarget/sdk-sefin-nfse-php without Composer
On this page you can find all versions of the php package devsitarget/sdk-sefin-nfse-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download devsitarget/sdk-sefin-nfse-php
More information about devsitarget/sdk-sefin-nfse-php
Files in devsitarget/sdk-sefin-nfse-php
Package sdk-sefin-nfse-php
Short Description SDK PHP para integração com a API NFS-e da SEFIN Nacional
License MIT
Informations about the package sdk-sefin-nfse-php
Sefin SDK
SDK PHP para integração com a API NFS-e da SEFIN Nacional, seguindo o contrato do swagger.json deste repositório.
Recursos
- Emissão síncrona de NFS-e
- Emissão de NFS-e com decisão judicial
- Consulta por chave de acesso
- Consulta e verificação por identificador do DPS
- Registro e consulta de eventos
- Suporte a autenticação mTLS com certificado cliente
- DTOs tipados para requests e responses
- Utilitário para compactar/descompactar XML em
gzip + base64 - Geração do DANFSe em PDF a partir do XML da NFS-e autorizada (integração com andrevabo/danfse-nacional)
Instalação
Como dependência (Composer / Packagist)
O pacote está publicado no Packagist. Em qualquer projeto PHP que use Composer, adicione a SDK com:
Assim você passa a utilizar esta biblioteca como dependência declarada no composer.json, com resolução de versões e autoload gerenciados pelo Composer.
Clonando este repositório
Para desenvolver ou rodar os testes a partir do código-fonte deste repositório:
Uso com Docker
Para abrir um shell dentro do container:
Exemplo rápido
Enviar JSON e deixar a SDK montar o XML (DPS)
Se você prefere receber os campos como JSON no seu endpoint e delegar para a SDK a montagem do XML (DPS 1.01) + assinatura do infDPS, use submitNfseFromArray():
Atividade/Evento (atvEvento)
Quando o cTribNac pertence ao item 12 da LC 116/2003 (códigos que começam com 12, como 120801 — feiras, exposições, congressos etc.), a SEFIN exige o grupo serv/atvEvento. Sem ele, a emissão é rejeitada com o erro E0390.
Inclua atvEvento dentro de serv no payload de submitNfseFromArray():
Regras:
xNome,dtIniedtFimsão obrigatórios. InformeidAtvEvtouend, nunca os dois. Ao usarend, o CEP deve pertencer ao município decLocPrestacao(regra E0398). Para eventos no exterior, useend.endExtem vez deCEP.
Substituição de NFS-e
Para emitir uma NFS-e em substituição a outra já autorizada, inclua o campo subst dentro de infDPS, antes de prest:
O campo
substé opcional (0-1). QuandocMotivo = 99, o campoxMotivotorna-se obrigatório (entre 15 e 255 caracteres).
DANFSe em PDF (XML → PDF)
Para gerar o documento auxiliar da NFS-e em PDF a partir do XML retornado pela SEFIN (ou de um arquivo salvo), use DanfsePdfGenerator. A SDK normaliza o XML quando necessário para compatibilidade com o gerador (por exemplo, ajustes no bloco totTrib).
Opcionalmente é possível injetar uma instância de DanfseConfig da biblioteca danfse-nacional no construtor de DanfsePdfGenerator para ajustes avançados de layout.
Consultar todos os eventos de uma NFS-e
Use getEventsByAccessKey() para buscar todos os eventos vinculados a uma NFS-e pela chave de acesso:
Para buscar um evento específico pelo tipo e número sequencial, use
getEvent($chaveAcesso, $tipoEvento, $numSeqEvento).
Cancelamento de NFS-e
O cancelamento usa o layout de eventos v1.01 (Anexo II SEFIN/ADN). A SDK monta o XML conforme o schema atual da SEFIN, incluindo o Id no formato PRE + chave (50) + tipo de evento (101101).
Forma simplificada (recomendada)
Use cancelNfse(). A SDK monta o XML, extrai o CNPJ/CPF do certificado, assina e envia para a SEFIN:
Campos preenchidos automaticamente por cancelNfse() quando omitidos:
| Campo | Padrão |
|---|---|
tpAmb |
ambiente configurado na SDK (Environment) |
verAplic |
sefin-sdk |
dhEvento |
data/hora atual (America/Sao_Paulo) |
CNPJAutor / CPFAutor |
extraído do certificado digital |
Aliases legados:
cMotCancNFSeexMotCancNFSeainda são aceitos. O valor4emcMotCancNFSeé mapeado paracMotivo = 9. O motivo3(Duplicidade) não existe mais no layout v1.01 — use9comxMotivo.Para consultar o evento registrado, use
getEvent($chaveAcesso, 101101, $numSeqEvento).
Forma manual (controle total)
Caso precise inspecionar ou manipular o XML antes de enviar, use as classes de suporte diretamente:
Testes
All versions of sdk-sefin-nfse-php with dependencies
guzzlehttp/guzzle Version ^7.5
psr/http-client Version ^1.0
psr/http-message Version ^1.0 || ^2.0
robrichards/xmlseclibs Version ^3.1
andrevabo/danfse-nacional Version ^1.0