Skip to content

Syntage · Tax Compliance (cumplimiento fiscal)

Del webhook de Syntage a las tablas de cumplimiento fiscal (opinión de cumplimiento y obligaciones). Streaming.

¿Llegaste hasta acá desde…?

Usa esta tabla para entrar en sentido inverso (lo que ves → de dónde sale):

Si ves… Eso sale de… La lógica está en…
Estatus / opinión de cumplimiento fiscal en análisis solvento-data-prod.syntage.tax_compliance_body dbt-analytics → models/staging/syntage/stg_syntage__tax_compliance.sql
Obligaciones fiscales detalladas solvento-data-prod.syntage.tax_compliance_obligations dbt-analytics → models/intermediate/syntage/int_syntage_tax_compliance.sql
Un registro de tax compliance "crudo" solvento-data-prod.syntage.tax_compliance_body (RAW) Ingesta (sin lógica de negocio); ver "Paso a paso"

Resumen

Campo Valor
Origen Webhook de Syntage (evento de cumplimiento fiscal)
Patrón Event-driven (Cloud Run → Pub/Sub → Dataflow)
Tabla RAW solvento-data-prod.syntage.tax_compliance_body (+ tax_compliance_obligations)
Frecuencia Streaming
Criticidad 🟡 Media
Dueño Martin (data eng)
Repos webhook_syntage · api_syntage_handler · templates-dataflow

Diagrama de linaje

graph LR
    SYN[["📨 Syntage<br/>webhook tax compliance"]]

    subgraph ing["Ingesta (sin lógica de negocio)"]
        CR["Cloud Run<br/>webhook-syntage-inline-prod"]
        TOP(["Pub/Sub<br/>tax-compliance-api-syntage-success"])
        DF["Dataflow<br/>tax-compliance-api-multischema-prod-20251210-183338"]
        RAW[("solvento-data-prod.syntage<br/>tax_compliance_body<br/>tax_compliance_obligations")]
    end

    subgraph cons["Consumo (dbt)"]
        AN["Riesgo / cumplimiento<br/>dbt-analytics syntage"]
    end

    SYN -->|HTTP| CR --> TOP --> DF --> RAW
    RAW --> AN

    classDef src fill:#fde68a,stroke:#b45309,color:#000;
    classDef store fill:#bfdbfe,stroke:#1e40af,color:#000;
    classDef logic fill:#dcfce7,stroke:#15803d,color:#000;
    class SYN src;
    class RAW store;
    class AN logic;

Paso a paso

  1. Syntage emite un webhook con la información de cumplimiento fiscal (opinión de cumplimiento / obligaciones).
  2. Cloud Run webhook-syntage-inline-prod (webhook_syntage) recibe todos los eventos de Syntage y hace fan-out; para tax compliance publica al topic tax-compliance-api-syntage-success (env TAX_COMPLIANCE_CHECK_TOPIC). Es el componente más crítico del ecosistema.
  3. (Existe además el handler tax-compliance-api-syntage-requests-handler-prod en api_syntage_handler, CONTEXT=tax-compliance, que también publica a tax-compliance-api-syntage-success cuando se requiere pedir detalle vía API.)
  4. Dataflow tax-compliance-api-multischema-prod-20251210-183338 (templates-dataflow, carpeta tax-compliance) consume la suscripción tax-compliance-api-syntage-success-sub y escribe en streaming a solvento-data-prod.syntage.tax_compliance_body y tax_compliance_obligations.

Tablas que alimenta

Tabla Contenido Job que la carga
syntage.tax_compliance_body Cuerpo / cabecera del estatus de cumplimiento fiscal tax-compliance-api-multischema-prod-20251210-183338
syntage.tax_compliance_obligations Obligaciones fiscales del contribuyente tax-compliance-api-multischema-prod-20251210-183338

Consumo aguas abajo

  • Riesgo / cumplimiento — staging, intermedios y dimensión en dbt-analytics: models/staging/syntage/stg_syntage__tax_compliance.sql, models/intermediate/syntage/int_syntage_tax_compliance.sql, models/marts/core/syntage/dim_syntage_tax_compliance.sql.

Si falla 🛠️

Impacto: si cae webhook-syntage-inline-prod se afecta todo Syntage (no solo tax compliance). Mitigante: Syntage reintenta los webhooks; recuperar el servicio suele bastar.

Síntoma Dónde mirar Acción
No llegan estatus de cumplimiento nuevos Logs Cloud Run webhook-syntage-inline-prod (y handler si aplica) Si fue un deploy → rollback; si es saturación → subir instancias/memoria. Syntage reintenta
Llega al topic pero la RAW no avanza Dataflow tax-compliance-api-multischema-prod-…: watermark y backlog de tax-compliance-api-syntage-success-sub Transitorios se recuperan solos; relanzar consumiendo la misma suscripción. Si hay duda, escalar
Datos "raros" en análisis de cumplimiento Lógica en dbt-analytics (stg_syntage__tax_compliance) Revisar la transformación en el repo, no la ingesta

Escalación: lógica SQL / Metabase → Diego · Airbyte → Gero · resto (webhook, handler, Dataflow) → Martin.

Enlaces


Última actualización: 2026-06-21 · Si cambia el flujo o un modelo dbt, actualizar esta ficha en el mismo MR.