Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Actualización de las direcciones URL de los esquemas XML y XSD para actualizarlos a Carta Porte 3.1:

    Realizar los ajustes que se marcan en color Naranja en el archivo de Estructura de XML para Documentos de Salida (FATSMEX.INI), que corresponde a las url's del Complemento de Carta Porte: 

NOTA: El Los ajustes al archivo FATSMEX.INI solo aplican, si no se tiene activa la funcionalidad por medio de la rutina FATSMEX.PRW, cuando el parámetro MV_FEXML no existe o está configurado con un valor diferente de .T.

  1. Informações
    titleFASTMEX.INI

    //FATSMEX.INI V4.0 --- Modelo 2022

    [XXX POSICIONAMENTOS]
    (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SA2->(MSSeek(xFilial("SA2")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    (PRE) (SE4->(MSSeek(xFilial("SE4")+SF2->F2_COND)) , .T.)
    (PRE) (AI0->(MSSeek(xFilial("AI0")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)

    [XXX INICIALIZACION]
    (PRE) SD2->(DbSetOrder(1))
    (PRE) SB1->(DbSetOrder(1))
    (PRE) SYA->(DbSetOrder(1))
    (PRE) SC6->(DbSetOrder(1))
    (PRE) SE4->(DbSetOrder(1)) 
    (PRE) CTO->(DbSetOrder(1)) 
    (PRE) SAH->(DbSetOrder(1)) 
    (PRE) _aTotal[009] := SuperGetMV("MV_CFDICPG", .F., "")
    (PRE) _aTotal[010] := FindFunction("zh_FechaHoraUTC") .And. !Empty(_aTotal[009])
    (PRE) _aTotal[011] := FindFunction("LxFunaCaPo")
    (PRE) _aTotal[094] := ""
    (PRE) _aTotal[095] := ""
    (PRE) _aTotal[033] := ""
    (PRE) _aTotal[034] := ""
    (PRE) _aTotal[035] := ""
    (PRE) _aTotal[036] := 0
    (PRE) _aTotal[037] := 0
    (PRE) _aTotal[038] := 0
    (PRE) _aTotal[039] := SuperGetMV("MV_CFDIEXP",.F.,.F.)
    (PRE) _aTotal[075] := Alltrim(SM0->M0_NOMECOM)
    (PRE) _aTotal[076] := Alltrim(SF2->F2_TIPODOC) == "21" .And. ((!(Alltrim(SF2->F2_TIPOPE) $ "3|4")) .Or. SF2->(ColumnPos("F2_TPCOMPL")) > 0 .And. AllTrim(SF2->F2_TPCOMPL)=="S")
    (PRE) IIf(_aTotal[010],_aTotal[096] := zh_FechaHoraUTC(Alltrim(_aTotal[009]),Alltrim(SM0->M0_CEPENT),SF2->F2_EMISSAO,SF2->F2_HORA),"")
    (PRE) IIf(!_aTotal[010],_aTotal[096] := DtoS(SF2->F2_EMISSAO),"")
    (PRE) IIf(!_aTotal[010],_aTotal[096] := Left(_aTotal[096],4) + "-" + Substr(_aTotal[096],5,2)+ "-" + Right(_aTotal[096],2),"")
    (PRE) IIf(!_aTotal[010],_aTotal[096] += "T" + SF2->F2_HORA,"")
    (PRE) _aTotal[097] := {"SD2",""}
    (PRE) _aTotal[098] := "|"
    (PRE) _aTotal[099] := "||"
    (PRE) _aTotal[100] := ""
    (PRE) _aTotal[101] := "OPERACION DE CONFORMIDAD CON EL ART. 29 FRACCION I DE LIVA Y LO ESTIPULADO EN LAS RGCE 5.2.6. FRACCION I, 5.2.7 Y 4.3.21"
    (PRE) _aTotal[102] := "OPERACION DE CONFORMIDAD CON EL ART. 29 FRACCION I DE LIVA Y LO ESTIPULADO EN LAS RGCE 5.2.6. FRACCION II, 5.2.7 Y 4.3.21"
    (PRE) _aTotal[103] := fSumBC(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA)
    (PRE) _aTotal[104] := IIf(SF2->(ColumnPos("F2_TPCOMPL")) > 0 .And. AllTrim(SF2->F2_TPCOMPL)=="S",.T.,.F.)
    (PRE) _aTotal[105] := ""
    (PRE) _aTotal[106] := IIf(Alltrim(SF2->F2_TIPODOC) == "21",0,2)
    (PRE) _aTotal[107] := IIf(SF2->(ColumnPos("F2_TPDOC")) > 0,ALLTRIM(SF2->F2_TPDOC),ALLTRIM(AI0->AI0_MPAGO))
    (PRE) _aTotal[108] := IIf(_aTotal[076],AllTrim(SM0->M0_CGC),AllTrim(SA1->A1_CGC))
    (PRE) _aTotal[109] := IIf(FindFunction("FxDelExp"),FxDelExp(IIf(_aTotal[076],_aTotal[075],Alltrim(SA1->A1_NOME))),IIf(_aTotal[076],_aTotal[075],Alltrim(SA1->A1_NOME)))
    (PRE) _aTotal[110] := IIf(_aTotal[076],AllTrim(SM0->M0_CEPENT),Alltrim(SA1->A1_CEP))
    (PRE) _aTotal[111] := IIf(_aTotal[076],Alltrim(SM0->M0_DSCCNA),Alltrim(AI0->AI0_REGFIS))
    (PRE) _aTotal[112] := FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE)
    (PRE) _aTotal[113] := IIf(!_aTotal[039] .Or. (_aTotal[039] .And. Empty(SF2->F2_TIPOPE)),"01",IIf(Alltrim(SF2->F2_TIPOPE)== "4","03",IIf(SF2->F2_CVEPED !="A1" .Or. Alltrim(SF2->F2_TIPOPE)== "3","04","02")))
    (PRE) _aTotal[114] := IIf(_aTotal[113] == "03" .Or.(_aTotal[113] == "04" .And.( Empty(SF2->F2_CERORI) .Or. Empty(SF2->F2_INCOTER) .Or. Empty(SF2->F2_SUBDIV) .Or. Empty(SF2->F2_TCUSD) .Or. Empty(SF2->F2_TOTUSD))) ,.F.,.T.)
    (PRE) _aTotal[115] := {}
    (PRE) lCCCE        := .F.
    (PRE) cNodoCCE     := ""
    (PREREG) FsQuery(_aTotal[097],1,"D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'","SD2->D2_DOC=SF2->F2_DOC .AND. SD2->D2_SERIE=SF2->F2_SERIE .AND. SD2->D2_CLIENTE=SF2->F2_CLIENTE .AND. SD2->D2_LOJA=SF2->F2_LOJA","D2_ITEM") .And. .T.

    (PRE) fImptosD(SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),"SD2", SF2->F2_GLOBAL == "1",@(_aTotal[036]),_aTotal[104],@_aTotal[037], @_aTotal[038], ,@_aTotal[115]) 

    [SD2 CADENAORIGINAL_SELLO]
    (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SA2->(MSSeek(xFilial("SA2")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.)
    (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2))) , .T.)
    (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
    (PRE) If(AllTrim(SF2->F2_ESPECIE)<>"NDI",CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2))) , .T.)
    //////////////////////////////////////////////CADENA ORIGINAL//////////////////////////////////////////////
    (PRE) cCadOrig   := _aTotal[099]
    (PRE) lCCCE      := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF2->F2_TIPOPE)  .And. _aTotal[114], .T., .F.)
    (PRE) cCadOriCCE := ""

    //Cadena Original | Complemento de Comercio Exterior (Mercancias)
    (PREREG) IIf(lCCCE .And. !Empty(SD2->D2_ITEM + SD2->D2_COD), (cCadOriCCE += Alltrim(SD2->D2_ITEM + SD2->D2_COD) + _aTotal[098],.T.),("",,.T.))
    (PREREG) IIf(lCCCE .And. !Empty(SD2->D2_FRACCA), (cCadOriCCE += Alltrim(SD2->D2_FRACCA) + Alltrim(SD2->D2_NICO) + _aTotal[098],.T.), ("",,.T.))
    (PREREG) IIf(lCCCE .And. !Empty(Str(SD2->D2_CANADU)), (cCadOriCCE += Alltrim(Str(SD2->D2_CANADU)) + _aTotal[098],.T.), ("",,.T.))
    (PREREG) IIf(lCCCE .And. !Empty(SD2->D2_FRACCA), (cCadOriCCE += AllTrim(ObtColSAT("S014",AllTrim(SD2->D2_FRACCA),1,8,9,2)) + _aTotal[098],.T.), ("",,.T.))
    (PREREG) IIf(lCCCE .And. !Empty(Str(SD2->D2_VALADU)), (cCadOriCCE += Alltrim(Str(SD2->D2_VALADU,14,2)) + _aTotal[098],.T.), ("",,.T.))
    (PREREG) IIf(lCCCE .And. !Empty(Str(SD2->D2_USDADU)), (cCadOriCCE += Alltrim(Str(SD2->D2_USDADU,14,2)) + _aTotal[098],.T.), ("",,.T.))
    (PREREG) IIf(lCCCE .And. SA1->A1_CONTRBE=="1" .And. Alltrim(SF2->F2_ESPECIE) == "NF", (cCadOriCCE += '1.0' +_aTotal[098],.T.), ("",,.T.))
    (PREREG) IIf(lCCCE .And. SA1->A1_CONTRBE=="1" .And. SF2->F2_CONUNI=="1", (cCadOriCCE += 'IMMEX:' + ALLTRIM(SA1->A1_PFISICA) + ' ' + _aTotal[101] + _aTotal[098],.T.), IIf (lCCCE .And. SA1->A1_CONTRBE=="1" .And. SF2->F2_CONUNI=="2", (cCadOriCCE += 'IMMEX:' + ALLTRIM(SA1->A1_PFISICA) + ' ' + _aTotal[102] + _aTotal[098],.T.), ("",,.T.)))

    ///////////DATOS DE LA FACTURA/////////////////
    (PRE) (SE4->(MSSeek(xFilial("SE4")+SF2->F2_COND)) , .T.)
    (PRE) (AI0->(MSSeek(xFilial("AI0")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    //Version
    (PRE) cCadOrig += "4.0" + _aTotal[098]
    //Serie
    (PRE) cCadOrig += Alltrim(SF2->F2_SERIE) + _aTotal[098]
    //Folio
    (PRE) cCadOrig += Alltrim(SF2->F2_DOC) + _aTotal[098]
    //Fecha
    (PRE) cCadOrig += Alltrim(_aTotal[096]) + _aTotal[098]
    //FormaPago
    (PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", IIf(SF2->F2_GLOBAL == '1',IIf(!Empty(_aTotal[112]),_aTotal[112],_aTotal[107]),IIf(Empty(_aTotal[107]).Or. Alltrim(SE4->E4_MPAGSAT) == "PPD","99",_aTotal[107])) + _aTotal[098] )
    //NoCertificado
    (PRE) cCadOrig += Alltrim(SF2->F2_CERTFOL) + _aTotal[098]
    //CondicionesDePago
    (PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", CFDCarEsp(Alltrim(SE4->E4_DESCRI)) + _aTotal[098] ) 
    //Subtotal
    (PRE) cCadOrig += Alltrim(STR(IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, (SF2->(F2_VALMERC+F2_FRETE+F2_SEGURO+F2_DESPESA) + _aTotal[103] + SF2->F2_DESCONT) - _aTotal[036] - _aTotal[037]),14,_aTotal[106])) + _aTotal[098]
    //Descuento
    (PRE) cCadOrig += IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", "", IIf( SF2->F2_DESCONT == 0, "", Alltrim(STR(SF2->F2_DESCONT,14,2)) + _aTotal[098]) )
    //Moneda
    (PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21","XXX",Alltrim(CTO->CTO_MOESAT)) + _aTotal[098]
    //TipoCambio
    (PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21","",IIf(Alltrim(CTO->CTO_MOESAT) <> "MXN", Alltrim(STR(SF2->F2_TXMOEDA,14,2)), "1") + _aTotal[098])
    //Total
    (PRE) cCadOrig += Alltrim(Str(IIf(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, iif(GetSx3Cache("F2_VALBRUT","X3_DECIMAL")<= 2,SF2->F2_VALBRUT + _aTotal[103]- _aTotal[037] - IIf(Len(_aTotal[115]) > 0,_aTotal[115][1],0),Round(SF2->F2_VALBRUT,2) + _aTotal[103] - _aTotal[037] - IIf(Len(_aTotal[115]) > 0,_aTotal[115][1],0))),14,_aTotal[106])) + _aTotal[098]
    //TipoDeComprobante
    (PRE) cCadOrig += IIf(Alltrim(SF2->F2_ESPECIE) == "NF",IIf(ALLTRIM(SF2->F2_TIPODOC) == "21", "T", "I" ), "E") + _aTotal[098]
    //Exportacion
    (PRE) cCadOrig += IIf(!Empty(_aTotal[113]),_aTotal[113],"01") + _aTotal[098]
    //MetodoPago
    (PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", Alltrim(SE4->E4_MPAGSAT) + _aTotal[098] )
    //LugarExpedicion
    (PRE) cCadOrig += CFDCarEsp(AllTrim(SM0->M0_CEPENT)) + _aTotal[098]
    //Periodicidad
    (PRE) cCadOrig += IIf(SF2->(ColumnPos("F2_IDCBAJA")) > 0 .And. SF2->F2_GLOBAL == "1", SF2->F2_IDCBAJA + _aTotal[098],"")
    //Meses
    (PRE) cCadOrig += IIf(SF2->(ColumnPos("F2_MODCONS")) > 0 .And. SF2->F2_GLOBAL == "1", SF2->F2_MODCONS + _aTotal[098],"")
    //Año
    (PRE) cCadOrig += IIf(SF2->(ColumnPos("F2_PTOEMIS")) > 0 .And. SF2->F2_GLOBAL == "1", SF2->F2_PTOEMIS + _aTotal[098],"")

    //////////////////////CFDI Relacionados//////////////////////////
    (PREREG)!Empty(SF2->F2_RELSAT).Or. !Empty(SF2->F2_SERMAN).Or. !Empty(SF2->F2_DOCMAN)
    (PRE) IIf(_aTotal[104] .And. Alltrim(SF2->F2_TIPODOC) == "21","",fGetFolRel("S",.T.))

    ///////////DATOS DEL EMISOR///////////////////////
    //Rfc
    (PRE) cCadOrig += CFDCarEsp(AllTrim(SM0->M0_CGC),.F.) + _aTotal[098]
    //Nombre
    (PRE) cCadOrig += CFDCarEsp(_aTotal[075],.F.) + _aTotal[098]
    //RegimenFiscal
    (PRE) cCadOrig += CFDCarEsp(Alltrim(SM0->M0_DSCCNA)) + _aTotal[098]

    //////////////////////DATOS DEL RECEPTOR//////////////////////////
    (PRE) AllTrim(SF2->F2_ESPECIE) <> "NDI"
    (PRE) SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA))
    (PRE) SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS))
    //Rfc
    (PRE) (cCadOrig += IIf(SF2->F2_GLOBAL == "1", "XAXX010101000", CFDCarEsp(_aTotal[108], .F.)) + _aTotal[098])
    //Nombre
    (PRE) (cCadOrig += IIF(SF2->F2_GLOBAL == "1", "PUBLICO EN GENERAL",CFDCarEsp(_aTotal[109],.F.)) + _aTotal[098], .T.)
    //DomicilioFiscalReceptor
    (PRE) (cCadOrig += CFDCarEsp(_aTotal[110],.F.) + _aTotal[098], .T.)
    //ResidenciaFiscal
    (PRE) IIf(lCCCE .And. !Empty(CFDCarEsp(Alltrim(SF2->F2_RESIDE))) .And. !_aTotal[076], cCadOrig += AllTrim(Posicione("SYA",1,xFilial("SYA")+SF2->F2_RESIDE,"YA_CCESAT")) + _aTotal[098], "")
    //NumRegIdTrib
    (PRE) IIf(lCCCE .And. !Empty(CFDCarEsp(Alltrim(SF2->F2_IDTRIB))) .And. !_aTotal[076], cCadOrig += CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB))) + _aTotal[098], "")
    //RegimenFiscalReceptor
    (PRE) (cCadOrig += IIf(AI0->(ColumnPos("AI0_REGFIS")) > 0,CFDCarEsp(_aTotal[111],.F.) + _aTotal[098],""), .T.)
    //UsoCFDI
    (PRE) (cCadOrig += Alltrim(SF2->F2_USOCFDI) + _aTotal[098], .T.)

    (PRE) (cCadOrig += fXMLFUN("CO",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.)
    (PRE) (cCadOrig += fXMLFUN("TI",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.)

    (POS) IIf(lCCCE, cCadOrig += "2.0" + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SF2->F2_TRASLA), cCadOrig += Alltrim(SF2->F2_TRASLA) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SF2->F2_CVEPED), cCadOrig += Alltrim(SF2->F2_CVEPED) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SF2->F2_CERORI), cCadOrig += Alltrim(SF2->F2_CERORI) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SF2->F2_NUMCER), cCadOrig += Alltrim(SF2->F2_NUMCER) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SF2->F2_EXPCONF), cCadOrig += Alltrim(SF2->F2_EXPCONF) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SF2->F2_INCOTER), cCadOrig += Alltrim(SF2->F2_INCOTER) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. SF2->(ColumnPos("F2_OBSCE")) > 0 .And. !Empty(SF2->F2_OBSCE), cCadOrig += CFDCarEsp(AllTrim(SF2->F2_OBSCE), .F.) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(Str(SF2->F2_TCUSD)), cCadOrig += Alltrim(Str(SF2->F2_TCUSD)) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(Str(SF2->F2_TOTUSD)), cCadOrig += Alltrim(Str(SF2->F2_TOTUSD,14,2)) + _aTotal[098], "")

    //Emisor
    (POS) IIf(lCCCE , cCadOrig += CFDCarEsp(AllTrim(SM0->M0_ENDCOB)) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SM0->M0_CEPENT), cCadOrig += CFDCarEsp(AllTrim(ObtColSAT("S015",AllTrim(SM0->M0_CODZOSE)+ALLTRIM(SM0->M0_CEPENT),1,9,1,4))) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(SM0->M0_CODMUN), cCadOrig += AllTrim(SM0->M0_CODMUN) + _aTotal[098], "")
    (POS) IIf(lCCCE , cCadOrig += CFDCarEsp(Alltrim(ObtColSAT("S004",AllTrim(SM0->M0_CEPENT),1,5,6,3))) + _aTotal[098], "")
    (POS) IIf(lCCCE , cCadOrig += "MEX" + _aTotal[098], "")
    (POS) IIf(lCCCE , cCadOrig += AllTrim(SM0->M0_CEPENT) + _aTotal[098], "")

    //Receptor Domicilio
    (POS) IIf(lCCCE .And. _aTotal[108] == "XEXX010101000", cCadOrig += CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB))) + _aTotal[098], "")
    (POS) IIf(lCCCE, cCadOrig += CFDCarEsp(AllTrim(SA1->A1_END)) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(AllTrim(SA1->A1_NR_END)), cCadOrig += AllTrim(SA1->A1_NR_END) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(AllTrim(SA1->A1_NROINT)), cCadOrig += AllTrim(SA1->A1_NROINT) + _aTotal[098], "")
    (POS) IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(SA1->A1_BAIRRO))), cCadOrig +=  CFDCarEsp(CFDCarEsp(AllTrim(SA1->A1_BAIRRO))) + _aTotal[098],"")
    (POS) IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(SA1->A1_MUN))), cCadOrig +=  CFDCarEsp(AllTrim(SA1->A1_MUN),.F.) + _aTotal[098],"")
    (POS) IIf(lCCCE, cCadOrig += CFDCarEsp(Alltrim(Posicione("SX5",1,xFilial("SX5")+"12"+SA1->A1_EST,"X5_DESCRI"))) + _aTotal[098],"")
    (POS) IIf(lCCCE, cCadOrig += AllTrim(Posicione("SYA",1,xFilial("SYA")+SA1->A1_PAIS,"YA_CCESAT")) + _aTotal[098], "")
    (POS) IIf(lCCCE, cCadOrig += AllTrim(SA1->A1_CEP) + _aTotal[098], "")

    //Destinatarios
    (POS) IIf(lCCCE .And. FindFunction("LxCEDest") .And. SF2->(ColumnPos("F2_ACOPLA")) > 0, cCadOrig += LxCEDest(SF2->F2_CLIENTE,SF2->F2_LOJA,SF2->F2_ACOPLA, .T.), "")

    (POS) cCadOrig += IIf(!Empty(cCadOriCCE), cCadOriCCE, "")

    //Carta Porte
    (POS) IIf(_aTotal[011],(cCadOrig += LxFunaCaPo(SF2->F2_FILIAL,SF2->F2_DOC,SF2->F2_SERIE,.T.,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.),"")

    (POS) (cCadOrig += fXMLFUN("IL",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.)

    (POS) cCadOrig += _aTotal[098]
    (POS) _aTotal[033] := cCadOrig

    //SELLO
    (POS) _aTotal[100] := EVPDigest(cCadOrig,5)
    (POS) _aTotal[100] := PrivSignRSA(&(SuperGetMv("MV_CFDDIRS",,""))+SuperGetMv("MV_CFDARQS",,""),_aTotal[100],6,"assinatura")
    (POS) _aTotal[100] := ENCODE64(_aTotal[100])
    [XXX CABECERA]
    Linha1     C 041 0 Chr(239) + Chr(187) + Chr(191) + '<?xml version="1.0" encoding="UTF-8"?>'
    [XXX FACTURA]
    //Certificado del SAT incluido para pruebas 
    (PRE) cCert := "MIIFuTCCA6GgAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0NDIwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDA"
    (PRE) cCert +="ZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQ"
    (PRE) cCert +="kBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYS"
    (PRE) cCert +="UNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTI1OTI2WhcNMjcwNTE4MTI1OTI2WjCB4DEqM"
    (PRE) cCert +="CgGA1UEAxMhWEVOT04gSU5EVVNUUklBTCBBUlRJQ0xFUyBTIERFIENWMSowKAYDVQQpEyFYRU5PTiBJTkRVU1RSSUFMIEFSVElDTEVTIFMgREUgQ1YxKjAoBgNVBAoTIVhFTk9OIElORFVTVFJJQUwgQVJUSUNMRVMgUyBERSBDVjElMCMGA1UEL"
    (PRE) cCert +="RMcWElBMTkwMTI4SjYxIC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAga5zxQ4mEBE4LobElO0+UyMDcAYbY0NJbg4x"
    (PRE) cCert +="Nbvwd66CUuTjyK2q11Y6nTzod1I1Nhv75cfZbJzdW/4EO/1bGLEt3zpTnP0yDVh9KL4/WJ0QW5kR4QVpxd84aBkJe7FltC5j+FUiDSCCLpSBlGvwZdFAwZhSZvHeFB1i1pDc3rA/PvqJwn35goEdIfhgfymg+31LuL1stU30pOSYtxltiEoM3QFePVurYhYq"
    (PRE) cCert +="sxNmZMGkRvVNrf/SnZsiaLUonM8CNLfhJIFxBraH3qeZ3iCaeFgL8zO5ux+8D1XAg2RpJLf7gFVC9fWOc9yaHKNsjkt1E2YauH9KpHxRAjt3zKniywIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAR73vD"
    (PRE) cCert +="0WGeWtnZyIFixfsNtvM3068JFvn4LJ0aF0ZZwTJhcff7OrUrpsrCjMzpIOB3Lfq5DLtaIPNeEkSa5W4yi1XJ930kcJ4kubi16jmTIMIZ7w9fy8p99gggTMbYiFf0Jzvfz+PQqqpsfnc3lMVV/GkHvs8QHEekZxpWHS22oE/S5wKq7b85oW649fC834EoZGIsb8"
    (PRE) cCert +="0Rna4ATuDxbt3dvzTR/b/eyricihMBqQ1MPCi9D81o1/3EPEOZNYFcC+yQK7M+/C7pivs0A972q8LYxG8DzmaKV8zLg+IR9ygdYdl/y/Snoeo0udV4yUlzug7i5IGZbfUh2jo3WEkEdIpty+lcVt2PtWOTdR70V0oCivE0MV0qw9GRzFAr6G71fra6r+sUKUwxQB"
    (PRE) cCert +="n07pi6hHmmZ7/DZ9QCaheqD9ttdhlQhpTTt0UPpWY9CDUJKpbWlkKYUzLPkdf/ppjiizbP1fqDcoIfZxl4RPKKtr0eIJWhEnuVirZ0kevHXEspI+igdMqk8MRndZSoohuIuLdjKjfXEGBALoqUzAB6avN2zzEy6ERRCGfR3cVhVUTcpd/iQffeGvw7tRZZOiWgwG3"
    (PRE) cCert +="Sjc/zgUppnFXfVFHCTmRz1nr0dOqKjOpMEMncRSfY2Mk+Xm8rmJ7toBu4iAyJUDCP6v24as1uxiE9DVDaFwlugdYL9c="
    (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114], .T., .F.)
    (PRE) cNodoCCE := ""

    (PRE) If(AllTrim(SF2->F2_ESPECIE)=="NDI",SYA->(MsSeek(xFilial("SYA")+SA2->A2_PAIS)) , .T.)
    (PRE) (SE4->(MSSeek(xFilial("SE4")+SF2->F2_COND)) , .T.)
    (PRE) (AI0->(MSSeek(xFilial("AI0")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    (PRE) _aTotal[001] := '<cfdi:Comprobante'
    (PRE) _aTotal[001] += ' xmlns:cfdi="http://www.sat.gob.mx/cfd/4"'
    (PRE) _aTotal[001] += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
    (PRE) _aTotal[001] += Iif(_aTotal[104],' xmlns:cartaporte31="http://www.sat.gob.mx/CartaPorte31"','')
    (PRE) _aTotal[001] += ' xmlns:implocal="http://www.sat.gob.mx/implocal"'
    (PRE) _aTotal[001] += IIf(lCCCE .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF", ' xmlns:leyendasFisc="http://www.sat.gob.mx/leyendasFiscales"' , "")
    (PRE) _aTotal[001] += ' xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd '
    (PRE) _aTotal[001] += IIF(lCCCE,'http://www.sat.gob.mx/ComercioExterior20 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior20/ComercioExterior20.xsd ','http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd')
    (PRE) _aTotal[001] += IIf(_aTotal[104],' http://www.sat.gob.mx/CartaPorte31 http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte31.xsd','')
    (PRE) _aTotal[001] += IIf(lCCCE .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF", ' http://www.sat.gob.mx/leyendasFiscales http://www.sat.gob.mx/sitio_internet/cfd/leyendasFiscales/leyendasFisc.xsd"' , '"')
    (PRE) _aTotal[001] += IIf(lCCCE, ' xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20" ' , "")
    (PRE) _aTotal[001] += ' Version="4.0"'
    (PRE) _aTotal[001] += ' Serie="' + Alltrim(SF2->F2_SERIE) + '"'
    (PRE) _aTotal[001] += ' Folio="' + Alltrim(SF2->F2_DOC) + '"'
    (PRE) _aTotal[001] += ' Fecha="' + Alltrim(_aTotal[096]) + '"'
    (PRE) _aTotal[001] += ' Sello="' + Alltrim(_aTotal[100]) + '"'
    (PRE) _aTotal[001] += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", ' FormaPago="' +  IIf(SF2->F2_GLOBAL == '1',IIf(!Empty(_aTotal[112]),_aTotal[112],_aTotal[107]),IIf(Empty(_aTotal[107]) .Or. Alltrim(SE4->E4_MPAGSAT) == "PPD","99",_aTotal[107])) + '"' )
    (PRE) _aTotal[001] += ' NoCertificado="' + Alltrim(SF2->F2_CERTFOL) + '"'
    (PRE) _aTotal[001] += ' Certificado="' + cCert + '"'
    (PRE) _aTotal[001] += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", ' CondicionesDePago="' +  CFDCarEsp(Alltrim(SE4->E4_DESCRI)) + '"' ) 
    (PRE) _aTotal[001] += ' SubTotal="' + Alltrim(STR(IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", 0, (SF2->(F2_VALMERC+F2_FRETE+F2_SEGURO+F2_DESPESA)  + _aTotal[103] + SF2->F2_DESCONT) - _aTotal[036] - _aTotal[037] ),14,_aTotal[106])) + '"'
    (PRE) _aTotal[001] += IIF(ALLTRIM(SF2->F2_TIPODOC) == "21", "", IIf( SF2->F2_DESCONT == 0, "", ' Descuento="' + Alltrim(STR(SF2->F2_DESCONT,14,2)) + '"' ))
    (PRE) _aTotal[001] += ' Moneda="' + IIf(Alltrim(SF2->F2_TIPODOC) == "21","XXX",Alltrim(CTO->CTO_MOESAT)) + '"'
    (PRE) _aTotal[001] += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", ' TipoCambio="' + IIf(Alltrim(CTO->CTO_MOESAT) <> "MXN", Alltrim(STR(SF2->F2_TXMOEDA,14,2)), "1") + '"') 
    (PRE) _aTotal[001] += ' Total="' + Alltrim(Str(IIf(Alltrim(SF2->F2_TIPODOC) == "21", 0, IIf(GetSx3Cache("F2_VALBRUT","X3_DECIMAL") <= 2,SF2->F2_VALBRUT + _aTotal[103] - _aTotal[037] - _aTotal[038] - IIf(Len(_aTotal[115]) > 0,_aTotal[115][1],0),Round(SF2->F2_VALBRUT,2) + _aTotal[103] - _aTotal[037] - _aTotal[038] - IIf(Len(_aTotal[115]) > 0,_aTotal[115][1],0))),14,_aTotal[106])) +  '"'
    (PRE) _aTotal[001] += ' TipoDeComprobante="' + IIf(Alltrim(SF2->F2_ESPECIE) == "NF",IIf(Alltrim(SF2->F2_TIPODOC) == "21", "T", "I"), "E") + '"'
    (PRE) _aTotal[001] += ' Exportacion="'+IIf(!Empty(_aTotal[113]),_aTotal[113],"01")+'"'
    (PRE) _aTotal[001] += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", ' MetodoPago="' +  Alltrim(SE4->E4_MPAGSAT) + '"' )
    (PRE) _aTotal[001] += ' LugarExpedicion="' + CFDCarEsp(AllTrim(SM0->M0_CEPENT)) + '"'
    (PRE) _aTotal[001] += '>'
    (PREREG) _aTotal[001]

    (POS) cNodoCCE := IIf(lCCCE, '        <cce20:ComercioExterior' , "")
    (POS) cNodoCCE += IIf(lCCCE, ' Version="2.0"' , "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_TRASLA), ' MotivoTraslado="' + Alltrim(SF2->F2_TRASLA) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_CVEPED), ' ClaveDePedimento="' + Alltrim(SF2->F2_CVEPED) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_CERORI), ' CertificadoOrigen="' + Alltrim(SF2->F2_CERORI) +'"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_NUMCER), ' NumCertificadoOrigen="' + Alltrim(SF2->F2_NUMCER) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_EXPCONF), ' NumeroExportadorConfiable="' + Alltrim(SF2->F2_EXPCONF) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_INCOTER), ' Incoterm="' + Alltrim(SF2->F2_INCOTER) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. SF2->(ColumnPos("F2_OBSCE")) > 0 .And. !Empty(SF2->F2_OBSCE), ' Observaciones="' + CFDCarEsp(AllTrim(SF2->F2_OBSCE), .T.) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(Str(SF2->F2_TCUSD)), ' TipoCambioUSD="' + Alltrim(Str(SF2->F2_TCUSD)) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(Str(SF2->F2_TOTUSD)), ' TotalUSD="' + Alltrim(Str(SF2->F2_TOTUSD,14,2)) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "")
    (POS) _aTotal[094] := cNodoCCE

    [XXX CFDIREL]
    (PREREG) !Empty(SF2->F2_RELSAT).Or. !Empty(SF2->F2_SERMAN).Or. !Empty(SF2->F2_DOCMAN)
    (PREREG) (_aTotal[001] := IIf(_aTotal[104] .And. Alltrim(SF2->F2_TIPODOC) == "21","",fGetFolRel("S")))
    (PREREG) _aTotal[001]

    [XXX FACTURA GLOBAL]
    (PRE) (_aTotal[001] := IIF(SF2->F2_GLOBAL == "1",'    <cfdi:InformacionGlobal ',""))
    (PRE) (_aTotal[001] += Iif(SF2->(ColumnPos("F2_IDCBAJA")) > 0 .and. SF2->F2_GLOBAL == "1" ,' Periodicidad="' + SF2->F2_IDCBAJA  + '"',""))
    (PRE) (_aTotal[001] += Iif(SF2->(ColumnPos("F2_MODCONS")) > 0 .and. SF2->F2_GLOBAL == "1" ,' Meses="' + SF2->F2_MODCONS  + '"',""))
    (PRE) (_aTotal[001] += Iif(SF2->(ColumnPos("F2_PTOEMIS")) > 0 .and. SF2->F2_GLOBAL == "1" ,' Año="' + SF2->F2_PTOEMIS  + '"',""))
    (PRE) (_aTotal[001] += IIF(SF2->F2_GLOBAL == "1",'/>' ,""))
    (PRE) (_aTotal[001] := IIF(SF2->F2_GLOBAL == "1",_aTotal[001] ,""))
    (PREREG) _aTotal[001]

    [XXX EMISOR]
    (PRE) (_aTotal[001] := '    <cfdi:Emisor'  , .T.)
    (PRE) (_aTotal[001] += ' Rfc="' + CFDCarEsp(AllTrim(SM0->M0_CGC))+ '"'  , .T.)
    (PRE) (_aTotal[001] += ' Nombre="' + CFDCarEsp(_aTotal[075],.T.) + '"'  , .T.)
    (PRE) (_aTotal[001] += ' RegimenFiscal="' + CFDCarEsp(Alltrim(SM0->M0_DSCCNA)) + '"'  , .T.)
    (PRE) (_aTotal[001] += '/>'  , .T.)
    (PRE) (_aTotal[001] := _aTotal[001]  , .T.)
    (PREREG) _aTotal[001]

    [XXX RECEPTOR_CLIENTE]
    (PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114], .T., .F.)
    (PRE) cNodoCCE := ""

    (PREREG) AllTrim(SF2->F2_ESPECIE) <> "NDI"
    (PREREG) (SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA)) , .T.)
    (PREREG) (SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
    (PREREG) (_aTotal[001] := '    <cfdi:Receptor' , .T.)
    (PREREG) (_aTotal[001] += ' Rfc="' + CFDCarEsp(IIf(SF2->F2_GLOBAL == "1", "XAXX010101000", _aTotal[108])) + '"' , .T.)
    (PREREG) (_aTotal[001] += ' Nombre="' + iif(SF2->F2_GLOBAL == "1","PUBLICO EN GENERAL",CFDCarEsp(_aTotal[109],.T.)) + '"' , .T.)
    (PREREG) (_aTotal[001] += ' DomicilioFiscalReceptor="' + _aTotal[110] + '"' , .T.)
    (PREREG) (_aTotal[001] += Iif(AI0->(ColumnPos("AI0_REGFIS")) > 0,' RegimenFiscalReceptor="' + _aTotal[111] + '"',""), .T.)
    (PREREG) (_aTotal[001] += ' UsoCFDI="' + Alltrim(SF2->F2_USOCFDI) + '"' , .T.)
    (PREREG) IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB)))) .And. !_aTotal[076], (_aTotal[001] += ' NumRegIdTrib="' + CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB))) + '"' , .T.), "") 
    (PREREG) IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(AllTrim(SF2->F2_RESIDE)))) .And. !_aTotal[076], (_aTotal[001] += ' ResidenciaFiscal="' + AllTrim(Posicione("SYA",1,xFilial("SYA")+SF2->F2_RESIDE,"YA_CCESAT")) + '"' , .T.), "")
    (PREREG) (_aTotal[001] += '/>' ,.T.)
    (PREREG) (_aTotal[001] := _aTotal[001] , .T.)
    (PREREG) _aTotal[001]

    (POS) cNodoCCE += IIf(lCCCE, '            <cce20:Emisor' , "")
    (POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "") 
    (POS) cNodoCCE += IIf(lCCCE, '                <cce20:Domicilio' , "")        
    (POS) cNodoCCE += IIf(lCCCE, ' Calle="' + CFDCarEsp(AllTrim(SM0->M0_ENDCOB)) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(CFDCarEsp(CFDCarEsp(AllTrim(SM0->M0_CEPENT)))), ' Colonia="' + CFDCarEsp(AllTrim(ObtColSAT("S015",AllTrim(SM0->M0_CODZOSE)+ALLTRIM(SM0->M0_CEPENT),1,9,1,4))) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(SM0->M0_CEPENT))), ' Municipio="' + CFDCarEsp(AllTrim(SM0->M0_CODMUN)) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, ' Estado="' + CFDCarEsp(Alltrim(ObtColSAT("S004",AllTrim(SM0->M0_CEPENT),1,5,6,3))) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, ' Pais="' + AllTrim("MEX") + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, ' CodigoPostal="' + AllTrim(SM0->M0_CEPENT) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, '/>' + ( chr(13)+chr(10) ), "")
    (POS) cNodoCCE += IIf(lCCCE, '            </cce20:Emisor>' + ( chr(13)+chr(10) ), "")
    (POS) cNodoCCE += IIf(lCCCE, '            <cce20:Receptor ' + IIf(_aTotal[108]=="XEXX010101000", 'NumRegIdTrib="' + CFDCarEsp(AllTrim(SF2->F2_IDTRIB)) + '"',""), "")     
    (POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "") 
    (POS) cNodoCCE += IIf(lCCCE, '                <cce20:Domicilio' , "")        
    (POS) cNodoCCE += IIf(lCCCE, ' Calle="' + CFDCarEsp(AllTrim(SA1->A1_END)) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(AllTrim(SA1->A1_NR_END)), ' NumeroExterior="' + AllTrim(SA1->A1_NR_END) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(AllTrim(SA1->A1_NROINT)), ' NumeroInterior="' + AllTrim(SA1->A1_NROINT) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(SA1->A1_BAIRRO))), ' Colonia="' + CFDCarEsp(AllTrim(SA1->A1_BAIRRO)) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE .And. !Empty(AllTrim(SA1->A1_MUN)), ' Municipio="' + CFDCarEsp(AllTrim(SA1->A1_MUN),.T.) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, ' Estado="' + CFDCarEsp(Alltrim(Posicione("SX5",1,xFilial("SX5")+"12"+SA1->A1_EST,"X5_DESCRI"))) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, ' Pais="' + AllTrim(Posicione("SYA",1,xFilial("SYA")+SA1->A1_PAIS,"YA_CCESAT")) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, ' CodigoPostal="' + AllTrim(SA1->A1_CEP) + '"', "")
    (POS) cNodoCCE += IIf(lCCCE, '/>' + ( chr(13)+chr(10) ), "")
    (POS) cNodoCCE += IIf(lCCCE, '            </cce20:Receptor>' + ( chr(13)+chr(10) ), "") 
    //Destintarios
    (POS) cNodoCCE += IIf(lCCCE .And. FindFunction("LxCEDest") .And. SF2->(ColumnPos("F2_ACOPLA")) > 0, LxCEDest(SF2->F2_CLIENTE,SF2->F2_LOJA,SF2->F2_ACOPLA,.F.),"")
    (POS) (cNodoCCE += IIf(lCCCE, '            <cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.)
    (POS) _aTotal[094] += cNodoCCE

    [SD2 CONCEPTO]
    (PRE) lCCCE    := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114] , .T., .F.)
    (PRE) cNodoCCE := ""

    (PRE) DbGoTop()

    (PREREG) (cNodoCCE += IIf(lCCCE, '                  <cce20:Mercancia' , ""),.T.)      
    (PREREG) (cNodoCCE += IIf(lCCCE , ' NoIdentificacion="' + Alltrim(SD2->D2_ITEM + SD2->D2_COD) + '"', ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD2->D2_FRACCA), ' FraccionArancelaria="' + Alltrim(SD2->D2_FRACCA) + Alltrim(SD2->D2_NICO) + '"', ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD2->D2_CANADU)), ' CantidadAduana="' + Alltrim(Str(SD2->D2_CANADU)) + '"', ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD2->D2_FRACCA), ' UnidadAduana="' + AllTrim(ObtColSAT("S014",AllTrim(SD2->D2_FRACCA),1,8,9,2)) + '"', ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD2->D2_VALADU)), ' ValorUnitarioAduana="' + Alltrim(Str(SD2->D2_VALADU,14,2)) + '"', ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE, ' ValorDolares="' + Alltrim(Str(SD2->D2_USDADU,14,2)) + '"', ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ) , ""),.T.)
    (PREREG) (cNodoCCE += IIf(lCCCE, '                  </cce20:Mercancia>' + ( chr(13)+chr(10) ), ""),.T.)

    (POS) (cNodoCCE += IIf(lCCCE, '            </cce20:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.)
    (POS) (cNodoCCE += IIf(lCCCE, '        </cce20:ComercioExterior>' , ""),.T.)
    (POS) _aTotal[094] += cNodoCCE

    (POS) (_aTotal[034] := fXMLFUN("CO",.F., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),.T.)
     
    [XXX CONCEPTOS]
    (POS) FsQuery(_aTotal[097],2)

    (PREREG) (_aTotal[001] := _aTotal[034] ,.T.)
    (PREREG) _aTotal[001]

    [XXX IMPUESTOS]
    (PREREG) (_aTotal[002] := fXMLFUN("TI",.F.,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.)
    (PREREG) _aTotal[002]

    //IMPUESTOS LOCALES//
    (PRE) (_aTotal[095] := fXMLFUN("IL",.F.),.T.)

    [XXX COMPLEMENT]
    (PREREG) IIf(_aTotal[011],_aTotal[105] := LxFunaCaPo(SF2->F2_FILIAL,SF2->F2_DOC,SF2->F2_SERIE,.F.,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.),_aTotal[104]),"")
    (PREREG) (_aTotal[001] := IIF(!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095] ) .Or. !Empty(_aTotal[105]) .or. _aTotal[104] , '    <cfdi:Complemento', ""), .T.)
    (PREREG) (_aTotal[001] += IIF(!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095] ) .Or. !Empty(_aTotal[105]),'>',""),.T.)
    (PREREG) _aTotal[001]
    COMPLEMENT  C 021 0 ENCODEUTF8(XMLConv("",,,"cfdi:Complemento",.T.,.F.,4))


    [XXX COMERCIOEX]
    (PREREG) (_aTotal[001] := _aTotal[094],.T.)
    (PREREG) _aTotal[001]

    [XXX CARTAPORTE]
    (PREREG) (_aTotal[001] := _aTotal[105],.T.)
    (PREREG) _aTotal[001]

    [XXX IMPUESTOLOC]
    (PREREG) (_aTotal[001] := _aTotal[095],.T.)
    (PREREG) _aTotal[001]

    [XXX LEYENDASFIS]
    (PREREG) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.)  .And. !Empty(SF2->F2_TIPOPE) .And. _aTotal[114], .T., .F.) .And. SF2->(FieldPos("F2_CONUNI")) > 0
    (PREREG) lCCCE
    (PREREG) (_aTotal[001] := IIF((!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095])) .And. !EMPTY(SF2->F2_CONUNI) .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF" , '        <leyendasFisc:LeyendasFiscales version="1.0" >'+ ( chr(13)+chr(10) ), ""), .T.)
    (PREREG) (_aTotal[001] += IIF((!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095])) .And. !EMPTY(SF2->F2_CONUNI) .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF" , '            <leyendasFisc:Leyenda textoLeyenda=', ""), .T.)
    (PREREG) (_aTotal[001] += IIF((!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095])) .And. SF2->F2_CONUNI=="1" .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF", '"IMMEX:'+ AllTrim(SA1->A1_PFISICA) +' ' + _aTotal[101] +'" />', IIF((!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095])) .And. SF2->F2_CONUNI=="2" .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF",'"IMMEX:'+ AllTrim(SA1->A1_PFISICA) + ' ' + _aTotal[102] +'" />',"")), .T.)
    (PREREG) _aTotal[001]
    (PREREG) (_aTotal[001] := IIF((!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095])) .And. !EMPTY(SF2->F2_CONUNI) .And. SA1->A1_CONTRBE == "1" .And. Alltrim(SF2->F2_ESPECIE) == "NF",'        </leyendasFisc:LeyendasFiscales>', ""), .T.)
    (PREREG) _aTotal[001]


    [XXX COMPLEMENT]
    (PREREG) (_aTotal[001] := IIF(!EMPTY(_aTotal[094]) .or. !EMPTY(_aTotal[095]) .or. !EMPTY(_aTotal[105]),'    </cfdi:Complemento>',""), .T.)
    (PREREG) _aTotal[001]
    COMPLEMENT  C 021 0 ENCODEUTF8(XMLConv("",,,"cfdi:Complemento",.F.,.T.,4))

    //[XXX CAD_ORIG]
    //(PREREG) _aTotal[033] 

    [XXX FACTURA]
    (PRE) _aTotal[095] := &(GetNewPar("MV_CFDNAF2","Lower(AllTrim(SF2->F2_ESPECIE)) + '_' + Lower(AllTrim(SF2->F2_SERIE)) + '_'  + Lower(AllTrim(SF2->F2_DOC)) + '.xml'"))
    (ARQ) _aTotal[095]
    FACTURA    C 019 0 ENCODEUTF8(XMLConv("",,,"cfdi:Comprobante",.F.,.T.,0))

