Download the PHP package sabbajohn/fiscal-core without Composer
On this page you can find all versions of the php package sabbajohn/fiscal-core. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sabbajohn/fiscal-core
More information about sabbajohn/fiscal-core
Files in sabbajohn/fiscal-core
Package fiscal-core
Short Description Pacote para emissão e consulta de notas fiscais implementando interfaces simplificadas para o PHPNFe
License MIT
Informations about the package fiscal-core
🚀 FISCAL-CORE - Biblioteca PHP para Operações Fiscais
Biblioteca robusta e modular para operações fiscais brasileiras
NFe, NFCe, NFSe, Consultas Públicas, Tributação IBPT e muito mais!
📋 Sumário
- 📦 Instalação
- ⚡ Início Rápido
- 🎯 Funcionalidades
- 📚 Exemplos Práticos
- ⚙️ Configuração
- 🏗️ Arquitetura
- 📖 API das Facades
- 🚢 Release Packagist
- 📊 Casos de Uso
- 🔧 Requisitos
- 🚨 Troubleshooting
- 🗺️ Roadmap
📦 Instalação via Composer
Desenvolvimento local:
bash composer require sabbajohn/fiscal-core:@dev bash composer install
🎯 Funcionalidades Principais
📋 Consultas Públicas
| Função | API | Status |
|---|---|---|
| CEP | ViaCEP + BrasilAPI | ✅ |
| CNPJ | ReceitaWS + BrasilAPI | ✅ |
| Bancos | BrasilAPI | ✅ |
| NCM | BrasilAPI | ✅ |
📄 Documentos Fiscais
| Documento | Status | Providers |
|---|---|---|
| NFe | ✅ Pronto | NFePHP |
| NFCe | ✅ Pronto | NFePHP |
| NFSe | ✅ Multi-município | 15+ cidades |
💰 Tributação
- IBPT - Cálculo automático de tributos
- Múltiplos produtos em lote
- Cache parcial em fluxos específicos
- Fallbacks por estado/federal
📚 Exemplos Práticos
🎓 Para Iniciantes (examples/basico/)
🏢 Para Produção (examples/avancado/)
📖 Guia Completo
📚 Veja todos os exemplos organizados em examples/README.md
⚙️ Configuração (Opcional)
🔐 Certificados NFe/NFCe
🧩 Compatibilidade NFe/NFCe
O fiscal-core usa nfephp-org/sped-nfe como motor NFe/NFCe. Para acompanhar novas Notas Técnicas sem alterar código de negócio, configure versão XML e pacote de schemas por ambiente ou por modelo:
Aliases aceitos para schema: PL_009, PL_010, NT_2025_002, reforma_tributaria e IBSCBS. O resolvedor usa o schema instalado no sped-nfe mais adequado, por exemplo PL_010_V1.30 quando disponível.
Também é possível sobrescrever por payload:
Para diagnóstico, FiscalFacade::getConfigInfo() retorna nfe_compatibility com versões instaladas, schemas disponíveis e suporte a tags IBS/CBS.
💰 IBPT (Tributação)
🏘️ NFSe Municípios
- O catálogo municipal atual está em
config/nfse/ FISCAL_IMcontinua obrigatório para emissões municipais reais- A consulta pública de CNPJ ajuda com razão social/contato/endereço, mas não fornece inscrição municipal
provider_config_overridesno catálogo aplica merge sobre a família técnica no runtimepayload_defaultsno catálogo acelera exemplos e homologação sem duplicar a família- Emissão classificada como MEI usa sempre o provider nacional
- Para Belém, o DANFSe é disponibilizado pela prefeitura em URL oficial; a biblioteca retorna isso no contrato canônico em
impressao.modo = urleimpressao.url - O playbook canônico para implementação municipal está em docs/NFSE-MUNICIPAL-PROVIDER-PLAYBOOK.md
- A migração de município municipal para nacional está em docs/NFSE-MIGRACAO-MUNICIPAL-PARA-NACIONAL.md
- A matriz operacional de famílias e providers está em docs/NFSE-PROVIDER-MATRIX.md
Cidades-UF já compatíveis
Status usados abaixo:
HOMOLOGADO: fluxo real já validadoDISPENSADO_NACIONAL: compatível via provider nacional; não exige homologação municipal individualPENDENTE_HOMOLOGACAO_REAL: compatível em catálogo/runtime/testes, mas ainda depende de evidência real por município
| Cidade/UF | Provider | Status |
|---|---|---|
| Manaus/AM | nfse_nacional |
HOMOLOGADO |
| Belém/PA | BELEM_MUNICIPAL_2025 |
HOMOLOGADO |
| Castanhal/PA | ABRASF_SHARED |
PENDENTE_HOMOLOGACAO_REAL |
| Rio Branco/AC | nfse_nacional |
DISPENSADO_NACIONAL |
| Vitória/ES | nfse_nacional |
DISPENSADO_NACIONAL |
| São Luís/MA | nfse_nacional |
DISPENSADO_NACIONAL |
| Belo Horizonte/MG | nfse_nacional |
DISPENSADO_NACIONAL |
| Recife/PE | nfse_nacional |
DISPENSADO_NACIONAL |
| Curitiba/PR | nfse_nacional |
DISPENSADO_NACIONAL |
| Rio de Janeiro/RJ | nfse_nacional |
DISPENSADO_NACIONAL |
| Natal/RN | nfse_nacional |
DISPENSADO_NACIONAL |
| Porto Alegre/RS | nfse_nacional |
DISPENSADO_NACIONAL |
| Florianópolis/SC | nfse_nacional |
DISPENSADO_NACIONAL |
| Joinville/SC | nfse_nacional |
DISPENSADO_NACIONAL |
| Brasília/DF | ISSNET |
PENDENTE_HOMOLOGACAO_REAL |
| Goiânia/GO | ISSNET |
PENDENTE_HOMOLOGACAO_REAL |
| Cuiabá/MT | ISSNET |
PENDENTE_HOMOLOGACAO_REAL |
| Fortaleza/CE | GINFES |
PENDENTE_HOMOLOGACAO_REAL |
| Maceió/AL | GINFES |
PENDENTE_HOMOLOGACAO_REAL |
| São Paulo/SP | PAULISTANA |
PENDENTE_HOMOLOGACAO_REAL |
| Salvador/BA | SALVADOR_BA |
PENDENTE_HOMOLOGACAO_REAL |
| Porto Velho/RO | EL |
PENDENTE_HOMOLOGACAO_REAL |
| Aracaju/SE | WEBISS |
PENDENTE_HOMOLOGACAO_REAL |
| Palmas/TO | WEBISS |
PENDENTE_HOMOLOGACAO_REAL |
| Feira de Santana/BA | WEBISS |
PENDENTE_HOMOLOGACAO_REAL |
| Itabuna/BA | WEBISS |
PENDENTE_HOMOLOGACAO_REAL |
| Vitória da Conquista/BA | EL |
PENDENTE_HOMOLOGACAO_REAL |
| Presidente Figueiredo/AM | ISSWEB_AM |
PENDENTE_HOMOLOGACAO_REAL |
| Rio Preto da Eva/AM | ISSWEB_AM |
PENDENTE_HOMOLOGACAO_REAL |
| Itajaí/SC | PUBLICA |
PENDENTE_HOMOLOGACAO_REAL |
| São Bento do Sul/SC | IPM |
PENDENTE_HOMOLOGACAO_REAL |
Lista completa e status detalhado:
- docs/NFSE-MUNICIPIOS-SUPORTADOS-HOMOLOGACAO.md
- docs/NFSE-CAPITAIS-HOMOLOGACAO-TRACKER.md
- docs/nfse-municipios-suportados.csv
Uso Detalhado
1) NFe: emitir, consultar e cancelar
2) Impressão: DANFE/DANFCE
3) NFSe: múltiplos municípios
4) NFSe municipal pronta para uso
5) DANFSe municipal
6) Salvar XML e PDF retornados
7) Consulta padronizada de XML
7.1) Contrato canônico e reconciliação de XML antigo
documento.xmlagora representa somente o XML fiscal imprimível.raw.response_bodypreserva payload bruto textual/JSON retornado pelo provedor.raw.response_xmlpreserva XML técnico bruto de transporte/resposta, quando existir.
Se você já salvou registros antigos com o XML errado na base:
- NFe:
- Se houver
raw.parsed_response.xml_assinadoeraw.response_xml, tente remontar onfeProccomNFePHP\NFe\Complements::toAuthorize(...). - Se não houver material suficiente, reconsulte/baixe pela chave de acesso e substitua o registro pelo
documento.xmlcanônico.
- Se houver
- NFSe:
- Se o registro salvo contiver JSON, XML administrativo ou envelope SOAP, tente reextrair o documento fiscal a partir de
nfseXmlGZipB64,raw_xmlou por nova consulta com chave/protocolo/RPS.
- Se o registro salvo contiver JSON, XML administrativo ou envelope SOAP, tente reextrair o documento fiscal a partir de
Critérios práticos para identificar registros corrompidos:
- NFe: raiz
retEnviNFe,retConsReciNFe,retConsSitNFeou ausência deNFe/infNFe. - NFSe: JSON,
<string>, envelope SOAP semCompNfse/Nfse/InfNfseou XML administrativo sem a nota final.
8) Consultas Públicas
🏗️ Arquitetura
🎭 Sistema de Facades
🔄 Sistema de Respostas
🛡️ Error Handling
- Fallbacks automáticos entre providers
- Cache local em fluxos específicos, com política unificada ainda pendente
- Logging/diagnóstico em evolução
- Retry ainda não é uniforme entre adapters
📊 Casos de Uso
💼 E-commerce
🏭 ERP/Contabilidade
🏢 Software House
🔧 Requisitos Técnicos
- PHP >=8.1
- OpenSSL (para certificados)
- cURL (para APIs externas)
- JSON (manipulação de dados)
📦 Dependências Principais
🧪 Testes
// App\Providers\AppServiceProvider.php use NfePHP\NFe\Tools; use sabbajohn\FiscalCore\Adapters\NFeAdapter;
public function register() { $this->app->bind(NFeAdapter::class, function () { $configJson = json_encode([ /sua config NFe/ ]); return new NFeAdapter(new Tools($configJson)); }); }
src/ Contracts/ # Interfaces (contratos de domínio) NotaFiscalInterface.php NotaServicoInterface.php ImpressaoInterface.php TributacaoInterface.php ProdutoInterface.php DocumentoInterface.php ConsultaPublicaInterface.php
Adapters/ # Implementações que integram com bibliotecas externas NFeAdapter.php NFCeAdapter.php NFSeAdapter.php ImpressaoAdapter.php IBPTAdapter.php GTINAdapter.php DocumentoAdapter.php BrasilAPIAdapter.php
Support/ # Classes utilitárias e gerenciamento centralizado CertificateManager.php # Singleton para certificados digitais ConfigManager.php # Singleton para configurações fiscais ToolsFactory.php # Factory para NFePHP Tools IBPTAdapter.php GTINAdapter.php
🚨 Troubleshooting
❓ Problemas Comuns
| Erro | Solução |
|---|---|
| Certificado inválido | Verificar formato .pfx e senha |
| API indisponível | Usar fallbacks automáticos |
| Município não configurado | Revisar config/nfse/providers-catalog.json e config/nfse/nfse-provider-families.json |
| Quota excedida | Implementar cache local |
🔍 Debug Mode
📞 Suporte
- Ver exemplos em examples/
- Logs detalhados em modo debug
- Issues no repositório
🗺️ Roadmap
O status consolidado e a lista priorizada de pendências estão em docs/STATUS-E-PENDENCIAS.md.
✅ Concluído ou operacional
- [x] Facades principais:
FiscalFacade,NFeFacade,NFCeFacade,NFSeFacade,ImpressaoFacade,TributacaoFacadeeUtilsFacade - [x] Adapters principais para documentos fiscais, impressão, consultas públicas, IBPT e GTIN
- [x] NFSe provider-based com catálogo municipal, families, resolver, registry, bootstrap e scripts operacionais
- [x] Playbook municipal e matriz operacional NFSe
- [x] Cache local em fluxos específicos, como catálogo nacional e instâncias NFSe por município
- [x] Nome Composer canônico definido como
sabbajohn/fiscal-core - [x] Scripts Composer, CI mínimo e PHPStan inicial preparados para release
v1.2.4
🔄 Pendente ou parcial
- [ ] Publicar/atualizar o Packagist no pacote canônico
sabbajohn/fiscal-core - [ ] Expandir homologação municipal real seguindo o playbook, sem contar roteamento em catálogo como homologação
- [ ] Fechar contrato público uniforme das facades para respostas, erros, XML, impressão e eventos
- [ ] Criar Service Provider Laravel com publish de config e bindings
- [ ] Criar middleware de validação automática depois de estabilizar contrato/config Laravel
- [ ] Consolidar política de cache para consultas remotas e configurações
- [ ] Publicar/documentar GitHub Packages, se este canal for necessário
- [x] Criar referência inicial por Facade
- [ ] Criar referência detalhada por Adapter
- [ ] Definir formatter
🛠️ Configuração Avançada
Para informações detalhadas sobre configuração de certificados e providers, consulte:
- 📄 docs/providers-and-config.md
- 📄 docs/API-FACADES.md
- 📄 docs/RELEASE-PACKAGIST.md
- 📄 docs/NFSE-MUNICIPAL-PROVIDER-PLAYBOOK.md
- 📄 config/nfse/providers-catalog.json
- 📄 config/nfse/nfse-provider-families.json
Fluxo canônico de resolução NFSe:
config/nfse/providers-catalog.json -> config/nfse/nfse-provider-families.json -> NFSeProviderResolver -> ProviderRegistry -> NFSeRuntimeBootstrap -> provider concreto
🧪 Estrutura de Testes
Gerenciamento Centralizado (Singletons)
📁 Estrutura do Projeto
$configManager->set('uf', 'SP'); $configManager->set('csc', 'SEU_CSC');
// Acesso em qualquer adapter $isProduction = $configManager->isProduction(); $nfeConfig = $configManager->getNFeConfig();
php use sabbajohn\FiscalCore\Support\ToolsFactory;
// Setup rápido para desenvolvimento ToolsFactory::setupForDevelopment(['uf' => 'SP']);
// Cria Tools pré-configurados $nfeTools = ToolsFactory::createNFeTools(); $adapter = new NFeAdapter($nfeTools);
// Validação de ambiente $validation = ToolsFactory::validateEnvironment(); bash
Ver estrutura de NFSe
tree src/Providers/NFSe config/nfse docs/nfse-providers
Listar overrides operacionais
php scripts/nfse/provider-switch.php --list
Gerar tabela de cobertura por provider
php scripts/nfse/generate-providers-municipios-doc.php
Reconciliar catalogo local com base Uninfe
php scripts/nfse/reconcile-uninfe-providers.php --fail-on-unexpected
Ler playbook municipal
cat docs/NFSE-MUNICIPAL-PROVIDER-PLAYBOOK.md
Contribuição
- Issues e PRs são bem-vindos. Antes de abrir PR:
- Rode `vendor/bin/phpunit` e garanta verde.
- Siga o estilo existente e mantenha mudanças focadas.
Licença
- MIT. Veja `composer.json`.All versions of fiscal-core with dependencies
nfephp-org/sped-nfe Version ^5.2.6
nfephp-org/sped-ibpt Version ^2.0
nfephp-org/sped-gtin Version ^1.0
nfephp-org/sped-da Version ^1.1
brazanation/documents Version ^2.1
andreoneres/brasilapi-php Version ^1.2
dompdf/dompdf Version ^3.1