- 10.7. Eventos do CT-e [01-08-19]
10.7.4. Registro Multimodal [v3.00] - 10.7.3.1. XML Correção [01-09-13]
« Anterior - 10.7.5. Prestação de serviço em desacordo [v3.00]
Próximo »
10.7.4. Registro Multimodal [v3.00]
Registro Multimodal
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);
Assinatura
string RegistraMultimodal(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, string chaveCTe, string nDoc_Opc, string xRegistro,int nroRegistro, string dhEvento, out string nroProtocolo, out string dhProtocolo, string proxy, string usuario, string senha, string licenca)
Descrição:
Funcionalidade para vincular informações dos serviços prestados ao CT-e multimodal
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 Registro Multimodal 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 do registro Multimodal |
xRegistro | string | entrada | informaçoes sobre o tipo de documento utilizado e ressalvas, se for o caso, conforme Lei 9611, de 19 de fevereiro de 1998 (Texto Livre) |
nDoc_Opc | string | entrada | informar úmero do Documento lançado no CT-e Multimodal |
nroRegistro | inteiro | entrada | informar o número sequencial do registro, 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. |
dhEvento | 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 RegistroMultimodal é a mensagem XML composta pelo registro Multimodal 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 | - |
6146 | Erro: O parâmetro xRegistro deve ser informado | DLL | - |
6147 | Erro: O parâmetro xRegistro deve ter pelo menos 15 caracteres:[conteúdo do parâmetro] | DLL | - |
6148 | Erro: O parâmetro xRegistro pode ter no máximo 1000 caracteres:[conteúdo do parâmetro] | DLL | - |
6149 | Erro: O parâmetro nroRegistro deve ser informado | DLL | - |
6150 | Erro: O parâmetro nroRegistro 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 | M04 |
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 | M05 |
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 nfeCabecMsg 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 nfeCabecMsg 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 |
664 | Rejeição: Evento não permitido para CT-e Substituido/Anulado | WS | M06 |
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 |
679 | Rejeição: O modal do CT-e deve ser Multimodal para Evento Registros do Multimodal | WS | M03 |
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 (205-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
- 2017-01-12 - Alteração para suportar a versão 3.00 (CT-e e CT-e OS)
Mensagens XML do envio do Registro Multimodal - versão 3.00:
eventoCTe Envio do Registro Multimodal
<?xml version="1.0" encoding="UTF-8"?> <eventoCTe xmlns="http://www.portalfiscal.inf.br/cte" versao="3.00"> <infEvento Id="ID1101603517011014278500019057001000000001154452952001"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chCTe>35170110142785000190570010000000011544529520</chCTe> <dhEvento>2017-01-26T14:34:40-02:00</dhEvento> <tpEvento>110160</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="3.00"> <evRegMultimodal> <descEvento>Registro Multimodal</descEvento> <xRegistro>Texto livre de Informações sobre o tipo de documento utlizado</xRegistro> </evRegMultimodal> </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="#ID1101603517011014278500019057001000000001154452952001"> <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>DqNNGcBCvpVyN41EzrF8s0s5bFY=</DigestValue> </Reference> </SignedInfo> <SignatureValue>Dc6zgW78hu86JulRHBhE(...)GXK0aiQ9ULusxQ/mnhp/i4WsA==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIUDCCBjigAwIB(...)5IitUzHbK+qNkBdOAr7Ns4azU=</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoCTe>~~~ ##Mensagens XML de resposta do WS da SEFAZ - versão 3.00:# **retEventoCTe** Resposta do WS
[XML]
[XML]
##Exemplo de uso:#
[VB] ' ' ' Exemplo de uso da funcionalidade de Registro Multimodal ' ' veja detalhes da funcionalidade em: https://www.flexdocs.net/guiaCTe/WS.evento.multimodal.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 registro Multimodal Dim nDocOpc As String ' nro documento lançado no CT-e multimodal Dim xRegistro As String ' Informações sobre o tipo de documento utlizado Dim dhEvento As String ' data e hora do evento Dim nroRegistro As Long ' número da registro, deve ser um número sequencial iniciado em 1, o valor máximo é 20 ' ' parâmetros que devolvem informações ' Dim procRegMulti As String ' estrturura XML que contém o Registro Multimodal e registro do evento Dim nProtocoloReg As String ' número do protocolo de registro do evento do Registro Multimodal devolvido pela SEFA Dim dProtocoloReg As String ' data e hora de registro do evento do Registro Multimodal
' ' ' IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicializadas ' ' proxy = "" usuario = "" senha = "" licenca = "" msgDados = "" msgRetWS = "" msgResultado = "" nDocOpc = "" procRegMulti = "" nProtocoloReg = "" dProtocoloReg = ""
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 do registro multimodal dhEvento = "" ' 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 nroRegistro = 1 ' número do registro multimodal, deve ser um número sequencial iniciado em 1, o valor máximo é 20
ChaveCTe = "35170110142785000190570010000000011544529520"
xRegistro = "Texto livre de Informações sobre o tipo de documento utlizado"
ambiente = 2
Dim cStat As Long ' status da chamada, veja os valores em https://www.flexdocs.net/guiaCTe/WS.evento.multimodal.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 ' ' procRegMulti = objCTeUtil.RegistraMultimodal(siglaWS, ambiente, certificado, versao, msgDados, msgRetWS, cStat, msgResultado, ChaveCTe, nDocOpc, xRegistro, nroRegistro, dhEvento, nProtocoloReg, dProtocoloReg, proxy, usuario, senha, licenca)
' ' Screen.MousePointer = vbDefault ' normal
If cStat = 135 Then
MsgBox msgResultado & Chr(13) & Chr(13) + "Protocolo de registro do evento : " + nProtocoloReg + Chr(13) & Chr(13) + "Data e hora de registro evento: " + dProtocoloReg + Chr(13) & Chr(13) + "Grave o Registro Multimodal : " + procRegMulti, vbInformation, "Atenção: Registro Multimodal do CT-e"
' ' grave o procRegMulti, pois o XML deve ser mantido pelo emissor, além de ser distribuído para o tomador também. '
Else
End If
~~~
- 10.7.4. Registro Multimodal [v3.00]
10.7. Eventos do CT-e [01-08-19] - « Anterior
10.7.3.1. XML Correção [01-09-13] - Próximo »
10.7.5. Prestação de serviço em desacordo [v3.00]