11.5. CriaProc
11.5.1. CriaProcCTe
11.5. CriaProc
« Anterior
11.5.2. CriaProcCancCTe
Próximo »

11.5.1. CriaProcCTe

Cria o procCTe - estrutura de distribuição de CT-e composto pelo CT-e e respectivo protocolo de autorização de uso.

Assinatura

string CriaProcCTe(string siglaWS, ref string CTeAssinado, out string protocolo, out string retCancCTe, out int resultado, string nomeCertificado, out string msgResultado, string proxy, string usuario, string senha)

Descrição:

A funcionalidade é útil para criar o procCTe quando o CT-e teve o uso autorizado pela SEFAZ, mas não houve retorno do Web Service ou houve uma falha na gravação do procCTe.

A identificação do WS de acessado deverá ser informada no parâmetro siglaWS.

Preenchimento da siglaWS

  • a sigla RS, caso a UF seja usuária da SEFAZ Virtual (AM, BA, CE, ES, GO, MA, PR, RJ, RN, RO, SC, SE, e TO);

  • a sigla da UF, caso a UF tenha aplicação própria (MG, MS, MT, RS e SP).

Preenchimento do nomeCertificado

Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL.

Parâmetros:

nome tipo fluxo descrição
siglaWS string entrada informar a sigla do WS de envio, informar a sigla RS, caso a UF seja usuária da SEFAZ Virtual (AM, BA, CE, ES, GO, MA, PR, RJ, RN, RO, SC, SE, e TO); caso a UF tenha aplicação própria (MG, MS, MT, RS e SP), informar a sigla da própria UF.
CTeAssinado string entrada/saída informar o CT-e assinado
Protocolo string saída retorna o número do protocolo de autorização de uso
retCancCTe string saída retorna o XML da homologação de cancelamento se o CT-e estiver cancelado
resultado inteiro saída retorna o código do resultado da chamada do WS
nomeCertificado string entrada informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
msgResultado string saída retorna a literal do resultado da chamada do WS
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

Retorno:

O resultado da chamada do CriaProcCTe é a mensagem XML composta pelo CT-e e respectivo protocolo de autorização de uso do CT-e gerado de acordo com o leiaute de distribuição do CT-e previsto no Manual de Integração do Contribuinte

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

código Mensagem
6201 cteProc do CT-e (situação Autorizado) montado com sucesso
6202 Erro: Conteúdo do XML informado como CT-e no parâmetro de entrada (CTeAssinado) mal formado [Erro Windows]
6203 Erro: tag tpAmb inexistente no XML informado como CT-e no parâmetro de entrada(CTeAssinado) [Erro Windows]
6204 Erro: tag UF do emitente inexistente no XML informado como CT-e no parâmetro de entrada(CTeAssinado) [Erro Windows]
6205 Erro: tag infCte não localizada no XML informado como CT-e no parâmetro de entrada(CTeAssinado)
6206 Erro: tag infCte não localizada no arquivo de entrada [Erro Windows]
6207 Erro: tag cStat não localizada na mensagem de retorno [Erro Windows]
6208 Erro: tag xMotivo não localizada na mensagem de retorno [Erro Windows]
6209 Erro: tag tpAmb não localizada na mensagem de retorno [Erro Windows]
6210 Erro: tag verAplic não localizada na mensagem de retorno [Erro Windows]
6211 Erro: tag dhRecbto não localizada na mensagem de retorno [Erro Windows]
6212 Erro: tag nProt não localizada na mensagem de retorno [Erro Windows]
6213 Erro: tag digVal não localizada na mensagem de retorno [Erro Windows]
6214 Erro: do CT-e informado [DigestValue] diverge do do protocolo [DigVal], não é possível montar o procCTe, pois o CT-e informado tem conteúdo diferente do CT-e que foi autorizado!
6215 Erro inesperado ao tratar o XML do retorno do WS[Erro Windows]
6216 cteProc da CT-e (situação Cancelado) montado com sucesso
6217 cteProc da CT-e (situação Denegado) montado com sucesso
6218 Erro: O parâmetro siglaWS deve ser informado
6219 Erro: Falha no acesso ao protCTe do XML da resposta do WS [Erro Windows]

Histórico de atualização:

XML:

