Facturiadocs
Recepción

Respuesta comercial

Las cinco acciones — ACD, RCD, RFP, RFT y ERM — con sus endpoints, sus reglas duras y su confirmación.

Trampa

Todo lo de esta página ocurre dentro de la ventana de 8 días

Pasado el día 8, ninguna de estas llamadas funciona: devuelven 422 commercial_response_window_closed. Y el silencio no es neutro — acepta. Lee La ventana de 8 días antes de implementar esto.

Las cinco acciones

Se mapean a los códigos de WSREGISTRORECLAMODTE del SII.

EndpointreasonCódigo SIISignificado
/acceptACDAcepta el contenido del documento
/rejectcontentRCDReclamo al contenido
/rejectpartial_missingRFPReclamo por falta parcial de mercaderías
/rejecttotal_missingRFTReclamo por falta total de mercaderías
/acknowledge_receiptERMOtorga recibo de mercaderías o servicios

Aceptar (ACD)

curl -X POST https://api.facturia.cl/v1/received_documents/rdoc_01K2R9M3D8V5QW7N/accept \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)"

Aceptar explícitamente no cambia el resultado legal respecto de dejar pasar el plazo — cambia que queda un registro con fecha, en vez de un silencio.

Reclamar (RCD / RFP / RFT)

# Reclamo por contenido (RCD)
curl -X POST https://api.facturia.cl/v1/received_documents/rdoc_01K2R9M3D8V5QW7N/reject \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"reason":"content","note":"Precio unitario no corresponde a la orden de compra 99213"}'
# Reclamo por falta total de mercaderías (RFT)
curl -X POST https://api.facturia.cl/v1/received_documents/rdoc_01K2R9M3D8V5QW7N/reject \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"reason":"total_missing"}'

Trampa

Un reclamo es irreversible

No existe des-reclamar. Ni en Facturia ni en el SII. Si tu interfaz deja que una persona reclame con un clic, pon la confirmación antes de la llamada, no después — porque después no hay después.

Una segunda acción sobre el mismo documento devuelve 409 commercial_response_already_registered.

Acusar recibo de mercaderías (ERM)

curl -X POST https://api.facturia.cl/v1/received_documents/rdoc_01K2R9M3D8V5QW7N/acknowledge_receipt \
  -H "Authorization: Bearer $FACTURIA_KEY" -H "Facturia-Empresa: $EMPRESA" \
  -H "Idempotency-Key: $(uuidgen)"

Es una declaración distinta de la aceptación del contenido: dice que las mercaderías o servicios llegaron, no que el documento esté correcto.

La respuesta

{
  "object": "commercial_response",
  "received_document_id": "rdoc_01K2R9M3D8V5QW7N",
  "action": "reject",
  "reason": "content",
  "sii_code": "RCD",
  "registered_at": "2026-08-14T14:02:10Z",
  "sii": { "estado": "OK", "glosa": "Evento registrado" },
  "state": "rejected"
}

El bloque sii es la confirmación de que el evento quedó registrado en el SII, no solo en nosotros. Si esa confirmación no llega, la llamada falla — no te decimos que reclamaste cuando el SII no se enteró.

Las reglas duras, juntas

ReglaQué pasa si la rompes
Solo tipos 33, 34 y 43422 commercial_response_not_applicable
Dentro de los 8 días corridos422 commercial_response_window_closed, con deadline_at en el error
Una sola acción por documento409 commercial_response_already_registered
Los reclamos no se deshacenNo hay endpoint. Punto

Idempotencia

Todas estas llamadas aceptan Idempotency-Key, y conviene usarlo: un reintento por timeout de red sobre una acción de un solo tiro es exactamente el caso donde la diferencia entre «ya lo hice» y «lo hice dos veces» importa. Con la llave, el replay devuelve la respuesta original; sin ella, el segundo intento se topa con 409 commercial_response_already_registered — que es correcto, pero es más ruido del necesario.

En esta página