CampoDescripciónNodoUsoDato en Protheus


cfdi:Comprobante

VersionVersión CFDI.cfdi:Comprobante
"4.0"
FormaPagoEn este campo se deberá registrar la clave de la forma de pago en que se liquida el valor pactado en la prestación del servicio.cfdi:Comprobante

CFDI de tipo ingreso: Metodo pago (AI0_MPAGO)

CFDI de tipo traslado: N/A

TipoDeComprobante

Tipo de comprobantecfdi:Comprobante

CFDI de tipo ingreso: "I"

CFDI de tipo traslado: "T"

MetodoPagoEste campo sirve para seleccionar la clave que informe si el pago por la prestación del servicio se liquidó en una sola exhibición o es un pago en parcialidades.cfdi:Comprobante

CFDI de tipo ingreso: Met Pago SAT (E4_MPAGSAT)

CFDI de tipo traslado: N/A

SubtotalSi el campo TipoDeComprobante contiene el valor “T” (Traslado), se debe registrar el valor igual a cero.cfdi:Comprobante

Si el campo de la factura Identificador de Documento (F2_TIPODOC) es "21"-Traslado, informa:

"0"

De lo contrario, informa:

Diferencia del campo Valor Mercancías (F2_VALMERC) - el campo Descuentos (F2_DESCONT) de la factura.