Exemplo de XML de Proc criado pela funcionalidade

 
<?xml version="1.0" encoding="UTF-8"?>
<cteProc xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04">
    <CTe xmlns="http://www.portalfiscal.inf.br/cte">
        <infCte versao="1.04" Id="CTe35110899999999000191570010000001011000001018">
            <ide>
                <cUF>35</cUF>
                <cCT>00000101</cCT>
                <CFOP>5353</CFOP>
                <natOp>PRESTACAO DE SERVICO</natOp>
                <forPag>0</forPag>
                <mod>57</mod>
                <serie>1</serie>
                <nCT>101</nCT>
                <dhEmi>2011-08-20T18:24:19</dhEmi>
                <tpImp>1</tpImp>
                <tpEmis>1</tpEmis>
                <cDV>8</cDV>
                <tpAmb>2</tpAmb>
                <tpCTe>0</tpCTe>
                <procEmi>0</procEmi>
                <verProc>4.0</verProc>
                <cMunEnv>3503208</cMunEnv>
                <xMunEnv>ARARAQUARA</xMunEnv>
                <UFEnv>SP</UFEnv>
                <modal>01</modal>
                <tpServ>0</tpServ>
                <cMunIni>3505708</cMunIni>
                <xMunIni>BARUERI</xMunIni>
                <UFIni>SP</UFIni>
                <cMunFim>3503208</cMunFim>
                <xMunFim>ARARAQUARA</xMunFim>
                <UFFim>SP</UFFim>
                <retira>0</retira>
                <toma03>
                    <toma>0</toma>
                </toma03>
            </ide>
            <compl>
                <xEmi>ITALO</xEmi>
                <Entrega>
                    <semData>
                        <tpPer>0</tpPer>
                    </semData>
                    <semHora>
                        <tpHor>0</tpHor>
                    </semHora>
                </Entrega>
                <origCalc>BARUERI</origCalc>
                <destCalc>ARARAQUARA</destCalc>
                <xObs>;Documento emitido por ME ou EPP optante pelo Simples Nacional;Nao gera direito a credito fiscal de ICMS</xObs>
            </compl>
            <emit>
                <CNPJ>99999999000191</CNPJ>
                <IE>181288960178</IE>
                <xNome>TESTANDO TESTANDO LTDA-ME</xNome>
                <xFant>GMP</xFant>
                <enderEmit>
                    <xLgr>RUA EXPEDICIONARIO</xLgr>
                    <nro>123</nro>
                    <xBairro>VILA YAMADA</xBairro>
                    <cMun>3503208</cMun>
                    <xMun>ARARAQUARA</xMun>
                    <CEP>14802150</CEP>
                    <UF>SP</UF>
                    <fone>1234567891</fone>
                </enderEmit>
            </emit>
            <rem>
                <CNPJ>61365284015136</CNPJ>
                <IE>206274823111</IE>
                <xNome>TESTANDO TESTANDO LTDA-ME</xNome>
                <xFant>TESTANDO TESTANDO LTDA-ME</xFant>
                <fone>1234567891</fone>
                <enderReme>
                    <xLgr>AV. PROJETADA</xLgr>
                    <nro>751</nro>
                    <xBairro>NOVA ALVORADA</xBairro>
                    <cMun>3505708</cMun>
                    <xMun>BARUERI</xMun>
                    <CEP>06463400</CEP>
                    <UF>SP</UF>
                    <cPais>1058</cPais>
                    <xPais>BRASIL</xPais>
                </enderReme>
                <infNFe>
                    <chave>35110561375284015136550140028647541589947329</chave>
                </infNFe>
            </rem>
            <dest>
                <CPF>06760213874</CPF>
                <IE>ISENTO</IE>
                <xNome>TESTANDO TESTANDO LTDA-ME</xNome>
                <fone>1633312039</fone>
                <enderDest>
                    <xLgr>AL. FERRAZ</xLgr>
                    <nro>106</nro>
                    <xBairro>FONTE</xBairro>
                    <cMun>3503208</cMun>
                    <xMun>ARARAQUARA</xMun>
                    <CEP>14802428</CEP>
                    <UF>SP</UF>
                    <cPais>1058</cPais>
                    <xPais>BRASIL</xPais>
                </enderDest>
            </dest>
            <vPrest>
                <vTPrest>2.00</vTPrest>
                <vRec>2.00</vRec>
                <Comp>
                    <xNome>FRETE PESO</xNome>
                    <vComp>2.00</vComp>
                </Comp>
            </vPrest>
            <imp>
                <ICMS>
                    <ICMS45>
                        <CST>41</CST>
                    </ICMS45>
                </ICMS>
            </imp>
            <infCTeNorm>
                <infCarga>
                    <vCarga>88.30</vCarga>
                    <proPred>CAIXA</proPred>
                    <xOutCat>DVD</xOutCat>
                    <infQ>
                        <cUnid>01</cUnid>
                        <tpMed>Kg</tpMed>
                        <qCarga>2.0000</qCarga>
                    </infQ>
                    <infQ>
                        <cUnid>03</cUnid>
                        <tpMed>CAIXA</tpMed>
                        <qCarga>1.0000</qCarga>
                    </infQ>
                </infCarga>
                <infModal versaoModal="1.04">
                    <rodo>
                        <RNTRC>06013631</RNTRC>
                        <dPrev>2011-08-14</dPrev>
                        <lota>0</lota>
                    </rodo>
                </infModal>
            </infCTeNorm>
        </infCte>
        <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="#CTe35110899999999000191570010000001011000001018">
                    <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>cGkh9p2OT/dDA3jTw/4DuLfzdCd=</DigestValue>
                </Reference>
            </SignedInfo>
            <SignatureValue>jfGyueaAABym1GmPMn6IGKRj99fMKwu39BtaxtUruL6ssEcaKQfo8t3qbpB9rnM8sh3iaTaf0DBP5bMjotL/2wsUXtot7vWZi+hzJIMX0Gq0d179xVK85Ey1ohkvEYt3NYSO7GygpMqTJdKvKG1uKuvlnERSjlI5aEd/9V0yZ00=</SignatureValue>
            <KeyInfo>
                <X509Data>
                    <X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv0XRoWy4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCQlIxEzARBgNVBAoMCklDUC1CcmFzaWwxIDAeBgNVBAsMF0NhaXhhIEVjb25vbWljYSBGZWRlcmFsMRkwFwYDVQQDDBBBQyBDQUlYQSBQSi0xIHYxMB4XDTExMTExMTA2MDg0NloXDTEyMTExMDA2MDg0NlowgY4xCzAJBgNVBAYTAkJSMRMwEQYDVQQKDApJQ1AtQnJhc2lsMSAwHgYDVQQLDBdDYWl4YSBFY29ub21pY2EgRmVkZXJhbDEZMBcGA1UECwwQQUMgQ0FJWEEgUEotMSBWMTEtMCsGA1UEAwwkTSBSIE0gS0FUTyBBU0FLVVJBIC0gRVBQOjY5NjIxMTg3OTE1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0751AtgqX3lAPZpQTIQWWSpXuoEN+JYiJrA99Toz2oLfRPjPPINj8J7IFHQ0sT3KzhNIykVxYAL22tpX9dvnUMs1mm0C/O+ImEzGr7xqSFVd7sp9qsdrc/JWEUaRVqKUwZSd38HWBEAwPNFBa3/UN1EhXgjev+pH4oKsu1msthwIDAQABo4ICxjCCAsIwDgYDVR0PAQH/BAQDAgXgMCkGA1UdJQQiMCAGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAjAdBgNVHQ4EFgQU22ocgo1bv7EO0N4T6wMl9l+cCV0wHwYDVR0jBBgwFoAUF8RVhQ+bjMcBI4CdEbNH3LOT1qswgcQGA1UdEQSBvDCBuYEWbXJlZ2luYS5rYXRvQGdtYWlsLmNvbaAXBgVgTAEDB6AOBAwwMDAwMDAwMDAwMDCgPQYFYEwBAwSgNAQyMTQwOTE5NzI2OTYyMTE4NzkxNTE2ODY1MDA4MjEwMDAwMDAwMDAwMDAwMDAwU1NQU1CgGQYFYEwBAwOgEAQOMTAxNDI3ODUwMDAxOTCgLAYFYEwBAwKgIwQhTUFSQ0lBIFJFR0lOQSBNSVlVS0kgS0FUTyBBU0FLVVJBMGYGA1UdIARfMF0wWwYGYEwBAgEJMFEwTwYIKwYBBQUHAgEWQ2h0dHA6Ly9jZXJ0aWZpY2Fkb2RpZ2l0YWwuY2FpeGEuZ292LmJyL2RvY3VtZW50b3MvZHBjYWMtY2FpeGFwai5wZGYwgbwGA1UdHwSBtDCBsTAuoCygKoYoaHR0cDovL2xjci5jYWl4YS5nb3YuYnIvYWNjYWl4YXBqMXYxLmNybDAvoC2gK4YpaHR0cDovL2xjcjIuY2FpeGEuZ292LmJyL2FjY2FpeGFwajF2MS5jcmwwTqBMoEqGSGh0dHA6Ly9yZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9DQUlYQS9BQ0NBSVhBUEovYWNjYWl4YXBqMXYxLmNybDBXBggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKGO2h0dHA6Ly9jZXJ0aWZpY2Fkb2RpZ2l0YWwuY2FpeGEuZ292LmJyL2FpYS9hY2NhaXhhcGoxdjEucDdiMA0GCSqGSIb3DQEBBQUAA4IBAQB7lxQ/YPm3Tl4CqTVuPmo/ipWlM7mqMUIh4if2shlXXlZwzotNLdacsr1nh9wFLETVSn6T4gllo42aSgOgaYmzhzeITKsEw4NdMq4RkCKytuxbIqAPmTD8gZEV144AK6aB8sThv8LpZ+D002LTRG9t013C3DbiGeYD3Cdu1gxRDHOW1lWula+9e5tPZ8Bbh/BDR5cSFUWBzt3ellQ4BJY+xh2a2iteM9+KAHsZChIPrHPRV/LG5HSlpxlAtkGSxZDK5EIEYJ7SVpWovV1oUnz8PvKO2nQQKflTLVSE9C+NbfjXfD6f5GtED6q4AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate>
                </X509Data>
            </KeyInfo>
        </Signature>
    </CTe>
    <protCTe versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte">
        <infProt>
            <tpAmb>2</tpAmb>
            <verAplic>SP_PL_CTe_104</verAplic>
            <chCTe>35110899999999000191570010000001011000001018</chCTe>
            <dhRecbto>2011-08-20T18:24:22</dhRecbto>
            <nProt>135110002038337</nProt>
            <digVal>nBkh9p2OT/dDA3jTw/4DuLfzdZM=</digVal>
            <cStat>100</cStat>
            <xMotivo>Autorizado o uso do CT-e</xMotivo>
        </infProt>
    </protCTe>
