Factuarea API

Facturas simplificadas o completas

F1, F2 y F3 — cuándo es legal una factura simplificada, el tope de 3.000 € que sí se aplica de verdad, y la sustitución en una sola llamada que convierte un lote de tiques en una factura completa.

La ley española distingue la factura completa (F1), que identifica al destinatario y le permite deducir el IVA, de la factura simplificada (F2), el tique que el comercio entrega en el mostrador. Cuando un cliente necesita después un documento deducible por un lote de tiques, la ley prevé un tercer tipo: la factura sustitutiva (F3), que agrega varias simplificadas.

Cuándo aplica

La factura simplificada está disponible en operaciones de tipo minorista por debajo de un importe legal. Nunca lo está en los casos de abajo, y la comprobación de admisibilidad los evalúa en este orden exacto — gana el primero que casa:

Condición que la bloqueareason_code
Operación intracomunitariaintra_community
Inversión del sujeto pasivoreverse_charge
Destinatario fuera de España (exportación)export_operation
El cliente necesita una factura deducibleclient_deduction_required
Total por encima del tope legal absolutoover_absolute_limit

El tope que el software sí aplica es de 3.000 € con IVA incluido — el máximo que puede alcanzar cualquier factura simplificada según el RD 1619/2012 art. 4, sea cual sea el sector. Superarlo responde 422 con el código de motivo over_absolute_limit (BR-INV-009).

El umbral general de 400 € del mismo artículo no se aplica. Factuarea no pide a la empresa que declare su sector económico, así que no puede saber si le corresponde el límite elevado. Mantenerse por debajo de 400 € cuando tu sector no da derecho a la cifra mayor es responsabilidad fiscal del emisor, no algo que la API vaya a impedirte.

El catálogo de impuestos no cambia entre los dos tipos. A una F1 y a una F2 les aplican los mismos tipos de IVA; lo que difiere es el contenido obligatorio del documento, el tope de importe y la identificación del destinatario (BR-TAX-011).

Qué envía la API

Pregunta antes de decidir

POST /v1/invoices/simplified-eligibility, scope invoices:read. Pensado para flujos de caja y de punto de venta que deben elegir el tipo de documento antes de crear nada.

curl -X POST https://api.factuarea.com/v1/invoices/simplified-eligibility \
  -H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW" \
  -H "Content-Type: application/json" \
  -d '{"total": 3400, "client_country": "ES"}'
{
  "data": {
    "can_be_simplified": false,
    "must_be_complete": true,
    "reason_code": "over_absolute_limit",
    "reason_message": "El importe 3.400,00 EUR supera el límite de 3.000,00 EUR para una factura simplificada.",
    "sector_limit": 3000
  }
}

total es obligatorio y es el importe con IVA incluido. client_id, client_country, is_intra_community, is_reverse_charge y client_requires_deductible son entradas opcionales a las condiciones de bloqueo de arriba.

Crear una factura simplificada no es una operación de la v1

POST /v1/invoices no tiene campo type ni bandera de simplificada, y client_id es obligatorio. La API pública no puede emitir una F2. Toda factura creada por la v1 es una factura completa.

Es una frontera real, no una omisión que puedas sortear con un truco de payload. Si tu punto de venta emite facturas simplificadas, se crean por el panel o por la superficie de punto de venta; lo que la v1 te da sobre ellas es la comprobación de admisibilidad, la lectura y la sustitución de abajo.

La consecuencia para el tratamiento de errores: el 422 por una línea de suplido dentro de una factura simplificada es inalcanzable desde POST /v1/invoices y solo se alcanza por el endpoint de rectificativa sobre un original simplificado — ver Suplidos.

Sustituir facturas simplificadas, en una sola llamada

POST /v1/invoices/substitute-simplified, scope invoices:write. Pasas el destinatario y la lista de facturas simplificadas que quieres agregar; recibes una F3 completa, ya emitida, con número definitivo de serie:

