ÍNDICE


01. VISIÓN GENERAL

Objetivo

Generar un CFDI con complemento Carta Porte en el cual se detallan operaciones de traslado de mercancías, ubicaciones de origen, puntos intermedios y destino, así como lo referente al medio a través del cual se transportan.

El complemento Carta Porte se incorpora al CFDI de tipo Traslado para acreditar la posesión de las mercancías, brindando información sobre la procedencia y los destinos de las mercancías que se trasladan a través de los distintos medios de transporte.

Los contribuyentes que brindan servicios de traslado de mercancías por los distintos medios de transporte, podrán emitir un CFDI de tipo Ingreso incorporando el complemento Carta Porte, con el que se podrá amparar la legal posesión de las mercancías.

En la Primera Resolución de Modificaciones la Miscelánea Fiscal para 2021 indica, en el artículo transitorio décimo primero, el modelo de entrada en vigor de este complemento.

Para los efectos de las reglas 2.7.1.8. y 2.7.1.9., y el artículo Trigésimo Sexto Transitorio de la RMF 2021, el complemento “Carta Porte” entrará en vigor a partir del 1 de junio de 2021. Durante los 120 días naturales, siguientes al inicio de la vigencia del complemento a que se refiere el párrafo anterior, los contribuyentes señalados en la regla 2.7.1.9. podrán optar por expedir el CFDI sin incorporar el complemento “Carta Porte”, al finalizar dicho periodo el uso del complemento “Carta Porte” será obligatorio para los citados contribuyentes

Información de consulta:

Miscelánea Fiscal para 2021

Primera Resolución de Modificaciones la Miscelánea Fiscal para 2021

Información técnica y Preguntas frecuentes

Instructivo de llenado del CFDI con Complemento Carta Porte

Fundamento Legal

Código Fiscal de la Federación, artículos 29 y 29-A.

Resolución Miscelánea Fiscal, regla 2.7.1.8, Trigésimo Sexto Transitorio.

Regla 2.7.1.9. de la SEGUNDA Resolución de Modificaciones a la Resolución Miscelánea Fiscal para 2021, tercera versión anticipada.

Décimo Primero Transitorio de la PRIMERA Resolución de Modificaciones a la Resolución Miscelánea Fiscal para 2021.


Página del SAT:

Complemento Carta Porte


De acuerdo al instructivo de llenado, el formato siguiente lista los diferentes nodos y atributos que integran el Complemento Carta Porte de un CFDI.

La columna Dato en Protheus, especifica la fuente del dato que se informa en el atributo correspondiente.

Se han omitido algunos nodos referentes a transporte Marítimo, Aéreo y Ferroviario. Por el momento, el sistema no considera estos medios de transporte.


IDCampoDescripciónNodoUsoDato en Protheus



cfdi:Comprobante


Version
cfdi:Comprobante
"3.3"

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

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

"0"

De lo contrario, informa:

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


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

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

"XXX"

De lo contrario, informa:

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


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

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

"0"

De lo contrario, informa:

Campo Valor Bruto (F2_VALBRUT) de la factura.




cfdi:Comprobante:CfdiRelacionados


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

UUID Se debe registrar el folio fiscal (UUID) de un comprobante fiscal relacionado con el presente comprobante.cfdi:Comprobante:CfdiRelacionados:CfdiRelacionado
Campo UUID Relacs (F2_UUIDREL) de la factura.



cfdi:Comprobante:Receptor


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

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

"XAXX010101000"

De lo contrario, informa:

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


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

cfdi:Comprobante:Receptor

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

"P01" (por Definir)

De lo contrario, informa:

Campo Uso CFDI (F2_USOCFDI) de la factura.



Complemento Carta PorteCartaPorte
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.
1VersionAtributo requerido con valor prefijado que indica la versión del complemento Carta Porte.CartaPorteRequerido"1.0"
2TranspInternacCampo requerido para registrar si los bienes o mercancías que son transportadas, ingresan o salen del territorio nacional. Solo se pueden registrar los valores “Sí” o “No”.
Si este campo contiene el valor “Sí” se debe registrar información en los campos EntradaSalidaMerc y ViaEntradaSalida.
• Tratándose de un CFDI de tipo “I” (Ingreso), se deberá relacionar los números de pedimento dentro de la sección InformacionAduanera que se encuentra a nivel Concepto para los bienes o mercancías que se trasladan asociadas al servicio y si existe la sección AutotransporteFederal de la sección Mercancias entonces:
- Debe existir información en las secciones Traslados y Retenciones de la sección Concepto a nivel CFDI.
• Tratándose de un CFDI de tipo “T” (Traslado), se debe registrar la información del número de pedimento dentro de la sección InformacionAduanera que se encuentra a nivel Concepto, para cada uno de los bienes o mercancías registrados a nivel CFDI que se están trasladando.
Si este campo contiene el valor “No” los campos EntradaSalidaMerc y ViaEntradaSalida no deben existir.
Si este campo contiene el valor “No”, el campo TipoDeComprobante contiene el valor “I” (Ingreso) y si existe la sección AutotransporteFederal de la sección Mercancías entonces:
- Debe existir información en las secciones Traslados y Retenciones de la sección Concepto a nivel CFDI.
Ejemplo:
TranspInternac= Si
CartaPorteRequerido

Campo Transporte internacional (A1X_INTERN) de Carta Porte:

"Sí" o "No"

3EntradaSalidaMercAtributo condicional para precisar si los bienes o mercancías ingresan o salen del territorio nacional. Solo se pueden registrar los valores “Entrada” o “Salida”.
Ejemplo:
EntradaSalidaMerc= Entrada
CartaPorteCondicional

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

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

"Entrada"

De lo contrario, informa:

"Salida"

4ViaEntradaSalida
Campo condicional para registrar la clave de la vía de ingreso o salida de los bienes o mercancías en territorio nacional, contenida en el catálogo del complemento Carta
Porte, c_CveTransporte, publicado en el portal del SAT.
CartaPorteCondicional

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

Campo de Carta Porte Clave de transporte (A1X_TRANSP).

5TotalDistRecCampo condicional para registrar la suma de las distancias recorridas en kilómetros,
registradas en el campo DistanciaRecorrida de la sección Ubicacion, para el traslado de los bienes o mercancías.
Si existe la sección AutotransporteFederal o TransporteFerroviario de la sección Mercancias, este campo debe contener un valor; en caso de que no exista alguna de las secciones antes mencionadas, este campo NO  debe existir.
El valor registrado deberá corresponder con la suma de los campos DistanciaRecorrida de la sección Ubicacion, siempre que existan las secciones Origen y Destino con un solo Domicilio o solo la sección Destino de la sección Ubicacion.
Ejemplo:
TotalDistRec= 235435.05
CartaPorteCondicionalSuma de los valores Distancia recorrida (A1Y_DISREC) del nodo Ubicaciones.



CartaPorte:Ubicaciones:UbicaciónRequeridoNodo 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.
6TipoEstacionCampo condicional para registrar la clave del catálogo del complemento Carta Porte, c_TipoEstacion, publicado en el portal del SAT, del tipo de estación por el que pasan los bienes o mercancías durante su traslado en los distintos medios de transporte.
Si el campo TranspInternac contiene el valor “No” y si existe la sección TransporteFerroviario, TransporteMaritimo o TransporteAereo de la sección Mercancias, este campo se debe registrar y debe contener una clave del catálogo del complemento Carta Porte c_TipoEstacion, publicado en el portan del SAT.
En otro caso, si el campo TranspInternac contiene el valor “Sí” este campo no debe registrarse siempre que el Origen o Destino de los bienes o mercancías sea fuera de territorio nacional, por lo que el campo Pais de la sección Ubicacion debe contener una clave distinta de “MEX”, en caso contrario se debe registrar una clave del catálogo del complemento Carta Porte c_TipoEstacion, publicado en el portal del SAT.
Ejemplo:
TipoEstacion= 03
CartaPorte:Ubicaciones:UbicaciónCondicionalCampo Tipo de estación (A1Y_TIPEST) de Ubicaciones.
7DistanciaRecorridaCampo condicional para registrar la distancia recorrida en kilómetros de la ubicación de Origen a la Destino parcial o final, de los distintos medios de transporte que trasladan los bienes o mercancías.
Si existe la sección AutotransporteFederal o TransporteFerroviario de la sección Mercancias, y la sección Destino de la sección Ubicacion, este campo será requerido.
Si existe la sección AutotransporteFederal y la secciones Origen y Destino, corresponden al mismo domicilio ubicado en la sección Ubicacion, este campo será requerido.
Ejemplo:
DistanciaRecorrida= 154863.05
CartaPorte:Ubicaciones:UbicaciónCondicionalCampo Distancia recorrida (A1Y_DISREC) de Ubicaciones.



CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalNodo condicional para registrar la información detallada del Origen de los bienes o mercancías que se trasladan.
8IDOrigenAtributo condicional para registrar una clave que sirva para identificar el punto de salida de los bienes o mercancías que se trasladan por los distintos  medios de transporte, mediante un folio, el cual estará compuesto de la siguiente forma: el acrónimo “OR” seguido de 6 dígitos numéricos asignados por el contribuyente que emite el comprobante para su identificación.CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalN/A
9RFCRemitenteAtributo condicional para registrar el RFC del remitente de los bienes o mercancías que se trasladan. Si el campo TipoDeComprobante contiene el valor “T” (Traslado), este campo se puede omitir siempre que el RFC del emisor sea el mismo que el remitente, de no ser así se debe registrar un RFC diferente al *Los campos marcados con asterisco son obligatorios. emisor del comprobante, el cual debe estar registrado en la lista de RFC inscritos no cancelados del SAT l_RFC. Si el campo TipoDeComprobante contiene el valor “I” (Ingreso), este campo se puede omitir siempre que, el RFC del receptor sea el mismo que el remitente, de no ser así se debe registrar un RFC diferente al receptor del comprobante, el cual debe estar registrado en la lista de RFC inscritos no cancelados del SAT l_RFC. Si el remitente de las mercancías que se transportan es extranjero, este campo no debe existir. Ejemplo: En el caso de una persona física se debe registrar el RFC a 13 posiciones: RFCRemitente = FIMA420127R44 En el caso de una persona moral se debe registrar el RFC a 12 posiciones: RFCRemitente = COR391215F4ACartaPorte:Ubicaciones:Ubicación:OrigenCondicionalCampo RFC origen (A1Y_RFCORI) de Ubicaciones.
10NombreRemitenteCampo opcional para registrar el nombre del remitente de los bienes o mercancías que se trasladan.
Ejemplo:
En el caso de una persona física se puede registrar:
NombreRemitente = Rafaeli Camposorio Ruízo
En el caso de una persona moral se puede registrar:
NombreRemitente = La Villa Esp0 S A de C V
CartaPorte:Ubicaciones:Ubicación:OrigenOpcionalCampo Nombre de origen (A1Y_NOMORI) de Ubicaciones.
11NumRegIdTribAtributo condicional para incorporar el número de identificación o registro fiscal del país de residencia para los efectos fiscales del remitente de los bienes o mercancías que se trasladan, cuando sea residente en el extranjero.CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalN/A
12ResidenciaFiscalAtributo condicional para registrar la clave del país de residencia para efectos fiscales del remitente de los bienes o mercancías, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet que está basado en la especificación ISO 3166-1.CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalN/A
13NumEstacionAtributo condicional para registrar la clave del número de la estación de salida por la que se trasladan los bienes o mercancías en los distintos medios de transporte, esto de acuerdo al valor de la columna Clave identificación que permite asociarla al tipo de transporte.CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalN/A
14NombreEstacionAtributo condicional para registrar el nombre de la estación por la que se trasladan los bienes o mercancías en los distintos medios de transporte.CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalN/A
15NavegacionTraficoAtributo condicional para registrar el tipo de puerto por el que se documentan los bienes o mercancías vía marítima.CartaPorte:Ubicaciones:Ubicación:OrigenCondicionalN/A
16FechaHoraSalidaAtributo requerido para la expresión de la fecha y hora estimada en la que salen los bienes o mercancías del origen. Se expresa en la forma AAAA-MMDDThh:mm:ss.CartaPorte:Ubicaciones:Ubicación:OrigenRequerido

Campos Fecha de Salida y Hora de Salida de Ubicaciones:

DTOS(A1Y_FECSAL) + "T" + A1Y_HRASAL




CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalNodo condicional para registrar la información detallada del Destino de los bienes o mercancías que se trasladan.
17IDDestinoAtributo condicional para registrar una clave que sirva para identificar el punto de llegada de los bienes o mercancías que se trasladan por los distintos medios de transporte, mediante un folio, el cual estará compuesto de la siguiente forma: el acrónimo “DE” seguido de 6 dígitos numéricos asignados por el contribuyente que emite el comprobante para su identificación.CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalN/A
18RFCDestinatarioCampo condicional para registrar el RFC del destinatario al que se le entregarán los bienes o mercancías que se trasladan.
Si el campo TipoDeComprobante contiene el valor “T” (Traslado), este campo se puede omitir siempre que el RFC del emisor sea el mismo que el del destinatario, de no ser así se debe registrar un RFC diferente al emisor del comprobante, el cual debe estar registrado en la lista de RFC inscritos no cancelados del SAT l_RFC.
CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalCampo RFC Destino (A1Y_RFCDES) de Ubicaciones.
19NombreDestinatarioCampo opcional para registrar el nombre del destinatario de los bienes o mercancías que se trasladan.CartaPorte:Ubicaciones:Ubicacion:DestinoOpcionalCampo Nombre destino (A1Y_NOMDES) de Ubicaciones.
20NumRegIdTribAtributo condicional para incorporar el número de identificación o registro fiscal del país de residencia para los efectos fiscales del destinatario de los bienes o mercancías que se trasladan, cuando sea residente en el extranjero.CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalN/A
21ResidenciaFiscalAtributo condicional para registrar la clave del país de residencia para efectos fiscales del destinatario de los bienes o mercancías, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet que está basado en la especificación ISO 3166-1.CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalN/A
22NumEstacionAtributo condicional para registrar la clave del número de la estación de llegada por la que se trasladan los bienes o mercancías en los distintos medios de transporte, esto de acuerdo al valor de la columna Clave identificación que permite asociarla al tipo de transporte.CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalN/A
23NombreEstacionAtributo condicional para registrar el nombre de la estación por la que se trasladan los bienes o mercancías en los distintos medios de transporte.CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalN/A
24NavegacionTraficoAtributo condicional para registrar el tipo de puerto por el que se documentan los bienes o mercancías vía marítima.CartaPorte:Ubicaciones:Ubicacion:DestinoCondicionalN/A
25FechaHoraProgLlegadaCampo requerido para registrar la fecha y hora en la que estima arriben a su destino los bienes o mercancías. Se expresa en la forma AAAA-MMDDThh:mm:ss.
Ejemplo:
FechaHoraProgLlegada = 2021-10-01T11:49:48
CartaPorte:Ubicaciones:Ubicacion:DestinoRequerido

Campos Fecha de llegada y Hora de llegada de Ubicaciones:

DTOS(A1Y_FECDES) + "T" + A1Y_HRADES




CartaPorte:Ubicaciones:Ubicacion:DomicilioCondicionalNodo condicional para registrar información del domicilio de origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.
26CalleCampo requerido para registrar la calle en la que está ubicado  el domicilio de origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.CartaPorte:Ubicaciones:Ubicacion:DomicilioRequerido

Campo de Ubicaciones:

Nodo Origen: Calle origen (A1Y_CALORI).
Nodo Destino: Calle destino (A1Y_CALDES).

27NumeroExteriorCampo opcional que sirve para registrar el número exterior en donde se ubica el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.CartaPorte:Ubicaciones:Ubicacion:DomicilioOpcional

Campo de Ubicaciones:

Nodo Origen: Número exterior origen (A1Y_EXTORI).
Nodo Destino: Número exterior destino (A1Y_EXTDES).

28NumeroInteriorCampo opcional que sirve para registrar el número interior en caso de existir, en donde se ubica el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.CartaPorte:Ubicaciones:Ubicacion:DomicilioOpcional

Campo de Ubicaciones:

Nodo Origen: Número interior origen (A1Y_INTORI).
Nodo Destino: Número interior destino (A1Y_INTDES).

29ColoniaCampo opcional que sirve para registrar la colonia o dato análogo en donde se ubica el domicilio del origen o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario este campo debe contener una clave del catálogo, c_Colonia, publicado en el portal del SAT, donde la columna c_CodigoPostal debe ser igual a la clave registrada en el campo CodigoPostal.
CartaPorte:Ubicaciones:Ubicacion:DomicilioOpcional

Campo de Ubicaciones:

Nodo Origen: Colonia origen (A1Y_COLORI).
Nodo Destino: Colonia destino (A1Y_COLDES).

30LocalidadCampo opcional que sirve para registrar la ciudad, población, distrito u otro análogo en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.
Si la clave del país es distinta a "MEX" se debe registrar texto libre.
Si la clave del país es “MEX” este campo debe contener una clave del catálogo, c_Localidad, publicado en el portal del SAT, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado.
CartaPorte:Ubicaciones:Ubicacion:DomicilioOpcional

Campo de Ubicaciones:

Nodo Origen: Localidad origen (A1Y_LOCORI)
Nodo Destino: Localidad destino (A1Y_LOCDES).

31ReferenciaCampo opcional para registrar 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 en los distintos medios de transporte; por ejemplo, las coordenadas GPS.CartaPorte:Ubicaciones:Ubicacion:DomicilioOpcionalN/A
32MunicipioCampo opcional que sirve para registrar el municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo, c_Municipio, publicado en el portal del SAT, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado.CartaPorte:Ubicaciones:Ubicacion:DomicilioOpcional