MonedaSi el campo TipoDeComprobante contiene el valor “T” (Traslado), en este campo se debe registrar el valor “XXX” (Los códigos asignados para las transacciones en que intervenga ninguna moneda). Si el campo TipoDeComprobante contiene el valor “I” (Ingreso), este campo debe contener un valor diferente de “XXX” (Los códigos asignados para las transacciones en que intervenga ninguna moneda).cfdi:Comprobante

Si el campo de la factura Identificador de Documento (F2_TIPODOC) es "21"-Traslado, informa :

"XXX"

De lo contrario, informa:

Campo Moneda SAT (CTO_MOESAT) relacionado con el campo Moneda de la Factura (F2_MOEDA).

TotalSi el campo TipoDeComprobante contiene el valor “T” (Traslado), se debe registrar el valor igual a cero.cfdi:Comprobante

Si el campo de la factura Identificador de Documento (F2_TIPODOC) es "21"-Traslado, informa:

"0"

De lo contrario, informa:

Campo Valor Bruto (F2_VALBRUT) de la factura.



cfdi:Comprobante:CfdiRelacionados

TipoRelacionDebe contener el valor “05” (Traslados de mercancías facturadas previamente), contenida en el catálogo del CFDI, c_TipoRelacion, publicado en el portal del SAT. Y el valor del campo Fecha debe contener al menos una diferencia de 6:00:00 horas respecto de la factura inicial, la cual se relaciona siempre que se cuente con dicha información.cfdi:Comprobante:CfdiRelacionados
"05"
UUID Se debe registrar el folio fiscal (UUID) de un comprobante fiscal relacionado con el presente comprobante.cfdi:Comprobante:CfdiRelacionados:CfdiRelacionado
Campo UUID Relacs (F2_UUIDREL) de la factura.