curl -X POST https://api.factuarea.com/v1/invoices/substitute-simplified \
  -H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW" \
  -H "Content-Type: application/json" \
  -d '{
        "client_id": "0197a2a8-4cf0-7a31-9a5e-3f2b8c1d6e42",
        "simplified_invoice_ids": [
          "0197b1c2-3d4e-7f50-8a61-b2c3d4e5f601",
          "0197b1c2-3d4e-7f50-8a61-b2c3d4e5f602"
        ],
        "notes": "Consumos de junio"
      }'

Cada factura simplificada de la lista se valida (BR-INV-015): la lista no puede estar vacía ni tener duplicados, cada factura debe pertenecer a tu empresa, cada una debe ser realmente una F2, ninguna puede estar anulada ni cancelada, y ninguna puede tener ya una sustitutiva. Cuando falla, el 422 nombra el número de la factura que lo provoca.

La F3 nace emitida, y sus líneas son agregados: una línea por factura sustituida, descrita como la sustitución de ese número de factura, con cantidad uno y el total bruto original como precio unitario, y sin impuesto propio — el IVA ya se repercutió en la factura simplificada.

La sustitución no anula los originales. Cada F2 conserva su estado fiscal y simplemente deja constancia de que ha sido sustituida; el objeto factura lo expone como substituted_by. Una F3 se puede rectificar, como cualquier factura completa —los códigos R1R4 valen igual para F1 que para F3, ver Facturas rectificativas—. Lo que una F3 no puede ser es sustituida: solo una F2 puede ser objeto de una sustitución, y solo una F3 puede llevar facturas sustituidas (BR-INV-016).

Qué sale en el PDF

La diferencia visible es el bloque de destinatario. Una factura completa imprime el nombre, el NIF y la dirección del destinatario, congelados en el momento de emitir; una simplificada puede legítimamente no tener ninguno, e imprime en su lugar el marcador de consumidor final (BR-INV-024).

La F3 se imprime como una factura completa ordinaria — un bloque de destinatario completo y una línea por cada tique sustituido, nombrando cada número de factura sustituida.

Qué llega a la AEAT

El tipo de factura viaja como el TipoFactura de la AEAT en el registro VeriFactu y es visible en el objeto registro como invoice_type: F1, F2, F3, o R5 para una rectificativa de una simplificada. El registro señala además si sustituye facturas simplificadas (BR-VFC-014).

El tipo tiene también consecuencias en las declaraciones periódicas (BR-TXR-004):

  • Una F3 sin NIF de destinatario levanta un aviso no bloqueante en la declaración trimestral de IVA: es inusual, pero legítimo si el tique original tampoco lo tenía.
  • Una F2 con cliente registrado pero sin NIF levanta también un aviso.
  • Una F2 sin NIF alguno queda excluida de la declaración anual de operaciones con terceras personas (Modelo 347) por norma de la AEAT, y la exclusión se informa como aviso.

Ninguno de ellos bloquea la generación. El informe se produce y los avisos se devuelven junto a él, como lista vacía cuando no hay ninguno. Bloquear sería un falso positivo frecuente.

Trazabilidad

Derivado de las reglas de dominio del backend de Factuarea:

  • BR-INV-009 — el tope aplicado de 3.000 €, el umbral no aplicado de 400 € y las operaciones que descartan la factura simplificada.
  • BR-INV-015 — sustitución de facturas simplificadas por una F3, sus validaciones y sus líneas agregadas.
  • BR-INV-016 — solo una F3 lleva facturas sustituidas, y nunca una lista vacía.
  • BR-INV-024 — el snapshot inmutable del destinatario, y su ausencia en un tique de consumidor final.
  • BR-TAX-011 — el catálogo de impuestos es idéntico para ambos tipos; el límite pertenece a la facturación, no al catálogo.
  • BR-VFC-014 — los tipos de factura de la AEAT y cómo se resuelve el tipo.
  • BR-TXR-004 — avisos no bloqueantes de calidad fiscal para F2 y F3 sin NIF.

Los códigos de motivo del 422 citados en Cuándo aplica vienen del servicio de dominio de admisibilidad que materializa BR-INV-009.

En esta página