Campo de Ubicaciones:

Nodo Origen: Municipio origen (A1Y_MUNORI).
Nodo Destino: Municipio destino (A1Y_MUNDES).

33EstadoCampo requerido para registrar el estado, entidad, región,
comunidad, u otra figura análoga en donde se encuentra ubicado el
domicilio del origen y/o destino de los bienes o mercancías que se
trasladan en los distintos medios de transporte.
Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar
texto libre; en caso contrario el campo Estado debe contener una
clave del catálogo, c_Estado, publicado en el portal del SAT, donde la
columna c_Pais tenga el valor "MEX", “ USA” o “CAN”.
CartaPorte:Ubicaciones:Ubicacion:DomicilioRequerido

Campo de Ubicaciones:

Nodo Origen: Estado origen (A1Y_EDOORI).
Nodo Destino: Estado destino (A1Y_EDODES).

34PaisCampo requerido que sirve para registrar la clave del país en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Este campo debe contener una clave del catálogo c_Pais, publicado en el portal del SAT.CartaPorte:Ubicaciones:Ubicacion:DomicilioRequerido

Campo de Ubicaciones:

Nodo Origen: País origen (A1Y_PAIORI).
Nodo Destino: País destino (A1Y_PAIDES).

35CodigoPostalCampo requerido para registrar el código postal (PO, BOX) en donde se encuentra el domicilio del *Los campos marcados con asterisco son obligatorios. origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo CodigoPostal debe contener una clave del catálogo, c_CodigoPostal, publicado en el portal del SAT, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo de Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad.CartaPorte:Ubicaciones:Ubicacion:DomicilioRequerido

Campo de Ubicaciones:

Nodo Origen: Código postal origen (A1Y_CPORI).
Nodo Destino: Código postal destino (A1Y_CPDES).




CartaPorte:MercanciasRequeridoNodo requerido para registrar la información de los bienes o mercancías que se trasladan en los distintos medios de transporte.
36PesoBrutoTotalCampo condicional para registrar la suma del peso bruto total de los bienes o mercancías que se trasladan por transporte ferroviario y aéreo.
Si existen las secciones TransporteFerroviario o TransporteAereo de la sección Mercancias este campo debe contener un valor, en caso contrario este campo puede no existir.
Para el caso de la sección TransporteFerroviario de la sección Mercancias este campo debe contener la suma del peso bruto total de los bienes o mercancías que se trasladan vía ferroviaria, que corresponde a la suma de los campos PesoContenedorVacio y PesoNetoMercancia de la sección Contenedor de la sección Carro de la sección TransporteFerroviario.
Para el caso de la sección TransporteAereo de la sección Mercancias este campo debe contener el peso bruto total de la mercancía que se traslada por este medio.
CartaPorte:MercanciasCondicionalN/A
37UnidadPesoCampo condicional para registrar la clave de unidad de medida estandarizada del peso de los bienes o mercancías que se trasladan vía férrea y aérea.
Si existe la sección TransporteFerroviario o TransporteAereo de la sección Mercancias, este campo debe contener un valor del catálogo del complemento Carta Porte c_ClaveUnidadPeso, publicado en el portal del SAT, en caso contrario este campo puede no existir.
CartaPorte:MercanciasCondicionalN/A
38PesoNetoTotalCampo condicional para registrar la suma de los valores registrados en el campo PesoNeto de la sección DetalleMercancia de la sección Mercancia.
Si existe la sección TransporteMaritimo de la sección Mercancias, este campo debe ser igual a la suma de los valores registrados en los campos PesoNeto de la sección DetalleMercancia de la sección Mercancia.
Si existe la sección TransporteFerroviario de la sección Mercancias, este campo debe ser igual a la suma de los valores registrados en los campos ToneladasNetasCarro de la sección Carro de la sección TransporteFerroviario.
CartaPorte:MercanciasCondicionalN/A
39NumTotalMercancias Campo requerido para registrar el número total de los bienes o mercancías que se trasladan en los distintos medios de transporte, identificándose por cada sección Mercancia registrada en el complemento.
El valor de este campo debe ser igual al número de secciones Mercancia que se registren en el complemento.
Ejemplo:
NumTotalMercancias= 562374
CartaPorte:MercanciasRequeridoNúmero de ítems de productos de la factura.
40CargoPorTasacionCampo opcional para registrar el importe pagado por la tasación de los bienes o mercancías que se trasladan vía aérea.CartaPorte:MercanciasOpcionalN/A



CartaPorte:Mercancias:MercanciaRequeridoNodo requerido para registrar información de los bienes o mercancías que se trasladan en los distintos medios de transporte.
41BienesTranspCampo condicional para registrar la clave de producto de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si el campo TipoDeComprobante contiene el valor “T” (Traslado) y si solo se registra un tipo de mercancía a nivel concepto, este campo se puede omitir, en caso contrario se debe registrar la clave de producto que corresponda con la ClaveProdServ que se registró a nivel concepto. Si el campo TipoDeComprobante contiene el valor “I” (Ingreso), el valor de este campo deberá contener una clave del catálogo del complemento Carta Porte c_ClaveProdServCP, publicado en el portal del SAT.CartaPorte:Mercancias:MercanciaCondicional

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

42ClaveSTCCCampo opcional para registra la clave de producto conforme al catálogo del Estándar para la Transportación de Productos (STCC, Standard Transportation Commodity Code por sus siglas en inglés) contenido en el complemento Carta Porte, c_ClaveProdSTCC, publicado en el portal del SAT, cuando el medio de transporte es ferroviario. Ejemplo: ClaveSTCC= 314CartaPorte:Mercancias:MercanciaOpcionalN/A
43DescripcionCampo condicional para registrar la descripción los bienes o mercancías que se trasladan en los distintos medios de transporte.
Si el tipo de comprobante es “T” (Traslado), y si el campo BienesTransp no contiene un valor, este campo no debe existir.
CartaPorte:Mercancias:MercanciaCondicional

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

44CantidadCampo condicional para registrar la cantidad de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si el tipo de comprobante es “T” (Traslado), y si el campo BienesTransp no existe, este campo se debe omitir; en caso de que se registre más de un tipo de mercancía a nivel concepto del CFDI, este campo debe existir. *Los campos marcados con asterisco son obligatorios. Si el tipo de comprobante es “I” (Ingreso), este campo debe existir, en caso contrario se debe omitir, cuando el campo BienesTransp no exista. Ejemplo: Cantidad= 12542.000000CartaPorte:Mercancias:MercanciaCondicionalCampo Cantidad del producto (D2_QUANT), del ítem de la factura.
45ClaveUnidadCampo condicional para registrar la clave de unidad de medida estandarizada aplicable, contenida en el catálogo del CFDI, c_ ClaveUnidad, publicado en el portal del SAT, para la cantidad de los bienes o mercancías que se trasladan en los distintos medios de transporte. La unidad debe corresponder con la descripción de los bienes o mercancías registrados. Si el tipo de comprobante es “T” (Traslado), y si el campo BienesTransp no existe, este campo se debe omitir. Si el tipo de comprobante es “I” (Ingreso), este campo debe existir en caso contrario se debe omitir, cuando el campo BienesTransp no exista. Ejemplo: ClaveUnidad= PRCartaPorte:Mercancias:MercanciaCondicionalCampo Unidad medida SAT (AH_UNIDSAT) que corresponde al producto del ítem de la factura.
46UnidadCampo opcional para registrar la unidad de medida propia de los bienes o mercancías que se trasladan en los distintos medios de transporte, aplicable para la cantidad. La unidad debe corresponder con la descripción de los bienes o mercancías. Ejemplo: Unidad= ParCartaPorte:Mercancias:MercanciaOpcionalN/A
47DimensionesCampo opcional para registrar las medidas del empaque de los bienes o mercancías que se trasladan vía aérea. Se debe registrar la longitud, la altura y la anchura en centímetros o en pulgadas separados dichos valores por una diagonal.CartaPorte:Mercancias:MercanciaOpcionalN/A
48MaterialPeligrosoCampo condicional para registrar si los bienes o mercancías que se trasladan son considerados material peligroso. Los valores permitidos para este campo son “Sí” y “No”.
Si el valor registrado en el campo BienesTransp contiene el valor “0,1” o “1” en la columna Material peligroso del catálogo del complemento Carta Porte, c_ClaveProdServCP, publicado en el portal del SAT, este campo debe existir, en caso contrario se debe omitir.
CartaPorte:Mercancias:MercanciaCondicionalSi el código registrado en la columna BienesTransp, corresponde al Catálogo Producto/Servicio CP (S019) y además la columna Material Peligroso, del mismo catálogo, es "0,1" o "1", se informa:
"Sí"
En caso contrario, no se informa el atributo.
49CveMaterialPeligrosoSi el valor registrado en el campo MaterialPeligroso es “Sí”, este
campo debe contener una clave del catálogo del complemento Carta
Porte, c_MaterialPeligroso, publicado en el portal del SAT.
CartaPorte:Mercancias:MercanciaCondicionalCampo Clave material peligroso (D2_GRPCST) del ítem de la factura.
50EmbalajeCampo condicional para registrar la clave del tipo de embalaje del catálogo del complemento Carta Porte, c_TipoEmbalaje, publicado en el portal del SAT, que se requiere para transportar el material o residuo peligroso. Este campo debe existir siempre que el campo CveMaterialPeligroso tenga un valor del catálogo del complemento Carta Porte, c_MaterialPeligroso, publicado en el portal del SAT, en caso contrario este campo no debe existir.CartaPorte:Mercancias:MercanciaCondicionalCampo Clave de embalaje (D2_TNATREC) del ítem de la factura.
51DescripEmbalajeCampo opcional para registrar la descripción del embalaje en el que se transportan los bienes o mercancías que se consideran material o residuo peligroso.CartaPorte:Mercancias:MercanciaOpcionalN/A
52PesoEnKgCampo requerido para registrar el peso en kilogramos de los bienes o mercancías que se trasladan en los distintos medios de transporte. Ejemplo: PesoEnKg= 2536.012CartaPorte:Mercancias:MercanciaRequeridoCampo Peso Producto Prorrateo (D2_PESO) del ítem de la factura.
53ValorMercanciaCampo condicional para registrar el monto del valor de los bienes o mercancías que se *Los campos marcados con asterisco son obligatorios. trasladan en los distintos medios de transporte, de acuerdo al valor de mercado, el valor pactado en la contraprestación o al valor estimado que determine el contribuyente. Si existe la sección TransporteAereo de la sección Mercancias este campo debe contener un valor. Para el caso en el que se registre alguna de las siguientes secciones: AutotransporteFederal, TransporteMaritimo o TransporteFerroviario de la sección Mercancias, este campo puede contener un valor.CartaPorte:Mercancias:MercanciaCondicionalCampo Valor mercancía (D2_VLRFUE) del ítem de la factura.
54MonedaCampo condicional para registrar la clave de la moneda contenida en el catálogo del CFDI, c_Moneda, publicado en el portal del SAT, utilizada para expresar el valor de los bienes o mercancías que se trasladan en los distintos medios de transporte, cuando se usa moneda nacional se registra MXN (Peso Mexicano), conforme con la especificación ISO 4217. Si existe la sección TransporteAereo de la sección Mercancias este campo debe contener un valor. Para el caso en el que se registre alguna de las siguientes secciones AutotransporteFederal, TransporteMaritimo o TransporteFerroviario de la sección Mercancias, este campo puede contener un valorCartaPorte:Mercancias:MercanciaCondicionalCampo Moneda SAT (CTO_MOESAT) relacionado con el campo Moneda de la Factura (F2_MOEDA).
55FraccionArancelariaCampo condicional que sirve para registrar la clave de la fracción arancelaria del catálogo de comercio exterior, c_FraccionArancelaria, publicado en el portal del SAT, correspondiente a la descripción de los bienes o mercancías que se trasladan en los distintos medios de transporte como importación *Los campos marcados con asterisco son obligatorios. o exportación, este dato se vuelve requerido cuando el campo EntradaSalidaMerc contenga información. Si el campo TranspInternac contiene el valor “Sí”, este campo debe contener alguna de las claves del catálogo del complemento de comercio exterior, c_FraccionArancelaria, en caso de que el campo TranspInternac contenga el valor “No”, este campo no debe existir. Ejemplo: FraccionArancelaria= 64011002CartaPorte:Mercancias:MercanciaCondicionalCampo Fracción arancelaria (D2_FRACCA) del ítem de la factura.
56UUIDComercioExtCampo condicional para registrar el folio fiscal o UUID del comprobante de comercio exterior que se relaciona, este dato se vuelve requerido cuando el campo EntradaSalidaMerc contenga el valor “Salida”. Este campo puede existir siempre que el valor registrado en el campo TranspInternac es “Sí” y el campo EntradaSalidaMerc contiene el valor “Salida” y si la exportación es considerada definitiva (de tipo A1), en caso contrario este campo no debe existir.CartaPorte:Mercancias:MercanciaCondicionalCampo UUID comercio exterior (D2_FCICOD) del ítem de la factura.



CartaPorte:Mercancias:Mercancia:CantidadTransportaCondicional

Nodo condicional para registrar la cantidad de los bienes o mercancías que se trasladan en los distintos medios de transporte, que será distribuida o captada en distintos puntos, a fin de identificar el punto de origen y destino de dichos bienes o mercancías, y se podrá registrar este nodo tantas veces sea necesario.

N/A

57CantidadCampo requerido para registrar el número de bienes o mercancías que se trasladan en los distintos medios de transporte. Ejemplo: Cantidad= 65485.000000CartaPorte:Mercancias:Mercancia:CantidadTransportaRequeridoN/A
58IDOrigenCampo requerido para registrar la clave del identificador del origen de los bienes o mercancías que se trasladan por los distintos medios de transporte, de acuerdo al valor registrado en la sección “Origen”, de la sección “Ubicacion”. Si existe el campo IDOrigen de la sección Ubicacion, el valor que se registre en este campo debe coincidir con al menos un valor registrado en los campos IDOrigen de la sección Ubicacion. Ejemplo: IDOrigen= OR000687CartaPorte:Mercancias:Mercancia:CantidadTransportaRequeridoN/A
59IDDestinoCampo requerido para registrar la clave del identificador del destino de los bienes o mercancías que se trasladan por los distintos medios de transporte, de acuerdo al valor registrado en la sección Origen, de la sección Ubicacion. Si existe el campo IDDestino de la sección Ubicacion, el valor que se registre en este campo debe coincidir con al menos un valor registrado en los campos IDDestino de la sección Ubicacion. Ejemplo: IDDestino)= DE000423CartaPorte:Mercancias:Mercancia:CantidadTransportaRequeridoN/A
60CvesTransporteCampo condicional para registrar la clave del catálogo del complemento Carta Porte, c_CveTransporte, publicado en el portal del SAT, que identifica el medio por el cual se transportan los bienes o mercancías, dicha clave debe ser distinta a “05” (Ducto). Este campo debe existir solo si hay más de una sección Mercancia y más de un tipo de tipo de transporte debe contener un valor del catálogo del complemento Carta Porte, publicado en el portal del SAT, c_CveTransporte, TransporteMaritimo, que corresponde a la clave “02”, TransporteAereo con clave “03” o TransporteFerroviario con clave “04”; en caso contrario este campo no debe existir.CartaPorte:Mercancias:Mercancia:CantidadTransporta
N/A



CartaPorte:Mercancias:Mercancia:DetalleMercanciaCondicional

Nodo condicional para registrar mayor detalle de los bienes o mercancías que se transportan y será requerido cuando el traslado sea vía marítima. Esta sección se debe registrar solo si existe una sección TransporteMaritimo de la sección Mercancias, en caso contrario la información de esta sección no debe existir.

N/A

61UnidadPesoCampo requerido para registrar la clave de unidad de medida estandarizada del peso del catálogo del complemento Carta Porte, c_ClaveUnidadPeso, publicado en el portal del SAT, de los bienes o mercancías que se trasladan.CartaPorte:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
62PesoBrutoCampo requerido para registrar el peso total bruto de los bienes o mercancías que se trasladan.CartaPorte:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
63PesoNetoCampo requerido para registrar el peso total neto de los bienes o mercancías que se trasladan.CartaPorte:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
64PesoTaraCampo requerido para registrar el peso bruto, menos el peso neto de las mercancías que se trasladan.CartaPorte:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A
65NumPiezasCampo opcional para registrar el número de piezas de los bienes o mercancías que se trasladan.CartaPorte:Mercancias:Mercancia:DetalleMercanciaRequeridoN/A



CartaPorte:Mercancias:AutotransporteFederalCondicionalNodo condicional para registrar la información que permita la identificación del autotransporte de carga federal, por medio del cual se transportan los bienes o mercancías, que transitan a través de las carreteras federales del territorio nacional.
66PermSCTCampo requerido para registrar la clave del tipo de permiso proporcionado por la SCT, el cual debe corresponder de acuerdo al tipo de autotransporte utilizado para el traslado de los bienes o mercancías del catálogo del complemento Carta Porte, c_TipoPermiso, publicado en el portal del SAT.
Ejemplo:
PermSCT= TPAF01
CartaPorte:Mercancias:AutotransporteFederalRequeridoCampo Tipo de permiso SCT (A1X_PERSCT) de Carta Porte.
67NumPermisoSCTCampo requerido para registrar el número del permiso otorgado por la SCT, el cual se debe registrar de acuerdo al tipo de autotransporte utilizado para el traslado de los bienes o mercancías. Ejemplo: NumPermisoSCT= 0X2XTXZ0X5X0X3X2X1X0CartaPorte:Mercancias:AutotransporteFederalRequeridoCampo Número permiso SCT (A1X_PERMIS) de Carta Porte.
68NombreAsegCampo requerido para registrar el nombre de la aseguradora que cubre los riesgos del autotransporte utilizado para el traslado de los bienes o mercancías.CartaPorte:Mercancias:AutotransporteFederalRequeridoCampo Nombre de la aseguradora (A1X_ASEGUR) de Carta Porte.
69NumPolizaSeguroCampo requerido para registrar el número de póliza asignado por la aseguradora, que cubre los riesgos del autotransporte utilizado para el traslado de los bienes o mercancías. Ejemplo: NumPolizaSeguro= 368549CartaPorte:Mercancias:AutotransporteFederalRequeridoCampo Número de póliza (A1X_POLIZA) de Carta Porte.