cfdi:Comprobante:Receptor

RFCSi el campo TipoDeComprobante contiene el valor “T” (Traslado), este campo debe
contener el valor “XAXX010101000”, en otro caso se podrá capturar el RFC del cliente, siempre y cuando se encuentre en la lista del RFC Inscritos no cancelados del SAT I_RFC.
Si el campo TipoDeComprobante contiene el valor “I” (Ingreso), y cuando no se utilice el RFC genérico, el RFC debe estar en la lista de RFC inscritos no cancelados en el SAT.
cfdi:Comprobante:Receptor

Si el campo de la factura Identificador de Documento (F2_TIPODOC) es "21"-Traslado, informa:

El RFC del Emisor.

De lo contrario, informa:

Campo RFC cliente (A1_CGC) correspondiente al Código del cliente (F2_CLIENTE+F2_LOJA) de la factura.

UsoCFDISi el campo TipoDeComprobante contiene el valor “T” (Traslado), este campo debe contener el valor “P01” (Por definir).

cfdi:Comprobante:Receptor

Si el campo de la factura Identificador de Documento (F2_TIPODOC) es "21"-Traslado, informa:

"P01" (por Definir)

De lo contrario, informa:

Campo Uso CFDI (F2_USOCFDI) de la factura.



cfdi:Comprobante:Conceptos

ClaveProdServ

CFDI de tipo Ingreso:

En este campo deberás registrar la clave que corresponda al tipo de servicio que estas prestando para el traslado de bienes y/o mercancías.

CFDI de tipo Traslado:

En este campo deberás registrar la clave que corresponda a los bienes y/o mercancías que se transporten.

cfdi:Comprobante:Conceptos
Prod/Serv SAT (B1_PRODSAT)
ClaveUnidad

CFDI de tipo Ingreso:

En este campo deberás registrar la clave de unidad E48 con descripción “Unidad de servicio”.

CFDI de tipo Traslado:

Este campo sirve para registra la clave de unidad de medida utilizada para los bienes y/o mercancías transportadas.

cfdi:Comprobante:Conceptos
Uni Med SAT (AH_UNIDSAT)
Descripcion

CFDI de tipo Ingreso:

Este campo sirve para detallar el tipo de servicio que se va a realizar.

CFDI de tipo Traslado:

Este campo sirve para detallar el bien o mercancía que se va a transportar.

