Carta de Correção

Olá, como podemos lhe ajudar?
< Todos tópicos
Print

Carta de Correção eletrônica

string EnviaCCe2G(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, string chaveNFe, string textoCorrecao, int textoAcentuado, int nroCorrecao, string dataCorrecao, out string nroProtocolo, out string dhProtocolo, string proxy, string usuario, string senha, string licenca)

Funcionalidade para Carta de Correção de NF-e

Os principais parâmetros da carta de correção são:

  • chave de acesso da NF-e objeto da correção;
  • data da correção;
  • sequencial da correção (1 a 20), a última correção deve substituir a correção anterior;
  • texto da correção, texto livre com tamanho limitado a 1000 caracteres;
  • indicador de texto acentuado.
Condições para envio da Carta de Correção

NF-e autorizada, não é possível corrigir uma NF-e cancelada;

Prazo de envio da carta de correção

Enquanto existir a NF-e para consulta simplificada;

Quantidade máxima de carta de correção

Uma NF-e pode ter até 20 cartas de correção e a última carta substitui as anteriores, assim o emissor deve consolidar o texto na nova carta de correção.

A carta de correção deve ser enviada para a SEFAZ de origem do emissor da NF-e objeto de correção, a identificação do WS de acessado deverá ser informada no parâmetro siglaWS.

PREENCHIMENTO DA siglaWS PARA ESCOLHA DO WEBSERVICE

SVAN, caso a UF seja usuária da SEFAZ Virtual do Ambiente Nacional (MA);

SVRS, caso a UF seja usuária da SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, ES, PA, PB, PI, RJ, RN, RO, RR, SC, SE e TO);

sigla da UF, caso a UF tenha aplicação própria (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP);

PRENCHIMENTO DO nomeCertificado

Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL, formas possíveis:

1. uso de certificado digital existente no repositório MY do CSP do usuário corrente (currentuser)

É a forma de mais comum de uso, cabe ressaltar que é a única forma de uso de certificado digital do tipo A3 que a DLL oferece.

O usuário deve passar como parâmetro o campo assunto do certificado no parâmetro NomeCertificado para que a DLL localize um certificado digital com mesmo assunto no repositório MY do currentuser do equipamento.

Esta forma de uso requer a prévia instalação do certificado digital na conta do usuário do Windows (logon) que irá utilizar o certificado digital.

2. uso de certificado digital em arquivo no formato pfx

Permite o uso de certificado digital em arquivo formato pfx.

O caminho da localização (path) do arquivo pfx deve ser passado para a DLL no formato: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] no parâmetro NomeCertificado, ex.: “ARQUIVO|c:\certificado.pfx|senha”.

Esta opção só funciona com certificado digital do tipo A1.

3. uso de certificado digital em string base64

Permite uso o arquivo do certificado digital em formato pfx convertido em uma string base64. O certificado digital em string base64 deve ser passado para a DLL no formato: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado, ex.: “CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64…)QQDExNBQy|senha”.

Esta opção só funciona com certificado digital do tipo A1. É uma opção de uso que oferece maior versatilidade, pois permite o armazenamento do certificado digital em banco de dados na aplicação. É a forma mais indicada para uso em ASP.NET.

  • A CC-e é de uso obrigatório?
    A partir de 01/07/2012 não será mais permitido o uso da carta de correção em papel para correção de campos específicos de NF-e, conforme disposto no § 7º da Cláusula décima quarta-A do Ajuste SINIEF 07/05:
    Cláusula décima quarta-A Após a concessão da Autorização de Uso da NF-e, de que trata a cláusula sétima, durante o prazo estabelecido no ‘Manual de Integração – Contribuinte’ o emitente poderá sanar erros em campos específicos da NF-e, observado o disposto no §1º- A do art. 7º do Convênio SINIEF s/nº de 1970, por meio de Carta de Correção Eletrônica – CC-e, transmitida à Administração Tributária da unidade federada do emitente.
    (…)
    § 7º A partir de 1º de julho de 2012 não poderá ser utilizada carta de correção em papel para sanar erros em campos específicos de NF-e.”
  • Quando podemos emitir a CC-e?
    A CC-e pode ser emitida para “corrigir” alguns erros de preenchimento da Nota Fiscal eletrônica.
  • O que pode ser corrigido com a CC-e?
    O Ajuste SINIEF 01/07 veda a correção das seguintes informações relacionadas com o Fato Gerador do ICMS da NF-e:
    I – as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação;
    II – a correção de dados cadastrais que implique mudança do remetente ou do destinatário;
    III – a data de emissão ou de saída.
  • O que devo fazer se precisar alterar a base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação?
    • para aumentar o valor do ICMS ou da operação – o procedimento correto é a emissão da NF-e de complemento do ICMS ou da NF-e de complemento de Valor;
    • para reduzir o valor do ICMS – se o valor do ICMS foi destacado a maior não existe uma forma padrão de saneamento do problema, depende da UF. A única regra padrão é que o destinatário não pode fazer o crédito de ICMS maior que o devido na operação, mesmo que o emitente tenha destacado um valor maior;
    • para reduzir o valor da operação – o procedimento mais adequado seria o destinatário recusar o recebimento da mercadoria ou fazer a devolução da mercadoria para anular a operação e receber a NF-e com o valor correto.
  • O que devo fazer para corrigir os dados cadastrais que implique mudança do remetente ou do destinatário?
    Não existe regra objetiva que define quais são as alterações de dados cadastrais que implicam na mudança do remetente ou do destinatário, assim o emissor e o destinatário terão menos dor de cabeça se não tentarem corrigir qualquer informação relacionado com os dados cadastrais do remetente ou do destinatário, para minizar o problema recomendamos as seguintes ações:
    • O emissor deve tentar obter os dados cadastrais do remetente ou do destinatário através do Portal da SEFAZ, muitas SEFAZ já oferecem a consulta cadastro que permite obter os dados cadastrais do contribuintes do ICMS.
    • O destinatário deve recusar o recebimento de mercadorias acobertadas com NF-e que não tenham os dados do destinatário corretos.
  • O que devo fazer se precisar alterar a data de emissão ou a data de saída?
    Em algumas situações é possível que a mercadoria fique à disposição para retirada do transportador, mas a retirada ocorra com atraso. O procedimento mais adequado nesta situação é a substituição da NF-e com a emissão de uma nova NF-e com a data de emissão e/ou data de saída correta.
