PHPackages                             betocampoy/champs-fiscal - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. betocampoy/champs-fiscal

ActiveLibrary

betocampoy/champs-fiscal
========================

Componente fiscal reutilizável para emissão, consulta, cancelamento e recursos DACE/DC-e.

v1.0.4(1w ago)012MITPHPPHP &gt;=8.1

Since Apr 23Pushed 3w agoCompare

[ Source](https://github.com/betocampoy/champs-fiscal)[ Packagist](https://packagist.org/packages/betocampoy/champs-fiscal)[ RSS](/packages/betocampoy-champs-fiscal/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (6)Used By (0)

Champs Fiscal
=============

[](#champs-fiscal)

Componente PHP reutilizável para rotinas fiscais, com foco atual em **DC-e**, incluindo:

- montagem e normalização de requests
- validação de payloads
- assinatura XML
- transmissão SOAP
- autorização, consulta e cancelamento
- apoio para geração de DACE

O objetivo deste pacote é extrair a camada fiscal do projeto principal sem alterar o comportamento já existente, permitindo reutilização em múltiplas aplicações.

Instalação
----------

[](#instalação)

```
composer require betocampoy/champs-fiscal
```

Dependências
------------

[](#dependências)

Além das extensões nativas do PHP, o pacote depende de:

- `betocampoy/champs-certificate:^1.0`
- `endroid/qr-code:^6.0`
- `picqer/php-barcode-generator:^3.2`

Extensões obrigatórias:

- `ext-dom`
- `ext-libxml`
- `ext-openssl`
- `ext-soap`

Namespace
---------

[](#namespace)

```
use BetoCampoy\Champs\Fiscal\...;
```

Configuração de ambiente
------------------------

[](#configuração-de-ambiente)

Este pacote utiliza variáveis de ambiente no padrão abaixo. No momento, a leitura e a carga dessas variáveis continuam sendo responsabilidade da aplicação consumidora.

Isso funciona bem tanto em projetos Symfony quanto em projetos legados, desde que o carregamento do `.env` já esteja configurado pela aplicação.

Variáveis esperadas:

```
CHAMPS_FISCAL_DCE_EMISSION_TYPE='1'
CHAMPS_FISCAL_DCE_AUTHORIZER_SITE_NUMBER='0'
CHAMPS_FISCAL_DCE_ENVIRONMENT='2'
CHAMPS_FISCAL_DCE_APPLICATION_VERSION='MINHA ENCOMENDA'
CHAMPS_DCE_QRCODE_BASE_URL='https://dfe-portal.svrs.rs.gov.br/dce/QRCode'
```

### Recomendação importante

[](#recomendação-importante)

- mantenha no `.env` apenas valores base que podem ser versionados com segurança
- quando houver necessidade de sobrescrever valores por ambiente, prefira usar `.env.local`
- em especial, `CHAMPS_FISCAL_DCE_ENVIRONMENT` costuma ser um bom candidato para ficar em `.env.local`, evitando subir ajustes locais para o Git

Exemplo:

```
# .env
CHAMPS_FISCAL_DCE_EMISSION_TYPE='1'
CHAMPS_FISCAL_DCE_AUTHORIZER_SITE_NUMBER='0'
CHAMPS_FISCAL_DCE_APPLICATION_VERSION='MINHA ENCOMENDA'
CHAMPS_DCE_QRCODE_BASE_URL='https://dfe-portal.svrs.rs.gov.br/dce/QRCode'

# .env.local
CHAMPS_FISCAL_DCE_ENVIRONMENT='2'
```

Hoje o pacote **não obriga** automaticamente a existência das variáveis, mas já oferece uma classe utilitária para centralizar a leitura delas.

Exemplo de leitura:

```
use BetoCampoy\Champs\Fiscal\Config\DceEnvironmentDefaults;

$defaults = DceEnvironmentDefaults::fromEnv();
```

Exemplo de normalização de request
----------------------------------

[](#exemplo-de-normalização-de-request)

```
use BetoCampoy\Champs\Fiscal\Config\DceEnvironmentDefaults;
use BetoCampoy\Champs\Fiscal\Dce\Request\Authorization\Normalizer\DceAuthorizationRequestNormalizer;

$normalizer = new DceAuthorizationRequestNormalizer();
$request = $normalizer->normalize($request, DceEnvironmentDefaults::fromEnv());
```

Exemplo de autorização
----------------------

[](#exemplo-de-autorização)

```
use BetoCampoy\Champs\Fiscal\Dce\Authorization\DceAuthorizationService;

$service = new DceAuthorizationService(environment: 'homolog');
$response = $service->authorize($payload, $openedCertificateData);
```

Estrutura
---------

[](#estrutura)

- `src/Dce/Authorization`: fluxo de autorização
- `src/Dce/Query`: fluxo de consulta
- `src/Dce/Event/Cancel`: fluxo de cancelamento
- `src/Dce/Dace`: apoio para impressão e mapeamento da DACE
- `src/Transmission`: transporte SOAP e DTOs
- `src/Xml`: assinatura XML
- `src/resources`: XSDs e WSDLs locais

Observações
-----------

[](#observações)

- Esta primeira versão foi componentizada sem refatorar regras de negócio existentes.
- Em uma próxima versão, pode valer adicionar uma validação explícita das variáveis de ambiente obrigatórias.
- O pacote foi preparado para publicação em GitHub e Packagist.

Publicação
----------

[](#publicação)

Exemplo de fluxo:

```
git init
git add .
git commit -m "Initial component release"
git tag v1.0.0
git push origin main --tags
```

Depois disso, basta apontar o repositório no Packagist e sincronizar a nova tag.

Licença
-------

[](#licença)

MIT

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance96

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

5

Last Release

8d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f716b40e59d9e04a7a6ce607fb14866a53a5160e31456676ec379f25e324e58b?d=identicon)[betocampoy](/maintainers/betocampoy)

---

Tags

phpcertificatesoapdcefiscaldace

### Embed Badge

![Health badge](/badges/betocampoy-champs-fiscal/health.svg)

```
[![Health](https://phpackages.com/badges/betocampoy-champs-fiscal/health.svg)](https://phpackages.com/packages/betocampoy-champs-fiscal)
```

###  Alternatives

[endroid/qr-code-bundle

Endroid QR Code Bundle

32511.1M23](/packages/endroid-qr-code-bundle)[wsdltophp/packagegenerator

Generate hierarchical PHP classes based on a WSDL

4412.0M21](/packages/wsdltophp-packagegenerator)[leantime/leantime

Open source project management system for non-project managers. Simple like Trello, powerful like Jira. Built with neurodiversity in mind.

10.0k3.4k](/packages/leantime-leantime)[garethp/php-ews

A PHP Library to interact with the Exchange SOAP service

115642.7k5](/packages/garethp-php-ews)[ukrbublik/openssl_x509_crl

Missing OpenSSL function on PHP to create CRL (certificate revocation list) for CA

182.1k](/packages/ukrbublik-openssl-x509-crl)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
