API DE FACTURA GLOBAL

Cierra el mes con un solo comprobante

Junta todos los tickets que no pidieron factura y timbra la global desde tu punto de venta. Un POST al cerrar el periodo y listo.

¿Qué es la factura global?

Es el CFDI donde agrupas todas las ventas del periodo en las que el cliente no pidió factura. Si tienes una tienda, un restaurante o una gasolinera, la mayoría de tus tickets caen aquí: la gente paga, se va y nadie te da un RFC.

El SAT no te deja dejar esas ventas sin comprobar. La factura global es la forma de reportarlas en bloque, a nombre del público en general, con el RFC genérico XAXX010101000.

El endpoint

Se emite por el endpoint general de CFDI. Lo que la convierte en global es el nodo GlobalInformation.

POSThttps://apisandbox.facturama.mx/2/cfdis

El body

{
    "CfdiType": "I",
    "PaymentForm": "01",
    "PaymentMethod": "PUE",
    "ExpeditionPlace": "78240",
    "GlobalInformation": {
        "Periodicity": "04",
        "Months": "04",
        "Year": "2022"
    },
    "Receiver": {
        "Rfc": "XAXX010101000",
        "CfdiUse": "S01",
        "Name": "PUBLICO EN GENERAL",
        "FiscalRegime": "616",
        "TaxZipCode": "78240"
    },
    "Items": [{
        "ProductCode": "25173108",
        "Description": "GPS estandar pruebas",
        "UnitCode": "E48",
        "Quantity": 1.0,
        "UnitPrice": 100.0,
        "Subtotal": 100.00,
        "TaxObject": "02",
        "Taxes": [{
            "Total": 16,
            "Name": "IVA",
            "Base": 100,
            "Rate": 0.16,
            "IsRetention": false
        }],
        "Total": 116
    }]
}
Los cuatro datos del receptor no se negocian: RFC XAXX010101000, uso S01 (sin efectos fiscales), nombre PUBLICO EN GENERAL y régimen 616. Cualquier variación —incluso escribir el nombre en minúsculas— te tumba el timbrado.

La periodicidad manda

El nodo GlobalInformation declara qué periodo estás cerrando, y de ahí sale el plazo que tienes para emitirla. Son tres campos:

  • Periodicity — si el corte es diario, semanal, quincenal o mensual.
  • Months — el mes o bimestre que cubre.
  • Year — el ejercicio.

Aquí conviene tomar una decisión de arquitectura desde el principio: elige una periodicidad y no la cambies a mitad de ejercicio. Si un mes cierras diario y al siguiente mensual, la conciliación entre tus tickets y tus globales se vuelve un rompecabezas —y ese rompecabezas lo va a armar tu contador en marzo, con la declaración encima.

La global tampoco se emite el día que se te ocurra: hay un plazo tras el cierre del periodo. Si automatizas, programa el disparo con margen en vez de dejarlo al último día.

Qué hacer si alguien pide factura después

Pasa todo el tiempo: el cliente vuelve tres días después con su RFC. Si esa venta ya entró en una global timbrada, no puedes simplemente facturarla aparte — la estarías comprobando dos veces.

El camino correcto es cancelar la global, emitirla de nuevo sin esa venta, y facturar al cliente por separado. Por eso conviene guardar en tu base de datos qué tickets entraron en cada global: sin ese rastro, rehacerla es un ejercicio de arqueología.

Muchos negocios lo resuelven dando un plazo corto para pedir factura —72 horas, el mes en curso— y emitiendo la global solo después. Es una decisión de negocio, pero conviene tomarla antes de programar el flujo, no después.

Lo demás del ciclo de vida

La respuesta trae el Id y el UUID. Con eso consultas, descargas el XML o el PDF, y cancelas si hace falta. Las cancelaciones de globales son frecuentes por lo que acabamos de ver, así que vale la pena dejar ese flujo resuelto desde el primer día en vez de hacerlo a mano cada vez.

SDKs

Librerías oficiales para PHP, Python, JavaScript, Java, Ruby y .NET (4.5+), con repositorio en GitHub. La global usa el mismo endpoint que cualquier factura, así que si tu punto de venta ya emite CFDI, esto es un payload más.

¿Y si no quieres programar?

La factura global también se genera desde la plataforma web. Si cierras una al mes, no necesitas integrar nada.

La API tiene sentido cuando el punto de venta ya lleva el registro de tickets y quieres que la global salga sola al cerrar el periodo, sin que nadie tenga que acordarse.

Ver todo lo que puedes emitir con la API

Preguntas frecuentes

¿Qué RFC se usa en la factura global?

El genérico XAXX010101000, con el nombre PUBLICO EN GENERAL y régimen fiscal 616.

¿Cuál es la diferencia entre factura global y factura a público en general?

Son lo mismo. "Global" describe que agrupa varias ventas; "público en general" describe al receptor. En el CFDI 4.0 se resuelven con el mismo comprobante: RFC genérico más el nodo GlobalInformation.

¿Puedo cancelar una factura global?

Sí, con el Id del comprobante. Es lo que toca cuando un cliente pide factura de una venta que ya quedó incluida.

¿El uso de CFDI puede ser otro distinto de S01?

No. S01 significa "sin efectos fiscales" y es el único válido cuando el receptor es el público en general, porque nadie va a deducir ese comprobante.

Automatiza el cierre de tu punto de venta

Prueba el flujo completo en el sandbox antes de conectarlo a producción.

Crear cuenta y probar Hablar con un ingeniero