Como minimizar a ocorrência de problemas
  • É possível emitir a CC-e para acompanhar o trânsito de uma mercadoria?
    Não existe impedimento para emitir uma CC-e para corrigir uma NF-e de mercadoria qua ainda não deu saída da empresa, contudo o procedimento mais adequado nesta situação é o cancelamento da NF-e incorreta e a emissão de uma NF-e com os dados corretos.
  • Existe algum modelo ou leiaute para imprimir a CC-e?
    Não existe modelo ou leiaute de impressão da CC-e, assim como inexiste o modelo de impresso para a carta de correção em papel. Entendemos que a carta de correção é uma correspondência do emissor emitida para o remetente/destinatário para informar o erro de preenchimento da NF-e e pode ser impressa no padrão que o emissor julgar conveniente.
  • O que devo informar na CC-e?
    • chave de acesso da NF-e objeto da correção;
    • data e hora da correção;
    • sequencial da correção (1 a 20), a última correção deve substituir a correção anterior;
    • texto da correção, texto livre com tamanho limitado a 1000 caracteres;
  • Como deve ser informado o texto da correção?
    O texto da correção é um texto livre com tamanho limitado a 1000 caracteres e inexiste modelo ou padrão do texto, assim o emissor deve descrever de forma clara e objetiva a correção que deve ser considerada.
  • Já tenho uma carta de correção registrada e preciso fazer uma nova carta de correção, como devo agir?
    A carta de correção com data mais recente substitui as cartas de correções existentes, assim a nova carta de correção deve consolidar todas as correções.
  • Emiti uma carta de correção com dados incorretos, como devo agir?
    A carta de correção com data mais recente substitui as cartas de correções existentes, assim basta emitir uma carta de correção com os dados corretos.
  • Emiti uma carta de correção para uma NF-e incorreta, como devo agir?
    Não existe cancelamento de carta de correção, assim o procedimento mais adequado para esta situação seria a emissão de uma nova carta de correção que não tenha a correção indevida.
  • O que devo fazer com a carta de correção emitida?
    O XML da carta de correção e a resposta de registro da carta de correção deve ser mantida em arquivo pelo emissor, além de ser enviada para o destinatário.
  • A carta de correção deve ser enviada para o destinatário?
    Sim, o XML da carta de correção e a resposta de registro da carta de correção deve ser enviada para o destinatário.
  • A carta de correção deve ser impressa?
    A Carta de Correção eletrônica é um documento eletrônico e não precisa ser impressa.
  • A NF-e também é um documento eletrônico, mas imprimimos o DANFE, não vale o mesmo raciocínio para a CC-e?
    Para a NF-e existe o DANFE que é um documento fiscal em papel previsto na legislação tributária necessário para acompanhar o trânsito da mercadoria acobertada por NF-e e não se confunde com a NF-e que é documento fiscal distinto do DANFE. Se fosse necessário imprimir a CC-e, a legislação teria criado um Documento Auxiliar da Carta de Correção eletrônico como fez com o DANFE. Assim, não existe previsão legal de impressão da Carta de Correção eletrônica, a obrigação do emissor é registrar a Carta de Correção eletrônica na SEFAZ e comunicar o destinatário, somente isto. Também cabe ressaltar que a Carta de Correção não é um documento fiscal formal, pois nem requer a AIDF – Autorização de Impressão de Documento Fiscal para uso da Carta de Correção.
O DANFE na legislação

Cláusula nona Fica instituído o Documento Auxiliar da NF-e – DANFE, conforme leiaute estabelecido no ‘Manual de Integração – Contribuinte’, para acompanhar o trânsito das mercadorias acobertado por NF-e ou para facilitar a consulta da NF-e, prevista na cláusula décima quinta.

§ 1º O DANFE somente poderá ser utilizado para transitar com as mercadorias após a concessão da Autorização de Uso da NF-e, de que trata o inciso III da cláusula sétima, ou na hipótese prevista na cláusula décima primeira.

§ 1º-A A concessão da Autorização de Uso será formalizada através do fornecimento do correspondente número de Protocolo, o qual deverá ser impresso no DANFE, conforme definido no ‘Manual de Integração – Contribuinte’, ressalvadas as hipóteses previstas na cláusula décima primeira.

§ 2º No caso de destinatário não credenciado para emitir NF-e, a escrituração da NF-e poderá ser efetuada com base nas informações contidas no DANFE, observado o disposto na cláusula décima.

