Factuarea APIDevelopers

Glosario

Términos fiscales y de dominio españoles usados en toda la API de Factuarea — NIF, VeriFactu, AEAT, FacturaE, Modelo 303/347, series, rectificativa, huella, CSV y más.

La API de Factuarea modela conceptos de facturación y cumplimiento fiscal españoles. Si integras desde fuera de España — o simplemente quieres una referencia precisa — este glosario explica los términos del dominio que aparecen en nombres de campos, valores de enum y mensajes de error, y cómo se corresponde cada uno con la API.

Los mensajes de error de la API (error.message) se devuelven en español porque reflejan la respuesta real de la API. Los campos type, code y subcode son identificadores estables en inglés — haz match sobre esos, no sobre el texto del mensaje. Consulta Errors.

Identificadores fiscales

TérminoDefinición
NIF / CIF / NIEEl número fiscal tributario español. El NIF (Número de Identificación Fiscal) identifica a residentes y empresas, el CIF era el código heredado para personas jurídicas, y el NIE (Número de Identidad de Extranjero) identifica a residentes extranjeros. En la API todos residen en el único campo tax_id de contacts y tu cuenta. Para contrapartes no españolas usa alternative_id en su lugar — es mutuamente excluyente con tax_id.
VAT ID (NIF intracomunitario)Un número de IVA intracomunitario de la UE, expuesto como el campo vat_id en contacts. Distinto de tax_id: identifica a la parte para operaciones intracomunitarias exentas de IVA, no para fines fiscales domésticos.
AEATAgencia Estatal de Administración Tributaria — la agencia tributaria española. Es la receptora de los registros VeriFactu, la autoridad detrás de las declaraciones Modelo y la emisora del CSV. Todos los campos aeat_* y los endpoints /v1/verifactu/aeat-access/* se relacionan con ella.

Impuestos

TérminoDefinición
IVA (VAT)Impuesto sobre el Valor Añadido — el impuesto sobre el valor añadido español. En la API es un impuesto de type: "vat" en el catálogo de impuestos. Aplícalo por línea mediante tax_rate_id; los totales los calcula la API (subtotal + total_vat + total_surcharge − total_retention). Consulta la sección Taxes en la API Reference.
Retención (IRPF withholding)Una retención deducida de una línea y remitida a la AEAT en nombre del destinatario, normalmente IRPF (Impuesto sobre la Renta de las Personas Físicas) para autónomos. Se modela como un impuesto de type: "retention". Resta del total del documento, a diferencia del IVA y el recargo.
Recargo de equivalencia (equivalence surcharge)Un régimen especial de IVA para minoristas: un recargo adicional sumado sobre el IVA para que el minorista no presente declaraciones de IVA por separado. Se modela como un impuesto de type: "surcharge"; una contraparte sujeta a él lleva is_surcharge_subject: true. Suma al total del documento.

Documentos

TérminoDefinición
Serie (numbering series)La secuencia de numeración correlativa y sin huecos a la que pertenece una factura (series_id). Una serie es inmutable por cumplimiento de la AEAT — una vez creada no se puede editar (el método PUT devuelve 405). El modo de prueba usa las propias series de la empresa sandbox y nunca toca tu numeración de producción. Consulta la sección Series en la API Reference y Test mode.
Rectificativa (corrective invoice)Una factura rectificativa que corrige una emitida previamente — la forma legal de arreglar una factura, ya que las facturas emitidas no se pueden editar ni eliminar. Se crea mediante POST /v1/invoices/{id}/corrective; el resultado es una factura nueva con is_corrective: true y un objeto corrective, mapeada a un código de tipo R1R5 de la AEAT. El código se deriva del slug correction_reason por defecto, pero puedes forzarlo de forma explícita con correction_code (R1R5): una original simplificada (F2) solo admite R5, y una original completa (F1/F3) solo R1R4 — un código incompatible devuelve 422 con los códigos legales en error.allowed_values. Una justification opcional (min:10) registra la traza documental que la LIVA exige para algunas causas (concurso, incobrable). Compárala con anular (POST /v1/invoices/{id}/annul), que anula sin corregir.
Factura simplificada (simplified invoice)Una factura con datos reducidos (tipo F2 de la AEAT) permitida para importes pequeños bajo el Real Decreto 1619/2012 art. 4, sin los datos completos del destinatario. Comprueba la elegibilidad con POST /v1/invoices/simplified-eligibility; agrupa varias en una sola factura sustitutiva completa (tipo F3) con POST /v1/invoices/substitute-simplified. Una factura ordinaria completa es de tipo F1.
ProformaUna factura proforma de previsualización no fiscal usada para presupuestar o solicitar el pago antes de emitir la factura real (fiscal). No lleva numeración legal y puede convertirse en factura mediante POST /v1/proformas/{id}/convert. Ciclo de vida: draft, accepted, rejected, cancelled, expired, converted.
Albarán (delivery note)Un documento que registra las mercancías entregadas a un cliente (el recurso delivery_notes), que más tarde puede convertirse en factura. Admite una firma manuscrita del destinatario (PNG en base64). Ciclo de vida público: draft, sent, signed, invoiced, cancelled.
external_id (clave de integración)Un identificador de negocio externo — el ID del registro en tu propio ERP/CRM/e-commerce — guardado en un recurso para mapearlo y deduplicarlo entre integraciones. De formato libre (≤ 100 caracteres), único por empresa y ortogonal a los identificadores propios de Factuarea (id, number, sku). Busca un registro por él con POST /v1/{recurso}/find-by-external-id (body { "external_id": "..." }). Ideal como clave de mapeo al migrar desde otra plataforma — consulta Migración desde Holded.

Catálogo de productos y precios

TérminoDefinición
Unidad baseUnidad UNECE canónica que mide producto y stock (C62, KGM, GRM, LTR, MLT, MTR, MTK, HUR o DAY).
PresentaciónEnvase o medida comercial. fixed multiplica por un factor; variable_measure exige la cantidad base real en cada línea. Nunca tiene stock.
VarianteIdentidad de producto con SKU/código de barras y overrides de precio/coste opcionales. Puede tener stock o delegar movimientos al producto.
Oferta de proveedorCondiciones de compra para producto/variante: proveedor, unidad, conversión, disponibilidad, coste y plazo. Nunca cambia el precio de venta.
TarifaConjunto tenant-scoped de precios EUR explícitos para destinos producto/variante/presentación, asignable a clientes y borradores.
Snapshot de catálogoContexto inmutable de producto, cantidad y precio copiado a una línea para que editar el catálogo no reescriba el histórico.

Consulta Catálogo de productos y Tarifas.

Cumplimiento VeriFactu y AEAT

TérminoDefinición
VeriFactuEl sistema español de facturación antifraude (SIF) bajo el cual cada factura emitida genera un registro "Alta" a prueba de manipulaciones enviado a la AEAT. En live el registro se transmite a la AEAT; en test se crea localmente pero nunca se transmite. Se gestiona bajo los endpoints /v1/verifactu/*. Consulta Test mode.
Huella (hash chain)La huella encadenada SHA-256 de un registro VeriFactu (campo huella) que enlaza cada registro con el anterior, haciendo la secuencia a prueba de manipulaciones. Busca un registro por ella con POST /v1/verifactu/records/find-by-huella, y verifica la integridad de toda la cadena con GET /v1/verifactu/chain/validate.
CSV (Código Seguro de Verificación)El Código Seguro de Verificación que la AEAT devuelve cuando acepta un registro VeriFactu (el campo aeat_csv; null hasta que se asigna). Es un código de recibo de la AEAT — no un fichero de valores separados por comas. Busca un registro por él con POST /v1/verifactu/records/find-by-csv.
FacturaEEl formato XML español de factura electrónica (FacturaE 3.2.2) requerido para facturación B2G a la administración pública. Descárgalo para una factura con GET /v1/invoices/{id}/facturae (firmado XAdES-EPES con certificado activo) y envíalo a FACe vía /v1/face-submissions. Consulta Facturación FACe.
FACeEl punto general de entrada de facturas electrónicas de la administración pública española (Ley 25/2013). Factuarea presenta el XML FacturaE firmado al web service de FACe y sigue el estado de tramitación (submittedregistered_rcfaccountedpaid). Consulta Facturación FACe.
DIR3El directorio español de unidades de la administración pública. Todo cliente B2G lleva tres códigos DIR3 — oficina contable (01), órgano gestor (02) y unidad tramitadora (03) — requeridos por FACe, con formato ^[A-Z][A-Z0-9]{8,9}$.
Declaración responsableUna declaración formal de cumplimiento (declaración responsable) que el productor del software SIF — Factuarea — emite para acreditar la conformidad con VeriFactu. Es a nivel de productor y de solo lectura (no por empresa): recupera la actual con GET /v1/verifactu/declaracion-responsable.

Declaraciones tributarias

TérminoDefinición
Modelo 303La autoliquidación trimestral española del IVA presentada ante la AEAT. Genérala con POST /v1/tax_reports/303, indicando el trimestre (14). La respuesta incluye un desglose por tipo de IVA ({base, cuota} en céntimos). Consulta la sección Tax reports en la API Reference.
Modelo 347La declaración informativa anual que declara a terceros con quienes las operaciones anuales superaron el umbral legal. Genérala con POST /v1/tax_reports/347; es anual y no acepta un trimestre (enviar uno devuelve un error de validación).

Control horario

El sistema de control horario cubre el deber español de registro de jornada. Sus términos aparecen en nombres de campo y valores de enum de los dominios de control horario, todos tras el módulo control_horario.

TérminoDefinición
RD-ley 8/2019El Real Decreto-ley 8/2019 (art. 34.9 del Estatuto de los Trabajadores), que obliga a las empresas españolas a llevar un registro diario objetivo, fiable e inalterable de la jornada de cada empleado y conservarlo cuatro años para la Inspección de Trabajo (ITSS). Factuarea lo construye como un ledger inmutable (de sola adición) sellado por una cadena de hash SHA-256 por empresa — el patrón de inviolabilidad de VeriFactu aplicado a la jornada. Consulta Control horario.
Fichaje (time entry)Cada evento de fichaje — entrada, pausa, reanudación, salida — añadido al ledger inmutable (el recurso time_entries) y nunca editado ni borrado. El estado de sesión en vivo (working, paused, finished) se deriva del ledger, no se guarda en una columna. Consulta Fichajes.
Jornada (working day)La jornada laboral de un empleado. Puede partirse en varios turnos (jornada partida) cuando el empleado ficha salida y vuelve a fichar entrada el mismo día; las horas semanales esperadas vienen del horario de trabajo asignado.
Registro inalterable (ledger)El registro horario inmutable y encadenado por hash. No se puede actualizar ni borrar: un error se corrige con una solicitud de corrección que añade un asiento nuevo referido al original, de modo que tanto el fallo como su arreglo quedan en el registro. Verifica su integridad con GET /v1/time-entries/chain/validate.
Cierre mensual (monthly close)Una instantánea que congela los saldos y el desglose de ausencias de un mes finalizado y bloquea el periodo frente a fichajes retroactivos (el recurso monthly-register-closes). Va de closed ⇄ reopened; la reapertura es una recuperación auditada. Consulta Cierre mensual.
Sellado (seal)La firma opcional e irreversible de un cierre mensual: un digest SHA-256 canónico más una firma RSA-SHA256 desacoplada hecha con el certificado de la empresa, para que un auditor pueda probar que la instantánea no ha cambiado desde su firma. Un sellado por cierre — volver a sellar devuelve 409.
Asiento de empleado (employee seat)La unidad de facturación del control horario. Los empleados se facturan mediante un add-on mensual dedicado (employee-seats) cuya cantidad sigue el censo activo; un empleado nunca cuenta contra el límite users del plan. Consulta Facturación de asientos de empleado.
Tipo de ausencia (absence type)Lo que un empleado puede solicitar — vacaciones, baja por enfermedad, un día personal — con si es retribuida, si requiere aprobación, y una unidad de medida (days u hours). Cada empresa nueva recibe un conjunto español por defecto. Consulta Ausencias.
Política de ausencia (absence policy)La regla que decide cuánto y para quién: una dotación (limited días o unlimited), un método de devengo (annual o monthly), los tipos que cubre y los empleados a los que se asigna.
Saldo (balance)La dotación restante por empleado y tipo de ausencia, derivada del devengo de la política menos las solicitudes aprobadas (el recurso absence-balances).
Presencialidad (presence)La vista de solo lectura de quién está trabajando ahora mismo y quién está en oficina o en remoto hoy, derivada del ledger, los horarios y el censo — nunca persistida. No existe el scope presence:write: declarar presencia en oficina o remoto es una tarea solo del portal. Consulta Presencia.

Automatizaciones

El motor de automatizaciones convierte un evento en trabajo. Su vocabulario es el que muestra el editor de reglas en español, y dos de sus valores de enum son literales españoles que te encuentras en la API. Todo lo de aquí está tras el módulo automations.

TérminoDefinición
Automatización (automation rule)Una regla con tres piezas móviles: el evento que escucha (trigger_type), la condición que decide si un evento concreto es su caso (conditions) y las acciones ordenadas que se ejecutan (actions). Una regla nueva nace en draft y no escucha nada hasta que la activas. Consulta Automatizaciones.
Disparador (trigger)El tipo de evento que escucha una regla, en forma resource.action (invoice.paid). Pide a GET /v1/automations/catalog los disparadores a los que tu empresa puede suscribirse —ya filtrados por los módulos que incluye tu plan— y haz una segunda llamada para los campos evaluables del que hayas elegido.
Ensayo (dry run)Lo que una regla haría ante un evento de ejemplo (POST /v1/automations/rules/{rule}/dry_run). No materializa nada: ni correo, ni entrega de webhook, ni mutación, ni fila de ejecución, y no consume ni el presupuesto mensual ni el límite de frecuencia del motor.
Ejecución (run)Lo que produce un evento admitido. Congela la definición que ejecutó (rule_version + rule_snapshot) y el payload del evento que la disparó, así que sigue siendo legible cuando la regla ya ha avanzado. blocked —detenida por un límite del motor antes de ejecutar— no es failed.
Paso (step)Una acción de la definición congelada, identificada por su step_index empezando en cero. Los pasos vuelven siempre en orden de ejecución, cada uno con su action_type, sus parameters congelados, el result que devolvió su adaptador y una marca replayable.
Versión sellada (sealed version)Editar una regla nunca reescribe su definición anterior: sella una versión nueva y sube current_version. Cada ejecución apunta a la versión exacta que ejecutó, que puede quedar por detrás de la actual — y esa es la gracia.
Relanzamiento (replay)Rearmar trabajo aparcado, una ejecución entera o un solo paso. Ejecuta de verdad —manda correo, entrega webhooks y llama a terceros— y lleva x-irreversible en el spec. Solo se rearman los pasos aparcados con una razón relanzable.
Alcance empresa / cartera (rule scope)Qué empresas vigila una regla, en su campo opcional scope. Los dos valores son literales españoles: empresa (el valor por defecto) vigila la empresa que posee la regla; cartera vigila todas las empresas gestionadas por una gestoría y le entrega el aviso a ella. No se puede cambiar una vez existe la regla.
Gestoría (accounting firm)El despacho español que lleva la contabilidad de otras empresas. Sus reglas de cartera solo admiten los cuatro tipos de acción que avisan —los otros cuatro tendrían por sujeto un documento de la empresa gestionada— y cada ejecución nombra en subject_company la empresa sobre la que actuó.
discard_reason_labelLa etiqueta humana de un discard_reason tipado (condition_not_matched, rate_limit_exceeded…), siempre en español: pertenece al vocabulario del motor y no sigue Accept-Language. Ramifica sobre discard_reason, que es un catálogo cerrado, nunca sobre su etiqueta.

Identificadores de tienda y pedido

Una tienda es el comercio electrónico configurado de una empresa, identificado por su UUID público. Una conexión del proveedor es la autorización detrás de integration_id. Un pedido tiene el external_id opaco del proveedor. channel describe el origen de la factura y source_store_id apunta a la tienda de origen. En los eventos públicos de pedido, el identificador de tienda es específicamente data.store.uuid; conserva esa clave del formato de intercambio.

En esta página

¿Te echamos una mano?Contactar con soporte