CartaPorte:Mercancias:AutotransporteFederal:IdentificacionVehicularRequeridoNodo requerido para registrar los datos de identificación del autotransporte en el que se trasladan los bienes o mercancías.
70ConfigVehicularCampo requerido para registrar la clave de nomenclatura del autotransporte, del catálogo del complemento Carta Porte, c_ConfigAutotransporte, publicado en el portal del SAT, que es utilizado para transportar los bienes o mercancías. Ejemplo: ConfigVehicular= C2R2CartaPorte:Mercancias:AutotransporteFederal:IdentificacionVehicularRequeridoCampo Configuración vehicular (DA3_CONFIG) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte.
71PlacaVMCampo requerido para registrar el valor de la placa vehicular del autotransporte que es utilizado para transportar los bienes o mercancías, se deben registrar solo los caracteres alfanuméricos, sin guiones y espacios. *Los campos marcados con asterisco son obligatorios. Ejemplo: PlacaVM= 501&&8CartaPorte:Mercancias:AutotransporteFederal:IdentificacionVehicularRequeridoCampo Placa (DA3_PLACA) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte.
72AnioModeloVMCampo requerido para registrar el año del autotransporte que es utilizado para transportar los bienes o mercancías. Ejemplo: AnioModeloVM= 2000CartaPorte:Mercancias:AutotransporteFederal:IdentificacionVehicularRequeridoCampo Número de placa (DA3_ANOMOD) del Vehículo, relacionado con el campo Código de vehículo (A1X_VEHIC) de Carta Porte.



CartaPorte:Mercancias:AutotransporteFederal:Remolques:RemolqueOpcionalNodo opcional para registrar los datos del (los) remolque(s) o semirremolque(s) que se emplean con el autotransporte para el traslado de los bienes o mercancías.
73SubTipoRemCampo requerido para registrar la clave del subtipo de remolque o semirremolques del catálogo del complemento Carta Porte, c_SubTipoRem, publicado en el portal del SAT, que se emplean con el autotransporte para el traslado de los bienes o mercancías.CartaPorte:Mercancias:AutotransporteFederal:Remolques:RemolqueRequeridoCampo Subtipo remolque (DA3_SUBREM) del Vehículo, relacionado con el campo Código de remolque (A1X_REMOLQ) de Carta Porte.
74PlacaCampo requerido para registrar el valor de la placa vehicular del remolque o semirremolque que es utilizado para transportar los bienes o mercancías, se deben registrar solo los caracteres alfanuméricos, sin guiones y espacios.CartaPorte:Mercancias:AutotransporteFederal:Remolques:RemolqueRequeridoCampo Placa (DA3_PLACA) del Vehículo, relacionado con el campo Código de remolque (A1X_REMOLQ) de Carta Porte.



CartaPorte:FiguraTransporteOpcionalNodo opcional para indicar los datos de la figura del transporte que interviene en el traslado de los bienes o mercancías, cuando el dueño del medio de transporte es diferente del emisor del comprobante con el complemento carta porte.
128 CveTransporteCampo requerido para registrar la clave del catálogo del complemento Carta Porte, *Los campos marcados con asterisco son obligatorios. c_CveTransporte, publicado en el portal del SAT, que identifica el medio por el cual se transportan los bienes o mercancías. Ejemplo: CveTransporte= 01CartaPorte:FiguraTransporteRequeridoCampo Clave de transporte (A1X_TRANSP) de Carta Porte.



CartaPorte:FiguraTransporte:Operadores:OperadorRequeridoNodo requerido para indicar los datos del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.
129 RFCOperadorCampo condicional para registrar el RFC del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Este campo debe existir siempre que el operador del autotransporte federal sea nacional, en caso contrario se debe omitir este campo. El valor de este campo debe encontrarse registrado en el listado de RFC inscritos no cancelados del SAT l_RFC. Ejemplo: RFCOperador= FIMA420127R44CartaPorte:FiguraTransporte:Operadores:OperadorCondicionalCampo RFC del Conductor (DA4_CGC) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
130 NumLicenciaCampo condicional para registra el número de folio de la licencia o el permiso otorgado al operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Ejemplo: NumLicencia= 000004CartaPorte:FiguraTransporte:Operadores:OperadorCondicionalCampo No. Licencia de conducir (DA4_NUMCNH) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
131 NombreOperadorCampo opcional para registrar el nombre del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Ejemplo: NombreOperador= Rafaeli Camposorio RuízoCartaPorte:FiguraTransporte:Operadores:OperadorOpcionalCampo Nombre del conductor (DA4_NOME) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
132 NumRegIdTribOperadorCampo condicional para registra el número de identificación o registro fiscal del país de residencia para los efectos fiscales del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías, cuando sea residente en el extranjero. Cuando se registre información en el campo RFCOperador, este campo se debe omitir, en caso de que el operador sea extranjero este campo debe contener un valor, para lo cual se debe identificar el país de residencia para efectos fiscales del operador, usando la clave del país registrada en el campo ResidenciaFiscalOperador.CartaPorte:FiguraTransporte:Operadores:OperadorCondicionalN/A
133 ResidenciaFiscalOperador: Campo condicional para registrar la clave del país de residencia para efectos fiscales del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías, conforme con el catálogo c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1. Si no se registra valor en el campo RFCOperador y si existe información en el campo NumRegldTribOperador, este campo debe existir y debe contener un valor que corresponda a alguna de las claves del catálogo c_Pais.CartaPorte:FiguraTransporte:Operadores:OperadorCondicionalN/A



CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalNodo opcional para registrar la información del domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.
134 CalleCampo requerido que sirve para registrar la calle en que está ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Ejemplo: Calle= Álvaro ObregónCartaPorte:FiguraTransporte:Operadores:Operador:DomicilioRequeridoCampo Direccion del Conductor (DA4_END) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
135 NumeroExteriorCampo opcional que sirve para registrar el número interior, en caso de existir, en donde se ubica el *Los campos marcados con asterisco son obligatorios. domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalCampo Número exterior (DA4_NUMEXT) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
136 NumeroInteriorCampo opcional que sirve para registrar el número interior, en caso de existir, en donde se ubica el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalCampo Número interior (DA4_NUMINT) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
137 ColoniaCampo opcional que sirve para registrar la clave del catálogo c_Colonia, publicado en el portal del SAT, de la colonia o dato análogo en donde se ubica el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo “Colonia” debe contener una clave del catálogo c_Colonia, donde la columna c_CodigoPostal, debe ser igual a la clave registrada en el campo CodigoPostal.CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalCampo Código de colonia (DA4_CODBAI) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
138 LocalidadCampo opcional para registrar la clave del catálogo c_Localidad, publicado en el portal del SAT, de la ciudad, población, distrito u análogo en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre. Si la clave del país es “MEX” este campo debe contener una clave del catálogo c_Localidad, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado.CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalCampo Localidad (DA4_LOCAL) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
139 ReferenciaCampo opcional para registrar una referencia geográfica adicional que permita una más fácil o precisa ubicación del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías; por ejemplo, las coordenadas GPS. Ejemplo: Referencia= 25.91799767951801, -89.95132314223306CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalN/A
140 MunicipioCampo opcional que sirve para registrar la clave del catálogo c_Municipio, publicado en el portal del SAT, el municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo c_Municipio, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado.CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioOpcionalCampo Código de municipio (DA4_CODMUN) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
141 EstadoCampo requerido para registrar la clave del catálogo, c_Estado, publicado en el portal del SAT, del estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. *Los campos marcados con asterisco son obligatorios. Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo Estado debe contener una clave del catálogo c_Estado, donde la columna c_Pais tenga el valor "MEX”, “USA” o “CAN ".CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioRequeridoCampo Estado (DA4_EST) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
142 PaisCampo requerido que sirve para registrar la clave del catálogo, c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1, del país en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Este campo debe contener una clave del catálogo c_Pais.CartaPorte:FiguraTransporte:Operadores:Operador:DomicilioRequeridoCampo Código del país (DA4_PAIS) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.
143 CodigoPostalCampo requerido para registrar la clave del código postal (PO, BOX) del catálogo, c_CodigoPostal, publicado en el portal del SAT, el en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario este campo debe contener una clave del catálogo c_CodigoPostal, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo LocalidadCartaPorte:FiguraTransporte:Operadores:Operador:DomicilioRequeridoCampo Código Postal (DA4_CEP) del catálogo de conductores, relacionado con el campo Código de operador (A1Z_OPERAD) de Operadores.



CartaPorte:FiguraTransporte:PropietarioCondicional

Nodo condicional para indicar los datos del (los) propietario(s) del medio de transporte, siempre que el emisor del comprobante sea distinto al dueño del transporte. Si el campo TipoDeComprobante contiene el valor “I” (Ingreso), el Emisor del comprobante debe ser distinto al propietario de los medios de transporte por los que se trasladan los bienes o mercancías, en caso contrario esta sección se debe omitir.

Este nodo se genera si el campo Propietario/Arrendatario (AE0_TIPO) es "P"

144 RFCPropietarioCampo condicional para registrar el RFC del propietario del medio de transporte. El valor de este campo debe encontrarse registrado en el listado de RFC inscritos no cancelados del SAT l_RFC.CartaPorte:FiguraTransporte:PropietarioCondicionalCampo RFC del Transportista (A4_CGC) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
145 NombrePropietarioCampo opcional para registrar el nombre del propietario del medio de transporte.CartaPorte:FiguraTransporte:PropietarioOpcionalCampo Nombre de Transportadora (A4_NOME) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
146 NumRegIdTribPropietarioCampo condicional para incorporar el número de identificación o registro fiscal del país de residencia para los efectos fiscales del propietario del transporte, cuando sea residente en el extranjero.CartaPorte:FiguraTransporte:PropietarioCondicionalN/A
147 ResidenciaFiscalPropietarioCampo condicional para registrar la clave del país de residencia para efectos fiscales del propietario del transporte, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet que está basado en la especificación ISO 3166-1.CartaPorte:FiguraTransporte:PropietarioCondicionalN/A



CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalNodo opcional para registrar el domicilio del propietario para el traslado de la mercancía.
148 CalleCampo requerido que sirve para registrar la calle en que está ubicado el domicilio del propietario del medio de transporte.CartaPorte:FiguraTransporte:Propietario:DomicilioRequeridoCampo Dirección de la Transportad. (A4_END) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
149 NumeroExteriorCampo opcional que sirve para expresar el número exterior en donde se ubica el domicilio del propietario del transporte.CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalCampo Número exterior (A4_NUMEXT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
150 NumeroInteriorCampo opcional que sirve para registrar el número interior, en caso de existir, en donde se ubica el domicilio del propietario del autotransporte.CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalCampo Número exterior (A4_NUMINT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
151 ColoniaCampo opcional que sirve para registrar la clave del catálogo c_Colonia, publicado en el portal del SAT, de la colonia o dato análogo en donde se ubica el domicilio del propietario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Colonia debe contener una clave del catálogo c_Colonia, donde la columna c_CodigoPostal, debe ser igual a la clave registrada en el campo CodigoPostal.
CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalCampo Código de colonia (A4_CBAIRRO) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
152 LocalidadCampo opcional para registrar la clave del catálogo c_Localidad, publicado en el portal del SAT, de la ciudad, población, distrito o análogo en donde se encuentra ubicado el domicilio del propietario del transporte.
Si la clave del país es diferente de "MEX", se debe registrar texto libremente.
El campo de Localidad debe contener una clave del catálogo c_Localidad, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado.
CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalCampo Código localidad (A4_CLOCALI) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
153 ReferenciaCampo opcional para registrar una referencia geográfica adicional que permita una más fácil o precisa ubicación del propietario del transporte; por ejemplo, las coordenadas GPS.CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalN/A
154 MunicipioCampo opcional que sirve para registrar el municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio del propietario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo c_Municipio, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado.
CartaPorte:FiguraTransporte:Propietario:DomicilioOpcionalCampo Código del municipio (A4_COD_MUN) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
155 EstadoCampo requerido para registrar la clave del catálogo, c_Estado, publicado en el portal del SAT, del estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del propietario del transporte.
Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo de Estado debe contener una clave del catálogo c_Estado, donde la columna c_Pais tenga el valor "MEX", “USA” o “CAN”.
CartaPorte:FiguraTransporte:Propietario:DomicilioRequeridoCampo Estado del Transportista (A4_EST) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
156 PaisCampo requerido que sirve para registrar la clave del catálogo, c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1, del país en donde se encuentra ubicado el domicilio del propietario del transporte.
Este campo debe contener una clave del catálogo c_Pais.
CartaPorte:FiguraTransporte:Propietario:DomicilioRequeridoCampo Código del país (A4_CODPAIS) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
157 CodigoPostal): Campo requerido para registrar la clave del código postal (PO, BOX) del catálogo, c_CodigoPostal, publicado en el portal del SAT, el en donde se encuentra ubicado el domicilio del propietario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo CodigoPostal debe contener una clave del catálogo c_CodigoPostal, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad.
CartaPorte:FiguraTransporte:Propietario:DomicilioRequeridoCampo Cod Dirección Postal (A4_CEP) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.



CartaPorte:FiguraTransporte:ArrendatarioCondicional

Nodo condicional para indicar los datos del (los) arrendatario(s) del medio de transporte, siempre que el emisor del comprobante sea distinto al dueño del transporte.

Este nodo se genera si el campo Propietario/Arrendatario (AE0_TIPO) es "A"

158 RFCArrendatarioCampo condicional para registrar el RFC del arrendatario del medio de transporte.
El valor de este campo debe encontrarse registrado en el listado de RFC inscritos no cancelados del SAT l_RFC.
CartaPorte:FiguraTransporte:ArrendatarioCondicionalCampo RFC del Transportista (A4_CGC) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
159 NombreArrendatarioCampo opcional para registrar el nombre del arrendatario del medio de transporte.CartaPorte:FiguraTransporte:ArrendatarioOpcionalCampo Nombre de Transportadora (A4_NOME) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
160 NumRegIdTribArrendatarioCampo condicional para registrar el número de identificación o registro fiscal del país de residencia para los efectos fiscales del arrendatario del medio de transporte, cuando sea residente en el extranjero.CartaPorte:FiguraTransporte:ArrendatarioCondicionalN/A
161 ResidenciaFiscalArrendatarioCampo condicional para registrar la clave del país de residencia para efectos fiscales del arrendatario del transporte, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet que está basado en la especificación ISO 3166-1.
Si no se registra valor en el campo RFCArrendatario y si existe información en el campo NumRegIdTribArrendatario este campo debe existir y debe contener un valor que corresponda a alguna de las claves del catálogo c_Pais.
CartaPorte:FiguraTransporte:ArrendatarioCondicionalN/A



CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalNodo opcional para registrar el domicilio del arrendatario del transporte.
162 CalleCampo requerido que sirve para registrar la calle en que está ubicado el domicilio del arrendatario del medio de transporte.CartaPorte:FiguraTransporte:Arrendatario:DomicilioRequeridoCampo Dirección de la Transportad. (A4_END) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
163 NumeroExteriorCampo opcional que sirve para expresar el número exterior en donde se ubica el domicilio del arrendatario del transporte.CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalCampo Número exterior (A4_NUMEXT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
164 NumeroInteriorCampo opcional que sirve para registrar el número interior, en caso de existir, en donde se ubica el domicilio del arrendatario del transporte.CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalCampo Número exterior (A4_NUMINT) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
165 ColoniaCampo opcional que sirve para registrar la clave del catálogo c_Colonia, publicado en el portal del SAT, de la colonia o dato análogo en donde se ubica el domicilio del arrendatario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo de Colonia debe contener una clave del catálogo c_Colonia, donde la columna c_CodigoPostal, debe ser igual a la clave registrada en el campo CodigoPostal.
CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalCampo Código de colonia (A4_CBAIRRO) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
166 LocalidadCampo opcional para registrar la clave del catálogo c_Localidad, publicado en el portal del SAT, de la ciudad, población, distrito o análogo en donde se encuentra ubicado el domicilio del arrendatario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libremente.
El campo de Localidad debe contener una clave del catálogo c_Localidad, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado.
CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalCampo Código localidad (A4_CLOCALI) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
167 ReferenciaCampo opcional para registrar una referencia geográfica adicional que permita una más fácil o precisa ubicación del arrendatario del transporte; por ejemplo, las coordenadas GPS.CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalN/A
168 MunicipioCampo opcional que sirve para registrar el municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el arrendatario del propietario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo de Municipio debe contener una clave del catálogo c_Municipio, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado.
CartaPorte:FiguraTransporte:Arrendatario:DomicilioOpcionalCampo Código del municipio (A4_COD_MUN) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
169 EstadoCampo requerido para registrar la clave del catálogo, c_Estado, publicado en el portal del SAT, del estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del arrendatario del transporte.
Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo Estado debe contener una clave del catálogo c_Estado, donde la columna c_Pais tenga el valor "MEX", “USA” o “CAN”.
CartaPorte:FiguraTransporte:Arrendatario:DomicilioRequeridoCampo Estado del Transportista (A4_EST) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
170 PaisCampo requerido que sirve para registrar la clave del catálogo, c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1, del país en donde se encuentra ubicado el domicilio del arrendatario del transporte.
Este campo debe contener una clave del catálogo c_Pais.
CartaPorte:FiguraTransporte:Arrendatario:DomicilioRequeridoCampo Código del país (A4_CODPAIS) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.
171 CodigoPostalCampo requerido para registrar la clave del código postal (PO, BOX) del catálogo, c_CodigoPostal, publicado en el portal del SAT, el en donde se encuentra ubicado el domicilio del arrendatario del transporte.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo CodigoPostal debe contener una clave del catálogo c_CodigoPostal, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad.
CartaPorte:FiguraTransporte:Arrendatario:DomicilioRequeridoCampo Cod Dirección Postal (A4_CEP) del catálogo de transportes, relacionado con el campo Transportadora (AE0_TRANSP) de Propietarios/Arrendatarios.



CartaPorte:FiguraTransporte:NotificadoOpcional

Nodo opcional para indicar los datos de identificación de la(s) persona(s) a quién(es) se debe notificar de la llegada del medio de transporte con los bienes o mercancías que se trasladan.

N/A

172 RFCNotificadoCampo condicional para registrar el RFC de la persona a la que se debe notificar del arribo del medio de transporte con los bienes o mercancías que se trasladan.
En caso de que exista la sección TransporteMaritimo de la sección Mercancias, y la persona a notificar del arribo de la embarcación sea nacional, se debe registrar este campo, en caso de que la persona a notificar del arribo sea extranjera este campo se debe omitir.
El valor de este campo debe encontrarse registrado en el listado de RFC inscritos no cancelados del SAT l_RFC.
CartaPorte:FiguraTransporte:NotificadoCondicionalN/A
173 NombreNotificadoCampo opcional para registrar el nombre de la persona a la que se debe notificar del arribo del medio de transporte con los bienes o mercancías que se trasladan.CartaPorte:FiguraTransporte:NotificadoOpcionalN/A
174 NumRegIdTribNotificadoCampo condicional para incorporar el número de identificación o registro fiscal del país de residencia para los efectos fiscales de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan, cuando sea residente en el extranjero.CartaPorte:FiguraTransporte:NotificadoCondicionalN/A
175 ResidenciaFiscalNotificadoCampo condicional para registrar la clave del país de residencia para efectos fiscales de la persona notificada del arribo del transporte, conforme con el catálogo c_Pais publicado en el portal del SAT en Internet que está basado en la especificación ISO 3166-1.
Si no se registra valor en el campo RFCNotificado y si existe información en el campo NumRegIdTribNotificado este campo debe existir y debe contener un valor que corresponda a alguna de las claves del catálogo c_Pais.
CartaPorte:FiguraTransporte:NotificadoCondicionalN/A



CartaPorte:FiguraTransporte:Notificado:DomicilioOpcional

Nodo opcional para registrar el domicilio de la(s) persona(s) a quién(es) se debe notificar de la llegada del medio de transporte con los bienes o mercancías que se trasladan.

N/A

176 CalleCampo requerido que sirve para registrar la calle en que está ubicado el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
177 NumeroExteriorCampo opcional que sirve para expresar el número exterior en donde se ubica el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
178 NumeroInteriorCampo opcional que sirve para expresar el número interior, en caso de existir, en donde se ubica el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
179 ColoniaCampo opcional que sirve para registrar la clave del catálogo c_Colonia, publicado en el portal del SAT, de la colonia o dato análogo en donde se ubica el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo de Colonia debe contener una clave del catálogo c_Colonia, donde la columna c_CodigoPostal, debe ser igual a la clave registrada en el campo CodigoPostal.
CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
180 LocalidadCampo opcional para registrar la clave del catálogo c_Localidad, publicado en el portal del SAT, de la ciudad, población, distrito o análogo en donde se encuentra ubicado el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.
Si la clave del país es distinta a "MEX", se debe registrar texto libre. El campo de Localidad debe contener una clave del catálogo c_Localidad, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado.
CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
181 ReferenciaCampo opcional para expresar una referencia geográfica adicional que permita una más fácil o precisa ubicación de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan; por ejemplo, las coordenadas GPS.CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
182 MunicipioCampo opcional para registrar la clave del catálogo c_Municipio, publicado en el portal del SAT, del municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo Municipio debe contener una clave del catálogo c_Municipio, donde la columna c_Estado, sea igual a la clave registrada en el campo Estado.
CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
183 EstadoCampo requerido para registrar la clave del catálogo, c_Estado, publicado en el portal del SAT, del estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.
Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre, en caso contrario el campo de Estado debe contener una clave del catálogo c_Estado, donde la columna c_Pais tenga el valor "MEX", “USA” o “CAN”.
CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
184PaisCampo requerido que sirve para registrar la clave del catálogo, c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1, del país en donde se encuentra ubicado el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.
Este campo debe contener una clave del catálogo c_Pais.
CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A
185CodigoPostalCampo requerido para registrar la clave del código postal (PO, BOX) del catálogo, c_CodigoPostal, publicado en el portal del SAT, el en donde se encuentra ubicado el domicilio de la persona notificada del arribo del medio de transporte con los bienes o mercancías que se trasladan.
Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo CodigoPostal debe contener una clave del catálogo c_CodigoPostal, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad.
CartaPorte:FiguraTransporte:Notificado:Domicilio
N/A


02. EJEMPLO DE UTILIZACIÓN

Factura de Ingresos (Normal)

  1. En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación Facturaciones (MATA467N).
  2. Incluir una Factura de Venta de tipo Normal.
  3. Informar el campo ¿Carta Porte? (F2_TPCOMPL) con el valor S-Si.
  4. En el detalle informar:
  5. Desde Otras acciones ejecutar la acción Carta Porte.
  6. Informar los datos para el Complemento de Carta Porte y presionar Confirmar.
  7. Presionar Grabar para confirmar el guardado de la Factura de Venta,
  8. Confirmar la generación del comprobante fiscal digital
  9. Confirmar el timbrado del comprobante fiscal digital.
  10. Validar que el timbrado haya sido exitoso, que en el XML se visualice el nodo cartaporte:CartaPorte.

Factura de Traslado

  1. En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación Facturaciones (MATA467N).
  2. Incluir una Factura de Venta de tipo Traslado.
  3. Informar el campo ¿Carta Porte? (F2_TPCOMPL) con el valor S-Si.
  4. En el detalle informar:
  5. Desde Otras acciones ejecutar la acción Carta Porte.
  6. Informar los datos para el Complemento de Carta Porte y presionar Confirmar.
  7. Presionar Grabar ara confirmar el guardado de la Factura de Venta,
  8. Confirmar la generación del comprobante fiscal digital
  9. Confirmar el timbrado del comprobante fiscal digital.
  10. Validar que el timbrado haya sido exitoso, que en el XML se visualice el nodo cartaporte:CartaPorte.


Para la generación de documentos con Complemento de Carta porte de Ingresos o Traslado, se deben seleccionar las opciónes Normal o Traslado al entrar a la rutina de Facturaciones (MATA467N)


Para los productos a transportar, al momento de generar el detalle de la Factura de Venta es necesario informar los siguientes datos:

  • Peso (D2_PESO) - Requerido.
  • Código de Material Peligroso (D2_GRPCST) - Solo aplica si el producto está catalogado como material peligroso.
  • Embalaje (D2_TNATREC) - Solo aplica si el producto está catalogado como material peligroso.
  • Clave de embalaje (D2_TNATREC) - Opcional.
  • UUID comercio exterior (D2_FCICOD) - Opcional.
  • Valor mercancía (D2_VLRFUE) - Requerido.

03. CONFIGURACIONES 

Catálogos

c_CveTransporte.csv
c_TipoEstacion.csv
c_ClaveProdServCP.csv
c_MaterialPeligroso.csv
c_TipoEmbalaje.csv
c_TipoPermiso.csv
c_Colonias.csv
c_Localidad.csv
c_Municipio.csv
c_Estado.csv
c_ConfigAutotransporte.csv
c_SubTipoRem.csv
c_CodigoPostal.csv
c_FraccionArancelaria.csv

Importante:

Si en su ambiente ya cuenta con el Catálogo de Códigos Postales, éste debe ser reemplazado por el publicado por el SAT el 10/09/2019, del Anexo 20 versión 3.3.
Para esto, es necesario que inicie sesión en el Smartclient con un usuario que pertenezca al grupo de administradores del sistema.
- Acceda a la rutina Definición de Catálogos; SIGAFAT | Actualizaciones | Archivos | Definición de Catálogos (FISA814).
- Seleccione el código S004 - Catálogo de Códigos Postales.
- Haga clic en Otras Acciones | Borrar.
- Confirme. A continuación, acepte el proceso de borrado de la Definición y del Catálogo mismo. Dependiendo de la cantidad de registros en el catálogo, este proceso podría demorar varios minutos.
- Salga de la rutina y entre nuevamente para recrear la Definición y cargar el Catálogo más reciente. Dependiendo del tamaño del catálogo, este proceso puede tardar varios minutos.

En caso de que requiera actualizar los catálogos con los más recientes del SAT, realice los siguientes pasos:
- En la configuración regional del Sistema Operativo de la computadora, establezca el carácter pipe ('|') como separador de campos.
- Acceda a los mini-sitios de Factura Electrónica y/o Carta Porte del SAT.
- Descargue los catálogos de datos, los cuales son distribuidos en planillas de cálculo.
- En el catálogo requerido, observe que la cantidad y distribución de las columnas coincida con el catálogo previo.
- Copie las celdas de datos, sin encabezados, del catálogo requerido a una nueva planilla.
- Grabe la planilla obtenida, es importante que el nombre sea de acuerdo a la lista de catálogos indicados anteriormente y que sea con el Tipo de archivo CSV (MS_DOS) .csv.
- Si es necesario, reestablezca el separador de campos en la configuración regional del Sistema Operativo de la computadora.
- Compruebe que el archivo .csv obtenido tenga codificación UTF-8 sin BOM, en caso contrario, deberá cambiarla a través de un editor de texto con la capacidad de manejo de codificación, por ejemplo con Notepad++:
    . Cargue el archivo .csv en el editor.
    . Las vocales con acento, eñes y otros caracteres especiales se deben visualizar correctamente. Además, en el menú Codificación debe indicar la opción UTF-8 sin BOM.
    . En caso de que no se cumplan esas condiciones, en el menú Codificación seleccione Juego de caracteres | Europeo Occidental | OEM 850.
    . A continuación, nuevamente abra el menú Codificación, seleccione Convertir a UTF-8 sin BOM.
    . En este punto, las vocales con acento, eñes y otros caracteres especiales deben visualizarse correctamente.
    . Grabe el archivo de texto.


Por motivo de performance en la visualización de las consultas, se recomienda ampliamente, configurar los siguientes campos en el orden mostrado:

Estado - Se utiliza para filtrar y validar contra los catálogos de Códigos Postales, Localidades y Municipios. A partir de este campo se asigna el País.

Código Postal - En la consulta, sólo se visualizan los Códigos Postales correspondientes al Estado, si no está definido el Estado, visualizará todo el catálogo, con la consecuencia de tomar demasiado tiempo para la carga. Se utiliza para filtrar y validar contra el catálogo de Colonias. Por otra parte, a partir de este campo se asignan valores de Localidad, Municipio y Estado.

Colonia - En la consulta, muestra sólo las Colonias que correspondan al Código Postal, si no está definido el Código Postal, visualizará todo el catálogo, con la consecuencia de tomar demasiado tiempo para la carga. Además, este campo se valida considerando el Código Postal.

Localidad - En la consulta, muestra sólo las Localidades que correspondan al Estado, si no está definido el Estado, visualizará todo el catálogo, con la consecuencia de tomar demasiado tiempo para la carga. Además, este campo se valida considerando el Estado.

Municipio - En la consulta, muestra sólo los Municipios que correspondan al Estado, si no está definido el Estado, visualizará todo el catálogo, con la consecuencia de tomar demasiado tiempo para la carga. Además, este campo se valida considerando el Estado.

País - Es asignado al indicar estado.

FATSMEX.INI

Se recomienda editar el script actual de generación de CFDI (Archivo XML), actualizando las secciones de acuerdo al modelo siguiente, en donde las líneas resaltadas se agregaron o fueron modificadas para integrar el Complemento Carta Porte:

//FATSMEX.INI V3.3 --- Modelo 2017

[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[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[075] := Alltrim(SM0->M0_NOMECOM)
(PRE) _aTotal[096] := DtoS(SF2->F2_EMISSAO)
(PRE) _aTotal[096] := Left(_aTotal[096],4) + "-" + Substr(_aTotal[096],5,2)+ "-" + Right(_aTotal[096],2)
(PRE) _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(_aTotal[104] .And. Alltrim(SF2->F2_TIPODOC) == "21",0,2)
(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] )

[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), .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 += "3.3" + _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',FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE),IIf(Empty(AI0->AI0_MPAGO),"99",Alltrim(AI0->AI0_MPAGO))) + _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 + _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(_aTotal[104] .And. Alltrim(SF2->F2_TIPODOC) == "21","XXX",Alltrim(CTO->CTO_MOESAT)) + _aTotal[098]
//TipoCambio
(PRE) cCadOrig += IIf(_aTotal[104] .And. 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],Round(SF2->F2_VALBRUT,2) + _aTotal[103] - _aTotal[037])),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]
//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]

//////////////////////CFDI Relacionados//////////////////////////
(PREREG) AllTrim(SF2->F2_RELSAT) <> ""
(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(ALLTRIM(SF2->F2_TIPODOC) == "21" .Or. SF2->F2_GLOBAL == "1", "XAXX010101000", CFDCarEsp(AllTrim(SA1->A1_CGC), .F.)) + _aTotal[098])
//Nombre
(PRE) (cCadOrig += IIf(SF2->F2_GLOBAL <> "1",CFDCarEsp(Alltrim(SA1->A1_NOME),.F.) + _aTotal[098],""), .T.)
//ResidenciaFiscal
(PRE) IIf(lCCCE .And. !Empty(CFDCarEsp(Alltrim(SF2->F2_RESIDE))), 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))), cCadOrig += CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB))) + _aTotal[098], "")
//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.)
(PRE) (cCadOrig += fXMLFUN("IL",.T., IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.)),.T.)

//Carta Porte
(PRE) (cCadOrig += LxFunaCaPo(SF2->F2_FILIAL,SF2->F2_DOC,SF2->F2_SERIE,.T.),.T.,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.))

(POS) IIf(lCCCE, cCadOrig += "1.1" + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF2->F2_TRASLA), cCadOrig += Alltrim(SF2->F2_TRASLA) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF2->F2_TIPOPE), cCadOrig += Alltrim(SF2->F2_TIPOPE) + _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. !Empty(SF2->F2_SUBDIV), cCadOrig += Alltrim(SF2->F2_SUBDIV) + _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, 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], "")

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