</cteProc>

Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e sendo desnecessária, pois os browser exibem formatado.

Exemplos de uso:

Visual Basic 6.0

'
' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL
'
Dim siglaWS As String       ' informar a sigla do WS de envio, informar a sigla RS, caso a UF seja usuária da SEFAZ Virtual (AM, BA, CE, ES, GO, MA, PR, RJ, RN, RO, SC, SE, e TO); caso a UF tenha aplicação própria (MG, MS, MT, RS e SP), informar a sigla da própria UF.
Dim msgResultado As String  ' retorna a literal do resultado da chamada do WS
Dim CTeAssinado  As String  ' informar o CT-e assinado
Dim retCancCTe As String    ' retorna o XML da homologação de cancelamento se o CT-e estiver cancelado
Dim nomeCertificado As String   ' informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
Dim protocolo As String     ' retorna o número do protocolo de autorização de uso
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 resultado As Long       ' retorna o código do resultado da chamada do WS
Dim procCTe As String           ' retorna o procCTe gerado pela funcionalidade
Dim nomeArquivo As String   ' nome do arquivo assinado para gerar o proc

'
nomeArquivo = "c:\exemplo.xml"
'
' importante: verificar a existência do arquivo solicitado na pasta do VB e indicar o caminho correto para ele
'   Carrega o conteúdo do nome do arquivo em CTeAssinado
'
Open nomeArquivo For Input As #1
CTeAssinado = Input$(LOF(1), 1)
Close #1
'