§ 3º O DANFE utilizado para acompanhar o trânsito de mercadorias acobertado por NF-e será impresso em uma única via.

§ 4º O DANFE deverá ser impresso em papel, exceto papel jornal, no tamanho mínimo A4 (210 x 297 mm) e máximo ofício 2 (230 x 330 mm), podendo ser utilizadas folhas soltas, formulário de segurança, Formulário de Segurança para Impressão de Documento Auxiliar de Documento Fiscal Eletrônico (FS-DA), formulário contínuo ou formulário pré-impresso.”

§ 5º O DANFE deverá conter código de barras, conforme padrão estabelecido no ‘Manual de Integração – Contribuinte’.

§ 6º O DANFE poderá conter outros elementos gráficos, desde que não prejudiquem a leitura do seu conteúdo ou do código de barras por leitor óptico.

§ 7º As alterações de leiaute do DANFE permitidas são as previstas no Manual de Integração – Contribuinte.

§ 8º Os títulos e informações dos campos constantes no DANFE devem ser grafados de modo que seus dizeres e indicações estejam bem legíveis.

§ 9º A aposição de carimbos no DANFE, quando do trânsito da mercadoria, deve ser feita em seu verso.

§ 10. É permitida a indicação de informações complementares de interesse do emitente, impressas no verso do DANFE, hipótese em que sempre será reservado espaço, com a dimensão mínima de 10×15 cm, em qualquer sentido, para atendimento ao disposto no § 9º.

fonte:Ajuste SINIEF 07/05

  • O meu cliente exige a Carta de Correção eletrônica impressa em papel, o que posso fazer?
    Não existe nenhuma disposição legal que estabelece a necessidade de imprimir a Carta de Correção eletrônica em papel, assim o usuário pode enviar uma comunicação para destinatário informando as alterações registradas pela Carta de Correção eletrônica caso entenda conveniente. Importante observar que não existe nenhum modelo oficial de carta de correção, assim acreditamos que o mais adequado seja comunicar somente o registro da Carta de Correção eletrônica por e-mail para que o destinatário consulte o teor da Carta de Correção eletrônica no Portal da SEFAZ, podendo imprimi-la no portal caso entenda necessário.
A CC-e na legislação

Cláusula décima quarta-A Após a concessão da Autorização de Uso da NF-e, de que trata a cláusula sétima, durante o prazo estabelecido no ‘Manual de Integração – Contribuinte’ o emitente poderá sanar erros em campos específicos da NF-e, observado o disposto no §1º- A do art. 7º do Convênio SINIEF s/nº de 1970, por meio de Carta de Correção Eletrônica – CC-e, transmitida à Administração Tributária da unidade federada do emitente.

§ 1º A Carta de Correção Eletrônica – CC-e deverá atender ao leiaute estabelecido no ‘Manual de Integração – Contribuinte’ e ser assinada pelo emitente com assinatura digital certificada por entidade credenciada pela Infra-estrutura de Chaves Públicas Brasileira – ICP-Brasil, contendo o nº do CNPJ de qualquer dos estabelecimentos do contribuinte, a fim de garantir a autoria do documento digital.

§ 2º A transmissão da CC-e será efetivada via Internet, por meio de protocolo de segurança ou criptografia.

§ 3º A cientificação da recepção da CC-e será feita mediante protocolo disponibilizado ao emitente, via Internet, contendo, conforme o caso, a “chave de acesso”, o número da NF-e, a data e a hora do recebimento da solicitação pela administração tributária da unidade federada do contribuinte e o número do protocolo, podendo ser autenticado mediante assinatura digital gerada com certificação digital da administração tributária ou outro mecanismo de confirmação de recebimento.

§ 4° Havendo mais de uma CC-e para a mesma NF-e, o emitente deverá consolidar na última todas as informações anteriormente retificadas.

§ 5º A administração tributária que recebeu a CC-e deverá transmití-la às administrações tributárias e entidades previstas na cláusula oitava.

§ 6º O protocolo de que trata o § 3º não implica validação das informações contidas na CC-e

§ 7º A partir de 1º de julho de 2012 não poderá ser utilizada carta de correção em papel para sanar erros em campos específicos de NF-e.

fonte:Ajuste SINIEF 07/05

