Configurador do Ambiente NFePHP (versão 4.0)

Verificação dos Módulos

Versão do PHP 8.2.27
OK
mínimo PHP 5.4.0
cURL versão 7.76.1
OK
mínimo cURL 7.22.2
OpenSSL versão OpenSSL 3.2.2 4 Jun 2024
OK
mínimo OpenSSL 1.0
DOM versão 2.13.4
OK
mínimo DOM 2.0.6
GD versão enabled
OK
-----
SOAP versão enabled
OK
-----
ZIP versão 1.21.1
OK
-----

O uso do NFePHP requer vários modulos do PHP para que possa funcionar. Ou seja podem haver problemas no uso da API dependendo do Sistema Operacional e da atualização de cada um dos módulos requeridos.

Alguns problemas conhecidos se referem ao cURL que é usado para a comunicação SOAP, dependendo do S.O. o mesmo pode estar compilado para usar NSS ao invés do OpenSSL que é o padrão. E o NSS tem alguns problemas com o formato PKCS#8 das chaves privadas exportadas pelo PHP.

Outro problema conhecido diz respeito a versão do PHP e também ao cURL. Em alguns casos o PHP não reconhece de forma automática qual é o protocolo de encripatação da conexão (SSLv3, TLSv1, TLSv1.1, etc..) e algumas SEFAZ estão usando vários desses protocolos diferentes. Se o PHP não puder reconhecer o protoclo de forma autonoma, será necessário usar os recursos da API para forçar o uso do protocolo correto, caso a caso.

Portanto é recomendável que seja usado o S.O. mais atualizado possível. Testes foram feitos usando DEBIAN (wheezy e Jessie) e UBUNTU 14.04 LTS em ambos os casos a API funcionou perfeitamente, e usando apenas os pacotes da distribuição sem a necessidade de baixar pacotes de outras fontes ou compila-los de fonte mais atualizada.

Outros modulos podem ser necessários em função dos pacotes usados e instalados via Composer (vide composer.json)

Cadastro do Emitente

Ambiente

Razão Social do Emitente

Nome Fantasia

CNPJ do Emitente

IE do Emitente

IM do Emitente

IE (Subst. Tributário)

CNAE do Emitente

Unidade da Federação

Regime Tributário

Path dos Certificados

Nome do arquivo pfx (Certificado)

Senha do Certificado

Palavra Passe

URL do Site

Token IBPT

CSC - Código de Segurança do Contribuinte (antigo Token)

Identificador do CSC NFCe

Estes campos referen-se a os dados principais do emitente e todos os campos em amarelo são OBRIGATÓRIOS.

Razão Social - indicar a Razão Social do emitente exatamente igual ao seu registro na SEFAZ, alguns simbolos poderão ser substituidos por seus equivalentes em entidades html (ex. &)

Nome Fantasia - indicar o Nome Fantasia do emitente exatamente igual ao seu registro na SEFAZ, alguns simbolos poderão ser substituidos por seus equivalentes em entidades html (ex. &)

Inscrição Estadual - indicar o número de Cadastrado de Contribuintes do ICMS, pode ser informado o literal “ISENTO” para os contribuintes do ICMS isentos de inscrição no Cadastro de Contribuintes de ICMS.

Inscrição Municipal - inidicar o número de Cadastro de Contribuintes do ISSQN, necessário para emissão de NF-e conjugada, com itens de produtos sujeitos ao ICMS e itens de serviços sujeitos ao ISSQN.

Inscrição Estadual do Substituto Tributário - indicar o número de Cadastrado de Contribuintes do ICMS do estado de Destino (Substituto), para quem pretender efetuar vendas interestaduais de mercadorias sujeitas à substituição tributária.

Regime Tributário - selecione a opção de regime tributário em que o emissor atua (MEI - Microempreendedor Individual atua no regime 'Simples Nacional').

CNAE - indicar o Código Nacional de Atividade Econômica principal do emitente, necessário quando a Inscrição Municipal for informada.

CSC - Código de Segurança do Contribuinte, é obrigatório informar para quem deseja emitir NFC-e, é fornecido pelas SEFAZ (ou pode ser gerado através da API se sua SEFAZ possui o serviço por WebService).

Dica: Utilize o site da Receita Federal para verificar os dados cadastrais do CNPJ, clique aqui.

Estrutura de Pastas (Files)

Pasta das NFe

Pasta das CTe

Pasts das MDFe

Pasta das CLe

Pasta das NFSe

Teste de Escrita e Estruturação das pastas. Este teste irá verificar as permissões de escrita e criará toda a estrutura necessária nas pastas indicadas

