Facturas con COMPLEMENTO COMERCIO EXTERIOR


URL PRUEBAS: POST https://facturacion.789.mx/api/v40/test/factura/crear

URL PRODUCCIÓN: POST https://facturacion.789.mx/api/v40/factura/crear

Argumento Tipo Default Descripción
main Contiene los datos generales de la factura y los datos del emisor.
NUEVO regimen
requerido
string none Incorpora la clave del régimen del contribuyente emisor al que aplicará el efecto fiscal de este comprobante
NUEVO exportacion
requerido
string 01 Expresa si el comprobate ampara una operación de exportación.
razonSocial string none Nombre ó Razón social del emisor.
Nota: en la version 4.0 debe ser el nombre tal cual como fueron registrados ante el SAT
rfc
requerido
string none RFC del emisor.
12 dígitos para persona moral y 13 dígitos para persona física.
tipo
requerido
string none Tipo de comprobante (ingreso, egreso, traslado, nomina, pago).
Para este tipo de comprobante enviar ingreso
moneda string MXN Código de la moneda, acorde al estándar ISO 4217
cambio decimal 1.0 Tipo de cambio conforme a la moneda usada. Representa el número de pesos mexicanos que equivalen a una unidad de la moneda señalada.
formaDePago
requerido
string none Código de la forma de pago según el catálogo del SAT.
metodoDePago
requerido
string none Código del método de pago según el catálogo del SAT.
PUE. Pago en una sola exhibición
PPD. Pago en parcialidades o diferido
condicionesDePago string none Expresa las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet. Este atributo puede ser condicionado mediante atributos o complementos
folio string '' Número de folio asignado por la empresa para control interno.
serie string '' Serie. De 1 a 25 caracteres designados por la empresa para control interno y sin validez fiscal.
total
requerido
decimal none Importe total facturado con impuestos incluido.
subtotal
requerido
decimal none Importe total facturado antes de impuestos.
fechaEmision date now()
2025-04-16T04:52:52
Campo opcional para indicar la FECHA de EMISIÓN de la factura, puede ser hasta 48hrs hacia atras de la fecha actual.
Debe cumplir el siguiente formato "Y-m-d\TH:i:s"
confirmacion string none Registra la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos. Es requerido cuando se registra un tipo de cambio o un total fuera del rango establecido.
NUEVO fac_atr_adquirente string none Expresa el número de operación proporcionado por el SAT cuando se trate de un comprobante a través de un PCECFDI o un PCGCFDISP.
observaciones string none Campo exclusivo para la representación impresa (PDF), se puede enviar un HTML básico como negritas y/o saltos de linea "<br>"
direccionFiscal string '' Domicilio fiscal del emisor.
direccionFiscal.calle string '' Calle del emisor.
direccionFiscal.num_ext string '' Número exterior (númerio visible desde la calle) del domicilio del emisor.
direccionFiscal.num_int string '' Número interior del domicilio del emisor.
direccionFiscal.colonia string '' Colonia del domicilio del emisor.
NUEVO direccionFiscal.cp
requerido
string '' Código Postal del domicilio del emisor.
direccionFiscal.ciudad string '' Ciudad del domicilio del emisor.
direccionFiscal.localidad string '' Delegación o Municipio del domicilio del emisor.
direccionFiscal.estado string '' Estado del domicilio del emisor.
direccionFiscal.pais string '' País del domicilio del emisor.
NUEVO global Nodo opcional, precisa la información relacionada con el comprobante global.
NUEVO periodicidad
requerido
string none Expresa el período al que corresponde la información del comprobante global.
NUEVO meses
requerido
string none Expresa el mes o los meses al que corresponde la información del comprobante global.
NUEVO anio
requerido
string none Expresa el año al que corresponde la información del comprobante global.
receptor Datos del Receptor
NUEVO razon_social
requerido
string none Nombre o Razón social del receptor
Nota: en la version 4.0 debe ser el nombre tal cual como fueron registrados ante el SAT
rfc
requerido
string none RFC del receptor.
12 dígitos para persona moral y 13 dígitos para persona física.
email string none Correo electrónico del receptor, debe ser válido.
NUEVO num_reg_id_trib string none Expresa el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el complemento de comercio exterior.
NUEVO residencia_fiscal string none Registra la clave del país de residencia para efectos fiscales del receptor del comprobante, cuando se trate de un extranjero, y que es conforme con la especificación ISO 3166-1 alpha-3. Es requerido cuando se incluya el complemento de comercio exterior o se registre el atributo num_reg_id_trib.
NUEVO regimen
requerido
string none Incorpora la clave del régimen fiscal del contribuyente receptor al que aplicará el efecto fiscal de este comprobante.
NUEVO uso
requerido
string none Clave del uso comprobante según el catálogo del SAT.
direccion string '' Domicilio fiscal del receptor.
direccion.calle string '' Calle del receptor.
direccion.num_ext string '' Número exterior (númerio visible desde la calle) del domicilio del receptor.
direccion.num_int string '' Número interior del domicilio del receptor.
direccion.colonia string '' Colonia del domicilio del receptor.
NUEVO direccion.codigo_postal
requerido
string '' Código Postal del domicilio del receptor.
direccion.ciudad string '' Ciudad del domicilio del receptor.
direccion.estado string '' Estado del domicilio del receptor.
direccion.pais string '' País del domicilio del receptor.
conceptos Conjuto de datos de los productos o conceptos a facturar
conceptos[].nombre
requerido
string none Nombre del producto o servicio
conceptos[].unidad string none Descripción de la unidad de medida
conceptos[].medidaKey
requerido
string none Clave de la unidad de medida segun el catálogo del SAT
conceptos[].productKey
requerido
string none Clave del producto segun el catálogo del SAT
NUEVO conceptos[].no_id
requerido
string none Expresa el número de parte, identificador del producto o del servicio, la clave de producto o servicio, SKU o equivalente, propia de la operación del emisor, amparado por el presente concepto. Opcionalmente se puede utilizar claves del estándar GTIN.
conceptos[].cantidad
requerido
integer, decimal 1 Cantidad de productos o servicios vendidos, debe ser mayor a 0
conceptos[].precioUnitario
requerido
decimal none Precio unitario del producto o servicio, debe ser mayor a 0, solo se permiete el número de decimales que indica el catálogo de monedas del SAT
conceptos[].descuento decimal none Descuento que se aplicará al producto o servicio, debe ser mayor a 0, solo se permiete el número de decimales que indica el catálogo de monedas del SAT
conceptos[].total decimal conceptos[].cantidad * conceptos[].precioUnitario Importe total a factura del producto o servicio antes de impuestos, debe ser mayor a 0, solo se permiete el número de decimales que indica el catálogo de monedas del SAT
NUEVO conceptos[].objeto_imp
requerido
string none Expresa si la operación comercial es objeto o no de impuesto.
01.- No objeto de impuesto
02.- Si objeto de impuesto
03.- Si objeto de impuesto y no obligado al desglose
NUEVO conceptos[].impuestos Object none Conjuto de datos con los impuestos federales a aplicar, este nodo puede omitirse sí no es necesario deducir impuestos.
NUEVO conceptos[].impuestos.traslados Array [] Asenta los impuestos trasladados aplicables al presente concepto
NUEVO conceptos[].impuestos.traslados[].base
requerido
decimal none Señala la base para el cálculo del impuesto, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.
NUEVO conceptos[].impuestos.traslados[].impuesto
requerido
string none Señala la clave del tipo de impuesto trasladado aplicable al concepto.
NUEVO conceptos[].impuestos.traslados[].tipo
requerido
string none Señala la clave del tipo de factor que se aplica a la base del impuesto.
NUEVO conceptos[].impuestos.traslados[].tasa_couta decimal none Señala el valor de la tasa o cuota del impuesto que se traslada para el presente concepto. Es requerido cuando el atributo tipo tenga una clave que corresponda a Tasa o Cuota.
NUEVO conceptos[].impuestos.traslados[].importe decimal none Señala el importe del impuesto trasladado que aplica al concepto. No se permiten valores negativos. Es requerido cuando tipo sea Tasa o Cuota.
NUEVO conceptos[].impuestos.retenciones Array [] Asenta las retenciones de impuestos aplicable al presente concepto
NUEVO conceptos[].impuestos.retenciones[].base
requerido
decimal none Señala la base para el cálculo de la retención, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.
NUEVO conceptos[].impuestos.retenciones[].impuesto
requerido
string none Señala la clave del tipo de impuesto retenido aplicable al concepto.
NUEVO conceptos[].impuestos.retenciones[].tipo
requerido
string none Señala la clave del tipo de factor que se aplica a la base del impuesto.
NUEVO conceptos[].impuestos.retenciones[].tasa_couta
requerido
decimal none Señala la tasa o cuota del impuesto que se retiene para el presente concepto.
NUEVO conceptos[].impuestos.retenciones[].importe
requerido
decimal none Señala el importe del impuesto retenido que aplica al concepto. No se permiten valores negativos
relation string none Código de tipo relación entre facturas según el catálogo del SAT.
related array none Conjunto de datos con uno o más folios fiscales (UUID) de las facturas relacionadas.
Este campo es obligatorio si el campo 'relation' existe.
complementos Contiene los datos de los complementos a agregar al CFDI.
comercio_exterior
requerido
object none Complemento para incorporar la información en el caso de Exportación de Mercancías en definitiva.
motivo_traslado string none Indica la clave del motivo por el cual en la exportación definitiva de mercancías con clave de pedimento A1, estas no son objeto de enajenación o siéndolo sean a título gratuito, desde el domicilio del emisor hacia el domicilio del receptor o del destinatario.
La clave del motivo es conforme con el catálogo publicado en el portal del SAT en internet.
clave_pedimento string none Indica la clave de pedimento que se ha declarado conforme con el catálogo.
Nota: el catálogo solo existe la clave A1 por lo que se debe de enviar esta clave si el parametro se debe de enviar
certificado_origen integer none Excepción de certificados de Origen de los Tratados de Libre Comercio que ha celebrado México con diversos países.
0 = No Funge como certificado de origen
1 = Funge como certificado de origen.
num_certificado_origen string none Expresar el folio del certificado de origen o el folio fiscal del CFDI con el que se pagó la expedición del certificado de origen
numero_exportador_confiable string none Indica el número de exportador confiable, conforme al artículo 22 del Anexo 1 del Tratado de Libre Comercio con la Asociación Europea y a la Decisión de la Comunidad Europea.
incoterm string none Indica la clave del INCOTERM aplicable a la factura, conforme con el catálogo publicado en el portal del SAT en internet.
subdivision integer none Indica si la factura tiene o no subdivisión. Valores posibles:
0 - no tiene subdivisión,
1 - si tiene subdivisión.
observaciones string none Ingresar alguna información adicional, como alguna leyenda que debe incluir en el CFDI.
tipo_cambio_usd decimal none Indica el número de pesos mexicanos que equivalen a un dólar de Estados Unidos, de acuerdo al artículo 20 del Código Fiscal de la Federación
total_usd decimal none Indica el importe total del comprobante en dólares de Estados Unidos.
emisor object none Datos complementarios del emisor del comprobante.
emisor.curp string none Expresar la CURP del emisor del CFDI cuando es una persona física.
emisor.domicilio object none Expresar el domicilio del emisor del comprobante, es requerido cuando el complemento se registre en un CFDI 4.0.
emisor.domicilio.calle
requerido
string none Sirve para precisar la calle en que está ubicado el domicilio del emisor del comprobante.
emisor.domicilio.numero_exterior string none Sirve para expresar el número exterior en donde se ubica el domicilio del emisor del comprobante.
emisor.domicilio.numero_interior string none Sirve para expresar el número interior, en caso de existir, en donde se ubica el domicilio del emisor del comprobante.
emisor.domicilio.colonia string none Sirve para expresar la clave de la colonia en donde se ubica el domicilio del emisor del comprobante, conforme con el catálogo publicado en el portal del SAT.
emisor.domicilio.localidad string none Sirve para precisar la clave de la ciudad, población, distrito u otro análogo en donde se ubica el domicilio del emisor del comprobante, conforme con el catálogo publicado en el portal del SAT.
emisor.domicilio.referencia Object none Expresar una referencia geográfica adicional que permita una más fácil o precisa ubicación del domicilio del emisor del comprobante, por ejemplo las coordenadas GPS.
emisor.domicilio.municipio String none Sirve para precisar la clave del municipio o delegación en donde se encuentra ubicado el domicilio del emisor del comprobante, conforme con el catálogo publicado en el portal del SAT.
emisor.domicilio.estado
requerido
String none Señalar la clave del estado en donde se encuentra ubicado el domicilio del emisor del comprobante, conforme con el catálogo publicado en el portal del SAT que está basado en la especificación ISO 3166-2.
emisor.domicilio.pais
requerido
String none Sirve para precisar la clave del país donde se encuentra ubicado el domicilio del emisor del comprobante, conforme con el catálogo publicado en el portal del SAT que está basado en la especificación ISO 3166-1. Debe tener el valor MEX.
emisor.domicilio.cp
requerido
String none sirve para asentar la clave del código postal en donde se encuentra ubicado el domicilio del emisor del comprobante.
propietarios array none Captura los datos del o los propietarios de la mercancía que se traslada y ésta no sea objeto de enajenación o siéndolo sea a título gratuito, cuando el emisor del CFDI es un tercero.
propietarios[].num_reg_id_trib
requerido
String none Incorpora el número de identificación o registro fiscal del país de residencia para efectos fiscales del propietario de la mercancía trasladada
propietarios[].residencia_fiscal
requerido
String none Registra la clave del país de residencia para efectos fiscales del propietario de la mercancía, conforme con el catálogo publicado en el portal del SAT en internet que está basado en la especificación ISO 3166-1.
receptor String none Captura los datos complementarios del receptor del CFDI.
receptor.num_reg_id_trib String none Incorpora el número de identificación o registro fiscal del país de residencia para efectos fiscales del receptor del CFDI.
receptor.domicilio object none Expresa el domicilio del receptor del comprobante.
receptor.domicilio.calle
requerido
string none Sirve para precisar la calle en que está ubicado el domicilio del receptor del comprobante.
receptor.domicilio.numero_exterior string none Expresa el número exterior en donde se ubica el domicilio del receptor del comprobante.
receptor.domicilio.numero_interior string none Sirve para expresar el número interior, en caso de existir, en donde se ubica el domicilio del receptor del comprobante.
receptor.domicilio.colonia string none Sirve para expresar la colonia o dato análogo en donde se ubica el domicilio del receptor del comprobante.
receptor.domicilio.localidad string none Sirve para precisar la ciudad, población, distrito u otro análogo en donde se ubica el domicilio del receptor del comprobante.
receptor.domicilio.referencia string none Expresa una referencia geográfica adicional que permita una más fácil o precisa ubicación del domicilio del receptor del comprobante, por ejemplo las coordenadas GPS.
receptor.domicilio.municipio string none Sirve para precisar el municipio, delegación, condado u otro análogo en donde se encuentra ubicado el domicilio del receptor del comprobante.
receptor.domicilio.estado
requerido
string none Señala el estado, entidad, región, comunidad u otra figura análoga en donde se encuentra ubicado el domicilio del receptor del comprobante.
receptor.domicilio.pais
requerido
string none Sirve para precisar la clave del país donde se encuentra ubicado el domicilio del receptor del comprobante, conforme con el catálogo publicado en el portal del SAT que está basado en la especificación ISO 3166-1.
receptor.domicilio.cp
requerido
string none Sirve para asentar el código postal (PO, BOX) en donde se encuentra ubicado el domicilio del receptor del comprobante.
destinatarios array none Captura los datos del destinatario de la mercancía cuando éste sea distinto del receptor del CFDI.
destinatarios[].num_reg_id_trib string none Incorpora el número de identificación o registro fiscal del país de residencia para efectos fiscales del destinatario de la mercancía exportada.
destinatarios[].nombre string none Expresa el nombre completo, denominación o razón social del destinatario de la mercancía exportada.
destinatarios[].domicilios
requerido
array none Expresa el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].calle
requerido
string none Sirve para precisar la calle en que está ubicado el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].numero_exterior string none Sirve para expresar el número exterior en donde se ubica el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].numero_interior string none Sirve para expresar el número interior, en caso de existir, en donde se ubica el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].colonia string none Sirve para expresar la colonia o dato análogo en donde se ubica el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].localidad string none Sirve para precisar la ciudad, población, distrito u otro análogo en donde se ubica el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].referencia string none Expresa una referencia geográfica adicional que permita una fácil o precisa ubicación del domicilio del destinatario de la mercancía, por ejemplo las coordenadas GPS.
destinatarios[].domicilios[].municipio string none Sirve para precisar el municipio, delegación, condado u otro análogo en donde se encuentra ubicado el destinatario de la mercancía.
destinatarios[].domicilios[].estado
requerido
string none Señala el estado, entidad, región, comunidad u otra figura análoga en donde se encuentra ubicado el domicilio del destinatario de la mercancía.
destinatarios[].domicilios[].pais
requerido
string none Sirve para precisar la clave del país donde se encuentra ubicado el destinatario de la mercancía, conforme con el catálogo publicado.
destinatarios[].domicilios[].cp
requerido
string none Sirve para asentar el código postal (PO, BOX) en donde se encuentra ubicado el domicilio del destinatario de la mercancía.
mercancias array none Captura la información de la declaración de las mercancías exportadas.
mercancias[].no_identificacion
requerido
string none Sirve para expresar el número de parte, la clave de identificación que asigna la empresa o el número de serie de la mercancía exportada.
mercancias[].no_fraccion_arancelaria string none Sirve para expresar la clave de la fracción arancelaria correspondiente a la descripción de la mercancía exportada, este dato se vuelve requerido cuando se cuente con él o se esté obligado legalmente a contar con él. Debe ser conforme con el catálogo publicado en el portal del SAT.
mercancias[].cantidad_aduana string none Precisa la cantidad de bienes en la aduana conforme a la UnidadAduana cuando en el nodo Comprobante:Conceptos:Concepto se hubiera registrado información comercial.
mercancias[].unidad_aduana string none Precisa la clave de la unidad de medida aplicable para la cantidad expresada en la mercancía en la aduana, conforme con el catálogo publicado en el portal del SAT.
mercancias[].valor_unitario_aduana string none Precisa el valor o precio unitario del bien en la aduana. Se expresa en dólares de Estados Unidos (USD), el cual puede estar registrado hasta centésimas.
mercancias[].valor_dolares
requerido
string none Indica el valor total en dólares de Estados Unidos (USD).
mercancias[].descripciones_especificas array none Indica la lista de descripciones específicas de la mercancía. Una mercancía puede tener más de una descripción específica.
mercancias[].descripciones_especificas[].marca
requerido
string none Indica la marca de la mercancía.
mercancias[].descripciones_especificas[].modelo string none Indica el modelo de la mercancía.
mercancias[].descripciones_especificas[].submodelo string none Indica el submodelo de la mercancía.
mercancias[].descripciones_especificas[].numero_serie string none Indica el número de serie de la mercancía.