Ir al contenido
SimploSimplo Docs

Prueba los casos infelices

RUTs mágicos del sandbox para forzar rechazo, con reparos, folios agotados o un DTE atascado en procesando — más el catálogo de errores estructurados que tu integración debe manejar.

Un DTE aceptado en el primer intento es el camino feliz. En producción vas a ver rechazos, documentos con reparos, folios agotados y respuestas lentas del SII — y tu integración necesita manejarlos antes de que ocurran contra un cliente real. El sandbox trae RUTs de receptor reservados que disparan cada resultado de forma determinística.

Los RUTs mágicos no le mienten a la máquina de estados de Simplo: se le miente al simulador del SII. El ciclo real — firmado → enviando → procesando → aceptado/rechazado/con_reparos, con los mismos eventos y el mismo código de transición — corre exactamente igual que en producción. Lo único fabricado es la respuesta que el SII (simulado) da.

RUTs mágicos: fuerza el resultado desde la emisión

Sección titulada «RUTs mágicos: fuerza el resultado desde la emisión»

Emite un DTE con uno de estos RUTs como receptor.rut y el resultado queda determinado desde el momento en que lo envías — sin llamar ningún endpoint extra:

RUT receptor Resultado Código SII
44000001-0 rechazado EMP
44000002-9 con_reparos DNK
44000003-7 se queda en procesando (el simulador nunca resuelve) DOK (no terminal)
44000004-5 el envío al SII simulado falla como si no quedaran folios (CAF_NO_DISPONIBLE) — (el envío falla)
cualquier otro camino feliz: enviando → procesando → aceptado DOK
Ventana de terminal
curl -X POST https://api.simplo.cl/api/v1/billing/dte \
-H "X-Api-Key: $SIMPLO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"tipo_dte": 33,
"receptor": { "rut": "44000001-0", "razon_social": "Cliente que rechaza" },
"detalle": [{ "nombre": "Prueba de rechazo", "cantidad": 1, "precio": 10000 }]
}'

44000004-5 es el caso distinto de los otros tres: los demás emiten normalmente (201, estado: "firmado") y el veredicto diverge más tarde, durante el ciclo asíncrono — igual que en producción. 44000004-5 en cambio hace fallar el envío al SII simulado con un error de folios agotados (CAF_NO_DISPONIBLE — ver la tabla de errores abajo): la emisión retorna 201, pero el documento nunca avanza a procesando. Es la manera de ensayar el escenario “me quedé sin folios” sin agotar tus folios sintéticos de prueba.

Los RUTs mágicos aceptan el formato con o sin puntos/espacio (44.000.001-0 o 44000001-0 calzan igual).

Los RUTs mágicos son la única palanca del sandbox: no hay endpoints para forzar estados sobre un DTE ya emitido ni para reiniciar el sandbox. Si necesitas un resultado específico, decídelo al emitir, con el RUT del receptor.

Toda falla de la API — sandbox o producción — responde con la misma forma: code (legible por máquina), message, action (siguiente paso recomendado) y severity. Estos son los que vas a encontrar probando los casos infelices:

Código Mensaje Acción recomendada Severidad
CAF_NO_DISPONIBLE No hay CAF disponible para el tipo de documento upload_caf error
CAF_STOCK_LOW Folios por agotarse upload_caf warning
DTE_NOT_FOUND DTE no encontrado verify_empresa_and_id error
DTE_ESTADO_INVALIDO DTE en estado que no permite esta operación check_dte_status error
RUT_INVALIDO RUT no pasa validación módulo-11 fix_rut_input error
FOLIO_DUPLICADO Folio ya utilizado check_existing_dte error
MONTO_INCONSISTENTE Neto + IVA no coincide con el total recalculate_totals error
IDEMPOTENCY_IN_PROGRESS La solicitud con esta Idempotency-Key ya se está procesando retry_later warning
IDEMPOTENCY_BODY_MISMATCH La Idempotency-Key fue reutilizada con un body distinto generate_new_key warning
SII_RECHAZADO El SII rechazó el documento review_xml_errors error
SII_DUPLICADO El documento ya fue enviado al SII check_existing_envio warning

El catálogo completo (incluyendo certificado, exportación, liquidaciones y más) vive en Errores. action está pensado para que un coding agent decida el siguiente paso sin tener que interpretar message en lenguaje natural.

Un sandbox que promete de más produce el mismo abandono que viene a evitar. Sé explícito con esto en tu propia integración:

  • Validación XSD y reglas de negocio del SII real. El simulador acepta el XML que el motor generó; el SII real rechaza por causas que solo aparecen contra el ambiente de certificación o producción del SII.
  • La certificación SII. Pasar el sandbox no acerca ni un día a estar certificado ante el SII — ver Pasar a producción.
  • Vencimiento real de folios (6 meses) ni de certificados: los del sandbox son sintéticos y de larga vigencia.
  • Caídas, latencia y rate limits reales del SII, ni sus códigos finales 904/905/906.
  • Intercambio (correo, acuses de recibo, SETMAIL).
  • El PDF y el XML no tienen validez tributaria — el CAF y el certificado del sandbox son sintéticos, autofirmados, y el SII real los rechazaría. Los montos y el IVA sí son de verdad: es el mismo motor de cálculo que producción, y lo único ficticio es el receptor.
  • Quickstart — el flujo completo, del sandbox a tu primer DTE
  • Estados — el ciclo de vida completo de un DTE
  • Errores — el catálogo completo y las reglas de reintento
  • Pasar a producción — la checklist de go-live