A estrutura de pastas é onde os arquivos xml são salvos, sejam NFe, NFCe, CTe, MDFe, CLe, ou NFSe, bem como todos os arquivos xml relatvos as mensagens da comunicaçao SOAP, tanto as enviadas como as recebidas. Tanto para ambiente de produção como de homologação.

As pastas indicadas devem ser criadas manualmente anteriormente e com permissões pré-configuradas para permitir o acesso de escrita por parte do usuário do servidor web.

Cada pasta desta estrutura tem uma finalidade e podem ou nao estar sendo utilizadas. Em geral sao utilizadas as pastas:

enviadas/aprovadas - XML de documentos aprovados pela SEFAZ (esses arquivos devem ser mantidos por pelo menos 5 anos)

enviadas/denegadas - XML de documentos DENEGADOS pela SEFAZ (esses arquivos devem ser mantidos por pelo menos 5 anos)

recebidas - XML dos documentos recebidos de terceiros (esses arquivos devem ser mantidos por pelo menos 5 anos)

temporarias - XML da comunicação, tanto mensagens enviadas como recebidas.

NOTA: A pasta das temporarias é sem duvida a mais carregada de todas e com certeza irá requerer limpezas periódicas.

Configurações para Impressão

Formato Padrão na impressão

Tamanho do Papel (A4 apenas)

Imprimir o Canhoto

Posição do Logo

Fonte

Impressora

Logo (80x80px ou 160x50px jpg, gif ou png)

Para a impressão dos documentos auxiliares seja para NFe, CTe, MDFe ou CLe, está definido em documentação oficial o uso obrigatório de papel A4 e do tipo de letras "Times" (serifados), isso é fixo e não pode ser mudado.

O formato de impressão seja ele "Portraite" ou "Landscape" é definido também pelo campo <tpImp> do XML, portanto essa definição aqui estabelecida NÃO sobrepõe a especificação contida no XML, e nem é válida para qualquer documento auxiliar.

A impressão de documentos auxiliares da NFC-e deve ser feita em impressoras comum (não fiscal) térmicas, laser ou deskjet de 80 colunas.

Por enquanto a API não envia os dados direto para impressora, e por tanto a DANFCE só é impressa em PDF ou HTML.

Caso não seja informado uma imagem para logo, será usado as imagens padrão para cada tipo de documento NF-e e NFC-e.

Webservices

WebServices NFe

WebServices CTe

WebServices MDFe

WebServices CLe

WebServices NFSe

Os endereços dos webservices estão arquivados em arquivos xml na pasta config.

Schemas

Schemas NFe

Schemas CTe

Schemas MDFe

Schemas CLe

Schemas NFSe

Os esquemas são arquivos xml (terminação xsd) que contêm as regras de formatação para cada campo de um determinado xml.

Configurações de Email

Autenticação

Endereço de E-mail

Senha de E-mail

SMTP Server

From (E-mail)

From (Nome)

Reply (E-mail)

Reply (Nome)

Protocol

Port

As configuração de email se referem a uma caixa postal criada pare enviar e receber os XML dos documetos fiscais da empresa como determina a legislação fiscal.

Configurações de Proxy

Proxy IP

Proxy Port

Proxy User

Proxy Pass

Aqui devem inclusas as configurações caso o sistema esteja instalado em um ambiente de rede cujo acesso a internet seja feito atraves de um servidor proxy. Caso não exista um servidor proxy na rede interna deixe esses campos em BRANCO.

No campo "Proxy IP" deve ser indcado o numero IP do servidor Proxy ex. 192.168.0.200

No campo "Proxy Port" (numero da Porta) indicar a porta que o servidor proxy escuta ex. 3128 (squid)

No campo "Proxy User" deve ser indicado o nome do usuário autorizado a acessar a internet, se o proxy for autenticado, caso contrario deixe em BRANCO.

No campo "Proxy Pass" indicar a senha de acesso do usuário, deixe em branco caso não seja exigida a senha.

Clique no botão abaixo para salvar essas configurações e criar o arquivo config/config.json


O arquivo de configuração "config.json" será salvo na pasta indicada no path e também na pasta "default" do NFePHP, caso não sejas as mesmas.

A ideia por traz do uso do formato json foi permitir de maneira mais facil usar a base de dados pra guardar os dados de configuração para o uso da API, sem ter recorrer a um arquivo mantido em pastas.

Se bem executado isso pode facilitar em muito o uso no mesmo servidor para multiplos clientes, além de prover um grau um pouco maior de segurança.

NOTA: os dados passarão por validações antes da gravação. Caso não atendam as regras os dados serão rejeitados. Mantenha o arquivo config.json em local seguro fora do acesso de intrusos.

....