nometipofluxodescrição
siglaWSstringentradainformar a sigla do WS desejado, veja Tabela de siglaWS
tipoAmbienteinteiroentradainformar o código do ambiente desejado: 1- produção ou 2-homologação
NomeCertificadostringentradainformar o certificado digital que será utilizado para assinatura:
1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: “CN=NFe – Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS”.
2. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: “ARQUIVO|c:\certificado.pfx|senha”.
3. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:”CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64…)QQDExNBQy|senha”.
versaostringentradainformar a versão da mensagem do WS – 4.00.
msgDadosstringsaídaretorna a mensagem XML do evento carta de correção criado pela DLL que foi enviado ao WS.
msgRetWSstringsaídaretorna a mensagem XML de resposta do WS
cStatinteirosaídaretorna o resultado da chamada do WS.
msgResultadostringsaídaretorna a literal do resultado da chamada do WS
chaveNFestringentradainformar a chave de acesso da NF-e objeto da carta de correção
txtCorrecaostringentradainformar o texto da correção, texto livre com tamanho limitado a 1000 caracteres.
A legislação tributária não permite a correção de todas as informações da NF-e:
A Carta de Correção é disciplinada pelo § 1º-A do art. 7º do Convênio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularização de erro ocorrido na emissão de documento fiscal, desde que o erro não esteja relacionado com:
I – as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação;
II – a correção de dados cadastrais que implique mudança do remetente ou do destinatário;
III – a data de emissão ou de saída.
textoAcentuadointeiroentradaindicador de mensagem com acentuação e caracteres especiais (0-não, 1- sim), este parâmetro é utilizado para informar as tags descEvento e xCondUso com acentuação.
nroCorrecaointeiroentradainformar o número sequencial da correção, deve ser iniciada com 1 e valor máximo é 20, campo de controle do usuário, o Web Service não permite a duplicidade de numeração e nem controla a ordem crescente.
dataCorrecaostringentradainformar a data e hora do evento da carta de correção no formato “AAAA-MM-DD HH:MM:SS”.
Ex. Delphi: FormatDateTime(‘yyyy-mm-dd “” hh:mm:ss’, Now);
VB: Format$(Now, “yyyy-mm-dd HH:mm:ss”)
Se a data e hora informada for maior que a data do WS vai ocorrer o erro 578, veja o retorno do WS e verifique se o horário do equipamento está sincronizado com o horário do WS.
A data e hora é convertida em formato UTC – Universal Time Zone (representação do horário que considera o fuso em relação ao horário UTC), assim como existe a validação de schema XML para a data e hora, se o fuso horário do equipamento estiver com uma configuração que não seja a brasileira ocorrerá falha de schema XML.
A DLL irá pegar a data e hora do equipamento se o conteúdo for omitido. [18-11-12]
nProtocolostringsaídaretorna o número do protocolo de registro do Evento.
dhProtocolostringsaídaretorna a data e hora de registro do Evento, a data passou a ser UTC com a indicação do fuso horário.
proxystringentradainformar ‘http://proxyserver:port’ quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo ‘http://192.168.15.1:443’
usuariostringentradainformar o usuário para autenticação no proxy, se necessário
senhastringentradainformar a senha de autenticação no proxy, se necessário
licencastringentradainformar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento, para maiores detalhes veja as condições de uso

O resultado da chamada do EnviaCCe é a mensagem XML composta pelo carta de correção e respectivo protocolo de homologação de vinculação de evento, que deverá ser mantido pelo emissor e disponibilizado para o destinatário da NF-e:

O parâmetro cStat retorna um código numérico com os seguintes significados:

