Factuarea API
VeriFactu (AEAT)

Valida la cadena de hashes de VeriFactu

Recalcula la cadena de huellas VeriFactu (`huella`) de tu empresa y la compara con los valores persistidos sin mutar datos. Devuelve si la cadena está íntegra y, si no, el primer registro corrupto. Limitado a 1 petición/minuto y rechazado con 422 `dataset_too_large` para conjuntos de más de 50,000 registros.

GET
/verifactu/chain/validate
AuthorizationBearer <token>

En: header

Cuerpo de la respuesta

application/json

application/json

application/json

application/json

application/json

{
  "data": {
    "object": "verifactu_chain_validation",
    "is_valid": true,
    "total_records": 1284,
    "validated_records": 1284,
    "first_invalid_record_id": null,
    "validation_year": 2026,
    "validated_at": "2026-04-15T10:35:00+02: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": "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"
  }
}