Factura global
La factura global es una factura de ingreso que agrupa las ventas al público en general de un periodo, es decir, las ventas a clientes que no pidieron factura. El SAT obliga a reportar todas estas operaciones, y la factura global es el mecanismo para hacerlo.
Estructura de la factura global
Una factura global consolida en un solo CFDI todas las ventas al público en general de un periodo. Cada concepto (items) representa una venta, o un grupo de impuestos de la venta, y sus impuestos (itemTaxes) son los que se aplicaron en ese grupo.
Periodo de facturación
La factura global se genera según la periodicidad que el SAT define en el catálogo c_Periodicidad.
| Código | Periodicidad | Descripción |
|---|---|---|
| 01 | Diario | Ventas al público en general del día |
| 02 | Semanal | Ventas al público en general de la semana |
| 03 | Quincenal | Ventas al público en general de la quincena |
| 04 | Mensual | Ventas al público en general del mes |
| 05 | Bimestral | Ventas al público en general del bimestre |
Ejemplo práctico
Supón que en un periodo tu negocio hizo ventas al público en general, como esta:
Venta 0001
| Producto | Precio base | Impuestos | Total |
|---|---|---|---|
| Producto A | $100.00 | IVA 16% | $116.00 |
| Producto B | $100.00 | IVA 16% | $116.00 |
| Producto C | $100.00 | IVA 16% | $116.00 |
| TOTAL | $300.00 | $48.00 | $348.00 |
Factura global resultante
La venta 0001 se convierte en un solo concepto, con el subtotal de la venta como unitPrice y su IVA en itemTaxes:
{
"versionCode": "4.0",
"series": "F",
"date": "2024-05-12T17:20:48",
"paymentFormCode": "01",
"paymentMethodCode": "PUE",
"currencyCode": "MXN",
"typeCode": "I",
"expeditionZipCode": "01160",
"exchangeRate": 1,
"exportCode": "01",
"globalInformation": {
"periodicityCode": "01",
"monthCode": "05",
"year": 2024
},
"issuer": {
"id": "<id-persona-emisora>"
},
"recipient": {
"id": "<id-persona-receptora-con-rfc-generico>"
},
"items": [
{
"itemCode": "01010101",
"quantity": 1,
"unitOfMeasurementCode": "ACT",
"description": "Venta",
"unitPrice": 300.00,
"taxObjectCode": "02",
"itemSku": "0001",
"itemTaxes": [
{
"taxCode": "002",
"taxTypeCode": "Tasa",
"taxRate": 0.160000,
"taxFlagCode": "T"
}
]
}
]
}
Aspectos clave de la factura global
Revisa estos puntos antes de emitir una factura global.
1. Relación venta-item
Cada venta al público se convierte en un concepto de la factura global. Los conceptos no representan productos individuales, sino ventas completas: en el ejemplo, los tres productos de la venta 0001 forman un solo concepto.
2. Consolidación de impuestos
El campo itemTaxes de cada concepto lleva los impuestos de la venta. Fiscalapi calcula todos los impuestos de un concepto sobre la misma base, así que una venta con productos a tasas distintas, por ejemplo IVA al 16 % y al 0 %, va en un concepto por cada grupo de impuestos, todos con el mismo itemSku. Si facturas los tickets de Auto CFDI, consulta Factura global de tickets.
3. Información global
El campo globalInformation indica a qué periodo corresponde la factura:
| Campo | Descripción |
|---|---|
periodicityCode | Periodicidad de la factura, del catálogo c_Periodicidad (ver Periodo de facturación). |
monthCode | Mes al que corresponde la factura global. |
year | Año fiscal al que corresponde la factura global. Debe ser el año de la fecha de la factura (date) o uno de los 5 años anteriores; por ejemplo, con date en 2026, de 2021 a 2026. |
Una factura de ingreso a XAXX010101000 con razón social PUBLICO EN GENERAL debe incluir globalInformation; el SAT la rechaza sin ella con CFDI40130. Si falta, o si year no cumple la regla anterior, el endpoint responde un error 400 de falla de validación en GlobalInformation o en GlobalInformation.Year, respectivamente.
Los endpoints que crean una factura y Obtener factura por ID devuelven globalInformation con estos tres campos, o null si la factura no es global. Las facturas globales timbradas antes de que Fiscalapi guardara este dato también devuelven null, pero su XML timbrado conserva la información global.
4. Información de la factura
| Campo | Valor |
|---|---|
typeCode | I |
paymentMethodCode | PUE |
exchangeRate | 1 |
currencyCode | MXN |
exportCode | 01 |
5. Información del receptor
Con cualquier modo de operación, el receptor de la factura global lleva los datos del RFC genérico:
| Dato | Valor |
|---|---|
| RFC | XAXX010101000 |
| Razón social | PUBLICO EN GENERAL |
| Régimen fiscal | 616 (Sin obligaciones fiscales) |
| Uso CFDI | S01 (Sin efectos fiscales) |
| Código postal | El mismo código postal del emisor |
Fiscalapi aplica estas reglas del SAT antes de timbrar, tanto a los datos del receptor que envías por valores como a los de la persona guardada (recipient.id). Si alguna no se cumple, el endpoint responde un error 400 de falla de validación que reúne todas las fallas, sin consumir timbre:
| Regla | Campo de la falla | Rechazo equivalente del SAT |
|---|---|---|
Con el RFC genérico (XAXX010101000 o XEXX010101000), el régimen fiscal debe ser 616. | Recipient.TaxRegimeCode | CFDI40159 |
Con el RFC genérico, el código postal del receptor debe ser el código postal del emisor (expeditionZipCode). | Recipient.ZipCode | CFDI40149 |
El uso CFDI debe admitir el régimen del receptor según c_UsoCFDI; con el régimen 616 se aceptan, por ejemplo, S01, CP01 y G02. | Recipient.CfdiUseCode | CFDI40161 |
Una factura de ingreso a XAXX010101000 con razón social PUBLICO EN GENERAL debe incluir globalInformation. | GlobalInformation | CFDI40130 |
6. Información del item
| Campo | Valor |
|---|---|
itemCode | 01010101 |
quantity | 1 |
unitOfMeasurementCode | ACT |
description | Venta |
unitPrice | Subtotal de la venta, sin impuestos. |
taxObjectCode | 02 |
itemSku | Número interno de la venta. |
itemTaxes | Los impuestos del grupo de la venta. Ver Consolidación de impuestos. |