> This documentation belongs to Invofox, an AI-powered document processing
> platform. The API extracts structured data (fields) from unstructured
> documents (invoices, contracts, forms, bank statements, and more).
> Key concepts: Account, Environment, Document Type, Field, File, Import,
> and Document. When answering, prefer the exact terminology defined in the
> Glossary and cite the relevant API Reference endpoint when applicable.

# Archivos rechazados

> Cómo informa Invofox de los archivos rechazados (protegidos con contraseña, corruptos o de formato no soportado) mediante el webhook file.rejected, y cómo gestionarlos en tu pipeline.

Un rechazo es un problema del archivo en sí — no de la extracción — e Invofox te dice qué archivo ha fallado y por qué.

Un archivo se rechaza cuando no se puede procesar tal cual — por ejemplo un **PDF protegido con contraseña**, un **archivo corrupto** o un **formato no soportado dentro de un ZIP** (p. ej. un `.pptx` o un `.exe`). El archivo no produce ningún documento; en su lugar se dispara un webhook `file.rejected` con el motivo en su campo `error`. (Una subida directa de un tipo no soportado se rechaza de entrada con un `400`, antes de crear nada.)

Escucha `file.rejected` para capturar estos casos en tu pipeline. Tu `clientData` se incluye, así que puedes correlacionar el rechazo con tus propios registros.

<Warning>
Un archivo rechazado dispara **solo** `file.rejected` — nunca `document.processed`, y nunca aparece por polling. Si no gestionas este evento, esperarás indefinidamente un documento que nunca llegará.
</Warning>

## Códigos de error

Cuando un File alcanza el estado `rejected`, su campo `error` contiene uno de los siguientes códigos:

| Código de error | Descripción |
| --- | --- |
| `ERR_DOWNLOADING_FILE` | Error al descargar el archivo desde el origen |
| `ERR_UNSUPPORTED_FILE_FORMAT` | Formato de archivo no soportado |
| `ERR_UNSUPPORTED_UNCOMPRESSED_FILE_FORMAT` | Formato de archivo descomprimido no soportado (extraído de un comprimido) |
| `ERR_ZIP_ENCRYPTED` | El archivo ZIP está protegido con contraseña o cifrado |
| `ERR_INSUFFICIENT_CREDITS` | Créditos insuficientes en la cuenta para procesar este archivo |
| `ERR_IMAGE_TOO_SMALL` | Las dimensiones de la imagen están por debajo del mínimo soportado (mín. 50×50px) |

<Note>En versiones futuras pueden añadirse códigos de error adicionales. El código se devuelve siempre como cadena en el campo `error` para manejarlo de forma programática.</Note>

El campo `error` te dice qué ha pasado. Dos casos comunes:

**`file.rejected · PDF protegido con contraseña`**

```json title="file.rejected · PDF protegido con contraseña"
{
  "type": "file.rejected",
  "id": "000000000000000000000027",
  "timestamp": "2026-06-19T03:15:41.826Z",
  "data": {
    "id": "000000000000000000000027",
    "importId": "000000000000000000000026",
    "status": "rejected",
    "filename": "invoice.pdf",
    "error": "ERR_PASSWORD_PROTECTED",   // ← el PDF está bloqueado con contraseña
    "clientData": { "internalId": "inv-1234" }
  }
}
```

**`file.rejected · formato no soportado dentro de un ZIP`**

```json title="file.rejected · formato no soportado dentro de un ZIP"
{
  "type": "file.rejected",
  "id": "00000000000000000000002f",
  "timestamp": "2026-06-19T10:59:19.241Z",
  "data": {
    "id": "00000000000000000000002f",
    "importId": "00000000000000000000002e",
    "status": "rejected",
    "filename": "notes.pptx",
    "error": "ERR_UNSUPPORTED_UNCOMPRESSED_FILE_FORMAT",   // ← un .pptx extraído del ZIP no es un tipo soportado
    "clientData": { "internalId": "inv-1234" }
  }
}
```