# VeriFactu errors

All error codes returned by the VeriFactu endpoints (24 total).

Every error returned by the **VeriFactu** endpoints. Click any code for the full example response and localized messages.

| Code | Message |
|------|---------|
| [`ALREADY_REGISTERED`](/errors/ALREADY_REGISTERED) | The NIF is already registered in VeriFactu |
| [`API_COMMUNICATION_ERROR`](/errors/API_COMMUNICATION_ERROR) | Error communicating with the VeriFactu API |
| [`COMPANY_NIF_MISSING`](/errors/COMPANY_NIF_MISSING) | The issuing company has no NIF configured. Set the NIF before submitting invoices to VeriFactu |
| [`ENV_MISMATCH`](/errors/ENV_MISMATCH) | API key does not match NIF environment: use a live key for production NIFs and a test key for sandbox NIFs |
| [`NIF_NOT_CONFIGURED`](/errors/NIF_NOT_CONFIGURED) | The profile has no NIF. Complete it before continuing. |
| [`NIF_NOT_REGISTERED`](/errors/NIF_NOT_REGISTERED) | The NIF is not registered in VeriFactu |
| [`NIF_REPRESENTATION_REQUIRED`](/errors/NIF_REPRESENTATION_REQUIRED) | You must sign the AEAT representation model before issuing real invoices with this NIF |
| [`NIF_VALIDATION_INVALID`](/errors/NIF_VALIDATION_INVALID) | The NIF does not exist in the AEAT census |
| [`NO_UNSIGNED_DOCUMENT`](/errors/NO_UNSIGNED_DOCUMENT) | No unsigned representation document exists. Generate one before uploading the signed PDF |
| [`PDF_EMPTY`](/errors/PDF_EMPTY) | The PDF file is empty |
| [`PDF_INVALID_EXTENSION`](/errors/PDF_INVALID_EXTENSION) | The file must be a PDF (.pdf) |
| [`PDF_INVALID_FORMAT`](/errors/PDF_INVALID_FORMAT) | The file does not have a valid PDF format |
| [`PDF_SIGNATURE_INVALID`](/errors/PDF_SIGNATURE_INVALID) | The signed PDF is not valid: ‹value› |
| [`PDF_TOO_LARGE`](/errors/PDF_TOO_LARGE) | The PDF file exceeds the maximum allowed size: ‹value› (maximum: ‹value› MB) |
| [`PDF_VALIDATION_FAILED`](/errors/PDF_VALIDATION_FAILED) | Error validating the signed PDF. Please try again later |
| [`RECTIFICATIVA_R1R4_NOT_SIMPLIFICADA`](/errors/RECTIFICATIVA_R1R4_NOT_SIMPLIFICADA) | The R1-R4 correction methods do not apply to simplified invoices |
| [`RECTIFICATIVA_R5_ONLY_SIMPLIFICADA`](/errors/RECTIFICATIVA_R5_ONLY_SIMPLIFICADA) | The R5 correction method only applies to simplified invoices |
| [`REPRESENTATION_ALREADY_ACTIVE`](/errors/REPRESENTATION_ALREADY_ACTIVE) | There is already an active representation document. Cancel it before generating another one. |
| [`REPRESENTATION_DOCUMENT_NOT_STORED`](/errors/REPRESENTATION_DOCUMENT_NOT_STORED) | No representation document is stored. Generate it again. |
| [`REPRESENTATION_NOT_ACTIVE`](/errors/REPRESENTATION_NOT_ACTIVE) | There is no active representation document. Generate and sign one before continuing. |
| [`REPRESENTATION_NOT_FOUND`](/errors/REPRESENTATION_NOT_FOUND) | There is no representation document. Generate one before continuing. |
| [`SIGNING_ONLY_IN_LIVE`](/errors/SIGNING_ONLY_IN_LIVE) | The AEAT representation can only be signed in Live mode: the document has no test mode |
| [`VERIFACTU_ALWAYS_ON_IN_SANDBOX`](/errors/VERIFACTU_ALWAYS_ON_IN_SANDBOX) | VeriFactu is always on in sandbox and cannot be disabled |
| [`VERIFACTU_REPRESENTATION_REQUIRED`](/errors/VERIFACTU_REPRESENTATION_REQUIRED) | To enable VeriFactu in production you must first sign the AEAT representation form for this tax ID |

## Keep exploring

<div className="grid grid-cols-2 gap-3 not-prose">
  <Card title="Error reference home" description="Landing page with all categories and a guide on handling errors." href="/errors" />
  <Card title="Handling errors" description="Response shape, the type URI, and programmatic patterns." href="/guides/handling-errors" />
</div>

---

Full OpenAPI spec: https://docs.beel.es/api/openapi