Factuarea API
FacturaE (B2G)

Enviar la factura a FACe

Presenta una factura emesa a FACe (el punt general d'entrada B2G espanyol). Requereix els tres codis DIR3 del client i un certificat de signatura actiu; l'XML FacturaE 3.2.2 es signa XAdES-EPES i es presenta a través del web service de FACe, retornant el número de registre. Sense cos de petició: la factura viatja a la ruta i els codis DIR3 es llegeixen del client. Les claus de prova (`fact_test_`) simulen l'enviament (registre `FACE-SANDBOX-*`) sense contactar amb FACe. Errors: 422 (`invoice_not_emittable_for_facturae`, `client_missing_dir3_codes`, `signing_certificate_required`), 409 `face_submission_already_exists` (ja existeix un enviament actiu per a la factura), 502 `face_transmission_failed` (no es persisteix res quan el web service de FACe està caigut).

POST
/invoices/{invoice}/face-submissions
AuthorizationBearer <token>

A: header

Paràmetres de ruta

invoice*string

Cos de la resposta

application/json

application/json

application/json

application/json

application/json

application/json

{
  "data": {
    "id": "01972f4e-9c2b-7d3a-8e5f-1a2b3c4d5e6f",
    "object": "face_submission",
    "invoice_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8d01",
    "status": "submitted",
    "registry_number": "202600123456",
    "dir3_accounting_office": "E04921301",
    "dir3_managing_body": "E04921302",
    "dir3_processing_unit": "E04921303",
    "error_code": null,
    "error_message": null,
    "status_updated_at": "2026-06-11T10:30:00+00:00",
    "last_polled_at": null,
    "created_at": "2026-06-11T10:30:00+00:00"
  }
}

{
  "error": {
    "type": "authentication_error",
    "code": "missing_api_key",
    "message": "No se ha proporcionado una API key válida en el header Authorization.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#missing_api_key",
    "request_id": "req_01HKQS5N8VR7QXJ9K3T6BWPMZA"
  }
}

{
  "error": {
    "type": "authorization_error",
    "code": "insufficient_scope",
    "message": "Esta API key no tiene el scope requerido para esta operación.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#insufficient_scope",
    "request_id": "req_01HKQS5NBC3P8M1KX4V7SLNHQD"
  }
}

{
  "error": {
    "type": "idempotency_error",
    "code": "idempotency_key_reused",
    "message": "La cabecera `Idempotency-Key` ya se usó con un body distinto. Usa una clave nueva o reenvía exactamente el mismo body.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#idempotency_key_reused",
    "request_id": "req_01HKQS5NHT9A4U7R2E3F8GZWTJ"
  }
}

{
  "error": {
    "type": "rate_limit_error",
    "code": "rate_limit_exceeded",
    "message": "Has excedido el rate limit de 60 peticiones por minuto. Reintenta tras 30 segundos.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#rate_limit_exceeded",
    "request_id": "req_01HKQS5NKW1C6W9T4G5H0JBZVL"
  }
}

{
  "error": {
    "type": "api_error",
    "code": "internal_error",
    "message": "Ha ocurrido un error inesperado. Si persiste, contacta con soporte adjuntando el request_id.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#internal_error",
    "request_id": "req_01HKQS5NLX2D7X0U5H6J1KCAWM"
  }
}