(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 := "MIIF+TCCA+GgAwIBAgIUMzAwMDEwMDAwMDAzMDAwMjM3MDgwDQYJKoZIhvcNAQEL"
(PRE) cCert += "BQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UE"
(PRE) cCert += "CgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNV"
(PRE) cCert += "BAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNp"
(PRE) cCert += "w7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEm"
(PRE) cCert += "MCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEM"
(PRE) cCert += "BTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDES"
(PRE) cCert += "MBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkq"
(PRE) cCert += "hkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNzA1MTgwMzU0NTZaFw0y"
(PRE) cCert += "MTA1MTgwMzU0NTZaMIHlMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVT"
(PRE) cCert += "QVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFM"
(PRE) cCert += "RVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFND"
(PRE) cCert += "MSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQF"
(PRE) cCert += "ExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxGzAZBgNVBAsUEkNTRDAxX0FBQTAxMDEw"
(PRE) cCert += "MUFBQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJdUcsHIEIgwivvA"
(PRE) cCert += "antGnYVIO3+7yTdD1tkKopbL+tKSjRFo1ErPdGJxP3gxT5O+ACIDQXN+HS9uMWDY"
(PRE) cCert += "naURalSIF9COFCdh/OH2Pn+UmkN4culr2DanKztVIO8idXM6c9aHn5hOo7hDxXMC"
(PRE) cCert += "3uOuGV3FS4ObkxTV+9NsvOAV2lMe27SHrSB0DhuLurUbZwXm+/r4dtz3b2uLgBc+"
(PRE) cCert += "Diy95PG+MIu7oNKM89aBNGcjTJw+9k+WzJiPd3ZpQgIedYBD+8QWxlYCgxhnta3k"
(PRE) cCert += "9ylgXKYXCYk0k0qauvBJ1jSRVf5BjjIUbOstaQp59nkgHh45c9gnwJRV618NW0fM"
(PRE) cCert += "eDzuKR0CAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZI"
(PRE) cCert += "hvcNAQELBQADggIBABKj0DCNL1lh44y+OcWFrT2icnKF7WySOVihx0oR+HPrWKBM"
(PRE) cCert += "Xxo9KtrodnB1tgIx8f+Xjqyphhbw+juDSeDrb99PhC4+E6JeXOkdQcJt50Kyodl9"
(PRE) cCert += "URpCVWNWjUb3F/ypa8oTcff/eMftQZT7MQ1Lqht+xm3QhVoxTIASce0jjsnBTGD2"
(PRE) cCert += "JQ4uT3oCem8bmoMXV/fk9aJ3v0+ZIL42MpY4POGUa/iTaawklKRAL1Xj9IdIR06R"
(PRE) cCert += "K68RS6xrGk6jwbDTEKxJpmZ3SPLtlsmPUTO1kraTPIo9FCmU/zZkWGpd8ZEAAFw+"
(PRE) cCert += "ZfI+bdXBfvdDwaM2iMGTQZTTEgU5KKTIvkAnHo9O45SqSJwqV9NLfPAxCo5eRR2O"
(PRE) cCert += "Gibd9jhHe81zUsp5GdE1mZiSqJU82H3cu6BiE+D3YbZeZnjrNSxBgKTIf8w+KNYP"
(PRE) cCert += "M4aWnuUMl0mLgtOxTUXi9MKnUccq3GZLA7bx7Zn211yPRqEjSAqybUMVIOho6aqz"
(PRE) cCert += "kfc3WLZ6LnGU+hyHuZUfPwbnClb7oFFz1PlvGOpNDsUb0qP42QCGBiTUseGugAzq"
(PRE) cCert += "OP6EYpVPC73gFourmdBQgfayaEvi3xjNanFkPlW1XEYNrYJB4yNjphFrvWwTY86v"
(PRE) cCert += "L2o8gZN0Utmc5fnoBTfM9r2zVKmEi6FUeJ1iaDaVNv47te9iS1ai4V4vBY8r"

(PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF2->F2_TIPOPE), .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/3"'
(PRE) _aTotal[001] += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
(PRE) _aTotal[001] += ' xmlns:cartaporte="http://www.sat.gob.mx/CartaPorte"'
(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/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/CartaPorte http://www.sat.gob.mx/sitio_internet/cfd/CartaPorte/CartaPorte.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd'
(PRE) _aTotal[001] += IIF(lCCCE,'http://www.sat.gob.mx/ComercioExterior11 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior11/ComercioExterior11.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:cce11="http://www.sat.gob.mx/ComercioExterior11"' , "")
(PRE) _aTotal[001] += ' Version="3.3"'
(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',FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE),IIf(Empty(AI0->AI0_MPAGO),"99",Alltrim(AI0->AI0_MPAGO))) + '"' )
(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 + _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(_aTotal[104] .And. Alltrim(SF2->F2_TIPODOC) == "21","XXX",Alltrim(CTO->CTO_MOESAT)) + '"'
(PRE) _aTotal[001] += IIf(_aTotal[104] .And. 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] ,Round(SF2->F2_VALBRUT,2) + _aTotal[103] - _aTotal[037] - _aTotal[038])),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] += 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, ' <cce11:ComercioExterior' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xmlns:cfdi="http://www.sat.gob.mx/cfd/3"' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xmlns:cce11="http://www.sat.gob.mx/ComercioExterior11"' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd"' , "")
(POS) cNodoCCE += IIf(lCCCE, ' Version="1.1"' , "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_TRASLA), ' MotivoTraslado="' + Alltrim(SF2->F2_TRASLA) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF2->F2_TIPOPE), ' TipoOperacion="' + Alltrim(SF2->F2_TIPOPE) + '"', "")
(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. !Empty(SF2->F2_SUBDIV), ' Subdivision="' + Alltrim(SF2->F2_SUBDIV) + '"', "")
(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) AllTrim(SF2->F2_RELSAT) <> ""
(PREREG) (_aTotal[001] := IIf(_aTotal[104] .And. Alltrim(SF2->F2_TIPODOC) == "21","",fGetFolRel("S"),.T.))
(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), .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(Alltrim(SF2->F2_TIPODOC) == "21" .Or. SF2->F2_GLOBAL == "1", "XAXX010101000", Alltrim(SA1->A1_CGC))) + '"' , .T.)
(PREREG) (_aTotal[001] += IIf(SF2->F2_GLOBAL <> "1",' Nombre="' + CFDCarEsp(Alltrim(SA1->A1_NOME),.T.) + '"',"") , .T.)
(PREREG) (_aTotal[001] += ' UsoCFDI="' + Alltrim(SF2->F2_USOCFDI) + '"' , .T.)
(PREREG) IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB)))), (_aTotal[001] += ' NumRegIdTrib="' + CFDCarEsp(AllTrim(AllTrim(SF2->F2_IDTRIB))) + '"' , .T.), "")
(PREREG) IIf(lCCCE .And. !Empty(CFDCarEsp(AllTrim(AllTrim(SF2->F2_RESIDE)))), (_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, ' <cce11:Emisor' , "")
(POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "")
(POS) cNodoCCE += IIf(lCCCE, ' <cce11: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, ' </cce11:Emisor>' + ( chr(13)+chr(10) ), "")

(POS) cNodoCCE += IIf(lCCCE, ' <cce11:Receptor' , "")
(POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "")

(POS) cNodoCCE += IIf(lCCCE, ' <cce11: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, ' </cce11:Receptor>' + ( chr(13)+chr(10) ), "")

(POS) (cNodoCCE += IIf(lCCCE, ' <cce11: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), .T., .F.)
(PRE) cNodoCCE := ""

(PRE) DbGoTop()

(PREREG) (cNodoCCE += IIf(lCCCE, ' <cce11: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, ' </cce11:Mercancia>' + ( chr(13)+chr(10) ), ""),.T.)

(POS) (cNodoCCE += IIf(lCCCE, ' </cce11:Mercancias>' + ( chr(13)+chr(10) ), ""),.T.)
(POS) (cNodoCCE += IIf(lCCCE, ' </cce11: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) _aTotal[105] := LxFunaCaPo(SF2->F2_FILIAL,SF2->F2_DOC,SF2->F2_SERIE,.F.,IIf(ALLTRIM(SF2->F2_TIPODOC) == "21",.T.,.F.))
(PREREG) (_aTotal[001] := IIF(!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095] ) .Or. !Empty(_aTotal[105]), ' <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), .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))

FATEMEX.INI

Se recomienda editar el script actual de generación de CFDI (Archivo XML), actualizando las secciones de acuerdo al modelo siguiente, en donde las líneas resaltadas se agregaron o fueron modificadas para que no afecte la implementación del Complemento Carta Porte en las Notas de Crédito.

//FATEMEX.INI V3.3 --- Modelo 2017
[XXX POSICIONAMENTOS]
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SA2->(MSSeek(xFilial("SA2")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) (SE4->(MSSeek(xFilial("SE4")+SF1->F1_COND)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)

[XXX INICIALIZACION]
(PRE) SD1->(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[094] := ""
(PRE) _aTotal[095] := ""
(PRE) _aTotal[033] := ""
(PRE) _aTotal[034] := ""
(PRE) _aTotal[035] := ""
(PRE) _aTotal[036] := 0
(PRE) _aTotal[075] := Alltrim(SM0->M0_NOMECOM)
(PRE) _aTotal[096] := DtoS(SF1->F1_EMISSAO)
(PRE) _aTotal[096] := Left(_aTotal[096],4) + "-" + Substr(_aTotal[096],5,2)+ "-" + Right(_aTotal[096],2)
(PRE) _aTotal[096] += "T" + SF1->F1_HORA
(PRE) _aTotal[097] := {"SD1",""}
(PRE) _aTotal[098] := "|"
(PRE) _aTotal[099] := "||"
(PRE) _aTotal[100] := ""
(PRE) _aTotal[101] := IIF(SuperGetMv("MV_DESCSAI",.T.,"2") == "1", .T., .F.)
(PRE) lCCCE := .F.
(PRE) cNodoCCE := ""

(PREREG) FsQuery(_aTotal[097],1,"D1_DOC='" + SF1->F1_DOC + "' AND D1_SERIE='" + SF1->F1_SERIE + "' AND D1_FORNECE='" + SF1->F1_FORNECE + "' AND D1_LOJA='" + SF1->F1_LOJA + "'","SD1->D1_DOC=SF1->F1_DOC .AND. SD1->D1_SERIE=SF1->F1_SERIE .AND. SD1->D1_FORNECE=SF1->F1_FORNECE .AND. SD1->D1_LOJA=SF1->F1_LOJA","D1_ITEM") .And. .T.

(PRE) fImptosD(SF1->F1_DOC,SF1->F1_SERIE,SF1->F1_FORNECE,SF1->F1_LOJA, .F. , "SD1", .F., @(_aTotal[036]))

[SD1 CADENAORIGINAL_SELLO]
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",CTO->(MsSeek(xFilial("CTO")+Strzero(SF1->F1_MOEDA,2))) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",SA2->(MSSeek(xFilial("SA2")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PRE) If(AllTrim(SF1->F1_ESPECIE)<>"NCC",CTO->(MsSeek(xFilial("CTO")+Strzero(SF1->F1_MOEDA,2))) , .T.)
//////////////////////////////////////////////CADENA ORIGINAL//////////////////////////////////////////////
(PRE) cCadOrig := _aTotal[099]
(PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF1->F1_TIPOPE), .T., .F.)
(PRE) cCadOriCCE := ""

//Cadena Original | Complemento de Comercio Exterior
(PREREG) IIf(lCCCE .And. !Empty(SD1->D1_ITEM + SD1->D1_COD), (cCadOriCCE += Alltrim(SD1->D1_ITEM + SD1->D1_COD) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(SD1->D1_FRACCA), (cCadOriCCE += Alltrim(SD1->D1_FRACCA) + Alltrim(SD1->D1_NICO) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD1->D1_CANADU)), (cCadOriCCE += Alltrim(Str(SD1->D1_CANADU)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(SD1->D1_FRACCA), (cCadOriCCE += AllTrim(ObtColSAT("S014",AllTrim(SD1->D1_FRACCA),1,8,9,2)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD1->D1_VALADU)), (cCadOriCCE += Alltrim(Str(SD1->D1_VALADU,14,2)) + _aTotal[098],.T.), ("",,.T.))
(PREREG) IIf(lCCCE .And. !Empty(Str(SD1->D1_USDADU)), (cCadOriCCE += Alltrim(Str(SD1->D1_USDADU,14,2)) + _aTotal[098],.T.), ("",,.T.))

//Cadena Original | Complemento de Comercio Exterior
(POS) IIf(lCCCE, cCadOrig += "1.1" + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_TRASLA), cCadOrig += Alltrim(SF1->F1_TRASLA) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_TIPOPE), cCadOrig += Alltrim(SF1->F1_TIPOPE) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_CVEPED), cCadOrig += Alltrim(SF1->F1_CVEPED) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_CERORI), cCadOrig += Alltrim(SF1->F1_CERORI) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_NUMCER), cCadOrig += Alltrim(SF1->F1_NUMCER) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_EXPCONF), cCadOrig += Alltrim(SF1->F1_EXPCONF) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_INCOTER), cCadOrig += Alltrim(SF1->F1_INCOTER) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SF1->F1_SUBDIV), cCadOrig += Alltrim(SF1->F1_SUBDIV) + _aTotal[098], "")
(POS) IIf(lCCCE .And. SF1->(ColumnPos("F1_OBSCE")) > 0 .And. !Empty(SF1->F1_OBSCE), cCadOrig += CFDCarEsp(Alltrim(SF1->F1_OBSCE),.F.) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(Str(SF1->F1_TCUSD)), cCadOrig += Alltrim(Str(SF1->F1_TCUSD)) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(Str(SF1->F1_TOTUSD)), cCadOrig += Alltrim(Str(SF1->F1_TOTUSD,14,2)) + _aTotal[098], "")

///////////DATOS DE LA FACTURA/////////////////
(PRE) (SE4->(MSSeek(xFilial("SE4")+SF1->F1_COND)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
//Version
(PRE) cCadOrig += "3.3" + _aTotal[098]
//Serie
(PRE) cCadOrig += Alltrim(SF1->F1_SERIE) + _aTotal[098]
//Folio
(PRE) cCadOrig += Alltrim(SF1->F1_DOC) + _aTotal[098]
//Fecha
(PRE) cCadOrig += Alltrim(_aTotal[096]) + _aTotal[098]
//FormaPago
(PRE) cCadOrig += Iif(Empty(AI0->AI0_MPAGO),"99",Alltrim(AI0->AI0_MPAGO)) + _aTotal[098]
//NoCertificado
(PRE) cCadOrig += Alltrim(SF1->F1_CERTFOL) + _aTotal[098]
//CondicionesDePago
(PRE) cCadOrig += CFDCarEsp(Alltrim(SE4->E4_DESCRI)) + _aTotal[098]
//Subtotal
(PRE) cCadOrig += Alltrim(STR((SF1->F1_VALMERC + IIF(_aTotal[101], SF1->F1_DESCONT, 0 )) - _aTotal[036],14,2)) + _aTotal[098]
//Descuento
(PRE) cCadOrig += IIf(SF1->F1_DESCONT==0, "", Alltrim(STR(SF1->F1_DESCONT,14,2)) + _aTotal[098])
//Moneda
(PRE) cCadOrig += Alltrim(CTO->CTO_MOESAT) + _aTotal[098]
//TipoCambio
(PRE) cCadOrig += IIf(Alltrim(CTO->CTO_MOESAT) <> "MXN", Alltrim(STR(SF1->F1_TXMOEDA,14,2)), "1") + _aTotal[098]
//Total
(PRE) cCadOrig += Alltrim(STR(iif(GetSx3Cache("F1_VALBRUT","X3_DECIMAL")<= 2,SF1->F1_VALBRUT,Round(SF1->F1_VALBRUT,2)),14,2)) + _aTotal[098]
//TipoDeComprobante
(PRE) cCadOrig += IIf(Alltrim(SF1->F1_ESPECIE) == "NF", "I", "E") + _aTotal[098]
//MetodoPago
(PRE) cCadOrig += "PUE" + _aTotal[098]
//LugarExpedicion
(PRE) cCadOrig += CFDCarEsp(AllTrim(SM0->M0_CEPENT)) + _aTotal[098]
//Confirmacion
//(PRE) cCadOrig += "ClavePAC" + _aTotal[098]

//////////////////////CFDI Relacionados//////////////////////////
(PREREG) AllTrim(SF1->F1_RELSAT) <> ""
(PRE) fGetFolRel("E",.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(SF1->F1_ESPECIE) == "NCC"
(PRE) SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA))
(PRE) SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS))
//Rfc
(PRE) (cCadOrig += CFDCarEsp(AllTrim(SA1->A1_CGC), .F.) + _aTotal[098], .T.)
//Nombre
(PRE) (cCadOrig += CFDCarEsp(Alltrim(SA1->A1_NOME),.F.) + _aTotal[098], .T.)
//ResidenciaFiscal
(PRE) IIf(lCCCE,(cCadOrig += Alltrim(SYA->YA_CCESAT) + _aTotal[098], .T.),"")
//NumRegIdTrib
(PRE) IIf(lCCCE,(cCadOrig += Alltrim(AI0->AI0_IDFIS) + _aTotal[098], .T.),"")
//UsoCFDI
(PRE) (cCadOrig += Alltrim(SF1->F1_USOCFDI) + _aTotal[098], .T.)

(PRE) (cCadOrig += fXMLFUN("CO",.T., .F. ,.F.))
(PRE) (cCadOrig += fXMLFUN("TI",.T., .F. ,.T.))
(PRE) (cCadOrig += fXMLFUN("IL",.T., .F. ,.T.))

//Cadena Original | Complemento de Comercio Exterior

//Emisor
(POS) IIf(lCCCE, cCadOrig += CFDCarEsp(AllTrim(SM0->M0_ENDCOB)) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(SM0->M0_BAIRENT), cCadOrig += ObtColSAT("S015",AllTrim(SM0->M0_CEPENT),5,5,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, 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 .And. !Empty(AllTrim(SA1->A1_PAIS)), cCadOrig += AllTrim(Posicione("SYA",1,xFilial("SYA")+SA1->A1_PAIS,"YA_CCESAT")) + _aTotal[098], "")
(POS) IIf(lCCCE .And. !Empty(AllTrim(SA1->A1_CEP)), cCadOrig += AllTrim(SA1->A1_CEP) + _aTotal[098], "")

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

(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 := "MIIFyDCCA7CgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDMwDQYJKoZIhvcNAQEL"
(PRE) cCert += "BQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFE"
(PRE) cCert += "TUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9y"
(PRE) cCert += "aXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0w"
(PRE) cCert += "GwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJ"
(PRE) cCert += "BgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhD"
(PRE) cCert += "T1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3Bv"
(PRE) cCert += "bnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjA0MDUxWhcNMjMwNjE3MjA0MDUx"
(PRE) cCert += "WjCB7zEqMCgGA1UEAxMhWEVOT04gSU5EVVNUUklBTCBBUlRJQ0xFUyBTIERFIENW"
(PRE) cCert += "MSowKAYDVQQpEyFYRU5PTiBJTkRVU1RSSUFMIEFSVElDTEVTIFMgREUgQ1YxKjAo"
(PRE) cCert += "BgNVBAoTIVhFTk9OIElORFVTVFJJQUwgQVJUSUNMRVMgUyBERSBDVjElMCMGA1UE"
(PRE) cCert += "LRMcWElBMTkwMTI4SjYxIC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FI"
(PRE) cCert += "TzY0MTEwMUhOVExLUzA2MSIwIAYDVQQLExlYZW5vbiBJbmR1c3RyaWFsIEFydGlj"
(PRE) cCert += "bGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiJQ5YcSgjwsGf29+"
(PRE) cCert += "3go7VGdtMZCcH9wUpn46ZMAlFwUojnCPTvwJ3+cSwjqJnw8ahr3DuRwekvGR4BJA"
(PRE) cCert += "b5b9Xi8kyoiWtwcGOSWxO38Bp9J1e/BO9HMbQBPAtLDuG47oqnH8zWLOeaoYRJDp"
(PRE) cCert += "ARw4RX1ko2+9tbj0ntBtM7Vk1E8EWiA/h2Meq0LIv1+ySGTUrEW46FM01J5pzELv"
(PRE) cCert += "5XupBghuJxR5DG9fiOW7u3dR5s3tZoVLwA1KdjJtY0mmnfCwxg6i5AqhvY+FAI5D"
(PRE) cCert += "6CF6/lHA8PWg63WasvrhuIv70xCLjgPT/j00ZcPrLvBf1DefGVic980Ch/SDvC+M"
(PRE) cCert += "dJ1F5wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG"
(PRE) cCert += "9w0BAQsFAAOCAgEACjfTPoKY2N5MxjmAMltd5XZCV1vgAwEtrIRYTodhE8R0Tp1Q"
(PRE) cCert += "anAXb0luPyBv5hIXWK4VqAI4fcTtP+n7kkrwfha6ErkPWFNJWJm8ZsMmby/3WgVo"
(PRE) cCert += "JkOFyRYQqr5Il3N6wMa5kiDBtDRbqB3iEXmvtrvjWSHyxAER+zo3jWGFlhBZ0nQN"
(PRE) cCert += "Rtjx8sPFihVc5TUH682HJiU4oWvT63Dnra8ncqiW/uCuY86crnUq0fW7Lw/3+PY5"
(PRE) cCert += "xXjNxR/Hh3sUPITfJrGaLWurD1J9npr9yGAJ6t9zrhhZnepIC0DUMc5+j4pg1DrO"
(PRE) cCert += "32jzwUOLQqErDizh84NoJCWwbg+US8wi3zD0ZKiDv7XsTNWAW2Ap2JkzykKHjFTZ"
(PRE) cCert += "iEm3uZOkJNfcu3o+kefr5HfXFT+iN9K5FUEhaQwgUeZBRJ8V5F6gmhz3d6ixVbiZ"
(PRE) cCert += "oFNhYR8e2k8gF9gGrVMrEbJGQrl+6+ZYQLFiauXeG7fu1svk19PuyredRJGnseJq"
(PRE) cCert += "yV4RzcRGhJA+cLnmpdDOTEhignnvnhEuY6HVRYYXhOTyeeluET7KRCxbJGqO7TdW"
(PRE) cCert += "gjrHL3HRbNE4NY5GAdOZuLaWxElG5ZVCHqtG0Nh7UQAhcz+EKyZBAewv5XuH0Oom"
(PRE) cCert += "ZXw6mM2mY2soL6z1224NusM8/BbJcYTQUlAEKblEChhGK1XlxiVOU2nc9KE="

(PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF1->F1_TIPOPE), .T., .F.)
(PRE) cNodoCCE := ""

(PRE) If(AllTrim(SF1->F1_ESPECIE)=="NCC",SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PRE) (SE4->(MSSeek(xFilial("SE4")+SF1->F1_COND)) , .T.)
(PRE) (AI0->(MSSeek(xFilial("AI0")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PRE) _aTotal[001] := '<cfdi:Comprobante'
(PRE) _aTotal[001] += ' xmlns:cfdi="http://www.sat.gob.mx/cfd/3"'
(PRE) _aTotal[001] += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
(PRE) _aTotal[001] += ' xmlns:implocal="http://www.sat.gob.mx/implocal"'
(PRE) _aTotal[001] += ' xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd"'
(PRE) _aTotal[001] += ' Version="3.3"'
(PRE) _aTotal[001] += ' Serie="' + Alltrim(SF1->F1_SERIE) + '"'
(PRE) _aTotal[001] += ' Folio="' + Alltrim(SF1->F1_DOC) + '"'
(PRE) _aTotal[001] += ' Fecha="' + Alltrim(_aTotal[096]) + '"'
(PRE) _aTotal[001] += ' Sello="' + Alltrim(_aTotal[100]) + '"'
(PRE) _aTotal[001] += ' FormaPago="' + Iif(Empty(AI0->AI0_MPAGO),"99",Alltrim(AI0->AI0_MPAGO)) + '"'
(PRE) _aTotal[001] += ' NoCertificado="' + Alltrim(SF1->F1_CERTFOL) + '"'
(PRE) _aTotal[001] += ' Certificado="' + cCert + '"'
(PRE) _aTotal[001] += ' CondicionesDePago="' + CFDCarEsp(Alltrim(SE4->E4_DESCRI)) + '"'
(PRE) _aTotal[001] += ' SubTotal="' + Alltrim(STR((SF1->F1_VALMERC + IIF(_aTotal[101], SF1->F1_DESCONT, 0 )) - _aTotal[036],14,2)) + '"'
(PRE) _aTotal[001] += IIf(SF1->F1_DESCONT==0, "", ' Descuento="' + Alltrim(STR(SF1->F1_DESCONT,14,2)) + '"')
(PRE) _aTotal[001] += ' Moneda="' + Alltrim(CTO->CTO_MOESAT) + '"'
(PRE) _aTotal[001] += ' TipoCambio="' + IIf(Alltrim(CTO->CTO_MOESAT) <> "MXN", Alltrim(STR(SF1->F1_TXMOEDA,14,2)), "1") + '"'
(PRE) _aTotal[001] += ' Total="' + Alltrim(STR(iif(GetSx3Cache("F1_VALBRUT","X3_DECIMAL")<= 2,SF1->F1_VALBRUT,Round(SF1->F1_VALBRUT,2)),14,2)) + '"'
(PRE) _aTotal[001] += ' TipoDeComprobante="' + IIf(Alltrim(SF1->F1_ESPECIE) == "NF", "I", "E") + '"'
(PRE) _aTotal[001] += ' MetodoPago="PUE"'
(PRE) _aTotal[001] += ' LugarExpedicion="' + CFDCarEsp(AllTrim(SM0->M0_CEPENT)) + '"'
(PRE) _aTotal[001] += '>'
(PREREG) _aTotal[001]

(POS) cNodoCCE := IIf(lCCCE, ' <cce11:ComercioExterior' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xmlns:cfdi="http://www.sat.gob.mx/cfd/3"' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xmlns:cce11="http://www.sat.gob.mx/ComercioExterior11"' , "")
(POS) cNodoCCE += IIf(lCCCE, ' xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://www.sat.gob.mx/ComercioExterior11 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior11/ComercioExterior11.xsd"' , "")
(POS) cNodoCCE += IIf(lCCCE, ' Version="1.1"' , "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_TRASLA), ' MotivoTraslado="' + Alltrim(SF1->F1_TRASLA) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_TIPOPE), ' TipoOperacion="' + Alltrim(SF1->F1_TIPOPE) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_CVEPED), ' ClaveDePedimento="' + Alltrim(SF1->F1_CVEPED) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_CERORI), ' CertificadoOrigen="' + Alltrim(SF1->F1_CERORI) +'"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_NUMCER), ' NumCertificadoOrigen="' + Alltrim(SF1->F1_NUMCER) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_EXPCONF), ' NumeroExportadorConfiable="' + Alltrim(SF1->F1_EXPCONF) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_INCOTER), ' Incoterm="' + Alltrim(SF1->F1_INCOTER) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(SF1->F1_SUBDIV), ' Subdivision="' + Alltrim(SF1->F1_SUBDIV) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. SF1->(ColumnPos("F1_OBSCE")) > 0 .And. !Empty(SF1->F1_OBSCE), ' Observaciones="' + CFDCarEsp(Alltrim(SF1->F1_OBSCE), .F.) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(Str(SF1->F1_TCUSD)), ' TipoCambioUSD="' + Alltrim(Str(SF1->F1_TCUSD)) + '"', "")
(POS) cNodoCCE += IIf(lCCCE .And. !Empty(Str(SF1->F1_TOTUSD)), ' TotalUSD="' + Alltrim(Str(SF1->F1_TOTUSD,14,2)) + '"', "")
(POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "")
(POS) _aTotal[094] := cNodoCCE

[XXX CFDIREL]
(PREREG) AllTrim(SF1->F1_RELSAT) <> ""
(PREREG) (_aTotal[001] := fGetFolRel("E"),.T.)
(PREREG) _aTotal[001]

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

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

(PREREG) AllTrim(SF1->F1_ESPECIE) == "NCC"
(PREREG) (SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA)) , .T.)
(PREREG) (SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS)) , .T.)
(PREREG) (_aTotal[001] := ' <cfdi:Receptor' , .T.)
(PREREG) (_aTotal[001] += ' Rfc="' + CFDCarEsp(AllTrim(SA1->A1_CGC)) + '"' , .T.)
(PREREG) (_aTotal[001] += ' Nombre="' + CFDCarEsp(Alltrim(SA1->A1_NOME),.T.) + '"' , .T.)
(PREREG) IIf(lCCCE,(_aTotal[001] += ' ResidenciaFiscal="' + Alltrim(SYA->YA_CCESAT) + '"' , .T.),"")
(PREREG) IIf(lCCCE,(_aTotal[001] += ' NumRegIdTrib="' + Alltrim(AI0->AI0_IDFIS) + '"' , .T.),"")
(PREREG) (_aTotal[001] += ' UsoCFDI="' + Alltrim(SF1->F1_USOCFDI) + '"' , .T.)
(PREREG) (_aTotal[001] += '/>' ,.T.)
(PREREG) _aTotal[001]


//Emisor
(POS) cNodoCCE += IIf(lCCCE, ' <cce11:Emisor' , "")
(POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "")
(POS) cNodoCCE += IIf(lCCCE, ' <cce11: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_CEPENT),5,5,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, ' </cce11:Emisor>' + ( chr(13)+chr(10) ), "")

//Receptor
(POS) cNodoCCE += IIf(lCCCE, ' <cce11:Receptor' , "")
(POS) cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ), "")

