> ## Documentation Index
> Fetch the complete documentation index at: https://docs.matil.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Documentos

> Como enviar documentos a Matil — URLs, base64 o texto plano.

Cada petición de procesamiento en Matil incluye uno o más documentos. Un documento es la entrada que quieres procesar — una factura, un contrato, un DNI o cualquier otro archivo.

Matil acepta documentos en varios formatos, para que puedas integrar independientemente de como almacenes o recibas tus archivos.

## Tipos de archivo soportados

Matil puede procesar una amplia variedad de formatos:

| Categoria            | Formatos                                                  |
| -------------------- | --------------------------------------------------------- |
| **PDF**              | `.pdf`                                                    |
| **Imagenes**         | `.jpg`, `.jpeg`, `.png`, `.gif`, `.webp`, `.tiff`, `.bmp` |
| **Hojas de cálculo** | `.xlsx`, `.xls`, `.ods`, `.csv`                           |
| **Texto**            | `.txt`, `.html`, `.xml`, `.json`                          |

El tamano maximo de archivo es **50 MB**.

## Formatos de entrada

### URL

Apunta a un documento alojado online. Matil lo descarga y lo procesa automaticamente. Esta es la forma más comun de enviar documentos.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "type": "url",
  "url": "https://ejemplo.com/factura.pdf"
}
```

### Base64

Envía archivos binarios directamente en el cuerpo de la petición. Útil cuando tienes archivos en memoria.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "type": "base64",
  "content": "JVBERi0xLjQK...",
  "mime_type": "application/pdf"
}
```

Asi se codifica un archivo en Python:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import base64

with open("documento.pdf", "rb") as f:
    encoded = base64.b64encode(f.read()).decode("utf-8")

document = {
    "type": "base64",
    "content": encoded,
    "mime_type": "application/pdf"
}
```

### Texto plano

Envía contenido de texto directamente. Útil cuando ya tienes el texto extraído.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "type": "text",
  "text": "FACTURA\n\nNumero de factura: FAC-2024-001\nFecha: 15 de enero de 2024\nTotal: 150.00 EUR"
}
```

## Multiples documentos

Puedes enviar varios documentos en una sola petición. Matil los procesa juntos como una unidad — util para documentos multipagina que llegan como archivos separados.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "documents": [
    {"type": "url", "url": "https://ejemplo.com/pagina1.pdf"},
    {"type": "url", "url": "https://ejemplo.com/pagina2.pdf"}
  ]
}
```

## Anadir metadata

Puedes adjuntar metadata personalizada a cualquier petición. Esta metadata se almacena con el resultado y se devuelve en las respuestas y webhooks — util para correlacionar resultados con tu sistema.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "documents": [
    {"type": "url", "url": "https://ejemplo.com/factura.pdf"}
  ],
  "metadata": {
    "pedido_id": "PED-12345",
    "origen": "bandeja-email",
    "cliente_id": "cli_abc"
  }
}
```

<Tip>
  Usa metadata para vincular los resultados de Matil con registros de tu propia base de datos. Esto facilita la correspondencia entre entradas procesadas y su origen.
</Tip>

## Siguientes pasos

<CardGroup cols={2}>
  <Card title="Modos de procesamiento" href="/es/api-reference/processing">
    Procesa muchos documentos eficientemente con el modo batch.
  </Card>

  <Card title="Structures" href="/es/guides/structures">
    Aprende como extraer datos estructurados de tus documentos.
  </Card>
</CardGroup>
