- 10. Web Service do CT-e
10.1. Envia CT-e Síncrono novo - 10. Web Service do CT-e
« Anterior - 10.2. Envia CT-e Simplificadonovo
Próximo »
10.1. Envia CT-e Síncrono novo
Envia CT-e - serviço síncrono
Assinatura
string EnviaCTeSinc(string siglaWS, string versao, string nomeCertificado, string CTe, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, out CTeAssinado, out string nroProtocolo, out string dhProtocolo, string proxy, string usuario, string senha, string licenca)
Descrição:
Web Service para envio síncrono de CT-e, modelo 57. A partir da versão 4.00, passou a ser a única opção de envio do CT-e.
Web Service do CT-e:
Envio síncrono de CT-e
O WS de recepção síncrona de CT-e não aceita a recepção em lote.
Processo Síncrono
O processo de recepção é síncrono, assim o WS já devolve o resultado do processamento do CT-e.
Escolha do Ambiente
A funcionalidade utiliza o valor informado na tag tpAmb do CT-e, assim o usuário deve tomar o cuidado de informar o tpAmb corretamente para que a NFC-e/NF-e não seja enviada para o ambiente indesejado.
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.
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla do WS de envio, veja Tabela de siglaWS |
versao | string | entrada | informar a versão da mensagem do WS: 4.00. O valor 3.00 pode ser informado até o fim da vigência da versão 3.00 previsto para 31/01/24). |
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". |
CT-e | string | entrada | informar o CT-e que deseja transmitir, o CT-e não deve estar assinado. |
msgDados | string | saída | retorna a mensagem XML enviada para o 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 |
CTeAssinado | string | saída | retorna o CT-e assinado |
nroProtocolo | string | saída | retorna o número do protocolo de autorização de uso do CT-e. |
dhProtocolo | string | saída | retorna a data e hora da autorização de uso do CT-e. |
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 licença de uso, 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 |
Retorno:
O resultado da chamada do EnviaCTeSinc é o XML da procCTe do CT-e autorizado ou denegado, em caso de rejeição o retorno será "".
O parâmetro cStat retorna um código numérico com os seguintes significados:
cStat - código devolvido pelo Web Service da SEFAZ
A relação abaixo é meramente exemplificativa e não está atualizada. Como a SEFAZ cria novas validações que resultam em novos códigos de retorno, procure analisar o retorno do msgResultado que devolve a literal da mensagem de erro e não deixe de consultar as NT e o MOC que são as documentações técnicas oficiais da NF-e. A simples busca do conteúdo do msgResultado no google pode ajudar a compreender o motivo do problema e a solução do caso.
Erros da validação do XML do CT-e
código Mensagem 1 Erro: tipoXML: [tipoXML] inválido (fora do intervalo 0-83) 2 Erro: arquivo de Schema XML: [nome do arquivo] não localizado 3 Erro: XML mal formado 4 Erro: XML não atende Schema XML 5 Erro: não previsto 6 Erro: a versão do CT-e diverge da versão suportada pela DLL (3.00) 7 Nenhum Certificado Selecionado 8 Nenhum certificado válido foi encontrado com o nome informado 9 Erro Inesperado: [Mensagem] 10 Selecionado um Certificado de PF 11 Certificado selecionado não tem CNPJ/CPF 12 Certificado digital não tem chave privada Erro Assinatura Digital
código Mensagem 13 Erro: Problema ao acessar o certificado digital - exceção 14 Certificado digital inexistente para [nome] 15 XML mal formado + exceção 16 A tag de assinatura [RefUri] inexiste 17 A tag de assinatura [RefUri] não é unica 18 Erro Ao assinar o documento - ID deve ser string [RefUri] (Atributo) 19 Erro: Ao assinar o documento - exceção Erro Chamada WS
código Mensagem 20 código do ambiente inválido 21 sigla da UF inválida 22 a UF não oferece o serviço 23 Arquivo com a URL do WS não localizado 24 Erro não tratado de abertura/tratamento Arquivo ws.xml 25 Erro de validação de Schema 26 Nenhum Certificado Selecionado 27 Nenhum certificado válido foi encontrado com o nome informado 28 Erro Inesperado no acesso ao certificado digital: [Mensagem] 29 Erro: Time-out ao chamar o WS 30 Erro: exceção da biblioteca criptográfica 31 Erro: conectividade 32 Erro: Funcionalidade (EnviaCTeSinc) não licenciada para o CNPJ ([CNPJ informado]) e licenca ([ Chave informada]) 33 Erro: inesperado ao tratar o código de retorno do WS 34 Erro: O CNPJ informado tem tamanho diferente de 14: [CNPJ informado] - tam (tamanho] 35 Erro: A licença informada tem tamanho diferente de 128: [Chave informada] - tam (tamanho] 36 Erro: O CTe não deve estar assinado 37 Erro: Sequência Id: CTe não localizado, validação da licença prejudicada 38 Erro: Versao informada é inválida - [versao] 39 Erro: grupo protCTe inexistente na mensagem de retorno [Mensagem] 40 Erro: A mensagem de retorno do WS não é um XML válido: [Mensagem]
Se o CT-e foi recepcionado e processado pelo WS teremos os seguintes códigos de retorno:
código | Mensagem | origem | regra |
---|---|---|---|
100 | Autorizado o uso do CT-e | WS | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
114 | SVC-[SP/RS] desabilitada pela SEFAZ de Origem | WS | C05 |
203 | Rejeição: Emissor não habilitado para emissão do CT-e | WS | N88 |
204 | Rejeição: Duplicidade de CT-e [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD] | WS | N105 |
205 | Rejeição: CT-e está denegado na base de dados da SEFAZ | WS | N107 |
206 | Rejeição: Número de CT-e já está inutilizado na Base de dados da SEFAZ | WS | N108 |
207 | Rejeição: CNPJ do emitente inválido | WS | N82 |
209 | Rejeição: IE do emitente inválida | WS | N84 |
212 | Rejeição: Data de emissão CT-e posterior a data de recebimento | WS | N80 |
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 |
218 | Rejeição: CT-e já está cancelado na base de dados da SEFAZ [nProt:999999999999999][dhCanc: AAAA-MM-DDTHH:MM:SS TZD]. | WS | N106 |
225 | Rejeição: Falha no Schema XML do CT-e | WS | D01 |
226 | Rejeição: Código da UF do Emitente diverge da UF autorizadora | WS | N03 |
227 | Rejeição: Erro na composição do Campo ID | WS | N12 |
228 | Rejeição: Data de Emissão muito atrasada | WS | N81 |
229 | Rejeição: IE do emitente não informada | WS | N83 |
230 | Rejeição: IE do emitente não cadastrada | WS | N86 |
231 | Rejeição: IE do emitente não vinculada ao CNPJ | WS | N87 |
238 | Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente | WS | C07 |
239 | Rejeição: Cabeçalho - Versão do arquivo XML não suportada | WS | C08 |
242 | Rejeição: Elemento cteCabecMsg inexistente no SOAP Header | WS | C01 |
243 | Rejeição: XML Mal Formado | WS | B02 |
247 | Rejeição: Sigla da UF do Emitente diverge da UF autorizadora | WS | N04 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | N01 |
253 | Rejeição: Dígito Verificador da chave de acesso composta inválido | WS | N13 |
267 | Rejeição: CT-e Complementar referência um CT-e inexistente | WS | N118 |
269 | Rejeição: CNPJ Emitente do CT-e Complementar difere do CNPJ do CT complementado | WS | N109 |
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 |
301 | Uso Denegado: Irregularidade fiscal do emitente | WS | N89 |
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 WebService | WS | C03 |
411 | Rejeição: Campo versaoDados inexistente no elemento cteCabecMsg do SOAP Header | WS | C06 |
414 | Rejeição: Código de Município diverge da UF de término da prestação | WS | N132 |
444 | Rejeição: CNPJ do tomador inválido | WS | N92 |
445 | Rejeição: CPF do tomador inválido | WS | N93 |
447 | Rejeição: Código de Município diverge da UF de localização tomador | WS | N94 |
448 | Rejeição: IE do tomador inválida | WS | N100 |
456 | Rejeição: Código de Município diverge da UF de início da prestação | WS | N130 |
458 | Rejeição: Grupo de CT-e normal não informado para CT-e normal | WS | N14 |
459 | Rejeição: Grupo de CT-e complementar não informado para CT-e complementar | WS | N15 |
481 | Rejeição: IE deve ser informada para tomador Contribuinte | WS | N96 |
482 | Rejeição: IE do tomador isento deve ser preenchida com “ISENTO” | WS | N97 |
483 | Rejeição: IE não pode ser informada para tomador não contribuinte | WS | N98 |
489 | Rejeição: IE do tomador não cadastrada | WS | N101 |
490 | Rejeição: IE do tomador não vinculada ao CNPJ | WS | N102 |
491 | Rejeição: CT-e complementado é diferente de Normal ou Substituição | WS | N120 |
493 | Rejeição: Código de Município diverge da UF de envio | WS | N128 |
496 | Rejeição: Grupo CT-e de Anulação não informado para o CT-e de Anulação | WS | N30 |
497 | Rejeição: CT-e objeto da anulação inexistente | WS | N40 |
498 | Rejeição: CT-e objeto da anulação deve estar com a situação autorizada (não pode estar cancelado ou denegado) | WS | N42 |
499 | Rejeição: CT-e de anulação deve ter tipo de emissão = normal | WS | N31 |
500 | Rejeição: CT-e objeto da anulação deve ter Tipo = 0 (normal) ou 3 (Substituição) | WS | N44 |
501 | Rejeição: Autorização do CT-e de Anulação deve ocorrer em até 60 dias da data de autorização do CT-e objeto de anulação | WS | N45 |
502 | Rejeição: CT-e de anulação deve ter o valor do ICMS e de prestação iguais ao CT-e original | WS | N46 |
503 | Rejeição: CT-e substituto deve ter tipo de emissão = normal | WS | N52 |
505 | Rejeição: Grupo CT-e de Substituição não informado para o CT-e de Substituição | WS | N53 |
510 | Rejeição: CNPJ do emitente do CT-e substituto deve ser igual ao informado no CT-e substituído | WS | N68 |
513 | Rejeicao: UF nao atendida pela SVC-[SP/RS] | WS | C04 |
515 | Rejeição: O tpEmis informado só é válido na contingência SVC | WS | N08 |
516 | Rejeição: O tpEmis informado é incompatível com SVC-[SP/RS] | WS | N09 |
517 | Rejeição: CT-e informado em SVC deve ser Normal | WS | N10 |
520 | Rejeição: CT-e não pode receber mais do que 10 CT-e Complementares | WS | N122 |
531 | Rejeição: Valor a receber deve ser menor ou igual Valor da Prestação | WS | N27 |
536 | Rejeição: Município do Tomador inexistente | WS | N95 |
537 | Rejeição: Município de Envio inexistente | WS | N129 |
539 | Rejeição: Duplicidade de CT-e, com diferença na Chave de Acesso [chCTe: [9999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD] | WS | N104 |
541 | Rejeição: Município de início da prestação inexistente | WS | N131 |
542 | Rejeição: Município de término da prestação inexistente | WS | N133 |
552 | Rejeição: O CNPJ/CPF do tomador do CT-e substituto deve ser igual ao informado no CTe substituído | WS | N69 |
553 | Rejeição: A IE do emitente do CT-e substituto deve ser igual ao informado no CT-e substituído | WS | N70 |
558 | Rejeição: A IE do tomador do CT-e substituto deve ser igual ao informado no CT-e substituído | WS | N71 |
559 | Rejeição: A UF de início da prestação deve ser igual ao informado no CT-e substituído | WS | N72 |
560 | Rejeição: A UF de fim da prestação deve ser igual ao informado no CT-e substituído | WS | N73 |
563 | Rejeição: A substituição de um CT-e deve ocorrer no prazo máximo de 60 dias contados da data de autorização do CT-e objeto de Substituição | WS | N74 |
565 | Rejeição: O CT-e só pode ser anulado pelo emitente | WS | N43 |
566 | Rejeição: CT-e objeto da anulação não pode ter sido anulado anteriormente | WS | N47 |
567 | Rejeição: CT-e objeto da anulação não pode ter sido substituído anteriormente | WS | N48 |
568 | Rejeição: CT-e a ser substituído inexistente | WS | N62 |
569 | Rejeição: CT-e a ser substituído deve estar com a situação autorizada (não pode estar cancelado ou denegado) | WS | N64 |
570 | Rejeição: CT-e a ser substituído não pode ter sido substituído anteriormente | WS | N65 |
571 | Rejeição: CT-e a ser substituído deve ter Tipo = 0 (normal) ou 3 (Substituição) | WS | N67 |
572 | Rejeição: CT-e de anulação inexistente | WS | N76 |
573 | Rejeição: CT-e de anulação informado deve ter Tipo=2(Anulação) | WS | N78 |
577 | Rejeição: CT-e a ser substituído não pode ter sido anulado anteriormente quando informados os documentos emitidos pelo tomador contribuinte | WS | N75 |
578 | Rejeição: Chave de acesso do CT-e anulado deve ser igual ao substituído | WS | N79 |
579 | Rejeição: Versão informada para o modal não suportada | WS | N17 |
580 | Rejeição: Falha no Schema XML específico para o modal | WS | N18 |
586 | Rejeição: Data e Justificativa de entrada em contingência não devem ser informadas para tipo de emissão diferente de FS-DA. | WS | N05 |
587 | Rejeição: Data e Justificativa de entrada em contingência devem ser informadas | WS | N06 |
588 | Rejeição: Data de entrada em contingência posterior a data de emissão. | WS | N07 |
598 | Rejeição: Usar somente o namespace padrao 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 |
614 | Rejeição: IE do Substituto Tributário inválida | WS | N85 |
615 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (modelo diferente de 67) | WS | N36 |
616 | Rejeição: Chave de acesso de CT-e substituido inválida (modelo diferente de 67) | WS | N58 |
617 | Rejeição: UF do tomador não aceita ISENTO com Inscrição Estadual | WS | N99 |
650 | Rejeição: Valor total do serviço superior ao limite permitido (R$ 9.999.999,99) | WS | N25 |
655 | Rejeição: CT-e complementado deve estar com a situação autorizada (não pode estar cancelado ou denegado) | WS | N121 |
658 | Rejeição: CT-e objeto da anulação não pode ter sido complementado | WS | N49 |
659 | Rejeição: CT-e substituído não pode ter sido complementado | WS | N66 |
670 | Rejeição: Série utilizada não permitida no webservice | WS | N02 |
671 | Rejeição: CT-e complementado no CT-e Complementar com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD]. | WS | N119 |
672 | Rejeição: CT-e de Anulação com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD]. | WS | N77 |
673 | Rejeição: CT-e Substituído com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] [nProt:999999999999999][dhAut: AAAA-MM-DDTHH:MM:SS TZD] | WS | N63 |
674 | Rejeição: CT-e Objeto de Anulação com diferença de Chave de Acesso [chCTe: 99999999999999999999999999999999999999999999] | WS | N41 |
675 | Rejeição: Valor do imposto não corresponde à base de cálculo X alíquota | WS | N26 |
676 | Rejeição: CFOP informado inválido | WS | N29 |
699 | Rejeição: CNPJ autorizado para download inválido | WS | N134 |
700 | Rejeição: CPF autorizado para download inválido | WS | N135 |
712 | Rejeição: Código de Município diverge da UF de localização do emitente | WS | N90 |
713 | Rejeição: Município do Emitente inexistente | WS | N91 |
715 | Rejeição: Documento autorizado ao XML duplicado no CT-e | WS | N136 |
719 | Rejeição: IE do Tomador não informada | WS | N103 |
721 | Rejeição: Chave de acesso inválida (modelo diferente de 67) | WS | N11 |
735 | Rejeição: CT-e de anulação para CT-e com tomador contribuinte exige evento de Prestação de Serviço em Desacordo | WS | N50 |
736 | Rejeição: Existe CT-e de anulação autorizado há mais de 15 dias sem a autorização do CT-e Substituto | WS | N51 |
751 | Rejeição: UF de início e Fim da prestação devem estar preenchidas para Transporte de Pessoas | WS | N19 |
752 | Rejeição: Município de início e Fim da prestação devem estar preenchidos para Transporte de Pessoas | WS | N20 |
753 | Rejeição: Percurso inválido | WS | N21 |
754 | Rejeição: Os documentos referenciados devem estar preenchidos para excesso de bagagem | WS | N23 |
757 | Rejeição: O tomador do serviço deve estar informado para Transporte de Pessoas e Valores | WS | N22 |
758 | Rejeição: Existe CT-e OS de Transporte de Valores autorizado há mais de 45 dias sem informar as GTV [chCTe: 99999999999999999999999999999999999999999999] | WS | N24 |
760 | Rejeição: INSS deve ser preenchido para tomador pessoa jurídica | WS | N28 |
761 | Rejeição: Dígito Verificador inválido na Chave de acesso de CT-e objeto da anulação | WS | N32 |
762 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (Ano < 2009 ou Ano maior que Ano corrente) | WS | N33 |
763 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (Mês = 0 ou Mês > 12) | WS | N34 |
764 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (CNPJ zerado ou digito inválido) | WS | N35 |
766 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (número CT = 0) | WS | N37 |
767 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (Tipo de emissão inválido) | WS | N38 |
768 | Rejeição: Chave de acesso de CT-e objeto da anulação inválida (UF inválida) | WS | N39 |
769 | Rejeição: Dígito Verificador inválido na Chave de acesso de CT-e substituído | WS | N54 |
770 | Rejeição: Chave de acesso de CT-e substituído inválida (Ano < 2009 ou Ano maior que Ano corrente) | WS | N55 |
771 | Rejeição: Chave de acesso de CT-e substituído inválida (Mês = 0 ou Mês > 12) | WS | N56 |
772 | Rejeição: Chave de acesso de CT-e substituído inválida (CNPJ zerado ou digito inválido) | WS | N57 |
774 | Rejeição: Chave de acesso de CT-e substituído inválida (número CT = 0) | WS | N59 |
775 | Rejeição: Chave de acesso de CT-e substituído inválida (Tipo de emissão inválido) | WS | N60 |
776 | Rejeição: Chave de acesso de CT-e substituído inválida (UF inválida) | WS | N61 |
777 | Rejeição: Dígito Verificador inválido na Chave de acesso de CT-e complementado | WS | N110 |
778 | Rejeição: Chave de acesso de CT-e complementado inválida (Ano < 2009 ou Ano maior que Ano corrente) | WS | N111 |
779 | Rejeição: Chave de acesso de CT-e complementado inválida (Mês = 0 ou Mês > 12) | WS | N112 |
780 | Rejeição: Chave de acesso de CT-e complementado inválida (CNPJ zerado ou digito inválido) | WS | N113 |
782 | Rejeição: Chave de acesso de CT-e complementado inválida (número CT = 0) | WS | N115 |
783 | Rejeição: Chave de acesso de CT-e complementado inválida (Tipo de emissão inválido) | WS | N116 |
784 | Rejeição: Chave de acesso de CT-e complementado inválida (UF inválida) | WS | N117 |
785 | Rejeição: Chave de acesso de CT-e complementado inválida (modelo diferente de 67) | WS | N114 |
798 | Rejeição: Os dados específicos do modal devem estar preenchidos para Transporte de pessoas e Excesso de Bagagem | WS | N16 |
804 | Rejeição: O CNPJ/CPF do tomador do CT-e complementar deve ser igual ao informado no CT-e complementado | WS | N123 |
805 | Rejeição: A IE do emitente do CT-e complementar deve ser igual ao informado no CT-e complementado | WS | N124 |
810 | Rejeição: A IE do tomador do CT-e complementar deve ser igual ao informado no CT-e complementado | WS | N125 |
811 | Rejeição: A UF de início da prestação deve ser igual ao informado no CT-e complementado | WS | N126 |
812 | Rejeição: A UF de fim da prestação deve ser igual ao informado no CT-e complementado | WS | N127 |
Histórico de atualização:
- 2019-08-03 - 3.00 - versão inicial
Mensagens XML - versão 3.00:
Exemplo de CTe
Exemplos de uso:
Visual Basic 6.0
' ' declaração dos parâmetros da chamada da DLL ' Dim siglaWS As String ' informar a sigla do WS de envio: ' . sigla da UF, caso a UF tenha aplicação própria (MG, MS, MT, PR, RS e SP). ' . RS, caso a UF seja usuária da SVRS - SEFAZ Virtual do RS (AM, BA, CE, DF, ES, ' GO, MA, RJ, RN, RO, SC, SE, e TO); ' . SP, caso a UF seja usuária da SVSP - SEFAZ Virtual de SP (AP, PE e RR); ' . RS quando desejar acessar a SVC-RS (AP, MT, MS, PE, RR e SP); ' . SP quando desejar acessar a SVC-SP (AM, BA, CE, DF, ES, GO, MA, MG, PA, RJ, ' RN, RO, RS, SC, SE, e TO); Dim CTe As String ' informar o XML do CT-e Dim nomeCertificado As String ' informar nome do titular do certificado a ser utilizado na assinatura e conexão SSL Dim versao As String ' informar a versão da mensagem do WS - 4.00 Dim msgDados As String ' retorna a mensagem XML enviada para o WS Dim msgRetWS As String ' retorna a mensagem XML de resposta do WS Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim CTeAssinado As String ' retorna XML do CT-e assinado Dim nroProtocolo As String ' retorna o número do nro do protocolo de autorização de uso do CT-e Dim dhProtocolo As String ' retorna a data e hora de autorização de uso do CT-e Dim proCTe As String ' retorno o procCTe autorizado Dim proxy As String ' 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' Dim usuario As String ' informar o usuário para autenticação no proxy se necessário Dim senha As String ' informar a senha de autenticação no proxy se necessário Dim licenca As String ' informar a chave da licença de uso, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as [condições de uso](https://www.flexdocs.net/cte_util.htm "condições de uso") Dim cStat As Long ' retorna o código do resultado da chamada do WS ' ' inicializa parâmetros de entrada ' siglaWS = "SP" ' SEFAZ Virtual do RS versao = "4.00" ' informar a versão da mensagem do WS - 3.00/4.00 nomeCertificado = "CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR" ' campo assunto do certificado digital que será utilizado ' ' inicializa os dados do proxy, informar com valores se o ambiente utilizar proxy ' proxy = "" ' informar IP:porta ou url:porta usuario = "" ' informar o usuario senha = "" ' informar a senha ' ' inicializa a licenca de uso da DLL, necessário para utilizar a DLL em ambiente de produção, não alterar as letras para maiúsculas ' licenca = "" ' ' inicializa parâmetros de saída que receberão os retornos da DLL ' msgDados = "" ' retorna a mensagem XML enviado pela DLL msgRetWS = "" ' retorna a mensagem XML de resposta do WS msgResultado = "" ' retorna a literal do resultado da chamada do WS nroProtocolo = "" ' retorna o número do nro do protocolo de autorização de uso do CTe dhProtocolo = "" ' retorna a data e hora de autorização de uso do CTeOS CTeAssinado = "" ' retorna o CT-e assinado cStat = 0 procCTe = "" ' rerorna o procCTe se autorizado ' ' carrega o CT-e no parâmetro de entrada ' '------------------------------------------------------------------------------ ' ' ********************************IMPORTANTE************************************ ' caso o XML do CT-e tenha sido gravado em UTF-8 (com uso da função encode_UTF8) ' É NECESSÁRIO voltar o XML para ANSI, uma opção seria utilizar o decode_UTF8 a ' outra opção é utilizar o LerArquivoANSI: ' https://www.flexdocs.net/guiaCTe/funcao.utilidades.LerArquivoANSI.html ' ' A melhor opção é não converter os XML que serão utilizados pela aplicação em UTF-8 ' ' SÓ FAÇA A CONVERSÃO DO STRING DO XML EM UTF-8 COM O procCTe ' '------------------------------------------------------------------------------ Dim nomeArquivo As String ' nome do arquivo que contem o CTe ' nomeArquivo = App.Path & "\CTe.xml" ' ' importante: verificar a existência do arquivo solicitado na pasta do VB e indicar o caminho correto para ele em modo debug ' ' Carrega o conteúdo do nome do arquivo em CTe, só funciona para arquivo com codificação ANSI. ' Open nomeArquivo For Input As #1 CTe = Input$(LOF(1), 1) Close #1 ' ' instancia a DLL ' Dim objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' Screen.MousePointer = vbHourglass ' ampulheta procCTe = objCTeUtil.EnviaCTeSinc(siglaWS, _ versao, _ nomeCertificado, _ CTe, _ msgDados, _ msgRetWS, _ cStat, _ msgResultado, _ CTeAssinado, _ nroProtocolo, _ dhProtocolo, _ proxy, _ usuario, _ senha, _ licenca) Screen.MousePointer = vbDefault ' normal If cStat = 100 Then ' ' CT-e autorizado ' ' grava procCTe ' nomeArquivo = "procCTe.xml" Open nomeArquivo For Output As #1 Print #1, procCTe Close #1 MsgBox Str(cStat) & " - " & msgResultado, vbInformation, "Informação" ' ' gerar DACTE e enviar o procCTe para o tomador ' Else ' ' grava Log do Erro - analisar cStat e msgResultado ' nomeArquivo = "logErro.txt" Open nomeArquivo For Output As #1 Print #1, "EnviaCTeSinc :" & Now Print #1, "siglaWS = [" & siglaWS & "]" Print #1, "Certificado = [" & nomeCertificado & "]" Print #1, "versao = [" & versao & "]" Print #1, "CTe = [" & CTe & "]" Print #1, "msgDados = [" & msgDados & "]" Print #1, "msgResultado = [" & msgResultado & "]" Print #1, "msgRetWS = [" & msgRetWS & "]" Close #1 MsgBox Str(cStat) & " - " & msgResultado & vbCrLf & vbCrLf & msgRetWS, vbError, "Atenção: Falha no envio..." End If
Delphi
procedure TForm1.ButtonClick(Sender: TObject); var Util: OleVariant; // declarar a interface da DLL siglaWS, versao, nomeCertificado, CTe, msgDados, msgRetWS, msgResultado : widestring; CTeAssinado, nroProtocolo, dAutorizacao, proxy, usuario, senha, licenca : widestring; cStat: integer; nomeArquivo, procCTe:widestring; begin siglaWS:= 'SP'; versao:= '4.00'; nomeCertificado:= 'CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR'; CTe:= ''; msgDados:= ''; msgRetWS:= ''; msgResultado:= ''; CTeAssinado:= ''; nroProtocolo:= ''; dAutorizacao:= ''; proxy:= ''; usuario:= ''; senha:= ''; licenca:= ''; cStat:=0; procCTe:=''; nomeArquivo := 'c:\cte-rodocargo.xml'; // origem do arquivo XML do CT-e sem assinatura Util := CreateOleObject('CTe_Util.util'); // instância a DLL CTe := Util.LeArquivoANSI(nomeArquivo, cStat, msgResultado); // carrega XML do CT-e no parâmetro CTe If cStat = 7331 Then // erro na leitura do XML MessageDlg( msgResultado, mtInformation, [mbOk], 0) Else begin // // EnviaCTeSinc // // envia CT-e de forma síncrona // no síncrono o resultado do processamento do CT-e // é devolvido na própria chamada // analisar o cStat retornado: // // cStat = 100 -> CT-e autorizado // cStat <> 100 -> CT-e não autorizado // procCTe := Util.EnviaCTeSinc(siglaWS, versao, nomeCertificado, CTe, msgDados, msgRetWS, cStat, msgResultado, CTeAssinado, nroProtocolo, dAutorizacao, proxy, usuario, senha, licenca); MessageDlg( msgResultado, mtInformation, [mbOk], 0) // // se cStat = 100 // CT-e autorizado // gravar procCTe // gerar o DACTE com base no procCTe // enviar o procCTe para o tomador do serviço // senão // falha no envio do CT-e // analisar o cStat e msgResultado // end; end;
- 10.1. Envia CT-e Síncrono novo
10. Web Service do CT-e - « Anterior
10. Web Service do CT-e - Próximo »
10.2. Envia CT-e Simplificadonovo