//Domicilio Receptor
(POS) cNodoCCE += IIf(lCCCE, ' <cce11: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, ' </cce11:Receptor>' + ( chr(13)+chr(10) ), "")

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

[SD1 CONCEPTO]
(PRE) lCCCE := IIf(SuperGetMV("MV_CFDIEXP",.F.,.F.) .And. !Empty(SF1->F1_TIPOPE), .T., .F.)
(PRE) cNodoCCE := ""

(PRE) DbGoTop()

(PREREG) (cNodoCCE += IIf(lCCCE, ' <cce11:Mercancia' , ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD1->D1_ITEM + SD1->D1_COD), ' NoIdentificacion="' + Alltrim(SD1->D1_ITEM + SD1->D1_COD) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD1->D1_FRACCA), ' FraccionArancelaria="' + Alltrim(SD1->D1_FRACCA) + Alltrim(SD1->D1_NICO) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD1->D1_CANADU)), ' CantidadAduana="' + Alltrim(Str(SD1->D1_CANADU)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(SD1->D1_FRACCA), ' UnidadAduana="' + AllTrim(ObtColSAT("S014",AllTrim(SD1->D1_FRACCA),1,8,9,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD1->D1_VALADU)), ' ValorUnitarioAduana="' + Alltrim(Str(SD1->D1_VALADU,14,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE .And. !Empty(Str(SD1->D1_USDADU)), ' ValorDolares="' + Alltrim(Str(SD1->D1_USDADU,14,2)) + '"', ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, '>' + ( chr(13)+chr(10) ) , ""),.T.)
(PREREG) (cNodoCCE += IIf(lCCCE, ' </cce11:Mercancia>' + ( chr(13)+chr(10) ), ""),.T.)

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

(POS) (_aTotal[034] := fXMLFUN("CO",.F., .F. ,.F.))

[XXX CONCEPTOS]
(POS) FsQuery(_aTotal[097],2)
(PREREG) (_aTotal[001] := _aTotal[034],.T.)
(PREREG) _aTotal[001]

[XXX IMPUESTOS]
(PREREG) (_aTotal[002] := fXMLFUN("TI",.F., .F. ,.T.))
(PREREG) _aTotal[002]

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

[XXX COMPLEMENT]
(PREREG) (_aTotal[001] := IIF(!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095]), ' <cfdi:Complemento', ""), .T.)
(PREREG) (_aTotal[001] += IIF(!EMPTY(_aTotal[094] ) .or. !EMPTY(_aTotal[095]),'>',""),.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 IMPUESTOLOC]
(PREREG) (_aTotal[001] := _aTotal[095],.T.)
(PREREG) _aTotal[001]

