Facturar a la Administración desde tu software: FACe por API

· Equipo Factuneo

Cómo presentar facturas a ayuntamientos y organismos públicos en FACe desde tu aplicación: los códigos DIR3, tu propia plataforma de envío y los estados (contabilizada, pagada, rechazada) por webhook.

FACe: el buzón de la Administración

Si tu software lo usan empresas que venden a Administraciones Públicas —un ayuntamiento, una diputación, un ministerio, un hospital público—, sus facturas no se entregan por correo: se presentan en FACe, el Punto General de Entrada de Facturas Electrónicas del Estado. Lo exige la Ley 25/2013 para la mayoría de proveedores del sector público.

Conviene no confundir tres piezas que suelen ir juntas:

Pieza Qué es
VeriFactu El registro de cada factura que se remite a la AEAT (RD 1007/2023)
Facturae El formato: un XML firmado con XAdES que describe la factura
FACe La plataforma donde se presenta ese Facturae al organismo

Una factura a un ayuntamiento lleva las tres: se registra en la AEAT, se genera en Facturae y se presenta en FACe.

Qué necesita la factura para FACe

Además de los datos de siempre, FACe necesita saber a qué oficina del organismo va. Para eso están los códigos DIR3, tres en cada factura:

Te los da el organismo (suelen venir en el pedido o en el contrato). Si falta alguno o no existe, FACe rechaza la factura.

La plataforma es tuya

FACe no acepta envíos anónimos: solo de plataformas dadas de alta en su portal de integradores, identificadas por un certificado. En Factuneo esa plataforma es del cliente, no nuestra:

  1. Entras en el portal de integradores de FACe (hay uno de pruebas y otro de producción) con tu certificado.
  2. Firmas la declaración de alta como integrador y, si presentas facturas de tus clientes, marcas «Servicios a terceros».
  3. Subes la parte pública de tu certificado y creas una plataforma con servicio de envío.
  4. Subes ese mismo certificado a Factuneo: lo comprobamos con FACe en pruebas y en producción y te decimos si lo reconoce.

A partir de ahí, las facturas de todos tus emisores se presentan con tu plataforma. Si prefieres que cada cliente use la suya, basta con que la den de alta con el certificado que ya nos dieron para VeriFactu.

Un detalle práctico: el portal de FACe falla si el certificado se sube en binario (DER). Súbelo en base64, el fichero que empieza por "-----BEGIN CERTIFICATE-----".

Presentar, en una llamada

Con la factura ya emitida, presentarla es un POST con los códigos DIR3 y un correo de avisos:

curl -X POST https://factuneo.es/api/v1/invoices/3f8a…/face \
  -H "x-api-key: vsk_live_…" -H "Content-Type: application/json" \
  -d '{
    "buyer": {
      "taxIdentificationNumber": "P1234567A",
      "corporateName": "Ayuntamiento de Ejemplo",
      "dir3": { "oficinaContable": "L01000001", "organoGestor": "L01000001", "unidadTramitadora": "L01000001" }
    },
    "email": "facturas@miempresa.es",
    "incluirPdf": true
  }'

La respuesta trae el número de registro de FACe (REGAGE…). El Facturae lo firma el emisor con su certificado —o su representante, como tercero—: Factuneo no firma tus facturas.

Y después: el estado llega solo

Una factura en FACe pasa por varios estados:

Código Estado
1200 Registrada
1300 Registrada en el registro contable
2400 En trámite (contabilizada la obligación)
2500 Pagada
2600 Rechazada
3100 Anulada

FACe no avisa de los cambios: hay que preguntar. Lo hacemos nosotros: consultamos cada hora las facturas que aún pueden cambiar y, cuando cambian, te llega el webhook invoice.face_status_changed con el estado nuevo y el anterior. Tu ERP puede marcar la factura como cobrada el día que la Administración la paga, sin que nadie entre en ningún portal.

Si el organismo la rechaza, además aparece una alerta en tu panel, con su comentario.

Anular

Si te equivocaste, puedes pedir la anulación con un POST a /face/anulacion y el motivo. La decisión es del organismo, y su respuesta te llega por el mismo webhook.

Incluido en el plan

FACe no es un extra: va incluido en todos los planes, como el Facturae. Tienes la guía completa en la documentación.

← Volver al blog · Factuneo