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. |
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. |