[XXX COMPLEMENT]
(PREREG) (_aTotal[001] := IIF(!EMPTY(_aTotal[094]) .or. !EMPTY(_aTotal[095]) ,' </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_CFDNAF1","Lower(AllTrim(SF1->F1_ESPECIE)) + '_' + Lower(AllTrim(SF1->F1_SERIE)) + '_' + Lower(AllTrim(SF1->F1_DOC)) + '.xml'"))
(ARQ) _aTotal[095]
FACTURA C 019 0 ENCODEUTF8(XMLConv("",,,"cfdi:Comprobante",.F.,.T.,0))

04. DICCIONARIO DE DATOS

En caso de contar con el archivo diferencial del diccionario (SDFMEX.TXT) para realizar la actualización, consulte el documento Actualizador de diccionario y base de datos - UPDDISTR el cual le guiará para aplicar las actualizaciones automáticamente desde el archivo diferencial.

Se realizan las siguientes actualizaciones al diccionario de datos:

Tablas y Campos


Nueva tabla A1X - CFDI Complemento Carta Porte.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
A1X_FILIAL01C80
RealAlterarSucursal    Sucursal del sistema     Código de identificación de la sucursal de la empresa usuaria del sistema.


      
NoNo
A1X_DOC   02C200@!RealAlterarDocumento   Número de docto/factura  Número de la factura.


      
No
A1X_SERIE 03C30!!!RealAlterarSerie       Serie                    Serie de la factura.


      
No
A1X_INTERN04C10@!RealAlterarTransp InterTransporte internacional Si los bienes o mercancías que son transportadas, ingresan o salen del territorio nacional. Solo se pueden registrar los valores “Sí” o “No”.S=Si;N=No

      Pertence("SN")
A1X_ENTSAL05C10@!RealAlterarTipo        Entrada o Salida         Si los bienes o mercancías ingresan o salen del territorio nacional.E=Entrada;S=Salida

      Pertence("ES")
A1X_PERSCT06C60@!RealAlterarPermiso SCT Tipo de permiso SCT      Clave del tipo de permiso proporcionado por la SCT, el cual debe corresponder de acuerdo al tipo de autotransporte utilizado para el traslado de los bienes o mercancías del catálogo del complemento Carta Porte, c_TipoPermiso, publicado en el portal del SAT.


MEX022Vazio() .or. ValidF3I("S022", M->A1X_PERSCT,1,6)
A1X_PERMIS07C200@!RealAlterarNum.Perm.SCTNúmero permiso SCT       Número del permiso otorgado por la SCT, el cual se debe registrar de acuerdo al tipo de autotransporte utilizado para el traslado de los bienes o mercancías. Ejemplo: NumPermisoSCT= 0X2XTXZ0X5X0X3X2X1X0


      
A1X_ASEGUR08C300@!RealAlterarAseguradora Nombre de la aseguradora Nombre de la aseguradora que cubre los riesgos del autotransporte utilizado para el traslado de los bienes o mercancías.


      
A1X_POLIZA09C60@!RealAlterarNúm. Póliza Número de póliza         Número de póliza asignado por la aseguradora, que cubre los riesgos del autotransporte utilizado para el traslado de los bienes o mercancías.


      
A1X_TRANSP10C20@!RealAlterarTransporte  Clave de transporte      Clave del catálogo del complemento Carta Porte, *Los campos marcados con asterisco son obligatorios. c_CveTransporte, publicado en el portal del SAT, que identifica el medio por el cual se transportan los bienes o mercancías.


MEX017Vazio() .or. ValidF3I("S017", M->A1X_TRANSP,1,2)
A1X_VEHIC 11C80@!RealAlterarVehículo    Codigo de vehículo       Código de vehículo relacionada con la tabla de vehículos DA3. La categoría registrada en la tabla Tipos de Vehículo (DUT), relacionada con el vehículo correspondiente, debe ser diferente a 3-Remolque.


DA3   ExistCPO("DA3") 
A1X_PLACA 12C80@!VirtualVisualizarPlaca       Número de placa          Placa vehicular del autotransporte que es utilizado para transportar los bienes o mercancías, se deben registrar solo los caracteres alfanuméricos, sin guiones y espacios.


      
No
A1X_MODELO13C40@!VirtualVisualizarModeloAño modeloAño del autotransporte que es utilizado para transportar los bienes o mercancías.


      
No
A1X_CONFIG14C70@!VirtualVisualizarConfig.VehicConfiguración vehicular  Clave de nomenclatura del autotransporte, del catálogo del complemento Carta Porte, c_ConfigAutotransporte, publicado en el portal del SAT, que es utilizado para transportar los bienes o mercancías.


      
No
A1X_REMOLQ15C80@!RealAlterarRemolque    Código de remolque       Código de vehículo relacionada con la tabla de vehículos DA3. La categoría registrada en la tabla Tipos de Vehículo (DUT), relacionada con el vehículo correspondiente, debe ser igual a 3-Remolque.


DA3   ExistCPO("DA3") No
A1X_SUBREM16C60@!VirtualVisualizarSub remolqueSubtipo remolque         Clave del subtipo de remolque o semirremolques del catálogo del complemento Carta Porte, c_SubTipoRem, publicado en el portal del SAT, que se emplean con el autotransporte para el traslado de los bienes o mercancías.


      
No
A1X_PLAREM17C80@!VirtualVisualizarPlaca RemolqNúmero de placa remolque Placa vehicular del remolque o semirremolque que es utilizado para transportar los bienes o mercancías, se deben registrar solo los caracteres alfanuméricos, sin guiones y espacios.


      
No


Indice.

OrdenClaveDescripciónMuestra Busq.
1A1X_FILIAL+A1X_DOC+A1X_SERIEDocumento + Serie


Nueva tabla A1Y - Carta Porte - Ubicaciones.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
A1Y_FILIAL01C80
RealAlterarSucursal    Sucursal del sistema     Código de identificación de la sucursal de la empresa usuaria del sistema.


      
NoNo
A1Y_DOC   02C200@!RealAlterarDocumento   Número de docto/factura  Número de la factura.


      
No
A1Y_SERIE 03C30!!!RealAlterarSerie       Serie                    Serie de la factura.


      
No
A1Y_ITEM  04C20@!RealAlterarNum. Item   Número de ítem           Consecutivo en el registro de ubicaciones. (Asignar automáticamente, relleno de ceros a la izquierda.)


      
No
A1Y_TIPEST05C20@!RealAlterarEstación    Tipo de estación         Se debe informar una clave del catálogo c_TIpoEstacion si Transporte Internacional es Si, y el origen o destino es territorio nacional.


MEX018Vazio() .or. ValidF3I("S018", M->A1Y_TIPEST,1,2)No
A1Y_DISREC06N122@E 999,999,999.99RealAlterarDistancia   Distancia recorrida      Distacia recorrida en kms de la ubicación Origen al Destino parcial o final.


      Positivo()No
A1Y_RFCORI07C140@!RealAlterarRFC Origen  RFC origen               RFC del remitente de los bienes o mercancías que se trasladan.


      
No
A1Y_NOMORI08C500@!RealAlterarNombre Orig.Nombre de origen         Nombre del remitente de los bienes o mercancías que se trasladan.


      
No
A1Y_FECSAL09D80
RealAlterarFecha SalidaFecha de salida          Fecha prevista de salida.


      
A1Y_HRASAL10C8099:99:99RealAlterarHora Salida Hora de salida           Hora estimada de salida.
"00:00:00"
      
A1Y_CALORI11C400@!RealAlterarCalle OrigenCalle origen             Calle en la que está ubicado  el domicilio de origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.


      
A1Y_EXTORI12C50
RealAlterarNum.Ext.Ori.Número exterior origen   Número exterior en donde se ubica el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.


      
No
A1Y_INTORI13C50
RealAlterarNum.Int.OrigNúmero interior origen   Número interior en caso de existir, en donde se ubica el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.


      
No
A1Y_EDOORI14C30@!RealAlterarEstado Orig.Estado origen Estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo Estado debe contener una clave del catálogo, c_Estado, publicado en el portal del SAT, donde la columna c_Pais tenga el valor "MEX", “ USA” o “CAN”. Ejemplo: Estado= AGU


MEX025Vazio() .or. ValidF3I("S025", M->A1Y_EDOORI,1,3)
A1Y_CPORI 15C50
RealAlterarC.P. OrigenCódigo postal origenCódigo postal (PO, BOX) en donde se encuentra el domicilio del *Los campos marcados con asterisco son obligatorios. origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo CodigoPostal debe contener una clave del catálogo, c_CodigoPostal, publicado en el portal del SAT, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo de Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad. Ejemplo: CodigoPostal= 20115


MEX004

Vazio() .or. VldF3ICP("S004", M->A1Y_CPORI,1,8) 

A1Y_COLORI16C40@!RealAlterarColonia OrigColonia Origen           Donde se ubica el domicilio del origen o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario este campo debe contener una clave del catálogo, c_Colonia, publicado en el portal del SAT, donde la columna c_CodigoPostal debe ser igual a la clave registrada en el campo CodigoPostal. Ejemplo: Colonia= 0069


MEX015Vazio() .or. VldF3ICP("S015", M->A1Y_COLORI,1,9)No
A1Y_LOCORI17C20@!RealAlterarLocalidad OrLocalidad origen         Registrar la ciudad, población, distrito u otro análogo en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX" se debe registrar texto libre. Si la clave del país es “MEX” este campo debe contener una clave del catálogo, c_Localidad, publicado en el portal del SAT, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado. Ejemplo: Localidad= 01


MEX023Vazio() .or. VldF3ICP("S023", M->A1Y_LOCORI,1,5)No
A1Y_MUNORI18C30@!RealAlterarMunicipio OrMunicipio origen         Municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo, c_Municipio, publicado en el portal del SAT, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado. Ejemplo: Municipio= 001


MEX024Vazio() .or. VldF3ICP("S024", M->A1Y_MUNORI,1,6)No
A1Y_PAIORI19C30@!RealAlterarPaís Origen País origen              Clave del país en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Este campo debe contener una clave del catálogo c_Pais, publicado en el portal del SAT. Ejemplo: Pais= MEX


MEX009Vazio() .or. ValidF3I("S009", M->A1Y_PAIORI,1,3)
A1Y_RFCDES20C140@!RealAlterarRFC Destino RFC destino              RFC del destinatario de los bienes o mercancías que se trasladan.


      
No
A1Y_NOMDES21C500@!RealAlterarNombre      Nombre destino           Nombre del destinatario de los bienes o mercancías que se trasladan.


      
No
A1Y_FECLLE22D80
RealAlterarFecha LlegadFecha de llegada         Fecha prevista de llegada.


      
A1Y_HRALLE23C8099:99:99RealAlterarHora LlegadaHora de llegada          Hora estimada de llegada.
"00:00:00"
      
A1Y_CALDES24C400@!RealAlterarCalle DestinCalle destino            Calle en la que está ubicado  el domicilio de origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.


      
A1Y_EXTDES25C50
RealAlterarNum.Ext.Des.Número exterior destino  Número exterior en donde se ubica el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.


      
No
A1Y_INTDES26C50
RealAlterarNum.Int.Des.Número interior destino  Número interior en caso de existir, en donde se ubica el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte.


      
No
A1Y_EDODES27C30@!RealAlterarEstado Des.Estado destinoEstado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo Estado debe contener una clave del catálogo, c_Estado, publicado en el portal del SAT, donde la columna c_Pais tenga el valor "MEX", “ USA” o “CAN”. Ejemplo: Estado= AGU


MEX025Vazio() .or. ValidF3I("S025", M->A1Y_EDODES,1,3)
A1Y_CPDES 28C50
RealAlterarC.P. DestinoCódigo postal destinoCódigo postal (PO, BOX) en donde se encuentra el domicilio del *Los campos marcados con asterisco son obligatorios. origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo CodigoPostal debe contener una clave del catálogo, c_CodigoPostal, publicado en el portal del SAT, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo de Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad. Ejemplo: CodigoPostal= 20115


MEX004Vazio() .or. VldF3ICP("S004", M->A1Y_CPDES,1,8) 
A1Y_COLDES29C40@!RealAlterarColonia Des.Colonia destino          Donde se ubica el domicilio del origen o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario este campo debe contener una clave del catálogo, c_Colonia, publicado en el portal del SAT, donde la columna c_CodigoPostal debe ser igual a la clave registrada en el campo CodigoPostal. Ejemplo: Colonia= 0069


MEX015Vazio() .or. VldF3ICP("S015", M->A1Y_COLDES,1,9)No
A1Y_LOCDES30C20@!RealAlterarLocalidad D.Localidad destino        Registrar la ciudad, población, distrito u otro análogo en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX" se debe registrar texto libre. Si la clave del país es “MEX” este campo debe contener una clave del catálogo, c_Localidad, publicado en el portal del SAT, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado. Ejemplo: Localidad= 01


MEX023Vazio() .or. VldF3ICP("S023", M->A1Y_LOCDES,1,5)No
A1Y_MUNDES31C30@!RealAlterarMunicipio D.Municipio destino        Municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo, c_Municipio, publicado en el portal del SAT, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado. Ejemplo: Municipio= 001


MEX024Vazio() .or. VldF3ICP("S024", M->A1Y_MUNDES,1,6)No
A1Y_PAIDES32C30@!RealAlterarPaís DestinoPaís destino             Clave del país en donde se encuentra ubicado el domicilio del origen y/o destino de los bienes o mercancías que se trasladan en los distintos medios de transporte. Este campo debe contener una clave del catálogo c_Pais, publicado en el portal del SAT. Ejemplo: Pais= MEX


MEX009Vazio() .or. ValidF3I("S009", M->A1Y_PAIDES,1,3)


Indice.

OrdenClaveDescripciónMuestra Busq.
1A1Y_FILIAL+A1Y_DOC+A1Y_SERIE+A1Y_ITEMDocumento + Serie + Num. Item


Nueva tabla A1Z - Carta Porte - Operadores.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
A1Z_FILIAL01C80
RealAlterarSucursal    Sucursal del sistemaCódigo de identificación de la sucursal de la empresa usuaria del sistema.


      
NoNo
A1Z_DOC   02C200@!RealAlterarDocumento   Número de docto/facturaNúmero de la factura.


      
No
A1Z_SERIE 03C30!!!RealAlterarSerie       SerieSerie de la factura.


      
No
A1Z_ITEM  04C20@!RealAlterarItem        Número de ítemConsecutivo en el registro de operadores. (Asignar automáticamente, relleno de ceros a la izquierda)


      
No
A1Z_OPERAD05C60@!RealAlterarOperador    Código de  operadorCódigo del operador relacionado con la tabla de conductores DA4.


DA4   ExistCPO("DA4") 
A1Z_RFC   06C140@!VirtualVisualizarRFC         RFC operadorRFC del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.


      
A1Z_LICENC07C110@!VirtualVisualizarLicencia    Número de licenciaNúmero de folio de la licencia o el permiso otorgado al operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.


      
A1Z_NOMBRE08C400@!VirtualVisualizarNombre      Nombre operadorNombre del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.


      
A1Z_CALLE 09C400@!VirtualVisualizarCalle       Calle operadorCalle en que está ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Ejemplo: Calle= Álvaro Obregón


      
A1Z_NUMEXT10C50
VirtualVisualizarNum.ExteriorNúmero exteriorNúmero exterior en donde se ubica el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Ejemplo: NumeroExterior = 22


      
No
A1Z_NUMINT11C50
VirtualVisualizarNum.InteriorNúmero interiorNúmero interior, en caso de existir, en donde se ubica el *Los campos marcados con asterisco son obligatorios. domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías.


      
No
A1Z_ESTADO12C30@!VirtualVisualizarEstadoEstadoClave del catálogo, c_Estado, publicado en el portal del SAT, del estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. *Los campos marcados con asterisco son obligatorios. Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo Estado debe contener una clave del catálogo c_Estado, donde la columna c_Pais tenga el valor "MEX”, “USA” o “CAN ". Ejemplo: Estado= AGU




A1Z_CP    13C50
VirtualVisualizarC.P.        Código postalClave del código postal (PO, BOX) del catálogo, c_CodigoPostal, publicado en el portal del SAT, el en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario este campo debe contener una clave del catálogo c_CodigoPostal, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad. *Los campos marcados con asterisco son obligatorios. Ejemplo: CodigoPostal= 20115




A1Z_COLON 14C40@!VirtualVisualizarColonia     Colonia                  Clave del catálogo c_Colonia, publicado en el portal del SAT, de la colonia o dato análogo en donde se ubica el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre, en caso contrario el campo “Colonia” debe contener una clave del catálogo c_Colonia, donde la columna c_CodigoPostal, debe ser igual a la clave registrada en el campo CodigoPostal.




No
A1Z_LOCAL 15C20@!VirtualVisualizarLocalidad   Localidad                Clave del catálogo c_Localidad, publicado en el portal del SAT, de la ciudad, población, distrito u análogo en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre. Si la clave del país es “MEX” este campo debe contener una clave del catálogo c_Localidad, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado. Ejemplo: Localidad= 01




No
A1Z_MUNIC 16C30@!VirtualVisualizarMunicipio   Municipio                Clave del catálogo c_Municipio, publicado en el portal del SAT, el municipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo c_Municipio, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado. Ejemplo: Municipio= 001




No
A1Z_PAIS  17C30@!VirtualVisualizarPaís        Pais                     Clave del catálogo, c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1, del país en donde se encuentra ubicado el domicilio del operador del autotransporte de carga federal en el que se trasladan los bienes o mercancías. Este campo debe contener una clave del catálogo c_Pais. Ejemplo: Pais= MEX





Indice.

OrdenClaveDescripciónMuestra Busq.
1A1Z_FILIAL+A1Z_DOC+A1Z_SERIE+A1Z_ITEMDocumento + Serie + Item


Nueva tabla AE0 - Carta Porte-Propietarios/Arrendatarios.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
AE0_FILIAL01C80
RealAlterarSucursal    Sucursal del sistemaCódigo de identificación de la sucursal de la empresa usuaria del sistema.


      
NoNo
AE0_DOC   02C200@!RealAlterarDocumento   Número docto/facturaNúmero de la factura.


      
No
AE0_SERIE 03C30!!!RealAlterarSerie       Serie de la facturaSerie de la factura.


      
No
AE0_ITEM  04C20@!RealAlterarItem        Número de ítemConsecutivo en el registro de propietarios/arrendatarios. (Asignar automáticamente, relleno de ceros a la izquierda)


      
No
AE0_TIPO  05C10@!RealAlterarTipo        Propietario/ArrendatarioIndica si el registro es de tipo Propietario o Arrendatario del vehículo de transporte.P=Propietario;A=Arrendatario

      Pertence("PA")
AE0_TRANSP06C60@!RealAlterarTransportad.TransportadoraCódigo del transporte relacionado con la tabla de transportadoras, SA4.


SA4   ExistCPO("SA4") 
AE0_NOMBRE07C400@!VirtualVisualizarNombre      Nombre transportadoraNombre del propietario/arrendatario del medio de transporte.


      
No
AE0_RFC   08C140@!VirtualVisualizarRFC         RFC transportadoraRFC del propietario/arrendatario del medio de transporte.


      
No
AE0_CALLE 09C400@!VirtualVisualizarCalle       CalleCalle en que está ubicado el domicilio del propietario/arrendatario del medio de transporte. Ejemplo: Calle= Álvaro Obregón


      
No
AE0_NUMEXT10C50
VirtualVisualizarNum ExteriorNúmero exteriorNúmero exterior en donde se ubica el domicilio del propietario/arrendatario del transporte. Ejemplo: NumeroExterior = 22


      
No
AE0_NUMINT11C50
VirtualVisualizarNum InteriorNúmero interiorNúmero interior, en caso de existir, en donde se ubica el domicilio del propietario/arrendatario del autotransporte. Ejemplo: NumeroInterior = 33


      
No
AE0_ESTADO12C30@!VirtualVisualizarEstadoEstadoClave del catálogo, c_Estado, publicado en el portal del SAT, del estado, entidad, región, comunidad, u otra figura análoga en donde se encuentra ubicado el domicilio del propietario/arrendatario del transporte. Si la clave del país es distinta a "MEX", “USA” o “CAN”, se debe registrar texto libre; en caso contrario el campo de Estado debe contener una clave del catálogo c_Estado, donde la columna c_Pais tenga el valor "MEX", “USA” o “CAN”. Ejemplo: Estado= AGU




No
AE0_CP13C50
VirtualVisualizarC.P.Código postalClave del código postal (PO, BOX) del catálogo, c_CodigoPostal, publicado en el portal del SAT, el en donde se encuentra ubicado el domicilio del propietario/arrendatario del transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo CodigoPostal debe contener una clave del catálogo c_CodigoPostal, donde la clave de la columna c_Estado, debe ser igual a la clave registrada en el campo Estado, la columna c_Municipio, debe ser igual a la clave registrada en el campo Municipio, y si existe el campo Localidad, la columna de clave c_Localidad, debe ser igual a la clave registrada en el campo Localidad. Ejemplo: CodigoPostal= 20115




No
AE0_COLON 14C40@!VirtualVisualizarColonia     ColoniaClave del catálogo c_Colonia, publicado en el portal del SAT, de la colonia o dato análogo en donde se ubica el domicilio del propietario/arrendatario del transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Colonia debe contener una clave del catálogo c_Colonia, donde la columna c_CodigoPostal, debe ser igual a la clave registrada en el campo CodigoPostal. Ejemplo: Colonia= 0069


      
No
AE0_LOCAL 15C20@!VirtualVisualizarLocalidad   LocalidadClave del catálogo c_Localidad, publicado en el portal del SAT, de la ciudad, población, distrito o análogo en donde se encuentra ubicado el domicilio del propietario/arrendatario del transporte. Si la clave del país es diferente de "MEX", se debe registrar texto libremente. El campo de Localidad debe contener una clave del catálogo c_Localidad, donde la columna c_Estado, tiene el valor seleccionado en el campo Estado. Ejemplo: Localidad= 01


      
No
AE0_MUNIC 16C30@!VirtualVisualizarMunicipio   MunicipioMunicipio, delegación o alcaldía, condado u otro análogo en donde se encuentra ubicado el domicilio del propietario/arrendatario del transporte. Si la clave del país es distinta a "MEX", se debe registrar texto libre; en caso contrario el campo Municipio debe contener una clave del catálogo c_Municipio, donde la columna c_Estado, debe ser igual a la clave registrada en el campo Estado. Ejemplo: Municipio= 001


      
No
AE0_PAIS  17C30@!VirtualVisualizarPaís        PaísClave del catálogo, c_Pais, publicado en el portal del SAT que está basado en la especificación ISO 3166-1, del país en donde se encuentra ubicado el domicilio del propietario/arrendatario del transporte. Este campo debe contener una clave del catálogo c_Pais. Ejemplo: Pais= MEX


      
No


Indice.

OrdenClaveDescripciónMuestra Busq.
1AE0_FILIAL+AE0_DOC+AE0_SERIE+AE0_ITEMDocumento + Serie + Item


Modificaciones a la tabla DA3 - Conductores.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
DA3_CONFIG
C70@!RealAlterarConfig VehicConfiguración vehicular  Clave de nomenclatura del autotransporte, del catálogo del complemento Carta Porte, c_ConfigAutotransporte, publicado en el portal del SAT, que es utilizado para transportar los bienes o mercancías.


MEX026Vazio() .or. ValidF3I("S026", M->DA3_CONFIG,1,7)No
DA3_SUBREM
C60@!RealAlterarSubt.Remolq.Subtipo remolque         Clave del subtipo de remolque o semirremolques del catálogo del complemento Carta Porte, c_SubTipoRem, publicado en el portal del SAT, que se emplean con el autotransporte para el traslado de los bienes o mercancías.


MEX027Vazio() .or. ValidF3I("S027", M->DA3_SUBREM,1,6)No


Modificaciones a la tabla DA4 - Vehículos.

Campos nuevos.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
DA4_NUMEXT
C50
RealAlterarNum.ExteriorNúmero exterior          Número exterior del domicilio.


      
No
DA4_NUMINT
C50
RealAlterarNum.InteriorNúmero interior          Número interior del domicilio.


      
No
DA4_CODBAI
C40@!RealAlterarCod. ColoniaCódigo de colonia        Código de la colonia correspondiente al catálogo c_Colonia del SAT.


MEX015Vazio() .or. ValidF3I("S015", M->DA4_CODBAI+M->DA4_CEP,1,9)No
DA4_LOCAL 
C20@!RealAlterarLocalidad   Localidad                Código de la localidad correspondiente al catálogo c_Localidad del SAT.


MEX023Vazio() .or. ValidF3I("S023", M->DA4_LOCAL+M->DA4_EST,1,5) No



Modificación de campos. (°)

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
DA4_CODMUN
C30@9RealAlterarCd.MunicipioCodigo del MunicipioCódigo del municipio correspondiente al catálogo c_Municipio del SAT.


MEX024Vazio() .Or. ValidF3I("S024", Substr(M->DA4_CODMUN,1,3)+M->DA4_EST,1,6)No
DA4_EST   
C30@!RealAlterarEstado      Estado                   Código del estado correspondiente al catálogo c_Estado del SAT.


MEX025Vazio() .or. ValidF3I("S025", M->DA4_EST,1,3) No
DA4_PAIS  
C30@!RealAlterarPaís        Código del país          Código del país correspondiente al catálogo c_Pais del SAT.


MEX009Vazio() .or. ValidF3I("S009", M->DA4_PAIS,1,3)No
DA4_CEP   
C50@9RealAlterarCP          Codigo Postal            Código postal correspondiente al catálogo c_CodigoPostal del SAT.


MEX004Vazio() .or. ValidF3I("S004", Substr(M->DA4_CEP,1,5)+M->DA4_EST,1,8) No
DA4_ESTCNH
C30@!RealAlterarEstado Lic.Estado licencia               Código del estado correspondiente al catálogo c_Estado del SAT.


MEX025Vazio() .Or. ValidF3I("S025", M->DA4_ESTCNH,1,3)No
DA4_RGEST 
C30@!RealAlterarEstado ID  Estado IDCódigo del estado correspondiente al catálogo c_Estado del SAT.


MEX025Vazio() .or. ValidF3I("S025", M->DA4_RGEST,1,3) No
DA4_CGC

14
@!











(°) Nota:

En caso de aplicar pacote diferencial de actualizaciones al diccionario, debe revisar y modificar manualmente los campos DA4_CODMUN, DA4_EST, DA4_ESTCNH, DA4_RGEST, DA4_CEP y DA4_CGC.


Modificaciones a la tabla SA4 - Transportadoras. (°)

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
A4_NUMEXT 
C50
RealAlterarNum ExteriorNúmero exterior          Número exterior del domicilio.


      
No
A4_NUMINT 
C50
RealAlterarNum InteriorNúmero interior          Número interior del domicilio.


      
No
A4_CBAIRRO
C40@!RealAlterarCod. ColoniaCodigo de colonia        Código de la colonia correspondiente al catálogo c_Colonia del SAT.


MEX015Vazio() .or. ValidF3I("S015", M->A4_CBAIRRO+M->A4_CEP,1,9)No
A4_CLOCALI
C20@!RealAlterarCod.Localid.Código localidad         Código de la localidad correspondiente al catálogo c_Localidad del SAT.


MEX023Vazio() .or. ValidF3I("S023", M->A4_CLOCALI+M->A4_EST,1,5)No
A4_COD_MUN
C30@!RealAlterarCod. mun.   Codigo del municipio     Código del municipio correspondiente al catálogo c_Municipio del SAT.


MEX024Vazio() .or. ValidF3I("S024", Substr(M->A4_COD_MUN,1,3)+M->A4_EST,1,6)No
A4_EST    
C30@!RealAlterarEstado      Estado del Transportista Código del estado correspondiente al catálogo c_Estado del SAT.


MEX025Vazio() .or. ValidF3I("S025", M->A4_EST,1,3)No
A4_CODPAIS
C30@!RealAlterarCod. pais   Codigo del pais          Código del país correspondiente al catálogo c_Pais del SAT.


MEX009Vazio() .or. ValidF3I("S009", M->A4_CODPAIS,1,3)No
A4_CEP    
C50@R 99999RealAlterarCP          Cod Direccion Postal     Código postal correspondiente al catálogo c_CodigoPostal del SAT.


MEX004Vazio() .or. ValidF3I("S004", Substr(M->A4_CEP,1,5)+M->A4_EST,1,8)No

(°) Nota:

En caso de aplicar pacote diferencial de actualizaciones al diccionario, debe revisar y modificar manualmente los campos A4_COD_MUN, A4_EST y A4_CEP.


Modificaciones a la tabla SD2 - Ítems de facturas de salida.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
D2_CFPS   
C80@!VirtualVisualizarProd.Serv.CPProducto / Servicio CP   Si el campo TipoDeComprobante contiene el valor “I” (Ingreso), el valor de este campo deberá contener una clave del catálogo del complemento Carta Porte c_ClaveProdServCP, publicado en el portal del SAT.


      
No
D2_METODO 
C10@!VirtualVisualizarMt.PeligrosoMaterial peligroso       Si los bienes o mercancías que se trasladan son considerados material peligroso. Los valores permitidos para este campo son “Sí” y “No”.


      
No
D2_GRPCST 
C50@!RealAlterarCve.Mat.Pel.Clave material peligroso Tipo de material peligroso que se transporta. Si el valor registrado en el campo MaterialPeligroso es “Sí”, este campo debe contener una clave del catálogo del complemento Carta Porte, c_MaterialPeligroso, publicado en el portal del SAT. Si el valor registrado en el campo MaterialPeligroso es “No”, este campo no debe existir.


MEX020Vazio() .or. ValidF3I("S020", M->D2_GRPCST,1,5) No
D2_TNATREC
C50@!RealAlterarEmbalaje    Clave de embalaje        Campo condicional para registrar la clave del tipo de embalaje del catálogo del complemento Carta Porte, c_TipoEmbalaje, publicado en el portal del SAT, que se requiere para transportar el material o residuo peligroso. Este campo debe existir siempre que el campo CveMaterialPeligroso tenga un valor del catálogo del complemento Carta Porte, c_MaterialPeligroso, publicado en el portal del SAT, en caso contrario este campo no debe existir


MEX021Vazio() .or. ValidF3I("S021", M->D2_TNATREC,1,5)No
D2_FCICOD 
C400@!RealAlterarUUID Com ExtUUID comercio exterior   El folio fiscal o UUID del comprobante de comercio exterior que se relaciona, este dato se vuelve requerido cuando el campo EntradaSalidaMerc contenga el valor “Salida”. Este campo puede existir siempre que el valor registrado en el campo TranspInternac es “Sí” y el campo EntradaSalidaMerc contiene el valor “Salida” y si la exportación es considerada definitiva (de tipo A1), en caso contrario este campo no debe existir.


      
No
D2_VLRFUE 
N142@E 99,999,999,999.99RealAlterarVl.MercancíaValor mercancía          Valor de los bienes o mercancías que se trasladan en los distintos medios de transporte, de acuerdo al valor de de mercado, el valor pactado en la contraprestación o al valor estimado que determine el contribuyente.


      Positivo()No


Modificaciones a la tabla SF2 - Encabezado de factura de salida.

CampoOrdenTipoTamañoDecimalFormatoContextoPropiedadTítuloDescripciónHelpListaInicializadorModo ediciónConsultaValidaciónObligatorioUsado
F2_TPCOMPL
C10@!RealAlterarCarta Porte?Usa Carta Porte?         Activar el uso de Carta Porte. S- Permite el uso del botón "Carta Porte"S=Si;N=No"N"
      Pertence("SN")


Consultas Estándar


Creación de la consulta específica MEX015 - Colonias.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX015101REColoniasF3I
MEX01520101
F812SXB('S015','Clave') 
MEX015501

VAR_IXB


Creación de la consulta específica MEX017 - Clave del Transporte.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX017101REClave del TransporteF3I
MEX01720101
F812SXB('S017','Transp')
MEX017501

VAR_IXB


Creación de la consulta específica MEX018 - Tipo de Estación.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX018101RETipo de EstaciónF3I
MEX01820101
F812SXB('S018','Estacion')
MEX018501

VAR_IXB


Creación de la consulta específica MEX019 - Prods y Servs CP.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX019101REProds y Servs CPF3I
MEX01920101
F812SXB('S019','Producto')
MEX019501

VAR_IXB


Creación de la consulta específica MEX020 - Material Peligroso.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX020101REMaterial PeligrosoF3I
MEX02020101
F812SXB('S020','Material')
MEX020501

VAR_IXB


Creación de la consulta específica MEX021 - Tipo de Embalaje.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX021101RETipo de EmbalajeF3I
MEX02120101
F812SXB('S021','Embalaje')
MEX021501

VAR_IXB


Creación de la consulta específica MEX022 - Tipo Permiso.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX022101RETipo PermisoF3I
MEX02220101
F812SXB('S022','Permiso')
MEX022501

VAR_IXB


Creación de la consulta específica MEX023 - Localidades.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX023101RELocalidadesF3I
MEX02320101
F812SXB('S023','Localidad')
MEX023501

VAR_IXB


Creación de la consulta específica MEX024 - Municipios.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX024101REMunicipiosF3I
MEX02420101
F812SXB('S024','Municipio')
MEX024501

VAR_IXB


Creación de la consulta específica MEX025 - Estados.

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX025101REEstadosF3I
MEX02520101
F812SXB('S025','Estado')
MEX025501

VAR_IXB


Creación de la consulta específica MEX026 - Autotransporte Fed..

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX026101REAutotransporte Fed.F3I
MEX02620101
F812SXB('S026','Clave')
MEX026501

VAR_IXB


Creación de la consulta específica MEX027 - Autotransporte Fed..

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX027101REAutotransporte Fed.F3I
MEX02720101
F812SXB('S027','Remolque')
MEX027501

VAR_IXB


Modificación de la consulta específica MEX004 - Códigos Postales. (°)

Alias

Tipo

Secuencia

Columna

Descripción

Contenido

MEX0042


F812SXB('S004','Codigo')

(°) Nota:

En esta consulta, ya existente, solo se actualiza el registro Tipo 2 con el Contenido que se indica.


Disparadores


CampoSecuenciaC. DominioTipoReglaPosicionaAliasOrdenClaveCondición
A1Y_CPDES 1A1Y_EDODES1 - PrimarioObtColSAT("S004",M->A1Y_CPDES,1,5,6,3)2 - No
0
!EMPTY(M->A1Y_CPDES)
A1Y_CPDES 2A1Y_LOCDES1 - PrimarioObtColSAT("S004",M->A1Y_CPDES,1,5,12,2) 2 - No
0
!EMPTY(M->A1Y_CPDES)
A1Y_CPDES 3A1Y_MUNDES1 - PrimarioObtColSAT("S004",M->A1Y_CPDES,1,5,9,3)2 - No
0
!EMPTY(M->A1Y_CPDES)
A1Y_CPORI 1A1Y_EDOORI1 - PrimarioObtColSAT("S004",M->A1Y_CPORI,1,5,6,3)2 - No
0
!EMPTY(M->A1Y_CPORI)
A1Y_CPORI 2A1Y_LOCORI1 - PrimarioObtColSAT("S004",M->A1Y_CPORI,1,5,12,2) 2 - No
0
!EMPTY(M->A1Y_CPORI)
A1Y_CPORI 3A1Y_MUNORI1 - PrimarioObtColSAT("S004",M->A1Y_CPORI,1,5,9,3)2 - No
0
!EMPTY(M->A1Y_CPORI)
A1Y_EDODES1A1Y_CPDES 1 - PrimarioSpace(Len(M->A1Y_CPDES))2 - No
0

A1Y_EDODES2A1Y_COLDES1 - PrimarioSpace(Len(M->A1Y_COLDES)) 2 - No
0

A1Y_EDODES3A1Y_LOCDES1 - PrimarioSpace(Len(M->A1Y_LOCDES)) 2 - No
0

A1Y_EDODES4A1Y_MUNDES1 - PrimarioSpace(Len(M->A1Y_MUNDES)) 2 - No
0

A1Y_EDODES5A1Y_PAIDES1 - PrimarioObtColSAT("S025",M->A1Y_EDODES,1,3,4,3) 2 - No
0
!EMPTY(M->A1Y_EDODES) 
A1Y_EDOORI1A1Y_CPORI 1 - PrimarioSpace(Len(M->A1Y_CPORI))2 - No
0

A1Y_EDOORI2A1Y_COLORI1 - PrimarioSpace(Len(M->A1Y_COLORI)) 2 - No
0

A1Y_EDOORI3A1Y_LOCORI1 - PrimarioSpace(Len(M->A1Y_LOCORI)) 2 - No
0

A1Y_EDOORI4A1Y_MUNORI1 - PrimarioSpace(Len(M->A1Y_MUNORI)) 2 - No
0

A1Y_EDOORI5A1Y_PAIORI1 - PrimarioObtColSAT("S025",M->A1Y_EDOORI,1,3,4,3) 2 - No
0
!EMPTY(M->A1Y_EDOORI) 
A4_CEP1A4_EST1 - PrimarioObtColSAT("S004",M->A4_CEP,1,5,6,3) 2 - No
0
!EMPTY(M->A4_CEP) 
A4_CEP2A4_CLOCALI1 - PrimarioObtColSAT("S004",M->A4_CEP,1,5,12,2)2 - No
0
!EMPTY(M->A4_CEP) 
A4_CEP3A4_COD_MUN1 - PrimarioObtColSAT("S004",M->A4_CEP,1,5,9,3) 2 - No
0
!EMPTY(M->A4_CEP) 
A4_EST1A4_CEP1 - PrimarioSpace(Len(M->A4_CEP)) 2 - No
0

A4_EST2A4_CBAIRRO1 - PrimarioSpace(Len(M->A4_CBAIRRO)) 2 - No
0

A4_EST3A4_CLOCALI1 - PrimarioSpace(Len(M->A4_CLOCALI)) 2 - No
0

A4_EST4A4_COD_MUN1 - PrimarioSpace(Len(M->A4_COD_MUN)) 2 - No
0

A4_EST5A4_CODPAIS1 - PrimarioObtColSAT("S025",M->A4_EST,1,3,4,3) 2 - No
0
!EMPTY(M->A4_EST) 
DA4_CEP 1DA4_EST 1 - PrimarioObtColSAT("S004",M->DA4_CEP,1,5,6,3)2 - No
0
!EMPTY(M->DA4_CEP)
DA4_CEP 2DA4_LOCAL 1 - PrimarioObtColSAT("S004",M->DA4_CEP,1,5,12,2) 2 - No
0
!EMPTY(M->DA4_CEP)
DA4_CEP 3DA4_CODMUN1 - PrimarioObtColSAT("S004",M->DA4_CEP,1,5,9,3)2 - No
0
!EMPTY(M->DA4_CEP)
DA4_EST 1DA4_CEP 1 - PrimarioSpace(Len(M->DA4_CEP))2 - No
0

DA4_EST 2DA4_CODBAI1 - PrimarioSpace(Len(M->DA4_CODBAI)) 2 - No
0

DA4_EST 3DA4_LOCAL 1 - PrimarioSpace(Len(M->DA4_LOCAL))2 - No
0

DA4_EST 4DA4_CODMUN1 - PrimarioSpace(Len(M->DA4_CODMUN)) 2 - No
0

DA4_EST 5DA4_PAIS1 - PrimarioObtColSAT("S025",M->DA4_EST,1,3,4,3)2 - No
0
!EMPTY(M->DA4_EST)


Menú SIGAFAT


Nuevas opciones de menú de catálogos en el módulo SIGAFAT:

MenúSubmenúNombre de la RutinaProgramaMóduloTipo
ActualizacionesArchivosTipos de VehículoTMSA530FacturaciónFunción Protheus
ActualizacionesArchivosVehículosOMSA060FacturaciónFunción Protheus
ActualizacionesArchivosConductoresOMSA040FacturaciónFunción Protheus



05. TABLAS UTILIZADAS