NFS-e São Paulo (ISSSaoPaulo) – Alternância entre Layout 1.00 e 2.00 para Simples Nacional e Regime Normal
Olá,
Estou implementando emissão de NFS-e para a cidade de São Paulo utilizando o componente ACBrNFSeX com o provedor ISSSaoPaulo e encontrei um comportamento que ainda não consegui resolver.
A prefeitura de São Paulo está exigindo layouts diferentes dependendo do regime tributário do contribuinte:
* Regime Normal → Layout 2.00
* Simples Nacional → Layout 1.00
Isso foi confirmado através das mensagens retornadas pelo próprio webservice e também aqui no fórum.
Exemplo de erro ao enviar Simples Nacional em layout 2.00:
Código: 641
Mensagem: *Contribuinte cadastrado como Simples Nacional na data informada. Deverá ser utilizado o leiaute 1.*
Configuração inicial do INI
O arquivo ACBrNFSeXServicos.ini estava originalmente assim:
[3550308]
Nome=Sao Paulo
UF=SP
Provedor=ISSSaoPaulo
Versao=
ProRecepcionar=https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx
Versao=2.00
ProRecepcionar=https://nfews.prefeitura.sp.gov.br/lotenfe.asmx
HomRecepcionar=https://nfews.prefeitura.sp.gov.br/lotenfe.asmx?op=TesteEnvioLoteRPS
ProLinkURL=https://nfe.prefeitura.sp.gov.br/nfe.aspx?ccm=%InscMunic%&nf=%NumeroNFSe%&cod=%CodVerif%
HomLinkURL=https://nfe.prefeitura.sp.gov.br/nfe.aspx?ccm=%InscMunic%&nf=%NumeroNFSe%&cod=%CodVerif%
Com essa configuração consegui emitir normalmente notas em produção para empresas de Regime Normal (layout 2.00).
Tentativa de suportar ambos os layouts
Seguindo orientações encontradas no fórum, ajustei o INI para permitir alternância de versão via código:
[3550308]
Nome=Sao Paulo
UF=SP
Provedor=ISSSaoPaulo
Versao=
ProRecepcionar=https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx
Versao=2.00
ProRecepcionar=https://nfews.prefeitura.sp.gov.br/lotenfe.asmx
HomRecepcionar=https://nfews.prefeitura.sp.gov.br/lotenfe.asmx?op=TesteEnvioLoteRPS
ProLinkURL=https://nfe.prefeitura.sp.gov.br/nfe.aspx?ccm=%InscMunic%&nf=%NumeroNFSe%&cod=%CodVerif%
HomLinkURL=https://nfe.prefeitura.sp.gov.br/nfe.aspx?ccm=%InscMunic%&nf=%NumeroNFSe%&cod=%CodVerif%
Com essa ultima compilação do Ini, consegui emitir nota para simples nacional,
mas falhou para regime normal
No código estou definindo a versão dinamicamente conforme a empresa:
if Tb_SaoPauloOptante_SN.AsString = 'N' then
Versao := ve200
else
Versao := ve100;
No entanto, fui fazer um teste misto em sequencia, uma nota de cada empresa ()
A 1ª Empresa Regime Normal, já falhou pq mesmo configurado para versão 2.00, reclama da formação do XML...como por exemplo não reconehce as tags de IBSCBS
2ª Empresa Simples Nacional, falhou, pq apesar do componente ser limpo e todo reconfigurado, é como se mantesse alguma configuraç]ão da empresa anterior.
O que fiz, passei a criar o componente dinamicamente para cada nota emitida e destruindo no final
dessa forma resolvi o problema de configuração conflitante com a nota anterior
mas não consegui resolver para emitir para ambas versões alteranadamente.
Acredito que ainda há algo errado com a configuração ACBrNFSeXServicos.ini que impede de usar ambos layout.
Nos logs do ACBr a versão informada aparece corretamente, porém o XML gerado às vezes contém elementos do layout 2.00 mesmo quando configurado como 1.00 e vice versa
Se alguém já passou por esse cenário com São Paulo (ISSSaoPaulo) e conseguiu alternar entre os layouts conforme o regime tributário da empresa, agradeço qualquer orientação.
Obrigado.