Skip to content

Plataforma técnica · Orchestrator

Honorarios (services)

Orchestrator Honorarios Bhe

El subdominio Honorarios automatiza el ciclo BHE: descarga del Registro de Compras y Ventas (RCV) del SII, clasificación por naturaleza del servicio, determinación de la modalidad de retención (emisor vs. receptor) y persistencia con su pasivo asociado.

A diferencia del resto de remuneraciones, honorarios no genera liquidación calculada por el motor de payroll. La BHE viene desde el SII con sus montos ya determinados; el sistema sólo clasifica, persiste y reporta. La lectura contable equivalente vive en accounting/remuneraciones/honorarios.

ServicioResponsabilidadDoc
HonorariosServiceImportación BHE desde SII, clasificación por RUT del prestador, cálculo de retención según tasa vigente y persistencia con pro-forma del comprobante.
flowchart LR
  SII[("SII RCV<br/>BHE recibidas")]
  HON["HonorariosService"]
  CLF[("clasificacion_honorarios<br/>(RUT → tipo gasto)")]
  TASA[("retencion_honorarios_tasas<br/>(vigencia anual)")]
  BHE_T[("honorarios_bhe")]
  PROV[("honorarios_proforma")]

  SII --> HON
  CLF --> HON
  TASA --> HON
  HON --> BHE_T
  HON --> PROV

  HON -. retención mensual .-> F29["F29GeneratorService"]
  HON -. resumen anual .-> DJ1879["DJ1879Service"]
PatrónDónde
RepositoryHonorariosRepository separa SQL del service.
ImporterPipeline SII RCV → clasificar → calcular retención → persistir.
Lookup table con vigenciaTasa de retención por año comercial (13,75% para 2025; sigue calendario gradual).
Classification ruleRUT del prestador → tipo de gasto contable (Contabilidad, Legal, Desarrollo, etc.).
  • Tasa por fecha de la BHE: una BHE de un año anterior se procesa con la tasa de ese año, no la vigente. HonorariosService lee la tasa desde la fecha del documento.
  • Modalidad de retención: la BHE indica si la retención la asume el emisor (la empresa retiene y entera en F29) o el receptor (la empresa paga la retención adicional aparte). El motor aplica la regla correspondiente.
  • Clasificación por RUT: si el RUT del prestador no tiene clasificación previa, la BHE queda en pro-forma pendiente de revisión.
  • No duplicar: el service deduplica por folio + RUT emisor para evitar re-importar la misma BHE en sucesivas sincronizaciones del RCV.
EventoTriggerPayload
honorarios:bhe_importadaHonorariosService.importarPeriodo (1 evento por BHE persistida){ folio, rutEmisor, montoBruto, retencion, periodo }
honorarios:clasificacion_pendienteBHE recibida con RUT sin clasificar{ folio, rutEmisor }
ServiceQué consume
F29GeneratorServiceTotal retenido del periodo por concepto de honorarios → línea de retenciones de segunda categoría.
DJ1879ServiceDetalle anual por prestador (monto bruto y retención) → archivo de declaración jurada.