códigoMensagemorigemregra
5001Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: o certificado cliente: 1.não é ICP-Brasil; 2.fora do prazo de validade; 3.revogado; 4.certificado cliente não confiável para o Web Service acessado, contatar a SEFAZ)DLL
5002Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a cadeia de certificação do Web Service acessado ou do certificado cliente inexistente no repositório de certificados do usuário corrente do Windows)DLL
5003Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: serviço inexistente, verifique se o nome do serviço da url acessada está correto no arquivo ws2.xml)DLL
5004Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido)DLL
5005Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a url não encontrada, verifique se o nome do domínio da url acessada está correto no arquivo ws2.xml)DLL
5006Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [{1:0}])DLL
5007Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida)DLL
5008Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas)DLL
5009Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado)DLL
5010Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço temporariamente indisponível, servidor sem recursos para atender a solicitação)DLL
5011Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível)DLL
5012Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportadaDLL
5013Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, não houve nenhum retorno ou resposta)DLL
5014Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida)DLL
5015Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] – [MENSAGEM DE ERRO DO WINDOWS]DLL
5016Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS]DLL
5017Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS]DLL
5101Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS]DLL
5102Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5103Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5104Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5105Erro: O WS não devolveu nenhum resultadoDLL
5201Erro: O código do tipo de ambiente [CODIGO RECEBIDO PELA DLL] informado diferente de 1 – produção e 2 – homologaçãoDLL
5202Erro: A sigla da UF [SIGLA RECEBIDA PELA DLL] informada é inválidaDLL
5203Erro: Inexiste url para a UF [SIGLA UF] informada no ambiente [AMBIENTE] desejado, verifique se existe atualização do arquivo [NOME ARQUIVO] disponível.DLL
5204Erro: Arquivo que contem a URL do WS não localizado em [CAMINHO DA APLICACAO]DLL
5205Erro: Ocorreu um erro inesperado no processamento da URL (NOME URL) : [MENSAGEM DE ERRO DO WINDOWS]DLL
5206Erro: Ocorreu um erro de validação do XML (NOME XML) : [MENSAGEM DE ERRO DO WINDOWS]DLL
5403Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS]DLL
5404Erro: Nenhum certificado digital selecionadoDLL
5405Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser]DLL
5406Erro: Falha no tratamento do parâmetro nome: [nome informado]DLL
5407Erro: Quantidade de parâmetos inválido: [nome informado]DLL
5408Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS]DLL
6101Erro: O parâmetro versao não foi informadoDLL
6102Erro: O conteúdo do parâmetro sigla da UF: [conteúdo do parâmetro] é inválidoDLL
6103Erro: O conteúdo do parâmetro versao informado é inválido: [conteúdo do parâmetro]DLL
6104Erro: O parâmetro chaveNFe não informadoDLL
6105Erro: O tamanho [tamanho da chave da NFe] do parâmetro chaveNFe informado não tem 44 caracteresDLL
6106Erro: As posições correspondentes (1,2) ao código da UF [valor] do parâmetro chaveNFe não é um código de UF válidoDLL
6107Erro: A chave de acesso deve ter 44 posições: [tamanho da chave]DLL
6110Erro: O nome do titular do certificado deve ser informadoDLL
6120Erro: O parâmetro chave de acesso deve ser informadoDLL
6123Erro: O parâmetro tipoAmbiente deve ser informadoDLL
6124Erro: O parâmetro tipoAmbiente [conteúdo do parâmetro] deve ser 1 ou 2DLL
6141Erro: O parâmetro siglaWS deve ser informadoDLL
6143Erro: O parâmetro Justificativa deve ter pelo menos 15 caracteres: [conteúdo do parâmetro]DLL
6144Erro: O parâmetro indicador de Texto Acentuado deve ser informadoDLL
6145Erro: O parâmetro indicador de Texto Acentuado [conteúdo do parâmetro] deve ser informado com: 0-não acetuado ou 1-acentuadoDLL
6146Erro: O parâmetro correcao deve ser informadoDLL
6147Erro: O parâmetro correcao deve ter pelo menos 15 caracteres: [conteúdo do parâmetro]DLL
6148Erro: O parâmetro correcao pode ter no máximo 1000 caracteres: [conteúdo do parâmetro]DLL
6149Erro: O parâmetro nroCCe deve ser informadoDLL
6150Erro: O parâmetro nroCCe informado: [conteúdo do parâmetro] fora da faixa permitida 1-20DLL
6151Erro: O parâmetro dataCorrecao é inválida: [conteúdo do parâmetro]DLL
6152Erro: A chave da NF-e do retEvento: [chaveNFe retEvento] é divergente da chave da NF-e do Evento: [chaveNFe Evento]DLL
7001Erro: A licença não foi informadaDLL
7002Erro: A licença informada: [licença] tem tamanho:[tamanho da licença] diferente de 128DLL
7003Erro: A licença informada: [licença] não pertence ao CNPJ:[CNPJ informado]DLL
135Evento registrado e vinculado a NF-eWS
108Serviço Paralisado Momentaneamente (curto prazo)WSB02
109Serviço Paralisado sem PrevisãoWSB03
203Rejeição: Emissor não habilitado para emissão da NF-eWSH04
205Rejeição: NF-e está denegada na base de dados da SEFAZWSH08
213Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado DigitalWSF03
214Rejeição: Tamanho da mensagem excedeu o limite estabelecidoWSB01
217Rejeição: NF-e não consta na base de dados da SEFAZWSH06
219Rejeição: Circulação da NF-e verificadaWSH13
220Rejeição: NF-e autorizada há mais de 24 horasWSH10
221Rejeição: Confirmado o recebimento da NF-e pelo destinatárioWSH12
222Rejeição: CNPJ do transmissor do lote difere do CNPJ do transmissor da consultaWSH11
225Rejeição: Falha no schema XMLWSD01
236Rejeição: Chave de Acesso com dígito verificador inválidoWSH03
238Rejeição: Cabeçalho – Versão do arquivo XML superior a Versão vigenteWSC05
239Rejeição: Cabeçalho – Versão do arquivo XML não suportadaWSC06
240Rejeição: Cancelamento/Inutilização – Irregularidade Fiscal do EmitenteWSH05
242Rejeição: Cabeçalho – Falha no Schema XMLWSC01
243Rejeição: XML Mal FormadoWSB02
250Rejeição: UF da Chave de Acesso diverge da UF autorizadoraWSG02
252Rejeição: Ambiente informado diverge do Ambiente de recebimentoWSG01
280Rejeição: Certificado Transmissor inválidoWSA01
281Rejeição: Certificado Transmissor Data ValidadeWSA02
282Rejeição: Certificado Transmissor sem CNPJWSA07
283Rejeição: Certificado Transmissor – erro Cadeia de CertificaçãoWSA03
284Rejeição: Certificado Transmissor revogadoWSA05
285Rejeição: Certificado Transmissor difere ICP-BrasilWSA06
286Rejeição: Certificado Transmissor erro no acesso a LCRWSA04
290Rejeição: Certificado Assinatura inválidoWSE01
291Rejeição: Certificado Assinatura Data ValidadeWSE02
292Rejeição: Certificado Assinatura sem CNPJWSE03
293Rejeição: Certificado Assinatura – erro Cadeia de CertificaçãoWSE04
294Rejeição: Certificado Assinatura revogadoWSE06
295Rejeição: Certificado Assinatura difere ICP-BrasilWSE07
296Rejeição: Certificado Assinatura erro no acesso a LCRWSE05
297Rejeição: Assinatura difere do calculadoWSF02
298Rejeição: Assinatura difere do padrão do ProjetoWSF01
299Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8WSC01a
402Rejeição: XML da área de dados com codificação diferente de UTF-8WSD03
404Rejeição: Uso de prefixo de namespace não permitidoWSD02
409Rejeição: Campo cUF inexistente no elemento nfeCabecMsg do SOAP HeaderWSC02
410Rejeição: UF informada no campo cUF não é atendida pelo Web ServiceWSC03
411Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP HeaderWSC04
420Rejeição: Cancelamento para NF-e já canceladaWSH09
489Rejeição: CNPJ informado inválido (DV ou zeros)WSG03
490Rejeição: CPF informado inválido (DV ou zeros)WSG04
491Rejeição: O tpEvento informado inválidoWSD04
492Rejeição: O verEvento informado inválidoWSD05
493Rejeição: detEvento não atende o Schema XML específicoWSD06
494Rejeição: Chave de Acesso inexistenteWSG06
501Rejeição: NF-e autorizada há mais de 30 dias (720 horas)WSGA02
502Rejeição: Erro na Chave de Acesso – Campo Id não corresponde à concatenação dos campos correspondentesWSH02c
516Rejeição: Falha no schema XML – inexiste a tag raiz esperada para a mensagemWSD01a
517Rejeição: Falha no schema XML – inexiste atributo versao na tag raiz da mensagemWSD01b
545Rejeição: Falha no schema XML – versão informada na versaoDados do SOAPHeader diverge da versão da mensagemWSD01c
572Rejeição: Erro Atributo ID do evento não corresponde a concatenação dos campos (“ID” + tpEvento + chNFe + nSeqEvento)WSG05
573Rejeição: Duplicidade de EventoWSG07
574Rejeição: O autor do evento diverge do emissor da NF-eWSG08
575Rejeição: O autor do evento diverge do destinatário da NF-eWSG09
576Rejeição: O autor do evento não é um órgão autorizado a gerar o eventoWSG10
577Rejeição: A data do evento não pode ser menor que a data de emissão da NF-eWSG11
578Rejeição: A data do evento não pode ser maior que a data do processamentoWSG12
579Rejeição: A data do evento não pode ser menor que a data de autorização para NF-e não emitida em contingênciaWSG13
580Rejeição: O evento exige uma NF-e autorizadaWSGA01
587Rejeição: Usar somente o namespace padrão da NF-eWSD01d
588Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagemWSD01e
594Rejeição: O número de seqüencia do evento informado é maior que o permitidoWSG03
999Rejeição: Erro não catalogado (mensagem)WS