cfdi:Comprobante:Conceptos
Descripción (B1_DESC)

Complemento Carta Portecfdi:Comprobante:Complemento:cartaporte31:CartaPorte
Complemento  para incorporar al Comprobante Fiscal Digital por Internet (CFDI),
la información relacionada a los bienes o mercancías, ubicaciones de
origen, puntos intermedios y destino, así como lo referente al medio por el
que se transportan; ya sea por vía terrestre (carretera federal o líneas
férreas), aérea, marítima o fluvial; además de incluir el traslado de
Hidrocarburos y Petrolíferos.
VersionAtributo requerido con valor prefijado que indica la versión del complemento Carta Porte.cartaporte31:CartaPorteRequerido"3.1"
TranspInternacEn este campo se deberá registrar el valor “Sí” o “No” para indicar cuando el traslado de bienes y/o mercancías sea de carácter internacional.cartaporte31:CartaPorteRequerido

Campo Transporte internacional (A1X_INTERN) de Carta Porte:

"Sí" o "No"

EntradaSalidaMerc

En este campo se deberá registrar el valor “Entrada” o “Salida” cuando los bienes y/o mercancías ingresen o salgan del territorio nacional.

Nota: Si el valor registrado en el campo TranspInternac es “No”, este campo se debe omitir.
cartaporte31:CartaPorteCondicional

Este atributo se informa si el campo Transporte internacional (A1X_INTERN) de Carta Porte es "Sí".

Si el campo Entrada o Salida (A1X_ENTSAL) de Carta Porte es "E", informa:

"Entrada"

De lo contrario, informa:

"Salida"

PaisOrigenDestino

En este campo se deberá registrar la clave del país de origen o destino de los bienes y/o mercancías transportadas.

Nota: Si el valor registrado en el campo TranspInternac es “No”, este campo se debe omitir.

cartaporte31:CartaPorteCondicional

Este atributo se informa si el campo de Carta Porte Transporte internacional (A1X_INTERN) es "Sí".

Campo de Carta Porte País Origen/destino (A1X_PAIS).

ViaEntradaSalida

En este campo se deberá registrar la clave del transporte a través del cual ingresan o salen los bienes y/o mercancías del territorio nacional.

Nota: Si el valor registrado en el campo TranspInternac es “No”, este campo se debe omitir.

cartaporte31:CartaPorteCondicional

Este atributo se informa si el campo de Carta Porte Transporte internacional (A1X_INTERN) es "Sí".

Campo de Carta Porte Clave de transporte (A1X_TRANSP).

TotalDistRecEn este campo se deberá registrar la suma de las distancias recorridas en kilómetros, registradas en los campos “Distancia Recorrida” de las secciones Ubicación.cartaporte31:CartaPorteCondicionalSuma de los valores Distancia recorrida (A1Y_DISREC) del nodo Ubicaciones.
IdCCPAtributo requerido para expresar los 36 caracteres del foliodel  complemento Carta Porte (IdCCP) de la transacción de timbrado conforme al estándar RFC 4122, para la identificación del CFDI con complemento Carta Portecartaporte31:CartaPorteRequeridoEl valor de este atributo se visualizará en el campo UUID (A1X_UUIDCP), ya que el sistema lo generará automáticamente, como identificador de la Carta Porte registrada.
RegistroISTMOEn este campo se deberá registrar si en las regiones, el traslado
de los bienes y/o mercancías se realiza al interior de los Polos de Desarrollo para el Bienestar del istmo de Tehuantepec. 
cartaporte31:CartaPorteCondicional

Este atributo se informa si el campo de Carta Porte Reg. ISTMO (A1X_RISTMO) es "Sí".


UbicacionPoloOrigenEn este campo se deberá registrar la región en donde inicia el traslado de los bienes y/o mercancias al interior de los Polos de Desarrollo para el Bienestar del istmo de Tehuantepec.cartaporte31:CartaPorteCondicional

Este atributo se informa si el campo de Carta Porte Reg. ISTMO (A1X_RISTMO) es "Sí".

Campo de Carta Porte Polo Origen (A1X_POLOOR).

UbicacionPoloDestinoEn este campo se deberá registrar la región en donde termina el traslado de los bienes y/o mercancias al interior de los Polos de Desarrollo para el Bienestar del istmo de Tehuantepeccartaporte31:CartaPorteCondicional

Este atributo se informa si el campo de Carta Porte Reg. ISTMO (A1X_RISTMO) es "Sí".

Campo de Carta Porte Polo Destino (A1X_POLODE).



cartaporte31:RegimenesAduanerosCondicional

Este atributo se informa si el campo de Carta Porte Transporte internacional (A1X_INTERN) es "Sí".

Campo de Carta Porte Clave de transporte (A1X_TRANSP).

RegimenAduaneroExpresar el régimen aduanero al cual se destina el bien y/o mercancía. cartaporte31:RegimenAduaneroCCPCondicional

Debe contener un valor del catálogo S037 - Catálogo de Régimen Aduanero (c_RegimenAduanero)

Cuando el Entrada o Salida (A1X_ENTSAL) contenga el valor E-Entrada, debe
contener un valor del catálogo c_RegimenAduanero donde la columna
ImpoExpo contenga el valor “Entrada” o “Salida,Entrada”.
Cuando el Entrada o Salida (A1X_ENTSAL) contenga el valor S-Salida, debe
contener un valor del catálogo c_RegimenAduanero donde la columna
ImpoExpo contenga el valor “Salida” o “Salida,Entrada”.

Campo de Carta Porte Rég. Aduana (A1X_REGADU).



cartaporte31:Ubicaciones:UbicacionRequeridoNodo requerido para registrar las distintas ubicaciones que sirven para reflejar el domicilio del origen y/o destino que tienen los bienes o mercancías que se trasladan por distintos medios de transporte.
TipoUbicacionEn este campo se deberá registrar el valor que corresponda al tipo de ubicación, ya sea "Origen" o "Destino".cartaporte31:Ubicaciones:UbicacionRequerido

Si el campo Tipo Ubicación (A1Y_TIPEST) es "D"

    "Origen"

De lo contrario:

   "Destino"

IDUbicacionCuando las mercancías tengan diferentes ubicaciones de tipo Origen y/o Destino, se les debe asignar un identificador el cual debe incluir el acrónimo “OR” para Origen y “DE” para Destino, seguido de 6 dígitos numéricos que podrás asignar.cartaporte31:Ubicaciones:UbicacionOpcionalCampo Id Ubicación (A1Y_ORIGEN)de Ubicaciones.
RFCRemitenteDestinatario

En este campo se deberá registrar la clave en el RFC del remitente cuando el valor registrado en el campo TipoUbicacion sea “Origen”.

Por otro lado, si el valor agregado en el campo TipoUbicacion es “Destino” se deberá registrar la clave en el RFC del destinatario de los bienes y/o mercancías que se trasladan.

cartaporte31:Ubicaciones:UbicacionRequeridoCampo RFC (A1Y_RFCORI) de Ubicaciones.
NombreRemitenteDestinatarioEn este campo se podrá registrar el nombre del remitente o destinatario de los bienes y/o mercancías que se trasladan.cartaporte31:Ubicaciones:UbicacionOpcionalCampo Nombre (A1Y_NOMORI) de Ubicaciones.
NumRegIdTribEn este campo se podrán registrar los datos de identificación fiscal del remitente o destinatario, siempre que en el campo “RFCRemitenteDestinatario” se haya registrado la clave en el RFC genérica de residentes en el extranjero “XEXX010101000”.cartaporte31:Ubicaciones:UbicacionOpcionalN/A
ResidenciaFiscalEn este campo podrás registrar la clave del país del remitente o destinatario, siempre que se haya registrado un valor en el campo “NumRegIdTrib”.cartaporte31:Ubicaciones:UbicacionOpcionalN/A
NumEstacionAtributo condicional para registrar la clave de la estación de origen o destino para el traslado de los bienes y/o mercancías que se realiza a través de los distintos medios de transporte, esto de acuerdo al valor de la columna “Clave identificación” del catálogo c_Estaciones del complemento Carta Porte que permita asociarla al tipo de transporte.cartaporte31:Ubicaciones:UbicacionOpcionalN/A
NombreEstacionAtributo condicional para registrar el nombre de la estación de origen o destino por la que se pasa para efectuar el traslado de los bienes y/o mercancías a través de los distintos medios de transporte, conforme al catálogo c_Estaciones del complemento Carta Porte.cartaporte31:Ubicaciones:UbicacionOpcionalN/A
NavegacionTraficoAtributo condicional para registrar el tipo de puerto de origen o destino en el cual se documentan los bienes y/o mercancías que se trasladan vía marítima.cartaporte31:Ubicaciones:UbicacionOpcionalN/A
FechaHoraSalidaLlegadaEn este campo se deberá registrar la fecha y hora estimada en la que salen o llegan los bienes y/o mercancías del origen o destino, respectivamente.cartaporte31:Ubicaciones:UbicacionRequerido

Campos Fecha de Salida y Hora de Salida de Ubicaciones:

DTOS(A1Y_FECSAL) + "T" + A1Y_HRASAL

TipoEstacion

Atributo condicional para registrar el tipo de estación por el que pasan los bienes y/o mercancías durante su traslado a través de los distintos medios de transporte.

cartaporte31:Ubicaciones:UbicacionCondicionalN/A
DistanciaRecorrida

En este campo se deberá registrar la distancia recorrida en kilómetros entre el origen y el destino.

Este campo solo se debe registrar cuando el campo TipoUbicacion contenga el valor “Destino”.

cartaporte31:Ubicaciones:UbicacionCondicional

Si el campo Tipo Ubicación (A1Y_TIPEST) es "D", coloca el campo Distancia recorrida (A1Y_DISREC), ambos de Ubicaciones.

De lo contrario se omite.



cartaporte31:Ubicaciones:Ubicacion:DomicilioCondicionalNodo condicional para registrar información del domicilio de origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.
CalleEn este campo se podrá registrar el nombre de la calle en la que está ubicado el domicilio de origen o destino de los bienes y/o mercancías que se trasladan.cartaporte31:Ubicaciones:Ubicacion:DomicilioRequerido

Campo Calle (A1Y_CALORI) de Ubicaciones.

NumeroExteriorEn este campo se podrá registrar el número exterior en donde se ubica el domicilio del origen o destino de los bienes y/o mercancías que se trasladan.cartaporte31:Ubicaciones:Ubicacion:DomicilioOpcional

Campo Número exterior (A1Y_EXTORI) de Ubicaciones.

NumeroInteriorEn este campo se podrá registrar el número interior en caso de existir, en donde se ubica el domicilio del origen o destino de los bienes y/o mercancías que se trasladan.cartaporte31:Ubicaciones:Ubicacion:DomicilioOpcional

Campo Número interior (A1Y_INTORI) de Ubicaciones.

ColoniaEn este campo se podrá registrar la clave de la colonia en donde se ubica el domicilio del origen o destino de los bienes y/o mercancías que se trasladan vía autotransporte. El valor registrado en este campo debe coincidir con la clave del código postal registrado en el campo “CodigoPostal”.cartaporte31:Ubicaciones:Ubicacion:DomicilioOpcional

Campo Colonia (A1Y_COLORI) de Ubicaciones.

Localidad

En este campo se podrá registrar la clave que corresponda a la ciudad o población, en donde se encuentra ubicado el domicilio del origen o destino de los bienes y/o mercancías que se trasladan, si la clave del país es distinta a “MEX” se puede registrar texto libre.

La clave capturada en este campo debe coincidir con el estado capturado en el campo “Estado”.

cartaporte31:Ubicaciones:Ubicacion:DomicilioOpcional

Campo Localidad (A1Y_LOCORI) de Ubicaciones.

ReferenciaEste campo sirve para especificar una referencia geográfica adicional que permita una fácil o precisa ubicación del domicilio del origen y/o destino de las mercancías que se trasladan.cartaporte31:Ubicaciones:Ubicacion:DomicilioOpcionalN/A
Municipio

En este campo se podrá registrar el municipio, delegación, alcaldía o condado en donde se encuentra ubicado el domicilio del origen o destino de los bienes y/o mercancías que se trasladan, si la clave del país es distinta a “MEX” se puede registrar texto libre.

El dato capturado en este campo debe coincidir con el estado capturado en el campo “Estado”.

cartaporte31:Ubicaciones:Ubicacion:DomicilioOpcional

Campo Municipio (A1Y_MUNORI) de Ubicaciones.

Estado

En este campo se deberá registrar el estado, entidad, región, comunidad, en donde se encuentra ubicado el domicilio del origen o destino de los bienes y/o mercancías que se trasladan, si la clave del país es distinta a “MEX”, “USA” o "CAN” se puede registrar texto libre.

El dato capturado en este campo debe coincidir con el país capturado en el campo “País”.

cartaporte31:Ubicaciones:Ubicacion:DomicilioRequerido

Campo Estado (A1Y_EDOORI) de Ubicaciones.