nomeCertificado = "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
siglaWS = "RS"          ' informar a sigla WS
retCancCTe = ""         ' retorna o XML da homologação de cancelamento se o CT-e estiver cancelado
proxy = ""                      ' preencher estes campos somente em caso de existência de proxy na rede
usuario = ""
senha = ""
protocolo = ""                  ' número do protocolo + dd/mm/aa HH:MM:SS
msgResultado = ""               ' literal da mensagem de resultado da chamada da função
procCTe = ""                    ' retorna o procCTe gerado pela funcionalidade
resultado = 0           ' retorna o código do resultado da chamada do WS
'
' 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    ' ponteiro ampulheta
      '
      '
      procCTe = objCTeUtil.CriaProcCTe(siglaWS, CTeAssinado, protocolo, retCancCTe, resultado, nomeCertificado, msgResultado, proxy, usuario, senha)
      '
      '
      Screen.MousePointer = vbDefault      ' ponteiro normal
      '
      '  tratar retorno
      '
      If (resultado = 6201 Or resultado = 6216 Or resultado = 6217) Then
 
'
'  grava Proc CT-e
'
   nomeArquivo = "procCTe.xml"
   Open nomeArquivo For Output As #1
   Print #1, procCTe
   Close #1
 
         MsgBox msgResultado + Chr(13) + Chr(13) + procCTe, vbInformation, "Informação"
 
      Else
 
         MsgBox "Processo de montagem procCTe falhou..." & vbCrLf & msgResultado, vbExclamation, "Atenção"
 
      End If
 
 
'
'  liberar DLL
'
Set objCTeUtil = Nothing
11.5.1. CriaProcCTe
11.5. CriaProc
« Anterior
11.5. CriaProc
Próximo »
11.5.2. CriaProcCancCTe