Caso ocorra algum erro na chamada do WS (5001-6141) ou a requisição não seja atendida pelo WS (214-999), será gravado um log na pasta log, com as seguintes informações que devem ser úteis para identificação do problema:

  • Timestamp – data e hora da ocorrência do erro
  • WS – nome do WS acessado
  • URL – URL do WS acessado
  • ambiente – código do ambiente
  • certificado – nome do titular (assunto) do certificado digital utilizado
  • erro – código e descrição do erro
  • msgDados – mensagem enviada ao WS
  • msgRetWS – conteúdo do retorno do WS

Os erros com código > 5000 são erros tratados pela DLL e ocorrem nas seguintes situações:

  • 5001 – 5017 – falha na tentativa de consumir o WS (problema de conexão/rede)
  • 5101 – 5105 – falha no tratamento do XML de resposta do WS (problema na resposta do WS)
  • 5201 – 5206 – falha na recuperação da URL do WS desejado (problema no arquivo de configuração da URL)
  • 5403 – 5408 – falha no acesso ao certificado digital
  • 6101 – 6141 – falha no tratamento dos parâmetros da chamada da DLL
  • 7001 – 7003 – falha na validação da licença

Envio da carta de correção

<?xml version="1.0" encoding="UTF-8"?>
<envEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
  <idLote>00000001319901</idLote>
  <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <infEvento Id="ID1101103511051014278500019055111000000013199881790001">
      <cOrgao>35</cOrgao>
      <tpAmb>2</tpAmb>
      <CNPJ>10142785000190</CNPJ>
      <chNFe>35110510142785000190551110000000131998817900</chNFe>
      <dhEvento>2011-06-06T11:48:20-03:00</dhEvento>
      <tpEvento>110110</tpEvento>
      <nSeqEvento>1</nSeqEvento>
      <verEvento>1.00</verEvento>
      <detEvento versao="1.00">
        <descEvento>Carta de Correção</descEvento>
        <xCorrecao>O periodo de referencia de lancamento da NF-e de ativo permanente foi informado indevidamente como sendo "ref.: ABRIL/2008", considerar o periodo como "ref.: MAIO/2011".</xCorrecao>
        <xCondUso>A Carta de Correção é disciplinada pelo § 1º-A do art. 7º do Convênio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularização de erro ocorrido na emissão de documento fiscal, desde que o erro não esteja relacionado com: I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação; II - a correção de dados cadastrais que implique mudança do remetente ou do destinatário; III - a data de emissão ou de saída.</xCondUso>
      </detEvento>
    </infEvento>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
        <Reference URI="#ID1101103511051014278500019055111000000013199881790001">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
          </Transforms>
          <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <DigestValue>xB0+/F6Hae+3Olrc7bzAmSxfxDo=</DigestValue>
        </Reference>
      </SignedInfo>
      <SignatureValue>dCC3i8H7Z4tReOpk2WeYrFUackIqM(...)jR4pSrr9o7YJ008CjnbFavvg=</SignatureValue>
      <KeyInfo>
        <X509Data>
          <X509Certificate>MIIFpTCCBI2gAwIBAgIEQeR/UjANBg(...)bLKS91OCr+fY</X509Certificate>
        </X509Data>
      </KeyInfo>
    </Signature>
  </evento>
</envEvento>

Resposta do WS – cStat = 135 – Evento registrado e vinculado a NF-e