País

En este campo se deberá registrar la clave del país en donde se encuentra ubicado el domicilio del origen o destino de los bienes y/o mercancías que se trasladan.

Este campo debe contener una clave del catálogo c_Pais, publicado en el portal del SAT.

cartaporte31:Ubicaciones:Ubicacion:DomicilioRequerido

Campo País (A1Y_PAIORI) de Ubicaciones.

CodigoPostal

En este campo se deberá registrar la clave del código postal en donde se encuentra el domicilio del origen o destino de los bienes y/o mercancías que se trasladan.

El dato capturado en este campo debe coincidir con:

- La columna c_Estado, debe ser la misma que la capturada en el campo Estado.

- La columna c_Municipio, debe ser la misma que la capturada en el campo Municipio.

- La columna c_Localidad, debe ser la misma que la capturada en el campo Localidad.

cartaporte31:Ubicaciones:Ubicacion:DomicilioRequerido

Campo Código postal (A1Y_CPORI) de Ubicaciones.



cartaporte31:MercanciasRequeridoNodo requerido para registrar la información de los bienes o mercancías que se trasladan en los distintos medios de transporte.
PesoBrutoTotalEn este campo se deberá registrar la suma del peso bruto de los bienes y/o mercancías que se trasladan.cartaporte31:MercanciasRequeridoSuma de PesoEnKg (D2_PESO).
UnidadPesoEn este campo se deberá registrar la clave de la unidad de peso que corresponda al valor registrado en el campo PesoBrutoTotal.cartaporte31:MercanciasRequerido"KGM"
PesoNetoTotalAtributo condicional para registrar la suma de los valores indicados en el atributo “PesoNeto” del nodo “DetalleMercancia”.cartaporte31:MercanciasCondicionalN/A
NumTotalMercancias

En este campo se deberá registrar el número total de los bienes y/o mercancías que se trasladan, identificándose por cada sección Mercancía registrada en el complemento.

El valor de este campo debe ser igual al número de secciones Mercancia que se registren en el complemento.

cartaporte31:MercanciasRequeridoNúmero de ítems de productos de la factura.
CargoPorTasacionEn este campo se deberá registrar el importe pagado por la tasación de los bienes y/o mercancías que se trasladan vía aérea.cartaporte31:MercanciasOpcionalN/A
LogisticaInversaRecoleccionDevolucionAtributo condicional para expresar si se hace uso de alguno
de los servicios de logística inversa, recolección o
devolución para el traslado de los bienes y/o mercancías.
cartaporte31:MercanciasOpcional

Campo  (A1X_LOGDEV) de Carta Porte:

"Sí" o "No"



cartaporte31:Mercancias:MercanciaRequeridoNodo requerido para registrar información de los bienes o mercancías que se trasladan en los distintos medios de transporte.
BienesTransp

En este campo se deberá registrar la clave de producto de los bienes y/o mercancías que se trasladan vía Autotransporte.

El valor de este campo deberá contener una clave del catálogo del complemento Carta Porte c_ClaveProdServCP, publicado en el portal del SAT.

Nota: no aplican los servicios de traslado de mercancías en este campo, ya que esta información se encuentra registrada a nivel Comprobante.

cartaporte31:Mercancias:MercanciaRequerido

Campo Producto o Servicio SAT (B1_PRODSAT) correspondiente al producto del ítem de la factura. 

ClaveSTCCEn este campo se podrá registrar la clave de producto de acuerdo al catálogo STCC, dicha clave debe estar compuesta de 6 o 7 caracteres numéricos.cartaporte31:Mercancias:MercanciaOpcionalN/A
DescripcionEn este campo se deberá registrar la descripción de los bienes y/o mercancías que se trasladan vía autotransporte.cartaporte31:Mercancias:MercanciaCondicional

Descripción del Catálogo productos/servicios (S002) de acuerdo al campo Producto o Servicio SAT (B1_PRODSAT) correspondiente al producto del ítem de la factura. 

CantidadEn este campo se deberá registrar la cantidad de bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:MercanciaCondicionalCampo Cantidad del producto (D2_QUANT), del ítem de la factura.
ClaveUnidad

En este campo se deberá registrar la clave de unidad de medida aplicable y que se encuentra en el catálogo de CFDI, c_ClaveUnidad, publicado en el portal del SAT.

La unidad debe corresponder con la descripción de los bienes y/o mercancías registrados.

cartaporte31:Mercancias:MercanciaCondicionalCampo Unidad medida SAT (AH_UNIDSAT) que corresponde al producto del ítem de la factura.
UnidadEn este campo se podrá registrar la descripción de la unidad de medida propia de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:MercanciaOpcionalN/A
DimensionesEn este campo se podrán registrar las medidas del empaque de los bienes y/o mercancías que se trasladan. Se debe registrar la longitud, la altura y la anchura en centímetros o en pulgadas separados por una diagonal.cartaporte31:Mercancias:MercanciaOpcionalN/A
MaterialPeligroso

En este campo se deberá indicar el valor “Sí” o “No” cuando los bienes y/o mercancías que se trasladan son considerados como material peligroso.

Nota: La forma de identificar si se trata de un material peligroso es considerando la columna Material peligroso del catálogo c_ClaveProdServCP del complemento Carta Porte, publicado en el portal del SAT, el cual tiene la siguiente clasificación:

. “0” significa que los bienes y/o mercancías no son peligrosos.

. “1” significa que los bienes y/o mercancías son peligrosos.

. “0,1” significa que, a consideración del contribuyente, puede que sea o no peligroso.

cartaporte31:Mercancias:MercanciaOpcional

Si el código registrado en la columna BienesTransp, corresponde al Catálogo Producto/Servicio CP (S019) y además la columna Material Peligroso, del mismo catálogo, es "0,1" o "1", se informa:
"Sí"
En caso contrario el nodo no se generará en el XML.

CveMaterialPeligrosoEn este campo se podrá registrar la clave del tipo de material peligroso que se transporta de acuerdo a la NOM-002-SCT/2011, de acuerdo al catálogo c_MaterialPeligroso publicado en la sección del complemento Carta Porte en la página del SAT.cartaporte31:Mercancias:MercanciaCondicionalCampo Clave material peligroso (D2_GRPCST) del ítem de la factura.
EmbalajeEn este campo se podrá registrar la clave del tipo de embalaje del catálogo del complemento Carta Porte, c_TipoEmbalaje, publicado en el portal del SAT.cartaporte31:Mercancias:MercanciaCondicionalCampo Clave de embalaje (D2_TNATREC) del ítem de la factura.
DescripEmbalajeEn este campo se podrá registrar la descripción del embalaje en el que se transportan los bienes y/o mercancías que se consideran material o residuo peligroso.cartaporte31:Mercancias:MercanciaCondicionalDescripción del Catálogo Tipos de Embalaje (S021) de acuerdo al campo Clave de embalaje (D2_TNATREC) del ítem de la factura.
SectorCOFEPRISEn este campo se podrá registrar la clasificación del producto que se traslada a través de los distintos medios de transporte y que debe contar con autorización por la autoridad correspondiente. cartaporte31:Mercancias:MercanciaCondicionalCampo Sec.COFEPRIS (B5_SECTOR) correspondiente al producto del ítem de la factura. 
NombreIngredienteActivoEn este campo se podrá registrar el nombre común del ingrediente activo de los precursores, químicos de uso dual, plaguicidas o fertilizantes que se trasladan a través de los distintos medios de transporte.cartaporte31:Mercancias:MercanciaCondicional

Campo Ing. Activo  (B5_INGREDI) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "02-Precursores y químicos de uso dual o 05-Plaguicidas y fertilizantes".

NomQuimicoEn este campo se podrá registrar el nombre de la sustancia activa de los precursores, químicos de uso dual o sustancias tóxicas que se traslada a través de los distintos medios de transporte.cartaporte31:Mercancias:MercanciaCondicional

Campo Sust. Activa (B5_SUSACT) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "02-Precursores y químicos de uso dual o 04-Sustancias toxicas".

DenominacionGenericaProdEn este campo se podrá registrar el fármaco o la sustancia activa del medicamento, psicotrópico o estupefaciente que se traslada a través de los distintos medios de transporte. cartaporte31:Mercancias:MercanciaCondicional

Campo Nom.Gen.Prod (B5_NOMGER) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "01-Medicamento o 03-Psicotropicos y estupefacientes".

DenominacionDistintivaProdEn este campo se podrá registrar la marca con la que se comercializa el producto o nombre que le asigna el laboratorio o fabricante a sus especialidades farmacéuticas con el fin de distinguirlas de otras similares del medicamento, psicotrópico o estupefaciente que se traslada a través de los distintos medios de transporte.cartaporte31:Mercancias:MercanciaCondicional

Campo Marca Comer (B5_NOMCOME) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "01-Medicamento o 03-Psicotropicos y estupefacientes".


FabricanteEn este campo se podrá registrar el nombre o razón social del establecimiento que realiza la fabricación o manufactura del medicamento, precursor, químico de uso dual, psicotrópico o estupefaciente que se traslada a través de los distintos medios de transporte.cartaporte31:Mercancias:MercanciaCondicional

Campo Fabricante (B5_FABRICA) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "01-Medicamento o 02-Precursores y químicos de uso dual o 03-Psicotropicos y estupefacientes".

FechaCaducidadEn este campo se podrá registrar la fecha de caducidad del medicamento, psicotrópico o estupefaciente; o para expresar la fecha de reanálisis del precursor o químico de uso dual que se traslada a través de los distintos medios de transporte. Se expresa en la forma AAAA-MM-DD.cartaporte31:Mercancias:MercanciaCondicional

Campo Fecha caducidad (D2_DTVALID) del ítem de la factura.

Debe existir si SectorCOFEPRIS es "01-Medicamento o 02-Precursores y químicos de uso dual o 03-Psicotropicos y estupefacientes".

LoteMedicamentoEn este campo se podrá registrar la denominación que identifica y confiere trazabilidad del medicamento, precursor, químico de uso dual, psicotrópico o estupefaciente elaborado en un ciclo de producción, bajo condiciones equivalentes de operación y durante un periodo. cartaporte31:Mercancias:MercanciaCondicional

Campo Lote (D2_LOTECTL) del ítem de la factura.

Debe existir si SectorCOFEPRIS es "01-Medicamento o 02-Precursores y químicos de uso dual o 03-Psicotropicos y estupefacientes".

FormaFarmaceuticaEn este campo se podrá registrar la forma farmacéutica o mezcla del medicamento, precursor, químico de uso dual, psicotrópico o estupefaciente que presenta ciertas características físicas para su adecuada dosificación, conservación y administración.cartaporte31:Mercancias:MercanciaCondicional

Campo Cód.For.Farm (B5_CODFORM) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "01-Medicamento o 02-Precursores y químicos de uso dual o 03-Psicotropicos y estupefacientes".

CondicionesEspTranspEn este campo se podrá registrar la condición en la cual es necesario mantener el medicamento, precursor, químico de uso dual, psicotrópicos o estupefacientes durante el traslado y almacenamiento.cartaporte31:Mercancias:MercanciaCondicional

Campo Reg. Sanitar (B5_REGSAN) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "01-Medicamento o 03-Psicotropicos y estupefacientes".

RegistroSanitarioFolioAutorizacionEn este campo se podrá registrar el registro sanitario o folio de autorización con el que cuenta la empresa para el traslado del medicamento, psicotrópico o estupefaciente.cartaporte31:Mercancias:MercanciaCondicional

Campo Cond. Esp Tr (B5_CONDIC) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "01-Medicamento o 03-Psicotropicos y estupefacientes".

PermisoImportacionEn este campo se podrá registrar el folio del permiso de importación con el que cuenta el medicamento, precursor,
químico de uso dual, psicotrópico o estupefaciente.
cartaporte31:Mercancias:MercanciaCondicional

Campo FolioPer.mp (B5_PERIMP) correspondiente al producto del ítem de la factura. 

Cuando el campo Transporte internacional (A1X_INTERN) se registre "Sí", el campo Entrada o Salida (A1X_ENTSAL) contenga el valor "E-Entrada" y el atributo SectorCOFEPRIS contenga el valor "01-Medicamento o 02-Precursores y químicos de uso dual o 03-Psicotropicos y estupefacientes" este atributo debe existir, en caso contrario se debe omitir.

FolioImpoVUCEMEn este campo se podrá registrar el número de folio de importación VUCEM para la identificación del documento, para el traslado de medicamentos, precursores o químicos de uso dual, sustancias tóxicas, plaguicidas o fertizantes.cartaporte31:Mercancias:MercanciaCondicional

Campo VUCEM (B5_VUCEM) correspondiente al producto del ítem de la factura. 

Cuando el campo Transporte internacional (A1X_INTERN) se registre "Sí", el campo Entrada o Salida (A1X_ENTSAL) contenga el valor "E-Entrada" y el atributo SectorCOFEPRIS contenga el valor "01-Medicamento o 02-Precursores y químicos de uso dual o 04-Sustancias toxicas o 05-Plaguicidas y fertilizantes" este atributo debe existir, en caso contrario se debe omitir.

