- 10.6. Eventos do CT-e
10.6.4. Registro Multimodal - 10.6.3.1. XML Correção
« Anterior - 10.6.5. Prestação de serviço em desacordo
Próximo »
10.6.4. Registro Multimodal
Registro Multimodal
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 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). |
| 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.6.4. Registro Multimodal
10.6. Eventos do CT-e - « Anterior
10.6.3.1. XML Correção - Próximo »
10.6.5. Prestação de serviço em desacordo
