Pular para o conteúdo principal

Serviços e Configuração 🛠️

O nfse-php oferece uma camada de serviços de alto nível que abstrai a complexidade da comunicação com o Sistema Nacional NFS-e. Em vez de lidar diretamente com clientes HTTP e assinaturas XML, você utiliza os serviços ContribuinteService e MunicipioService.

NfseContext

Antes de utilizar qualquer serviço, você deve configurar o NfseContext. Ele armazena as credenciais e o ambiente de execução.

use Nfse\Http\NfseContext;
use Nfse\Enums\TipoAmbiente;

$context = new NfseContext(
ambiente: TipoAmbiente::Homologacao, // ou TipoAmbiente::Producao
certificatePath: '/caminho/para/certificado.p12',
certificatePassword: 'senha_do_certificado'
);

Ponto de Entrada Principal

A classe Nfse\Nfse atua como uma fábrica para os serviços disponíveis.

use Nfse\Nfse;

$nfse = new Nfse($context);

// Para operações de Prestador/Tomador
$contribuinte = $nfse->contribuinte();

// Para operações de Prefeitura (Município)
$municipio = $nfse->municipio();

Estrutura de Serviços

A biblioteca separa as funcionalidades de acordo com o público-alvo e permissões:

👤 Contribuinte Service

Destinado a empresas e profissionais autônomos.

  • Emissão: Envio de DPS para geração de NFS-e.
  • Consulta: Recuperação de notas emitidas e eventos.
  • Distribuição: Download de documentos onde o contribuinte é parte.
  • Parâmetros: Consulta de alíquotas e regras municipais.

🏛️ Município Service

Destinado a prefeituras e órgãos de controle.

  • Sincronização: Download em lote de todos os documentos do município.
  • Recepção: Envio de lotes de documentos para o Ambiente Nacional.
  • Cadastro (CNC): Gestão e consulta de contribuintes no Cadastro Nacional.

Tratamento de Erros

A biblioteca utiliza NfseApiException para erros de comunicação e respostas da API.

use Nfse\Http\Exceptions\NfseApiException;

try {
$contribuinte->emitir($dps);
} catch (NfseApiException $e) {
echo "Erro na API: " . $e->getMessage();
// Detalhes adicionais podem estar disponíveis no código de erro
}