NumCASEn este campo se podrá registrar el número Chemical Abstracts Service (CAS) con el que se identifica el compuesto químico de la sustancia tóxica.cartaporte31:Mercancias:MercanciaCondicional

Campo CAS (B5_CAS) correspondiente al producto del ítem de la factura. 

Cuando el campo Transporte internacional (A1X_INTERN) se registre "Sí", el campo Entrada o Salida (A1X_ENTSAL) contenga el valor "E-Entrada" y el atributo SectorCOFEPRIS contenga el valor "04-Sustancias toxicas" este atributo debe existir, en caso contrario se debe omitir.

RazonSocialEmpImpEn este campo se podrá registrar el nombre o razón social de la empresa importadora de las sustancias tóxicas.cartaporte31:Mercancias:MercanciaCondicional

Campo Emp. Importa (B5_EMPIMP) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es "04-Sustancias toxicas".

NumRegSanPlagCOFEPRISEn este campo se podrá registrar el número de registro sanitario para plaguicidas o fertilizantes cuya importación, comercialización y uso están permitidos en México, mismo que emite la Comisión Intersecretarial para el Control del Proceso y Uso de Plaguicidas, Fertilizantes y Sustancias Tóxicas (CICLOPLAFEST). cartaporte31:Mercancias:MercanciaCondicional

Campo Reg. Sanitar (B5_REGSAN) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es  "05-Plaguicidas y fertilizantes".

DatosFabricanteEn este campo se podrá registrar el país y nombre o razón social de quien produce o fabrica el ingrediente activo del plaguicida o fertilizante. cartaporte31:Mercancias:MercanciaCondicional

Campo Fabricante (B5_FABRICA) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es  "05-Plaguicidas y fertilizantes".

DatosFormuladorEn este campo se podrá registrar el país y nombre o razón social de quien formula el ingrediente activo del plaguicida o fertilizantecartaporte31:Mercancias:MercanciaCondicional

Campo Formulador (B5_DATFOR) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es  "05-Plaguicidas y fertilizantes".

DatosMaquiladorEn este campo se podrá registrar el país y nombre o razón social de quien maquila el ingrediente activo del plaguicida o fertilizante.cartaporte31:Mercancias:MercanciaCondicional

Campo Maquilador (B5_DATMAQ) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es  "05-Plaguicidas y fertilizantes".

UsoAutorizadoEn este campo se podrá registrar el uso autorizado del
plaguicida o fertilizante de acuerdo a la regulación del país
cartaporte31:Mercancias:MercanciaCondicional

Campo Uso autorizado (B5_USOAUT) correspondiente al producto del ítem de la factura. 

Debe existir si SectorCOFEPRIS es  "05-Plaguicidas y fertilizantes".

PesoEnKgEn este campo se deberá registrar el peso estimado en kilogramos de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:MercanciaRequeridoCampo Peso Producto Prorrateo (D2_PESO) del ítem de la factura.
ValorMercanciaEn este campo se podrá registrar el valor estimado de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:MercanciaCondicionalCampo Valor mercancía (D2_VLRFUE) del ítem de la factura.
MonedaEn este campo se deberá registrar si existe información en el campo “ValorMercancia” y sirve para registrar la clave de la moneda contenida en el catálogo c_Moneda de CFDI, publicado en el portal del SAT, cuando se use moneda nacional se registrará MXN.cartaporte31:Mercancias:MercanciaCondicionalCampo Moneda SAT (CTO_MOESAT) relacionado con el campo Moneda de la Factura (F2_MOEDA).
FraccionArancelariaEn este campo se deberá registrar la clave de la fracción arancelaria del catálogo catComExt:c_FraccionArancelaria, publicado en el portal del SAT, que corresponda con la descripción de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:MercanciaCondicionalCampo Fracción arancelaria (D2_FRACCA) del ítem de la factura.
UUIDComercioExtAtributo opcional para expresar el folio fiscal (UUID) del comprobante de comercio exterior que se relaciona.cartaporte31:Mercancias:MercanciaCondicionalCampo UUID comercio exterior (D2_FCICOD) del ítem de la factura.
TipoMateriaEn este campo se podrá registrar el estado de la materia o producto al realizar una operación de comercio exterior a través de los distintos medios de transporte.cartaporte31:Mercancias:MercanciaCondicional

Campo Tipo de materia (B5_TPOMAT) correspondiente al producto del ítem de la factura.

Cuando el campo Transporte internacional (A1X_INTERN) se registre "Sí", el campo Entrada o Salida (A1X_ENTSAL) contenga el valor "E-Entrada" y contener un valor del catálogo c_TipoMateria, en caso contrario se debe omitir este atributo debe existir, en caso contrario se debe omitir.

DescripcionMateriaEn este campo se podrá registrar la descripción del estado de la materia o producto al realizar una operación de comercio exterior a través de los distintos medios de transporte.cartaporte31:Mercancias:MercanciaCondicional

Campo Descripción de materia (B5_DESMAT) correspondiente al producto del ítem de la factura.

Cuando el campo Tipo de materia (B5_TPOMAT) contenga el valor "05 - Otra", este atributo debe existir, en caso contrario se debe omitir



cartaporte31:Mercancias:Mercancia:DocumentacionaduaneraOpcional

Nodo condicional para registrar la información del(los) documento(s)
aduanero(s) que se encuentra(n) asociado(s) al traslado de los bienes
y/o mercancías por los distintos medios de transporte de procedencia
extranjera para acreditar la legal estancia o tenencia durante su
traslado en territorio nacional.

TipoDocumentoEn este campo se podrá registrar el tipo de documento aduanero que se encuentra asociado al traslado de los bienes y/o mercancías de procedencia extranjera durante su traslado en territorio nacional.cartaporte31:Mercancias:Mercancia:DocumentacionaduaneraRequerido

Campo Tpo Doc Adu (D2_PAFMD5) del ítem de la factura.

Cuando el campo Entrada o Salida (A1X_ENTSAL) contenga el valor "S-Salida", este atributo debe contener una clave distinta de "01-Pedimento" del catálogo "c_DocumentoAduanero".

NumPedimentoEn este campo se podrá registrar el número de pedimento de importación que se encuentra asociado con el traslado de los bienes y/o mercancías de procedencia extranjera para acreditar la legal estancia y tenencia durante su traslado en territorio nacional, el cual se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.cartaporte31:Mercancias:Mercancia:DocumentacionaduaneraCondicional

Campo Num. Ped. (D2_PEDISAT) del ítem de la factura.

Cuando el campo Entrada o Salida (A1X_ENTSAL) contenga el valor "S-Salida" y el atributo “TipoDocumento” contenga el valor  "01-Pedimento" del catálogo "c_DocumentoAduanero", este atributo debe existir, en caso contrario se debe omitir.


IdentDocAduaneroEn este campo se podrá registrar el identificador o folio del
documento aduanero que se encuentra asociado al
traslado de los bienes y/o mercancías de procedencia
extranjera para acreditar la legal estancia o tenencia
durante su traslado en territorio nacional.
cartaporte31:Mercancias:Mercancia:DocumentacionaduaneraCondicional

Campo Num. Ped. (D2_LIQGR) del ítem de la factura.

Cuando el campo Tpo Doc Adu (D2_PAFMD5) contenga una clave de "01-Pedimento" del catálogo "c_DocumentoAduanero", este atributo debe existir y contener un RFC que se encuentre en la lista de RFC inscritos no cancelados del SAT (l_RFC) o un RFC genérico, en caso contrario se debe omitir.

RFCImpoEn este campo se podrá registrar el RFC del importador
de los bienes y/o mercancías que fue registrado en la
documentación aduanera correspondiente y este se
encuentre en la lista de RFC inscritos no cancelados del
SAT (l_RFC)
cartaporte31:Mercancias:Mercancia:DocumentacionaduaneraOpcional

Campo RFC Imp (D2_NRECAGR) del ítem de la factura.

Cuando el campo Num. Ped. (D2_PEDISAT) contenga una valor, este atributo debe existir, en caso contrario se debe omitir.



cartaporte31:Mercancias:Mercancia:PedimentosOpcionalNodo condicional para registrar la información del(los) número(s) de pedimento(s) de importación que se encuentra(n) asociado(s) al traslado de los bienes y/o mercancías de procedencia extranjera para acreditar la legal estancia o tenencia durante su traslado en territorio nacional.
Pedimento

En este campo se deberá registrar el número de pedimento correspondiente a la importación del bien o mercancía, el cual se integra de izquierda a derecha de la siguiente manera:

Últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.

cartaporte31:Mercancias:Mercancia:PedimentosRequeridoCampo Num. Ped. (D2_PEDISAT) del ítem de la factura.


cartaporte31:Mercancias:Mercancia:GuiasIdentificacionOpcional

Nodo condicional para registrar la información del(los) número(s) de guía(s) que se encuentre(n) asociado(s) al(los) paquete(s) que se traslada(n) dentro del territorio nacional.

Aplica a Servicio de Paquetería y Mensajería

NumeroGuiaIdentificacionAtributo requerido para expresar el número de guía de cada paquete que se encuentra asociado con el traslado de los bienes y/o mercancías en territorio nacional.cartaporte31:Mercancias:Mercancia:GuiasIdentificacionRequeridoN/A
DescripGuiaIdentificacionAtributo requerido para expresar la descripción del contenido del paquete o carga registrada en la guía, o en el número de identificación, que se encuentra asociado con el traslado de los bienes y/o mercancías dentro del territorio nacional.cartaporte31:Mercancias:Mercancia:GuiasIdentificacionRequeridoN/A
PesoGuiaIdentificacionAtributo requerido para indicar en kilogramos, el peso del paquete o carga que se está trasladando en territorio nacional y que se encuentra registrado en la guía o el número de identificación correspondiente.cartaporte31:Mercancias:Mercancia:GuiasIdentificacionRequeridoN/A


cartaporte31:Mercancias:Mercancia:CantidadTransportaOpcional

Nodo opcional para registrar la cantidad de los bienes y/o mercancías que se trasladan a través de los distintos medios de transporte, que será captada o distribuida en distintos puntos, a fin de identificar el punto de origen y destino correspondiente.

CantidadEn este campo se podrá registrar el número de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:Mercancia:CantidadTransportaRequeridoCampo Cantidad del producto (D2_QUANT), del ítem de la factura.
IDOrigenEn este campo se deberá capturar un valor de los registrados en el campo “IDUbicacion”, con valor “Origen” en el campo “TipoUbicacion”.cartaporte31:Mercancias:Mercancia:CantidadTransportaRequerido

Campo Id Ub Origen (D2_CNATREC) del ítem de la factura.

Debe corresponder a algún Id Ubicación (A1Y_ORIGEN) con Tipo Ubicación (A1Y_TIPEST) = "Origen".

IDDestinoEn este campo se deberá capturar un valor de los registrados en el campo “IDUbicacion”, con valor “Destino” en el campo “TipoUbicacion”.cartaporte31:Mercancias:Mercancia:CantidadTransportaRequerido

Campo Id Ub Destino (D2_GRUPONC) del ítem de la factura.

Debe corresponder a algún Id Ubicación (A1Y_ORIGEN) con Tipo Ubicación (A1Y_TIPEST) = "Destino".

CvesTransporteEn este campo se deberá registrar la clave de del transporte conforme al catálogo c_CveTransporte del complemento Carta Porte, publicado en el portal del SAT.cartaporte31:Mercancias:Mercancia:CantidadTransportaOpcional"01"


cartaporte31:Mercancias:Mercancia:DetalleMercanciaCondicional

Nodo condicional para registrar especificaciones de los bienes y/o mercancías que se trasladan a través de los distintos medios de transporte.

Aplica para transporte maritimo.

UnidadPesoMercEn este campo se deberá registrar la clave de la unidad de peso de acuerdo al catálogo c_ClaveUnidadPeso del complemento Carta Porte, que se encuentra publicado en el Portal de Internet del SAT.cartaporte31:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
PesoBrutoEn este campo se deberá registrar el peso bruto total de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
PesoNetoEn este campo se deberá registrar el peso neto de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
PesoTaraEn este campo se deberá registrar el valor que corresponde a la diferencia del valor capturado en el campo PesoBruto, y el valor registrado en el campo PesoNeto de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
NumPiezasEn este campo se podrá registrar el número de piezas de los bienes y/o mercancías que se trasladan.cartaporte31:Mercancias:Mercancia:DetalleMercanciaOpcionalN/A


cartaporte31:Mercancias:AutotransporteCondicionalNodo condicional para registrar la información que permita la identificación del autotransporte de carga, por medio del cual se transportan los bienes y/o mercancías, que transitan a través de las carreteras del territorio nacional.
PermSCT