<?xml version="1.0" encoding="UTF-8"?>
<retEnvEvento versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe">
  <idLote>00000001319901</idLote>
  <tpAmb>2</tpAmb>
  <verAplic>SP_EVENTOS_PL_100</verAplic>
  <cOrgao>35</cOrgao>
  <cStat>128</cStat>
  <xMotivo>Lote de Evento Processado</xMotivo>
  <retEvento versao="1.00">
    <infEvento>
      <tpAmb>2</tpAmb>
      <verAplic>SP_EVENTOS_PL_100</verAplic>
      <cOrgao>35</cOrgao>
      <cStat>135</cStat>
      <xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
      <chNFe>35110510142785000190551110000000131998817900</chNFe>
      <tpEvento>110110</tpEvento>
      <xEvento>Carta de Correção registrada</xEvento>
      <nSeqEvento>1</nSeqEvento>
      <CNPJDest>10142785000190</CNPJDest>
      <dhRegEvento>2011-06-06T12:09:21-03:00</dhRegEvento>
      <nProt>135110004447087</nProt>
    </infEvento>
  </retEvento>
</retEnvEvento>

procEventoNFe – estrutura de evento de Carta de Correção registrado

<?xml version="1.0" encoding="UTF-8"?>
<procEventoNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
  <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
    <infEvento Id="ID1101103511051014278500019055111000000013199881790001">
      <cOrgao>35</cOrgao>
      <tpAmb>2</tpAmb>
      <CNPJ>10142785000190</CNPJ>
      <chNFe>35110510142785000190551110000000131998817900</chNFe>
      <dhEvento>2011-06-06T11:48:20-03:00</dhEvento>
      <tpEvento>110110</tpEvento>
      <nSeqEvento>1</nSeqEvento>
      <verEvento>1.00</verEvento>
      <detEvento versao="1.00">
        <descEvento>Carta de Correção</descEvento>
        <xCorrecao>O periodo de referencia de lancamento da NF-e de ativo permanente foi informado indevidamente como sendo "ref.: ABRIL/2008", considerar o periodo como "ref.: MAIO/2011".</xCorrecao>
        <xCondUso>A Carta de Correção é disciplinada pelo § 1º-A do art. 7º do Convênio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularização de erro ocorrido na emissão de documento fiscal, desde que o erro não esteja relacionado com: I - as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação; II - a correção de dados cadastrais que implique mudança do remetente ou do destinatário; III - a data de emissão ou de saída.</xCondUso>
      </detEvento>
    </infEvento>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
        <Reference URI="#ID1101103511051014278500019055111000000013199881790001">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
          </Transforms>
          <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <DigestValue>xB0+/F6Hae+3Olrc7bzAmSxfxDo=</DigestValue>
        </Reference>
      </SignedInfo>
      <SignatureValue>dCC3i8H7Z4tReOpk2WeYrFUackIqM(...)jR4pSrr9o7YJ008CjnbFavvg=</SignatureValue>
      <KeyInfo>
        <X509Data>
          <X509Certificate>MIIFpTCCBI2gAwIBAgIEQeR/UjANBg(...)bLKS91OCr+fY</X509Certificate>
        </X509Data>
      </KeyInfo>
    </Signature>
  </evento>
  <retEvento versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe">
    <infEvento>
      <tpAmb>2</tpAmb>
      <verAplic>SP_EVENTOS_PL_100</verAplic>
      <cOrgao>35</cOrgao>
      <cStat>135</cStat>
      <xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
      <chNFe>35110510142785000190551110000000131998817900</chNFe>
      <tpEvento>110110</tpEvento>
      <xEvento>Carta de Correção registrada</xEvento>
      <nSeqEvento>1</nSeqEvento>
      <CNPJDest>10142785000190</CNPJDest>
      <dhRegEvento>2011-06-06T12:09:21-03:00</dhRegEvento>
      <nProt>135110004447087</nProt>
    </infEvento>
  </retEvento>
</procEventoNFe>

VB 6.0

'
'  Carta de Correção eletrônica
'
'  Exemplo de uso da funcionalidade de carta de correção eletrônica
'
'  veja detalhes da funcionalidade em: https://www.flexdocs.net/guiaNFe/WS.evento.CCe.html
'
Dim msgDados As String
Dim msgRetWS As String
Dim msgResultado As String
Dim siglaUF As String
Dim siglaWS As String
Dim certificado As String
'
'  As variáveis do proxy devem ser informadas se necessário
'
'  proxy deve ser informado com o endereço da url : porta, ex: 192.168.15.1:443
'
Dim proxy As String
Dim usuario As String
Dim senha As String
Dim licenca As String
'
Dim ambiente As Integer
'
' define as variáveis que passam informações para a DLL
'
Dim versao As String            ' utilizado para escolha da versão do WS, informar "1.00"
Dim ChaveNFe As String          ' chave da NF-e objeto de carta de correção eletrônica
Dim txtCorrecao  As String      ' texto da correção - string com até 1000 caracteres
Dim dhCorrecao As String        ' data e hora da correção
Dim nCCe As Long                ' número da carta de correção, deve ser um número sequencial iniciado em 1, o valor máximo é 20
Dim descEventoAcentuado As Long ' indicardor de acentuação da descrição do evento e das condições de uso, deve ser informado com 0-não/1-sim
                                  ' indicar com 0 para as UF que não aceitam acento como é o caso do MT
                                  ' IMPORTANTE: o controle da acentuação do texto da correção é da aplicação do usuário, este indicador serve
                                  ' apenas para que a DLL informe os campos descEvento e xCondUso sem acentuaçã.
