Histórico da Página
...
Aviso | ||
---|---|---|
| ||
|
Rutinas utilizadas
Para tener activa la funcionalidad de Complemento de Carta Porte para versión 3.0, es necesario tener actualizadas con una fecha mayor o igual las siguientes rutinas:
...
Rutina | Nombre Técnico | Fecha |
---|---|---|
LOCXFUNA | Funciones generales de documentos fiscales | 0512/07/2024 |
MATR475 | Informe de Notas Fiscales | 0511/07/2024 |
FATSMEX.PRW | Generación de XML para Documentos de Salida | 05/07/2024 |
FATSMEX.INI | Estructura de XML para Documentos de Salida | 05/07/2024 |
...
Actualización de las direcciones URL de los esquemas XML y XSD para actualizarlos a Carta Porte 3.1:
Anterior
Nuevo
http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte30.xsd http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte31.xsdpara actualizarlos a Carta Porte 3.1:
Anterior
Nuevo
http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte30.xsd http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte31.xsd 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: 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.
Informações title FASTMEX.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))
Campo | Descripción | Nodo | Uso | Dato en Protheus |
cfdi:Comprobante | ||||
Version | Versión CFDI. | cfdi:Comprobante | "4.0" | |
FormaPago | En 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 comprobante | cfdi:Comprobante | CFDI de tipo ingreso: "I" CFDI de tipo traslado: "T" | |
MetodoPago | Este 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 | |
Subtotal | Si 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. | |
Moneda | Si 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). | |
Total | Si 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 | ||||
TipoRelacion | Debe 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 | ||||
RFC | Si 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. | |
UsoCFDI | Si 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 Porte | cfdi: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. | ||
Version | Atributo requerido con valor prefijado que indica la versión del complemento Carta Porte. | cartaporte31:CartaPorte | Requerido | "3.01" |
TranspInternac | En 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:CartaPorte | Requerido | 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:CartaPorte | Condicional | 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:CartaPorte | Condicional | 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:CartaPorte | Condicional | 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). |
TotalDistRec | En 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:CartaPorte | Condicional | Suma de los valores Distancia recorrida (A1Y_DISREC) del nodo Ubicaciones. |
IdCCP | Atributo 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 Porte | cartaporte31:CartaPorte | Requerido | El 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. |
RegistroISTMO | En 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:CartaPorte | Condicional | Este atributo se informa si el campo de Carta Porte Reg. ISTMO (A1X_RISTMO) es "Sí". |
UbicacionPoloOrigen | En 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:CartaPorte | Condicional | Este atributo se informa si el campo de Carta Porte Reg. ISTMO (A1X_RISTMO) es "Sí". Campo de Carta Porte Polo Origen (A1X_POLOOR). |
UbicacionPoloDestino | En 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 Tehuantepec | cartaporte31:CartaPorte | Condicional | 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:RegimenesAduaneros | Condicional | 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). | ||
RegimenAduanero | Expresar el régimen aduanero al cual se destina el bien y/o mercancía. | cartaporte31:RegimenAduaneroCCP | Condicional | 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 Campo de Carta Porte Rég. Aduana (A1X_REGADU). |
cartaporte31:Ubicaciones:Ubicacion | Requerido | Nodo 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. | ||
TipoUbicacion | En este campo se deberá registrar el valor que corresponda al tipo de ubicación, ya sea "Origen" o "Destino". | cartaporte31:Ubicaciones:Ubicacion | Requerido | Si el campo Tipo Ubicación (A1Y_TIPEST) es "D" "Origen" De lo contrario: "Destino" |
IDUbicacion | Cuando 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:Ubicacion | Opcional | Campo 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:Ubicacion | Requerido | Campo RFC (A1Y_RFCORI) de Ubicaciones. |
NombreRemitenteDestinatario | En este campo se podrá registrar el nombre del remitente o destinatario de los bienes y/o mercancías que se trasladan. | cartaporte31:Ubicaciones:Ubicacion | Opcional | Campo Nombre (A1Y_NOMORI) de Ubicaciones. |
NumRegIdTrib | En 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:Ubicacion | Opcional | N/A |
ResidenciaFiscal | En 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:Ubicacion | Opcional | N/A |
NumEstacion | Atributo 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:Ubicacion | Opcional | N/A |
NombreEstacion | Atributo 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:Ubicacion | Opcional | N/A |
NavegacionTrafico | Atributo 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:Ubicacion | Opcional | N/A |
FechaHoraSalidaLlegada | En 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:Ubicacion | Requerido | 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:Ubicacion | Condicional | N/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:Ubicacion | Condicional | 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:Domicilio | Condicional | Nodo 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. | ||
Calle | En 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:Domicilio | Requerido | Campo Calle (A1Y_CALORI) de Ubicaciones. |
NumeroExterior | En 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:Domicilio | Opcional | Campo Número exterior (A1Y_EXTORI) de Ubicaciones. |
NumeroInterior | En 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:Domicilio | Opcional | Campo Número interior (A1Y_INTORI) de Ubicaciones. |
Colonia | En 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:Domicilio | Opcional | 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:Domicilio | Opcional | Campo Localidad (A1Y_LOCORI) de Ubicaciones. |
Referencia | Este 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:Domicilio | Opcional | N/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:Domicilio | Opcional | 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:Domicilio | Requerido | 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:Domicilio | Requerido | 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:Domicilio | Requerido | Campo Código postal (A1Y_CPORI) de Ubicaciones. |
cartaporte31:Mercancias | Requerido | Nodo requerido para registrar la información de los bienes o mercancías que se trasladan en los distintos medios de transporte. | ||
PesoBrutoTotal | En este campo se deberá registrar la suma del peso bruto de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias | Requerido | Suma de PesoEnKg (D2_PESO). |
UnidadPeso | En este campo se deberá registrar la clave de la unidad de peso que corresponda al valor registrado en el campo PesoBrutoTotal. | cartaporte31:Mercancias | Requerido | "KGM" |
PesoNetoTotal | Atributo condicional para registrar la suma de los valores indicados en el atributo “PesoNeto” del nodo “DetalleMercancia”. | cartaporte31:Mercancias | Condicional | N/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:Mercancias | Requerido | Número de ítems de productos de la factura. |
CargoPorTasacion | En 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:Mercancias | Opcional | N/A |
LogisticaInversaRecoleccionDevolucion | Atributo 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:Mercancias | Opcional | Campo (A1X_LOGDEV) de Carta Porte: "Sí" o "No" |
cartaporte31:Mercancias:Mercancia | Requerido | Nodo 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:Mercancia | Requerido | Campo Producto o Servicio SAT (B1_PRODSAT) correspondiente al producto del ítem de la factura. |
ClaveSTCC | En 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:Mercancia | Opcional | N/A |
Descripcion | En este campo se deberá registrar la descripción de los bienes y/o mercancías que se trasladan vía autotransporte. | cartaporte31:Mercancias:Mercancia | Condicional | 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. |
Cantidad | En este campo se deberá registrar la cantidad de bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia | Condicional | Campo 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:Mercancia | Condicional | Campo Unidad medida SAT (AH_UNIDSAT) que corresponde al producto del ítem de la factura. |
Unidad | En 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:Mercancia | Opcional | N/A |
Dimensiones | En 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:Mercancia | Opcional | N/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:Mercancia | Opcional | 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: |
CveMaterialPeligroso | En 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:Mercancia | Condicional | Campo Clave material peligroso (D2_GRPCST) del ítem de la factura. |
Embalaje | En 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:Mercancia | Condicional | Campo Clave de embalaje (D2_TNATREC) del ítem de la factura. |
DescripEmbalaje | En 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:Mercancia | Condicional | Descripción del Catálogo Tipos de Embalaje (S021) de acuerdo al campo Clave de embalaje (D2_TNATREC) del ítem de la factura. |
SectorCOFEPRIS | En 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:Mercancia | Condicional | Campo Sec.COFEPRIS (B5_SECTOR) correspondiente al producto del ítem de la factura. |
NombreIngredienteActivo | En 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:Mercancia | Condicional | 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". |
NomQuimico | En 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:Mercancia | Condicional | 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". |
DenominacionGenericaProd | En 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:Mercancia | Condicional | 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". |
DenominacionDistintivaProd | En 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:Mercancia | Condicional | 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". |
Fabricante | En 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:Mercancia | Condicional | 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". |
FechaCaducidad | En 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:Mercancia | Condicional | 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". |
LoteMedicamento | En 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:Mercancia | Condicional | 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". |
FormaFarmaceutica | En 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:Mercancia | Condicional | 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". |
CondicionesEspTransp | En 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:Mercancia | Condicional | 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". |
RegistroSanitarioFolioAutorizacion | En 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:Mercancia | Condicional | 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". |
PermisoImportacion | En 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:Mercancia | Condicional | 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. |
FolioImpoVUCEM | En 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:Mercancia | Condicional | 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. |
NumCAS | En 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:Mercancia | Condicional | 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. |
RazonSocialEmpImp | En este campo se podrá registrar el nombre o razón social de la empresa importadora de las sustancias tóxicas. | cartaporte31:Mercancias:Mercancia | Condicional | Campo Emp. Importa (B5_EMPIMP) correspondiente al producto del ítem de la factura. Debe existir si SectorCOFEPRIS es "04-Sustancias toxicas". |
NumRegSanPlagCOFEPRIS | En 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:Mercancia | Condicional | Campo Reg. Sanitar (B5_REGSAN) correspondiente al producto del ítem de la factura. Debe existir si SectorCOFEPRIS es "05-Plaguicidas y fertilizantes". |
DatosFabricante | En 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:Mercancia | Condicional | Campo Fabricante (B5_FABRICA) correspondiente al producto del ítem de la factura. Debe existir si SectorCOFEPRIS es "05-Plaguicidas y fertilizantes". |
DatosFormulador | En este campo se podrá registrar el país y nombre o razón social de quien formula el ingrediente activo del plaguicida o fertilizante | cartaporte31:Mercancias:Mercancia | Condicional | Campo Formulador (B5_DATFOR) correspondiente al producto del ítem de la factura. Debe existir si SectorCOFEPRIS es "05-Plaguicidas y fertilizantes". |
DatosMaquilador | En 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:Mercancia | Condicional | Campo Maquilador (B5_DATMAQ) correspondiente al producto del ítem de la factura. Debe existir si SectorCOFEPRIS es "05-Plaguicidas y fertilizantes". |
UsoAutorizado | En este campo se podrá registrar el uso autorizado del plaguicida o fertilizante de acuerdo a la regulación del país | cartaporte31:Mercancias:Mercancia | Condicional | Campo Uso autorizado (B5_USOAUT) correspondiente al producto del ítem de la factura. Debe existir si SectorCOFEPRIS es "05-Plaguicidas y fertilizantes". |
PesoEnKg | En este campo se deberá registrar el peso estimado en kilogramos de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia | Requerido | Campo Peso Producto Prorrateo (D2_PESO) del ítem de la factura. |
ValorMercancia | En este campo se podrá registrar el valor estimado de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia | Condicional | Campo Valor mercancía (D2_VLRFUE) del ítem de la factura. |
Moneda | En 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:Mercancia | Condicional | Campo Moneda SAT (CTO_MOESAT) relacionado con el campo Moneda de la Factura (F2_MOEDA). |
FraccionArancelaria | En 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:Mercancia | Condicional | Campo Fracción arancelaria (D2_FRACCA) del ítem de la factura. |
UUIDComercioExt | Atributo opcional para expresar el folio fiscal (UUID) del comprobante de comercio exterior que se relaciona. | cartaporte31:Mercancias:Mercancia | Condicional | Campo UUID comercio exterior (D2_FCICOD) del ítem de la factura. |
TipoMateria | En 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:Mercancia | Condicional | 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. |
DescripcionMateria | En 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:Mercancia | Condicional | 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:Documentacionaduanera | Opcional | Nodo condicional para registrar la información del(los) documento(s) | ||
TipoDocumento | En 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:Documentacionaduanera | Requerido | 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". |
NumPedimento | En 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:Documentacionaduanera | Condicional | 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. |
IdentDocAduanero | En 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:Documentacionaduanera | Condicional | 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. |
RFCImpo | En 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:Documentacionaduanera | Opcional | 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:Pedimentos | Opcional | Nodo 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:Pedimentos | Requerido | Campo Num. Ped. (D2_PEDISAT) del ítem de la factura. |
cartaporte31:Mercancias:Mercancia:GuiasIdentificacion | Opcional | 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 | ||
NumeroGuiaIdentificacion | Atributo 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:GuiasIdentificacion | Requerido | N/A |
DescripGuiaIdentificacion | Atributo 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:GuiasIdentificacion | Requerido | N/A |
PesoGuiaIdentificacion | Atributo 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:GuiasIdentificacion | Requerido | N/A |
cartaporte31:Mercancias:Mercancia:CantidadTransporta | Opcional | 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. | ||
Cantidad | En este campo se podrá registrar el número de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia:CantidadTransporta | Requerido | Campo Cantidad del producto (D2_QUANT), del ítem de la factura. |
IDOrigen | En este campo se deberá capturar un valor de los registrados en el campo “IDUbicacion”, con valor “Origen” en el campo “TipoUbicacion”. | cartaporte31:Mercancias:Mercancia:CantidadTransporta | Requerido | 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". |
IDDestino | En este campo se deberá capturar un valor de los registrados en el campo “IDUbicacion”, con valor “Destino” en el campo “TipoUbicacion”. | cartaporte31:Mercancias:Mercancia:CantidadTransporta | Requerido | 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". |
CvesTransporte | En 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:CantidadTransporta | Opcional | "01" |
cartaporte31:Mercancias:Mercancia:DetalleMercancia | Condicional | 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. | ||
UnidadPesoMerc | En 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:DetalleMercancia | Requerido | N/A |
PesoBruto | En este campo se deberá registrar el peso bruto total de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia:DetalleMercancia | Requerido | N/A |
PesoNeto | En este campo se deberá registrar el peso neto de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia:DetalleMercancia | Requerido | N/A |
PesoTara | En 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:DetalleMercancia | Requerido | N/A |
NumPiezas | En este campo se podrá registrar el número de piezas de los bienes y/o mercancías que se trasladan. | cartaporte31:Mercancias:Mercancia:DetalleMercancia | Opcional | N/A |
cartaporte31:Mercancias:Autotransporte | Condicional | Nodo 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:Autotransporte | Requerido | Campo Tipo de permiso SCT (A1X_PERSCT) de Carta Porte. |
NumPermisoSCT | Este 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:Autotransporte | Requerido | Campo Número permiso SCT (A1X_PERMIS) de Carta Porte. |
cartaporte31:Mercancias:Autotransporte:IdentificacionVehicular | Requerido | Nodo requerido para registrar los datos de identificación del autotransporte en el que se trasladan los bienes y/o mercancías. | ||
ConfigVehicular | En 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:IdentificacionVehicular | Requerido | Campo Configuración vehicular (DA3_CONFIG) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte. |
PesoBrutoVehicular | En 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:IdentificacionVehicular | Requerido | Campo Peso Bruto V (A1X_PESOBV) de Carta Porte. |
PlacaVM | En 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:IdentificacionVehicular | Requerido | Campo Placa (DA3_PLACA) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte. |
AnioModeloVM | En 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:IdentificacionVehicular | Requerido | Campo 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:Seguros | Requerido | 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. | ||
AseguraRespCivil | En 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:Seguros | Requerido | Campo Nombre de la aseguradora (A1X_ASEGUR) de Carta Porte. |
PolizaRespCivil | En 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:Seguros | Requerido | Campo Número de póliza (A1X_POLIZA) de Carta Porte. |
AseguraMedAmbiente | En 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:Seguros | Opcional | Campo Aseg Med Amb (A1X_ASEGMA) de Carta Porte. |
PolizaMedAmbiente | En 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:Seguros | Opcional | Campo Póliza Med A (A1X_POLMA) de Carta Porte. |
AseguraCarga | En 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:Seguros | Opcional | Campo Aseg. Carga (A1X_ASECGA) de Carta Porte. |
PolizaCarga | En 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:Seguros | Opcional | Campo Póliza Carga (A1X_POLCGA) de Carta Porte. |
PrimaSeguro | En 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:Seguros | Opcional | Campo Prima Seguro (A1X_PRISEG) de Carta Porte. |
cartaporte31:Mercancias:Autotransporte:Remolques:Remolque | Opcional | 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. | ||
SubTipoRem | En 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:Remolque | Requerido | Campo Subtipo remolque (DA3_SUBREM) del Vehículo, relacionado con el campo Código de remolque (A1X_REMOLQ | A1XREMOL2) de Carta Porte. |
Placa | En 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:Remolque | Requerido | Campo Placa (DA3_PLACA) del Vehículo, relacionado con el campo Código de remolque (A1X_REMOLQ | A1XREMOL2) de Carta Porte. |
cartaporte31:FiguraTransporte | Opcional | Nodo 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 | ||||
TipoFigura | En 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:TiposFigura | Requerido | 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:TiposFigura | Condicional | 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. |
NumLicencia | En 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:TiposFigura | Condicional | 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 |
NombreFigura | En 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:TiposFigura | Opcional | 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. |
NumRegIdTribFigura | En este campo se podrá registrar el número de identificación fiscal que corresponde al tipo de la figura de transporte. | cartaporte31:FiguraTransporte:TiposFigura | Condicional | N/A |
ResidenciaFiscalFigura | En 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:TiposFigura | Condicional | N/A |
cartaporte31:FiguraTransporte:TiposFigura:PartesTransporte | Condicional | 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. | ||
ParteTransporte | En 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:PartesTransporte | Requerido | Campo Parte Transporte (AE0_PARTE) de Propietarios/Arrendatarios. |
cartaporte31:FiguraTransporte:TiposFigura:Domicilio | Opcional | Nodo 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. | ||
Calle | En 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:Domicilio | Requerido | Campo Dirección de la Transportad. (A4_END) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios. |
NumeroExterior | En este campo se podrá registrar el número exterior en donde se ubica el domicilio de la Figura de transporte. | cartaporte31:FiguraTransporte:TiposFigura:Domicilio | Opcional | Campo Número exterior (A4_NUMEXT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios. |
NumeroInterior | En 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:Domicilio | Opcional | Campo Número exterior (A4_NUMINT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios. |
Colonia | En 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:Domicilio | Opcional | Campo 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:Domicilio | Opcional | Campo Código localidad (A4_CLOCALI) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios. |
Referencia | Este 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:Domicilio | Opcional | N/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:Domicilio | Opcional | Campo 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:Domicilio | Requerido | Campo 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:Domicilio | Requerido | Campo 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:Domicilio | Requerido | Campo Cod Dirección Postal (A4_CEP) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios. |
...
Aviso | ||
---|---|---|
| ||
En esta nueva A partir de la versión del Complemento Carta Porte 3.0 los contribuyentes que prestan servicios de autotransporte a empresas de la industria farmacéutica y se encargan del transporte de sustancias controladas deberán dar nueva información mas detallada de sus operaciones al SAT a partir del 1 de Enero de 2024. Para ello se agregó el S032- Catálogo de Sector Cofepris (c_SectorCOFEPRIS.csv), está información es importante indicarla antes de generar una Factura con Complemento de Carta Porte dentro del Complementos del Producto (Tabla SB5), e indicarlo en el campo Sec.COFEPRIS (B5_SECTOR). Al indicar algún dato en el campo Sec.COFEPRIS (B5_SECTOR), al realizar el timbrado podrá solicitar algún otra información requerida según el código de Sector seleccionado para conocer la información requerida en base al sector Cofepris véase Esquema de generación del XML de Complemento de Carta Porte |
...
- En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
Incluir una Factura de Venta de tipo Traslado.
Aviso title IMPORTANTE Para el proceso de Traslados con Complemento Carta Porte 3.0 o superios es necesario que el RFC del Cliente (A1_CGC) sea el mismo que el RFC del Emisor (SM0_CGC).
- Informar el campo ¿Carta Porte? (F2_TPCOMPL) con el valor S-Si.
- En el detalle informar:
El o los productos a transportar, utilizando un Tipo de Salida que no afecte a stock ni a financiero (sin utilizar impuestos a calcular y configurando el campo Ctd. Cero (F4_QTDZERO) con opción 2-No).
Aviso title IMPORTANTE Se deben dejar los campos Valor Unit. (D2_PRCVEN) y Valor Total (D2_TOTAL) vacíos e informar el campo el campo Vl.Mercancía (D2_VLRFUE).
Si el Producto es considerado como material peligroso según la columna Material peligroso del catálogo c_ClaveProdServCP del SAT se deben informar los campos Cve.Mat.Pel. (D2_GRPCST) y Embalaje (D2_TNATREC).
Si en la configuración del Complementos del Producto el campo Sec COFEPRIS (B5_SECTOR) tiene el valor 01, 02 o 03, se deben informar los campos Lote (D2_LOTECTL) y Validez Lote (D2_DTVALID).
- Desde Otras acciones ejecutar la acción Carta Porte.
Informar los datos para el Complemento de Carta Porte y presionar Confirmar.
Aviso title IMPORTANTE Es necesario informar los datos de la sección Ubicaciones, informando al menos un Origen y/o Destino, e indicando el campo RFC (A1Y_RFCORI).
- Presionar Grabar para confirmar el guardado de la Factura de Venta,
- Confirmar la generación del comprobante fiscal digital
- Confirmar el timbrado del comprobante fiscal digital.
- Validar que el timbrado haya sido exitoso, que en el XML se visualice el nodo Complemento:cartaporte30.
...