Este campo sirve para registrar la clave del tipo de permiso para realizar el servicio de traslado de bienes y/o mercancías.

cartaporte31:Mercancias:AutotransporteRequeridoCampo Tipo de permiso SCT (A1X_PERSCT) de Carta Porte.
NumPermisoSCTEste campo sirve para registrar el número de permiso otorgado a la unidad que realiza el traslado de bienes y/o mercancías en territorio nacional.cartaporte31:Mercancias:AutotransporteRequeridoCampo Número permiso SCT (A1X_PERMIS) de Carta Porte.


cartaporte31:Mercancias:Autotransporte:IdentificacionVehicularRequeridoNodo requerido para registrar los datos de identificación del autotransporte en el que se trasladan los bienes y/o mercancías.
ConfigVehicularEn este campo se debe registrar la clave asignada al tipo de transporte en el que se realiza el traslado de los bienes y/o mercancías, conforme al catálogo c_ConfigAutotransporte del complemento Carta Porte, publicado en el portal del SAT.cartaporte31:Mercancias:Autotransporte:IdentificacionVehicularRequeridoCampo Configuración vehicular (DA3_CONFIG) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte.
PesoBrutoVehicularEn este campo se debe registrar en toneladas el peso bruto
vehicular permitido del autotransporte de acuerdo a la
NOM-SCT-012-2017 que es utilizado para realizar el
traslado de los bienes y/o mercancías.
cartaporte31:Mercancias:Autotransporte:IdentificacionVehicularRequeridoCampo Peso Bruto V (A1X_PESOBV) de Carta Porte.
PlacaVMEn este campo se deberá registrar la placa del vehículo en el que se realiza el traslado de bienes y/o mercancías, se deben registrar solo los caracteres alfanuméricos, sin guiones y espacios.cartaporte31:Mercancias:Autotransporte:IdentificacionVehicularRequeridoCampo Placa (DA3_PLACA) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte.
AnioModeloVMEn este campo se deberá registrar el año del vehículo que se está utilizando para trasladar los bienes y/o mercancías.cartaporte31:Mercancias:Autotransporte:IdentificacionVehicularRequeridoCampo Número de placa (DA3_ANOMOD) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte.


cartaporte31:Mercancias:Autotransporte:SegurosRequerido

Nodo requerido para registrar los datos de las pólizas de seguro que cubren los riesgos en el traslado de los bienes y/o mercancías.

Obligatorio si MaterialPeligroso = "Sí" en alguna mercancía.

AseguraRespCivilEn este campo se deberá registrar el nombre de la aseguradora que cubre los riesgos de responsabilidad civil del autotransporte utilizado para el traslado de los bienes y/o mercancías.cartaporte31:Mercancias:Autotransporte:SegurosRequeridoCampo Nombre de la aseguradora (A1X_ASEGUR) de Carta Porte.
PolizaRespCivilEn este campo se deberá registrar el número de la póliza de seguro que emite la aseguradora que cubre los riesgos de responsabilidad civil del autotransporte utilizado para el traslado de los bienes y/o mercancías.cartaporte31:Mercancias:Autotransporte:SegurosRequeridoCampo Número de póliza (A1X_POLIZA) de Carta Porte.
AseguraMedAmbienteEn este campo se podrá registrar el nombre de la aseguradora que cubre los posibles daños al medio ambiente, que es aplicable para los transportistas que realicen el traslado de materiales o residuos peligrosos, es decir, cuando se capture información en el campo MaterialPeligroso.cartaporte31:Mercancias:Autotransporte:SegurosOpcionalCampo Aseg Med Amb (A1X_ASEGMA) de Carta Porte.
PolizaMedAmbienteEn este campo se podrá registrar el número de póliza asignado por la aseguradora, que cubre los posibles daños al medio ambiente aplicable para los transportistas que realicen el traslado de materiales o residuos peligrosos.cartaporte31:Mercancias:Autotransporte:SegurosOpcionalCampo Póliza Med A (A1X_POLMA) de Carta Porte.
AseguraCargaEn este campo se podrá registrar el nombre de la aseguradora que cubre los riesgos de la carga (bienes y/o mercancías) transportada.cartaporte31:Mercancias:Autotransporte:SegurosOpcionalCampo Aseg. Carga (A1X_ASECGA) de Carta Porte.
PolizaCargaEn este campo se podrá registrar el número de póliza que emite la aseguradora que cubre los riesgos de la carga (bienes y/o mercancías) transportada.cartaporte31:Mercancias:Autotransporte:SegurosOpcionalCampo Póliza Carga (A1X_POLCGA) de Carta Porte.
PrimaSeguroEn este campo se podrá registrar el valor del importe de la prima del seguro contratado, por el cargo adicional acordado entre el transportista y el cliente conforme a lo establecido en las disposiciones jurídicas que para tal efecto emita la SCT.cartaporte31:Mercancias:Autotransporte:SegurosOpcionalCampo Prima Seguro (A1X_PRISEG) de Carta Porte.


cartaporte31:Mercancias:Autotransporte:Remolques:RemolqueOpcional

Nodo condicional para registrar los datos del(los) remolque(s) o semirremolque(s) que se adaptan al autotransporte para realizar el traslado de los bienes y/o mercancías.

Solo se podrán registrar hasta 2 secciones de Remolque.

Obligatorio si ConfigVehicular en el catálogo c_ConfigAutotransporte, columna “Remolque” es “0,1” o “1”, en caso contrario se debe omitir.

SubTipoRemEn este campo se deberá registrar la clave del subtipo de remolque o semirremolque conforme al catálogo c_SubTipoRem del complemento Carta Porte, publicado en el portal del SAT.cartaporte31:Mercancias:Autotransporte:Remolques:RemolqueRequeridoCampo Subtipo remolque (DA3_SUBREM) del Vehículo, relacionado con el campo Código de remolque (A1X_REMOLQ | A1XREMOL2) de Carta Porte.
PlacaEn este campo se deberá registrar la placa del remolque o semirremolque en el que se realiza el traslado de bienes y/o mercancías, se deben registrar solo los caracteres alfanuméricos, sin guiones ni espacios.cartaporte31:Mercancias:Autotransporte:Remolques:RemolqueRequeridoCampo Placa (DA3_PLACA) del Vehículo, relacionado con el campo Código de remolque (A1X_REMOLQ | A1XREMOL2) de Carta Porte.


cartaporte31:FiguraTransporteOpcionalNodo opcional para indicar los datos de la figura del transporte que interviene en el traslado de los bienes o mercancías, cuando el dueño del medio de transporte es diferente del emisor del comprobante con el complemento carta porte.


cartaporte31:FiguraTransporte:TiposFigura

 TipoFiguraEn este campo se deberá registrar la clave de la figura de transporte conforme al catálogo c_FiguraTransporte del complemento Carta Porte que se encuentra publicado en el Portal de Internet del SAT.cartaporte31:FiguraTransporte:TiposFiguraRequerido

Indica tipo de registro que se informa:

"01" = Operador

"02" = Propietario

"03" = Arrendador

 RFCFigura

En este campo se deberá registrar la clave en el RFC de la figura de transporte que interviene en el traslado de bienes y/o mercancías.

Si la figura de transporte que interviene en el traslado de bienes y/o mercancías es un residente en el extranjero, este campo se debe omitir.

cartaporte31:FiguraTransporte:TiposFiguraCondicional

Si TipoFigura es "01":

Campo RFC del Conductor (DA4_CGC) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.

Si TipoFigura es "02" o "03":

Campo RFC del Transportista (A4_CGC) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.

 NumLicenciaEn este campo se deberá registrar el número de la licencia de conducir o permiso otorgado al operador de la unidad en la que se está realizando el traslado de bienes y/o mercancías vía autotransporte.cartaporte31:FiguraTransporte:TiposFiguraCondicional

Si TipoFigura es "01":

Campo No. Licencia de conducir (DA4_NUMCNH) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.

Si TipoFigura es "02" o "03":

N/A

 NombreFiguraEn este campo se deberá registrar el nombre de la figura de transporte que interviene en el traslado de bienes y/o mercancías.cartaporte31:FiguraTransporte:TiposFiguraOpcional

Si TipoFigura es "01":

Campo Nombre del conductor (DA4_NOME) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.

Si TipoFigura es "02" o "03":

Campo Nombre de Transportadora (A4_NOME) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.

 NumRegIdTribFiguraEn este campo se podrá registrar el número de identificación fiscal que corresponde al tipo de la figura de transporte.cartaporte31:FiguraTransporte:TiposFiguraCondicionalN/A
 ResidenciaFiscalFiguraEn este campo podrás registrar la clave del país que corresponde al tipo de figura de transporte, siempre que se haya registrado un valor en el campo “NumRegIdTrib”.cartaporte31:FiguraTransporte:TiposFiguraCondicionalN/A


cartaporte31:FiguraTransporte:TiposFigura:PartesTransporteCondicional

Nodo condicional para indicar los datos de las partes del transporte de las cuales el emisor del comprobante es distinto al dueño de las mismas, por ejemplo: vehículos, máquinas, contenedores, plataformas, etc; mismos que son utilizados para el traslado de los bienes y/o mercancías.

Aplica si TipoFigura es 02-Propietario o 03-Arrendador.

ParteTransporteEn este campo se deberá registrar la clave que pertenece al transporte o la parte de transporte que no es propiedad del emisor del comprobante y que se encuentra en el catálogo c_ParteTransporte del complemento Carta Porte, publicado en el Portal del SAT.cartaporte31:FiguraTransporte:TiposFigura:PartesTransporteRequeridoCampo Parte Transporte (AE0_PARTE)  de Propietarios/Arrendatarios.


cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalNodo opcional para registrar información del domicilio del(los) tipo(s) de figura transporte que intervenga(n) en el traslado de los bienes y/o mercancías.
 CalleEn este campo se podrá registrar el nombre de la calle en la que está ubicado el domicilio de la Figura de transporte.cartaporte31:FiguraTransporte:TiposFigura:DomicilioRequeridoCampo Dirección de la Transportad. (A4_END) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 NumeroExteriorEn este campo se podrá registrar el número exterior en donde se ubica el domicilio de la Figura de transporte.cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalCampo Número exterior (A4_NUMEXT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 NumeroInteriorEn este campo se podrá registrar el número interior en caso de existir, en donde se ubica el domicilio de la Figura de transporte.cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalCampo Número exterior (A4_NUMINT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 ColoniaEn este campo se podrá registrar la clave de la colonia en donde se ubica el domicilio de la Figura de transporte. El valor registrado en este campo debe coincidir con la clave del código postal registrado en el campo “CodigoPostal”.cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalCampo Código de colonia (A4_CBAIRRO) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 Localidad

En este campo se podrá registrar la clave que corresponda a la ciudad o población en donde se encuentra ubicado el domicilio de la Figura de transporte, si la clave del país es distinta a “MEX” se puede registrar texto libre.

La clave capturada en este campo debe coincidir con el estado capturado en el campo “Estado”.

cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalCampo Código localidad (A4_CLOCALI) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 ReferenciaEste campo sirve para especificar una referencia geográfica adicional que permita una fácil o precisa ubicación del domicilio de la Figura de transporte.cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalN/A
 Municipio

En este campo se podrá registrar el municipio, delegación, alcaldía o condado en donde se encuentra ubicado el domicilio de la Figura de transporte, si la clave del país es distinta a “MEX” se puede registrar texto libre.

El dato capturado en este campo debe coincidir con el estado capturado en el campo “Estado”.

cartaporte31:FiguraTransporte:TiposFigura:DomicilioOpcionalCampo Código del municipio (A4_COD_MUN) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 Estado

En este campo se deberá registrar el estado, entidad, región, comunidad, en donde se encuentra ubicado el domicilio de la Figura de transporte, si la clave del país es distinta a “MEX”, “USA” o "CAN” se puede registrar texto libre.

El dato capturado en este campo debe coincidir con el país capturado en el campo “Pais”.

cartaporte31:FiguraTransporte:TiposFigura:DomicilioRequeridoCampo Estado del Transportista (A4_EST) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 Pais

En este campo se deberá registrar la clave del país en donde se encuentra ubicado el domicilio de la Figura de transporte.

Este campo debe contener una clave del catálogo c_Pais, publicado en el portal del SAT.

cartaporte31:FiguraTransporte:TiposFigura:DomicilioRequeridoCampo Código del país (A4_CODPAIS) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
 CodigoPostal

En este campo se deberá registrar la clave del código postal en donde se encuentra el domicilio de la Figura de transporte.

El dato capturado en este campo debe coincidir con:

- La columna c_Estado, debe ser la misma que la capturada en el campo Estado.

- La columna c_Municipio, debe ser la misma que la capturada en el campo Municipio.

- La columna c_Localidad, debe ser la misma que la capturada en el campo Localidad.

cartaporte31:FiguraTransporte:TiposFigura:DomicilioRequeridoCampo Cod Dirección Postal (A4_CEP) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.

...