'
'  parâmetros que devolvem informações
'
Dim procCCe As String           ' estrturura XML que contém a carta de correção eletrônica e registro do evento da carta de correção eletrônica,
                                ' que deve ser mantido pelo emissor e distribuído ao destinatário.
Dim nProtocoloCCe  As String    ' número do protocolo de  registro do evento da carta de correção eletrônica devolvido pela SEFA
Dim dProtocoloCCe  As String    ' data e hora de  registro do evento da carta de correção eletrônica

 
'
'
'  IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicializadas
'
'
proxy = ""
usuario = ""
senha = ""
licenca = ""
msgDados = ""
msgRetWS = ""
msgResultado = ""
procCCe = ""
nProtocoloCCe = ""
dProtocoloCCe = ""
 
certificado = txtCertificado.Text
'
' informar com o assunto da certificado digital
' Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
'
' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes
'
' EXEMPLO PARA USO DE ARQUIVO PFX
'
' certificado = "ARQUIVO|c:\certificado.pfx|associacao"
'
'  onde:
'  ARQUIVO            --> indica opção de uso de arquivo PFX
'  c:\certificado.pfx --> nome e caminho do arquivo PFX
'  associacao         --> senha do arquivo PFX
'
'
' EXEMPLO PARA USO DE ARQUIVO PFX EM STRING BASE64
'
' certificado = "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha"
'
'  onde:
'  CERTIFICADO        --> indica opção de uso de arquivo PFX em base64
'  MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy --> arquivo PFX em base64
'  senha              --> senha do arquivo PFX
'

siglaWS = cbWS.Text ' se a UF utilizar SEFAZ Virtual, informar SVRS (Ex. RJ, SC, etc.) ou SVAN (Ex. ES, RN, etc.)

txtEntrada.Text = ""
txtRetorno.Text = ""
 
'
' estamos utilizando os seguintes parâmetro fixo na demonstração para facilitar o processo
'
versao = "1.00"                                       ' versão do leiaute da carta de correção
dhCorrecao = Format$(Now, "yyyy-mm-dd HH:mm:ss")      ' data e hora da correção
nCCe = 1                                              ' número da carta de correção, deve ser um número sequencial iniciado em 1, o valor máximo é 20
descEventoAcentuado = 0             ' indicador de acentuação da descrição do evento e das condições de uso, deve ser informado com 0-não/1-sim

 
ChaveNFe = InputBox("Informe a Chave de Acesso da NF-e objeto de carta de Correção", "Carta de Correção eletrônica da NF-e")
 
 
If ChaveNFe = "" Then '
        MsgBox "Necessário informar a chave de acesso da NF-e objeto de carta de Correção", vbCritical, "Atenção:"
            Exit Sub
End If
 
txtCorrecao = InputBox("Informe o texto da correção a ser considerada (o texto deve ter entre 15 a 1000 caracteres.", "Carta de Correção eletrônica da NF-e")
 
 
If Len(txtCorrecao) < 15 Then '
        MsgBox "Necessário informar o texto da correção com no mínimo 15 caracteres", vbCritical, "Atenção:"
            Exit Sub
End If
 
If Len(txtCorrecao) > 1000 Then '
        MsgBox "O texto da correção deve ter até 1000 caracteres", vbCritical, "Atenção:"
            Exit Sub
End If
 
 
 
If cbAmb.Text = "Produção" Then
   ambiente = 1
Else
   ambiente = 2
End If
 
Dim cStat As Long   ' status da chamada, veja os valores em https://www.flexdocs.net/guiaNFe/WS.evento.CCe.html

'
' referenciando a DLL em late binding
' não é necessário fazer o reference da DLL
' o intelisense não funciona
'
Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_util_2G.util")
 
'
'
Screen.MousePointer = vbHourglass    ' ampulheta
'
'
procCCe = objNFeUtil.EnviaCCe2G(siglaWS, ambiente, certificado, versao, msgDados, msgRetWS, cStat, msgResultado, ChaveNFe, txtCorrecao, descEventoAcentuado, nCCe, dhCorrecao, nProtocoloCCe, dProtocoloCCe, proxy, usuario, senha, licenca)
'
'
Screen.MousePointer = vbDefault ' normal
'
' mostra mensagem XML enviada e a mensagem de retorno do WS
'
txtEntrada.Text = msgDados          ' string com a mensagem XML enviado ao WS

txtRetorno.Text = msgRetWS          ' string com a mensagem XML da resposta do WS

If cStat = 135 Then
 
   MsgBox msgResultado & Chr(13) & Chr(13) + "Protocolo de registro do evento : " + nProtocoloCCe + Chr(13) & Chr(13) + "Data e hora de registro evento: " + dProtocoloCCe + Chr(13) & Chr(13) + "Grave o proccce : " + procCCe, vbInformation, "Atenção: Carta de Correção eletrônica da NF-e"
 
   '
   ' grave o CCe, pois o XML deve ser mantido pelo emissor, além de ser distribuído para o destinatário também.
   '

Else
 
    MsgBox msgResultado & Chr(13) & Chr(13), vbError, "Atenção: o Envio da Carta de Correção eletrônica Falhou"
 
End If

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
How can we improve this article?
How Can We Improve This Article?
Sumário