- 10.7. Eventos do CT-e [01-08-19]
10.7.3. Carta de Correção [v3.00] - 10.7.2. Cancela CT-e [v3.00]
« Anterior - 10.7.3.1. XML Correção [01-09-13]
Próximo »
10.7.3. Carta de Correção [v3.00]
Sumário
Carta de Correção eletrônica
Assinatura
string EnviaCCe(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, string chaveCTe, string XMLCorrecao, int textoAcentuado, int nroCorrecao, string dataCorrecao, out string nroProtocolo, out string dhProtocolo, string proxy, string usuario, string senha, string licenca)
Descrição:
Funcionalidade para Carta de Correção do CT-e
Atualização para versão 3.00 do leiaute [jan/2017]
o que vai mudar?
Foi criado o CT-e Outros Serviços, que é uma novo modelo de Conhecimento de transporte: CT-e OS, modelo 67, para substituir a Nota Fiscal de Serviço de Transporte, modelo 7, para acobertar os seguintes serviços:
- Transporte de Pessoas;
- Transporte de Valores;
- Excesso de Bagagem.
o que muda na DLL?
- a DLL foi modificada para suportar a versão 3.00 do leiaute do Web Service de recepção de CT-e, além da implementação dos novos Web Services;
- requer a atualização da versão DLL - É necessário atualizar a DLL para a versão 3.00 ou superior;
qual o reflexo para minha aplicação? - são necessárias as seguintes alterações:
- parâmetro versao - informar "3.00" no parâmetro versao;
- parâmetro dhEvento - informar a data e hora com fuso horário (data e hora no formato UTC) no parâmetro dhEvento;
- retorno do WS - as datas serão devolvidas com o fuso horário (formato UTC);
Os principais parâmetros da carta de correção são:
- chave de acesso do CT-e objeto da correção;
- data da correção;
- sequencial da correção (1 a 20), a última correção substitui a correção anterior;
- correções - indicar tag corrigida e o novo conteúdo;
- indicador de texto acentuado.
A carta de correção deve ser enviada para a SEFAZ de origem do emissor do CT-e objeto de correção, a identificação do WS de acessado deverá ser informada no parâmetro siglaWS.
Condições para envio da Carta de Correção
- CT-e autorizado, não é possível corrigir um CT-e cancelado;
Prazo de envio da carta de correção
Enquanto existir o CT-e para consulta simplificada;
Quantidade máxima de carta de correção
Um CT-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.
FAQ da CC-e - Carta de Correção eletrônica:
A CC-e é de uso obrigatório?
O uso da CC-e ainda não é obrigatorio.
Quando podemos emitir a CC-e?
A CC-e pode ser emitida para "corrigir" alguns erros de preenchimento do Conhecimento de Transporte eletrônico.
O que pode ser corrigido com a CC-e?
O CONVENIO SINIEF 06/89 veda a correção das seguintes informações relacionadas com o Fato Gerador do ICMS do CT-e:
"Art. 58-B Fica permitida a utilização de carta de correção, para regularização de erro ocorrido na emissão de documentos fiscais relativos à prestação de serviço de transporte, 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 prestação;
II - a correção de dados cadastrais que implique mudança do emitente, tomador, 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 prestação?
- para aumentar o valor do ICMS ou da prestação - o procedimento correto é a emissão do CT-e complementar;
- para reduzir o valor do ICMS ou da prestação - o procedimento correto é a anulação da prestação;
Como minimizar a ocorrência de problemas
Consulta Cadastro - tente utilizar a consulta cadastro que a SEFAZ oferece para obter os dados cadastrais do tomador; envio/disponibilização do CT-e - envie ou disponbilize o CT-e para o tomador com antecedência para que o tomador possa conferir as informações;
É possível emitir a CC-e para acompanhar a prestação de serviço (CT-e + CC-e)?
Não existe impedimento para emitir uma CC-e para corrigir um CT-e de um seriço que ainda não foi prestado, contudo o procedimento mais adequado nesta situação é o cancelamento do CT-e incorreto e a emissão de um CT-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 tomador do serviço para informar o erro de preenchimento do CT-e e pode ser impresso no padrão que o emissor julgar conveniente.
O que devo informar na CC-e?
- chave de acesso do CT-e objeto da correção;
- data e hora da correção;
- sequencial da correção (1 a 20), a última correção substitui a correção anterior;
- correções - indicar tag corrigida e o novo conteúdo;
Como deve ser informada a correção?
Devemos indicar a tag corrigida e o novo conteúdo.
Exemplo de correção da tag nro do rem com o valor 170
<infCorrecao> <grupoAlterado>rem</grupoAlterado> <campoAlterado>nro</campoAlterado> <valorAlterado>170</valorAlterado> </infCorrecao>
Exemplo de correção da tag nro do rem com o valor 170 e a tag fone do enderRem com o valor 14991001000
<infCorrecao> <grupoAlterado>rem</grupoAlterado> <campoAlterado>nro</campoAlterado> <valorAlterado>170</valorAlterado> </infCorrecao> <infCorrecao> <grupoAlterado>enderRem</grupoAlterado> <campoAlterado>fone</campoAlterado> <valorAlterado>14991001000</valorAlterado> </infCorrecao>
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 um CT-e incorretamente, 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 tomador do serviço.
A carta de correção deve ser enviada para o tomador do serviço?
Sim, o XML da carta de correção e a resposta de registro da carta de correção deve ser enviada para o tomador do serviço.
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.
O CT-e também é um documento eletrônico, mas imprimimos o DACTE, não vale o mesmo raciocínio para a CC-e?
Para o CT-e existe o DACTE que é um documento fiscal em papel previsto na legislação tributária necessário para acompanhar a prestação de serviço acobertada por CT-e e não se confunde com o CT-e que é documento fiscal distinto do DACTE.
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 DACTE. 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 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 tomador 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.
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | A identificação do WS será informada no parâmetro siglaWS, veja Tabela de siglaWS |
tipoAmbiente | inteiro | entrada | informar o código do ambiente desejado: 1- produção ou 2-homologação |
NomeCertificado | string | entrada | informar 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". (novas opções) |
versao | string | entrada | informar a versão do Evento: 3.00 (o valor 2.00 pode ser informado até o fim da vigência da versão 2.00 previsto para 04/12/17). |
msgDados | string | saída | retorna a mensagem XML do evento carta de correção criado pela DLL que foi enviado ao WS. |
msgRetWS | string | saída | retorna a mensagem XML de resposta do WS |
cStat | inteiro | saída | retorna o resultado da chamada do WS. |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
chaveCTe | string | entrada | informar a chave de acesso do CT-e objeto da carta de correção |
XMLCorrecao | string | entrada | informar o XML da correção |
textoAcentuado | inteiro | entrada | indicador 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. |
nroCorrecao | inteiro | entrada | informar 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. |
dataCorrecao | string | entrada | informar a data e hora da data de correção no formato UTC (data e hora com fuso horário): "AAAA-MM-DDTHH:MM:SS-HH:00". Exemplos: 2017-01-13T12:34:00-02:00 (fuso horário de Brasília no horário de verão). 2017-01-13T12:34:00-03:00 (fuso horário de Brasília). Se nada for informado (""), a DLL utilizará a data e hora e fuso horário do equipamento. |
nProtocolo | string | saída | retorna o número do protocolo de registro do Evento. |
dhProtocolo | string | saída | retorna a data e hora de registro do Evento. |
proxy | string | entrada | informar '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' |
usuario | string | entrada | informar o usuário para autenticação no proxy, se necessário |
senha | string | entrada | informar a senha de autenticação no proxy, se necessário |
licenca | string | entrada | informar 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 |
Preenchimento 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 de 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.
Retorno:
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 tomador do CT-e:
O parâmetro cStat retorna um código numérico com os seguintes significados:
código | Mensagem | origem | regra |
---|---|---|---|
5001 | Erro: 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 | - |
5002 | Erro: 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 | - |
5003 | Erro: 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 | - |
5004 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido) | DLL | - |
5005 | Erro: 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 | - |
5006 | Erro: 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 | - |
5007 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida) | DLL | - |
5008 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas) | DLL | - |
5009 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado) | DLL | - |
5010 | Erro: 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 | - |
5011 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível) | DLL | - |
5012 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportada | DLL | - |
5013 | Erro: 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 | - |
5014 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida) | DLL | - |
5015 | Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] - [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5016 | Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5017 | Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5101 | Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5102 | Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5103 | Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5104 | Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5105 | Erro: O WS não devolveu nenhum resultado | DLL | - |
5201 | Erro: O código do tipo de ambiente [CODIGO RECEBIDO PELA DLL] informado diferente de 1 - produção e 2 - homologação | DLL | - |
5202 | Erro: A sigla da UF [SIGLA RECEBIDA PELA DLL] informada é inválida | DLL | - |
5203 | Erro: Inexiste url para a UF [SIGLA UF] informada no ambiente [AMBIENTE] desejado, verifique se existe atualização do arquivo [NOME ARQUIVO] disponível. | DLL | - |
5204 | Erro: Arquivo que contem a URL do WS não localizado em [CAMINHO DA APLICACAO] | DLL | - |
5205 | Erro: Ocorreu um erro inesperado no processamento da URL (NOME URL) : [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5206 | Erro: Ocorreu um erro de validação do XML (NOME XML) : [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5403 | Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS] | DLL | - |
5404 | Erro: Nenhum certificado digital selecionado | DLL | |
5405 | Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser] | DLL | - |
5406 | Erro: Falha no tratamento do parâmetro nome: [nome informado] | DLL | - |
5407 | Erro: Quantidade de parâmetos inválido: [nome informado] | DLL | - |
5408 | Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS] | DLL | - |
6101 | Erro: O parâmetro versao não foi informado | DLL | - |
6102 | Erro: O conteúdo do parâmetro sigla da UF: [conteúdo do parâmetro] é inválido | DLL | - |
6103 | Erro: O conteúdo do parâmetro versao informado é inválido: [conteúdo do parâmetro] | DLL | - |
6104 | Erro: O parâmetro chaveCTe não informado | DLL | - |
6105 | Erro: O tamanho [tamanho da chave da CTe] do parâmetro chaveCTe informado não tem 44 caracteres | DLL | - |
6106 | Erro: As posições correspondentes (1,2) ao código da UF [valor] do parâmetro chaveCTe não é um código de UF válido | DLL | - |
6107 | Erro: A chave de acesso deve ter 44 posições: [tamanho da chave] | DLL | - |
6110 | Erro: O nome do titular do certificado deve ser informado | DLL | - |
6120 | Erro: O parâmetro chave de acesso deve ser informado | DLL | - |
6123 | Erro: O parâmetro tipoAmbiente deve ser informado | DLL | - |
6124 | Erro: O parâmetro tipoAmbiente [conteúdo do parâmetro] deve ser 1 ou 2 | DLL | - |
6141 | Erro: O parâmetro siglaWS deve ser informado | DLL | - |
6143 | Erro: O parâmetro Justificativa deve ter pelo menos 15 caracteres: [conteúdo do parâmetro] | DLL | - |
6144 | Erro: O parâmetro indicador de Texto Acentuado deve ser informado | DLL | - |
6145 | Erro: O parâmetro indicador de Texto Acentuado [conteúdo do parâmetro] deve ser informado com: 0-não acetuado ou 1-acentuado | DLL | - |
6146 | Erro: O parâmetro correcao deve ser informado | DLL | - |
6149 | Erro: O parâmetro nroCCe deve ser informado | DLL | - |
6150 | Erro: O parâmetro nroCCe informado: [conteúdo do parâmetro] fora da faixa permitida 1-20 | DLL | - |
6151 | Erro: O parâmetro dataCorrecao é inválida: [conteúdo do parâmetro] | DLL | - |
6152 | Erro: A chave do CT-e do retEvento: [chaveCTe retEvento] é divergente da chave do CT-e do Evento: [chaveCTe Evento] | DLL | - |
7001 | Erro: A licença não foi informada | DLL | - |
7002 | Erro: A licença informada: [licença] tem tamanho:[tamanho da licença] diferente de 128 | DLL | - |
7003 | Erro: A licença informada: [licença] não pertence ao CNPJ:[CNPJ informado] | DLL | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
135 | Evento registrado e vinculado ao CT-e | WS | - |
205 | Rejeição: CT-e está denegado na base de dados da SEFAZ | WS | M06 |
213 | Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital | WS | F03 |
214 | Rejeição: Tamanho da mensagem excedeu o limite estabelecido | WS | B01 |
215 | Rejeição: Falha no schema XML | WS | D01 |
216 | Rejeição: Chave de Acesso difere da cadastrada | WS | L19 |
217 | Rejeição: CT-e não consta na base de dados da SEFAZ | WS | L18 |
218 | Rejeição: CT-e já está cancelado na base de dados da SEFAZ | WS | M07 |
236 | Rejeição: Chave de Acesso com dígito verificador inválido | WS | L09 |
238 | Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente | WS | C06 |
239 | Rejeição: Cabeçalho - Versão do arquivo XML não suportada | WS | C07 |
242 | Rejeição: Cabeçalho - Falha no Schema XML | WS | C01 |
243 | Rejeição: XML Mal Formado | WS | B02 |
249 | Rejeição: UF da Chave de Acesso diverge da UF autorizadora | WS | M01 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | L01 |
280 | Rejeição: Certificado Transmissor inválido | WS | A01 |
281 | Rejeição: Certificado Transmissor Data Validade | WS | A02 |
282 | Rejeição: Certificado Transmissor sem CNPJ | WS | A07 |
283 | Rejeição: Certificado Transmissor - erro Cadeia de Certificação | WS | A03 |
284 | Rejeição: Certificado Transmissor revogado | WS | A05 |
285 | Rejeição: Certificado Transmissor difere ICP-Brasil | WS | A06 |
286 | Rejeição: Certificado Transmissor erro no acesso a LCR | WS | A04 |
290 | Rejeição: Certificado Assinatura inválido | WS | E01 |
291 | Rejeição: Certificado Assinatura Data Validade | WS | E02 |
292 | Rejeição: Certificado Assinatura sem CNPJ | WS | E03 |
293 | Rejeição: Certificado Assinatura - erro Cadeia de Certificação | WS | E04 |
294 | Rejeição: Certificado Assinatura revogado | WS | E06 |
295 | Rejeição: Certificado Assinatura difere ICP-Brasil | WS | E07 |
296 | Rejeição: Certificado Assinatura erro no acesso a LCR | WS | E05 |
297 | Rejeição: Assinatura difere do calculado | WS | F02 |
298 | Rejeição: Assinatura difere do padrão do Projeto | WS | F01 |
402 | Rejeição: XML da área de dados com codificação diferente de UTF-8 | WS | D05 |
404 | Rejeição: Uso de prefixo de namespace não permitido | WS | D04 |
409 | Rejeição: Campo cUF inexistente no elemento cteCabecMsg do SOAP Header | WS | C02 |
410 | Rejeição: UF informada no campo cUF não é atendida pelo Web Service | WS | C03 |
411 | Rejeição: Campo versaoDados inexistente no elemento cteCabecMsg do SOAP Header | WS | C05 |
513 | Rejeicao: UF nao atendida pela SVC-[SP/RS] | WS | C04 |
516 | Rejeição: O tpEmis informado é incompatível com SVC-[SP/RS] | WS | L07 |
592 | Rejeição: Chave de acesso inválida (Ano < 2009 ou Ano maior que Ano corrente | WS | L10 |
593 | Rejeição: Chave de acesso inválida (Mês = 0 ou Mês > 12) | WS | L11 |
594 | Rejeição: Chave de acesso inválida (CNPJ zerado ou digito inválido) | WS | L12 |
595 | Rejeição: Chave de acesso inválida (modelo diferente de 57) | WS | L13 |
596 | Rejeição: Chave de acesso inválida (numero CT = 0) | WS | L14 |
598 | Rejeição: Usar somente o namespace padrão do CT-e | WS | D02 |
599 | Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagem | WS | D03 |
600 | Rejeicao: Chave de Acesso difere da existente em BD | WS | L20 |
627 | Rejeição: CNPJ do autor do evento inválido | WS | L04 |
628 | Rejeição: Erro Atributo ID do evento não corresponde a concatenação dos campos (“ID” + tpEvento + chCTe + nSeqEvento) | WS | L05 |
629 | Rejeição: O tpEvento informado inválido | WS | L06 |
630 | Rejeição: Falha no Schema XML específico para o evento | WS | L08 |
631 | Rejeição: Duplicidade de evento | WS | L15 |
632 | Rejeição: O autor do evento diverge do emissor do CT-e | WS | L16 |
633 | Rejeição: O autor do evento não é um órgão autorizado a gerar o evento | WS | L17 |
634 | Rejeição: A data do evento não pode ser menor que a data de emissão do CT-e | WS | L21 |
635 | Rejeição: A data do evento não pode ser maior que a data do processamento | WS | L23 |
636 | Rejeição: O numero sequencial do evento é maior que o permitido | WS | M02 |
637 | Rejeição: A data do evento não pode ser menor que a data de autorização do CT-e | WS | L22 |
663 | Rejeição: CT-e autorizado há mais de 30 dias | WS | M08 |
664 | Rejeição: Evento não permitido para CT-e Substituido/Anulado | WS | M09 |
670 | Rejeição: Série utilizada não permitida no webservice | WS | L03 |
677 | Rejeição: Órgão de recepção do evento inválido | WS | L02 |
681 | Rejeição: Informação não pode ser alterada por carta de correção | WS | M05 |
999 | Rejeição: Erro não catalogado (mensagem) | WS | - |
Tratamento de Erro:
Caso ocorra algum erro na chamada do WS (5001-6145) ou a requisição não seja atendida pelo WS (203-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 - 6152 - falha no tratamento dos pârametros da chamada da DLL
- 7001 - 7003 - falha na validação da licença
Histórico de atualização:
- 2013-09-01 - 2.00 - versão inicial
- 2013-09-28 - acréscimo do exemplo do procEventoCTe
- 2017-01-12 - Alteração para suportar a versão 3.00 (CT-e e CT-e OS)
Mensagens XML do envio da carta de correção - versão 3.00:
eventoCTe Envio da Carta de Correção
<?xml version="1.0" encoding="UTF-8"?> <eventoCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00"> <infEvento Id="ID1101103517011014278500019057001000000001154452952001"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chCTe>35170110142785000190570010000000011544529520</chCTe> <dhEvento>2017-01-26T13:30:09-02:00</dhEvento> <tpEvento>110110</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="3.00"> <evCCeCTe> <descEvento>Carta de Correcao</descEvento> <infCorrecao> <grupoAlterado>rem</grupoAlterado> <campoAlterado>nro</campoAlterado> <valorAlterado>170</valorAlterado> </infCorrecao> <infCorrecao> <grupoAlterado>enderRem</grupoAlterado> <campoAlterado>fone</campoAlterado> <valorAlterado>14991001000</valorAlterado> </infCorrecao> <xCondUso>A Carta de Correcao e disciplinada pelo Art. 58-B do CONVENIO/SINIEF 06/89: Fica permitida a utilizacao de carta de correcao, para regularizacao de erro ocorrido na emissao de documentos fiscais relativos a prestacao de servico de transporte, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da prestacao;II - a correcao de dados cadastrais que implique mudanca do emitente, tomador, remetente ou do destinatario;III - a data de emissao ou de saida.</xCondUso> </evCCeCTe> </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="#ID1101103517011014278500019057001000000001154452952001"> <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>P29ScWqZSt+BqKTL3LATbF6kO2c=</DigestValue> </Reference> </SignedInfo> <SignatureValue>rqxcQlPsr2BvTtEIjuoBMM6m(...)2TWBjF7jlf4egOWA==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIUDCCBjigAwIBAgIQGclPSrR9b8(...)tUzHbK+qNkBdOAr7Ns4azU=</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoCTe>
Mensagens XML de resposta do WS da SEFAZ - versão 3.00:
retEventoCTe Resposta do WS
<retEventoCTe versao="3.00" xmlns="http://www.portalfiscal.inf.br/cte"> <infEvento> <tpAmb>2</tpAmb> <verAplic>SP-CTe-22-12-2016</verAplic> <cOrgao>35</cOrgao> <cStat>135</cStat> <xMotivo>Evento registrado e vinculado a CT-e</xMotivo> <chCTe>35170110142785000190570010000000011544529520</chCTe> <tpEvento>110110</tpEvento> <xEvento>Carta de Correção</xEvento> <nSeqEvento>01</nSeqEvento> <dhRegEvento>2017-01-15T10:57:21-02:00</dhRegEvento> <nProt>135170004447087</nProt> </infEvento> </retEventoCTe>
Mensagens XML do procEventoCTe - versão 3.00:
procEventoCTe Estrutura procEventoCTe com a carta de correção e respectivo protocolo de registro do evento
<?xml version="1.0" encoding="UTF-8"?> <procEventoCTe versao="3.00"> <eventoCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00"> <infEvento Id="ID1101103517011014278500019057001000000001154452952001"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chCTe>35170110142785000190570010000000011544529520</chCTe> <dhEvento>2017-01-26T13:30:09-02:00</dhEvento> <tpEvento>110110</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="3.00"> <evCCeCTe> <descEvento>Carta de Correcao</descEvento> <infCorrecao> <grupoAlterado>rem</grupoAlterado> <campoAlterado>nro</campoAlterado> <valorAlterado>170</valorAlterado> </infCorrecao> <infCorrecao> <grupoAlterado>enderRem</grupoAlterado> <campoAlterado>fone</campoAlterado> <valorAlterado>14991001000</valorAlterado> </infCorrecao> <xCondUso>A Carta de Correcao e disciplinada pelo Art. 58-B do CONVENIO/SINIEF 06/89: Fica permitida a utilizacao de carta de correcao, para regularizacao de erro ocorrido na emissao de documentos fiscais relativos a prestacao de servico de transporte, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da prestacao;II - a correcao de dados cadastrais que implique mudanca do emitente, tomador, remetente ou do destinatario;III - a data de emissao ou de saida.</xCondUso> </evCCeCTe> </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="#ID1101103517011014278500019057001000000001154452952001"> <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>P29ScWqZSt+BqKTL3LATbF6kO2c=</DigestValue> </Reference> </SignedInfo> <SignatureValue>rqxcQlPsr2BvTtEIjuoBMM6m(...)2TWBjF7jlf4egOWA==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIUDCCBjigAwIBAgIQGclPSrR9b8(...)tUzHbK+qNkBdOAr7Ns4azU=</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoCTe> <retEventoCTe versao="3.00" xmlns="http://www.portalfiscal.inf.br/cte"> <infEvento> <tpAmb>2</tpAmb> <verAplic>SP-CTe-22-12-2016</verAplic> <cOrgao>35</cOrgao> <cStat>135</cStat> <xMotivo>Evento registrado e vinculado a CT-e</xMotivo> <chCTe>35170110142785000190570010000000011544529520</chCTe> <tpEvento>110110</tpEvento> <xEvento>Carta de Correção</xEvento> <!-- CONTEÚDO PRESUMIDO --> <nSeqEvento>01</nSeqEvento> <dhRegEvento>2017-01-15T10:57:21-02:00</dhRegEvento> <nProt>135170004447087</nProt> </infEvento> </retEventoCTe> </procEventoCTe>
Exemplo de uso:
' ' 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/guiaCTe/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 "2.00" Dim ChaveCTe As String ' chave do CT-e objeto de carta de correção eletrônica Dim XMLCorrecao As String ' XML da correção Dim dhCorrecao As String ' data e hora da correção, a DLL pega a data e hora do sistema se for informado vazio "" 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 = "CN=M R M KATO ASAKURA EIRELI EPP:10142785000190, OU=Autenticado por AR VALOR, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, L=Ourinhos, S=SP, O=ICP-Brasil, C=BR" ' ' 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 = "SP" ' ' estamos utilizando os seguintes parâmetro fixo na demonstração para facilitar o processo ' versao = "3.00" ' versão do leiaute da carta de correção dhCorrecao = "" ' data e hora da correção ' Format$(Now, "yyyy-mm-ddTHH:mm:ss-03:00") ou Format$(Now, "yyyy-mm-ddTHH:mm:ss-02:00") ' pode ser informado com "" para a DLL pegar a data e hora do equipamento, mas podem ocorrer rejeição se ' o horário não estiver sincronizado com o WS 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 ChaveCTe = "35170110142785000190570010000000011544529520" XMLCorrecao = "<infCorrecao>" + _ "<grupoAlterado>rem</grupoAlterado>" + _ "<campoAlterado>nro</campoAlterado>" + _ "<valorAlterado>170</valorAlterado>" + _ "</infCorrecao>" + _ "<infCorrecao>" + _ "<grupoAlterado>enderRem</grupoAlterado>" + _ "<campoAlterado>fone</campoAlterado>" + _ "<valorAlterado>14991001000</valorAlterado>" + _ "</infCorrecao>" ambiente = 2 Dim cStat As Long ' status da chamada, veja os valores em https://www.flexdocs.net/guiaCTe/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 objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' ' Screen.MousePointer = vbHourglass ' ampulheta ' ' procCCe = objCTeUtil.EnviaCCe(siglaWS, ambiente, certificado, versao, msgDados, msgRetWS, cStat, msgResultado, ChaveCTe, XMLCorrecao, descEventoAcentuado, nCCe, dhCorrecao, nProtocoloCCe, dProtocoloCCe, proxy, usuario, senha, licenca) ' ' Screen.MousePointer = vbDefault ' normal 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 do CT-e" ' ' grave o CCe, pois o XML deve ser mantido pelo emissor, além de ser distribuído para o tomador também. ' Else MsgBox msgResultado & Chr(13) & Chr(13), vbError, "Atenção: o Envio da Carta de Correção eletrônica Falhou" End If
- 10.7.3. Carta de Correção [v3.00]
10.7. Eventos do CT-e [01-08-19] - « Anterior
10.7.2. Cancela CT-e [v3.00] - Próximo »
10.7.3.1. XML Correção [01-09-13]