# Caracterización (/docs/impuestos/caracterizacion)

La *caracterización* del RCV decide cómo aterriza una compra en tu F29: si su IVA es recuperable, de
uso compartido, o no recuperable del todo. Es una escritura contra el registro del SII, y es una de
las pocas acciones tributarias donde ser programático es una ventaja genuina — el software contable
sabe la respuesta, una persona haciendo clic en una grilla de portal no.

## Una entrada [#una-entrada]

```bash
curl -X POST https://api.facturia.cl/v1/tax/purchases/rcv_01K2RB7Q2M4X/characterize \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"tipo_compra":"activo_fijo"}'
```

## En bloque [#en-bloque]

Hasta 500 entradas por llamada.

```bash
curl -X POST https://api.facturia.cl/v1/tax/purchases/characterize \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{
    "entries": [
      { "id": "rcv_01K2RB7Q2M4X", "tipo_compra": "del_giro" },
      { "id": "rcv_01K2RB8W1N7Y", "tipo_compra": "iva_uso_comun" },
      { "id": "rcv_01K2RB9E5P2Z", "tipo_compra": "no_recuperable", "iva_no_recuperable_code": 3 }
    ]
  }'
```

## Los cinco valores [#los-cinco-valores]

| `tipo_compra`    | Significado                                                          |
| ---------------- | -------------------------------------------------------------------- |
| `del_giro`       | Compra ordinaria del negocio; IVA totalmente recuperable             |
| `supermercado`   | Supermercado o similar, con sus límites legales                      |
| `activo_fijo`    | Activo fijo                                                          |
| `iva_uso_comun`  | Uso compartido entre actividad afecta y exenta; crédito proporcional |
| `no_recuperable` | IVA no recuperable; `iva_no_recuperable_code` dice por qué           |

`iva_no_recuperable_code` es obligatorio cuando `tipo_compra` es `no_recuperable`.

## Estado contable [#estado-contable]

También puedes mover una entrada entre `REGISTRO`, `PENDIENTE` y `NO_INCLUIR`:

```bash
curl -X POST https://api.facturia.cl/v1/tax/purchases/rcv_01K2RB7Q2M4X/estado_contable \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Content-Type: application/json" \
  -d '{"estado_contable":"NO_INCLUIR"}'
```

> **Trampa — Caracterizar invalida la propuesta de F29 del período**
>
> Cambiar la caracterización recalcula la propuesta de ese período y dispara
> `tax.f29.proposal.updated`. Si tu flujo era «leer propuesta → mostrar → declarar», y en el medio
> alguien caracterizó, el `confirm_total_payable` que tenías en pantalla ya no coincide y la
> declaración va a fallar con `422 f29_amount_confirmation_mismatch`.
>
> Eso no es un bug: es la barrera funcionando. Vuelve a leer la propuesta antes de declarar.

## Por qué esto importa más de lo que parece [#por-qué-esto-importa-más-de-lo-que-parece]

Las entradas mal caracterizadas o en `PENDIENTE` son la causa número uno de que una propuesta de F29
no cuadre con lo que espera el contador. La propuesta las reporta explícitamente en
`observations[]`:

```json
"observations": [
  { "code": "rcv_pendientes", "severity": "warning", "message": "3 documentos de compra están en estado PENDIENTE y no fueron considerados.", "entry_ids": ["rcv_...", "rcv_...", "rcv_..."] }
]
```

Y el detector de sugerencias levanta un `missing_characterization` cuando una entrada va a distorsionar
el F29. Ver [Tipo 46 y sugerencias](/docs/impuestos/tipo-46#el-catalogo-de-sugerencias).
