- 13. Gerar XML do CT-e Simplificado novo
13.4. Tomador de Serviço do CT-e - 13.3. Emitente do CT-e
« Anterior - 13.5. Informações da Carga
Próximo »
13.4. Tomador de Serviço do CT-e
Funcionalidade para gerar o XML do grupo do Tomador de Serviço do CT-e
Assinatura
string tomadorCTeSimp(int toma, int idIEToma, string CNPJ, string CPF, string IE_Opc, string xNome, string ISUF_Opc, string fone_Opc, string xLgr, string nro, string xCpl_Opc, string xBairro, string cMun, string xMun, string CEP_Opc, string UF, string cPais_Opc, string xPais_Opc, string email_Opc)
Descrição:
Funcionalidade para gerar o XML do grupo do Tomador de Serviço CT-e.
O PAPEL DO TOMADOR
O Tomador do serviço é aquele que contrata a prestação de serviços de transporte do transportador e deve receber o XML do CT-e ou o DACTE.
Parâmetros:
nome | tipo | tam. | obrig. | descrição |
---|---|---|---|---|
toma | int | 1 | sim | Tomador de Serviço, informar: 0-Remetente, 1-Expedidor, 2-Recebedor, 3-Destinatário ou 4-Terceiro. |
idIEToma | string | 1 | sim | Indicador do papel do tomador na prestação do serviço: 1 – Contribuinte ICMS; 2 – Contribuinte isento de inscrição; 9 – Não Contribuinte |
CNPJ | string | 14 | sim | informar o CNPJ do tomador, sem formatação ou máscara. Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros. Informar os zeros não significativos. |
CPF | string | 11 | sim | informar o CPF do tomador, sem formatação ou máscara. |
IE_Opc | string | 0-14 | sim | informar a IE do tomador, sem formatação ou máscara. Informar a IE do tomador ou ISENTO se tomador é contribuinte do ICMS isento de inscrição no cadastro de contribuintes do ICMS. Caso o tomador não seja contribuinte do ICMS não informar o conteúdo. |
xNome | string | 2-60 | sim | informar a razão social do tomador. |
ISUF_Opc | string | 8-9 | não | informar a Inscrição SUFRAMA (Obrigatório nas operações com as áreas com benefícios de incentivos fiscais sob controle da SUFRAMA) |
fone_Opc | string | 6-14 | sim | informar o telefone do tomador. |
xLgr | string | 2-60 | sim | informar o logradouro do tomador. |
nro | string | 2-60 | sim | informar o número do endereço do tomador, campo obrigatório. Informar S/N ou . (ponto) ou - (traço) para evitar falha de schema XML quando não houver número. |
xCpl_Opc | string | 1-60 | não | informar o complemento do endereço do tomador, pode ser omitido. |
xBairro | string | 2-60 | sim | informar o bairro do endereço do tomador. |
cMun | string | 7 | sim | informar o código do município na codificação do IBGE com 7 dígitos. |
xMun | string | 2-60 | sim | informar o nome do município. |
CEP_Opc | string | 8 | não | informar o CEP, pode ser omitido. |
UF | string | 2 | sim | informar a sigla da UF. |
cPais_Opc | string | 4 | não | informar o código do pais na codificação do BACEN, se informado deve ser 1058. |
xPais_Opc | string | 6 | não | informar o nome do país, se informado deve ser Brasil ou BRASIL. |
email_Opc | string | 1-60 | não | informar o email do tomador. |
string tomadorCTeSimp(int toma, int idIEToma, string CNPJ, string CPF, string IE_Opc, string xNome, string ISUF_Opc, string fone_Opc, string xLgr, string nro, string xCpl_Opc, string xBairro, string cMun, string xMun, string CEP_Opc, string UF, string cPais_Opc, string xPais_Opc, string email_Opc);
Diagrama:
Retorno:
Um string com o grupo XML do tomador
Histórico de atualização:
- set/2024 - versão inicial.
XML:
Exemplo de XML para tomador = 0-Remetente
<toma> <toma>0</toma> <idIEToma>1</idIEToma> <CNPJ>99999999000191</CNPJ> <IE>123456789011</IE> <xNome>DIAS e DIAS TENTANDO S/A</xNome> <fone>1133221234</fone> <enderToma> <xLgr>AV PRINCIPAL</xLgr> <nro>S/N</nro> <xCpl>10 andar</xCpl> <xBairro>CENTRO</xBairro> <cMun>3550308</cMun> <xMun>SAO PAULO</xMun> <CEP>01300000</CEP> <UF>SP</UF> <cPais>1058</cPais> <xPais>Brasil</xPais> </enderToma> <email>fulano@dominio.com.br</email> </toma>
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 ser desnecessária, pois os browser exibem formatado.
Exemplos de uso:
Visual Basic 6.0
' '====== Dados do Dim identificação do Tomador de Serviço========== ' Dim toma As String Dim toma_toma As Long Dim toma_indIEToma As Long Dim toma_CNPJ As String Dim toma_CPF As String Dim toma_IE_Opc As String Dim toma_xNome As String Dim toma_ISUF_Opc As String Dim toma_fone_Opc As String Dim toma_xLgr As String Dim toma_nro As String Dim toma_xCpl_Opc As String Dim toma_xBairro As String Dim toma_cMun As String Dim toma_xMun As String Dim toma_CEP_Opc As String Dim toma_UF As String Dim toma_cPais_Opc As String Dim toma_xPais_Opc As String Dim toma_email_Opc As String ' ' '====== instancia DLL================== ' ' ' 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") ' ' criação dos grupos ' '===================grupo de identificação do Tomador de Serviço======================= ' '' toma_toma = 0 ' Tomador do Serviço (0 - Remetente; 1 - Expedidor; 2 - Recebedor; 3- Destinatário, 4 - Terceiro) toma_indIEToma = 1 ' Indicador do papel do tomador na prestação do serviço: 1 – Contribuinte ICMS; 2 – Contribuinte isento de inscrição; 9 – Não Contribuinte toma_CNPJ = "99999999000191" ' CNPJ do tomador sem máscara de formatação toma_CPF = "" ' CPF do tomador sem máscara de formatação toma_IE_Opc = "123456789011" ' Inscrição Estadual do tomador sem máscara toma_xNome = "DIAS e DIAS TENTANDO S/A" ' Razão social do tomador, evitar caracteres acentuados e & toma_ISUF_Opc = "" ' Nome fantasia toma_fone_Opc = "1133221234" ' número do telefone sem máscara toma_xLgr = "AV PRINCIPAL" ' logradouro toma_nro = "S/N" ' número, informar S/N quando inexistente para erro de Schema XML toma_xCpl_Opc = "10 andar" ' complemento do endereço, o conteúdo pode ser omitido toma_xBairro = "CENTRO" ' bairro toma_cMun = "3550308" ' código do município, deve ser compatível com a UF toma_xMun = "SAO PAULO" ' nome do município toma_CEP_Opc = "01300000" ' CEP - sem máscara toma_UF = "SP" ' sigla da UF toma_cPais_Opc = "1058" ' código do pais - deve fixo em 1058 - Brasil toma_xPais_Opc = "Brasil" ' nome do pais (Brasil ou BRASIL) toma_email_Opc = "fulano@dominio.com.br" ' email do tomador ' toma = objCTeUtil.tomadorCTeSimp(toma_toma, _ toma_indIEToma, _ toma_CNPJ, _ toma_CPF, _ toma_IE_Opc, _ toma_xNome, _ toma_ISUF_Opc, _ toma_fone_Opc, _ toma_xLgr, _ toma_nro, _ toma_xCpl_Opc, _ toma_xBairro, _ toma_cMun, _ toma_xMun, _ toma_CEP_Opc, _ toma_UF, _ toma_cPais_Opc, _ toma_xPais_Opc, _ toma_email_Opc) MsgBox "Grupo do Tomador de Serviço " + Chr(13) + toma, vbInformation, "Resultado"
- 13.4. Tomador de Serviço do CT-e
13. Gerar XML do CT-e Simplificado novo - « Anterior
13.3. Emitente do CT-e - Próximo »
13.5. Informações da Carga