Facturiadocs
Impuestos

Caracterización

La escritura que decide si el IVA de una compra es recuperable, de uso común o no recuperable — y por qué hacerla por API es una ventaja real.

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

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

Hasta 500 entradas por llamada.

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

tipo_compraSignificado
del_giroCompra ordinaria del negocio; IVA totalmente recuperable
supermercadoSupermercado o similar, con sus límites legales
activo_fijoActivo fijo
iva_uso_comunUso compartido entre actividad afecta y exenta; crédito proporcional
no_recuperableIVA no recuperable; iva_no_recuperable_code dice por qué

iva_no_recuperable_code es obligatorio cuando tipo_compra es no_recuperable.

Estado contable

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

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

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[]:

"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.

En esta página