# Characterization (/en/docs/impuestos/caracterizacion)

*Caracterización* — characterizing an entry in the RCV, the *registro de compras y ventas* that the
SII (Chile's tax authority) keeps for you — decides how a purchase lands in your F29, the monthly IVA
return: whether its IVA is recoverable, shared-use, or not recoverable at all. It is a write against
the SII's own register, and one of the few tax actions where being programmatic is a genuine
advantage — accounting software knows the answer; a person clicking through a grid in a portal does
not.

## One entry [#one-entry]

```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"}'
```

## In bulk [#in-bulk]

Up to 500 entries per call.

```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 }
    ]
  }'
```

## The five values [#the-five-values]

| `tipo_compra`    | Meaning                                                           |
| ---------------- | ----------------------------------------------------------------- |
| `del_giro`       | Ordinary purchase for the line of business; IVA fully recoverable |
| `supermercado`   | Supermarket or similar, with its statutory limits                 |
| `activo_fijo`    | Fixed asset                                                       |
| `iva_uso_comun`  | Shared between taxed and exempt activity; proportional credit     |
| `no_recuperable` | IVA not recoverable; `iva_no_recuperable_code` says why           |

`iva_no_recuperable_code` is required when `tipo_compra` is `no_recuperable`.

## Estado contable [#estado-contable]

You can also move an entry between `REGISTRO`, `PENDIENTE` and `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"}'
```

> **Trap — Characterizing invalidates the period's F29 proposal**
>
> Changing a characterization recomputes that period's proposal and fires
> `tax.f29.proposal.updated`. If your flow was "read proposal → show → file" and somebody
> characterized in between, the `confirm_total_payable` you had on screen no longer matches and the
> filing will fail with `422 f29_amount_confirmation_mismatch`.
>
> That is not a bug: it is the guardrail working. Read the proposal again before you file.

## Why this matters more than it looks [#why-this-matters-more-than-it-looks]

Badly characterized entries, or entries sitting in `PENDIENTE`, are the number one reason an F29
proposal doesn't square with what the accountant expects. The proposal reports them explicitly in
`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_..."] }
]
```

And the suggestion detector raises a `missing_characterization` when an entry is going to distort the
F29. See [Tipo 46 and suggestions](/en/docs/impuestos/tipo-46#el-catalogo-de-sugerencias).
