Saltar al contenido

área · Compliance AML/KYC

AML/KYC automatizado (art. 492)

Entregué de punta a punta el módulo de validación AML/KYC de una plataforma de seguros: backend FastAPI, adaptador hexagonal con puertos tipados, bandeja de casos y wizard de 4 pasos.

  • Arquitectura hexagonal sin framework en el dominio
  • Contrato de import-linter bloqueante en CI contra regresiones
  • Post-mortem de un discriminador nullable que filtraba datos entre módulos
  • python
  • fastapi
  • sqlalchemy
  • postgresql
  • pytest

◆ KycPipeline

Cada veredicto explica por qué

Así procesa el motor KYC un expediente: cinco pasos, de los adjuntos al veredicto. Haz scroll para recorrerlos; a la derecha, el veredicto con el motivo de cada validación.

  1. Ingesta

    Recibe los adjuntos de la solicitud de póliza.

    3 adjuntos · identificación.pdf · comprobante-domicilio.jpg · constancia-fiscal.pdf

  2. Clasificar

    Identifica el tipo de cada documento y descarta los que no corresponden.

    identificación → INE · comprobante → recibo de servicios · constancia → situación fiscal

  3. Extraer

    Extrae los campos con un LLM y los normaliza a un esquema tipado.

    { "nombre": "Ana Ejemplo Ruiz", "rfc": "EERA850101XX0", "domicilio": "Calle Ficticia 12" }

  4. Checks

    Ejecuta validaciones y cruces entre documentos según el tipo de persona y el nivel de riesgo.

    vigencia · coincidencia de nombre · domicilio reciente · cruce RFC ↔ constancia

  5. Veredicto

    Guarda el resultado con el motivo de cada validación, listo para revisión.

    requiere revisión · 3 de 4 validaciones OK · 1 a revisar

veredicto

Ana Ejemplo Ruiz · persona física · cliente nuevo

Requiere revisión

  • Vigencia de la identificación : aprobada

    Vence en 2029: vigente a la fecha de la solicitud.

  • Coincidencia de nombre : aprobada

    El nombre coincide en los tres documentos.

  • Comprobante de domicilio reciente : a revisar

    Tiene 95 días; la política pide 90 o menos.

  • Cruce RFC ↔ constancia fiscal : aprobada

    El RFC extraído coincide con el de la constancia.

Demo con datos ficticios: nada de clientes reales ni de producción.

Casos

  • Arquitectura hexagonal

    Un paquete de dominio sin framework, con puertos tipados, sobre el que otro ingeniero siguió construyendo.

    Leer el case study →
  • Fronteras con import-linter

    Lideré la implementación de una capa de repositorio en más de 15 entregas en 3 días, protegida por tests de caracterización y un contrato de import-linter bloqueante en CI.

  • El bug del discriminador nullable

    Una fuga de datos recurrente entre módulos venía de una columna nullable sin tipo. Mostré por qué los tests no la veían y escribí el contrato que la corrigió.

  • Minca AI · 2026en producción

    Motor KYC automatizado

    Responsable de punta a punta

    Módulo AML/KYC de una plataforma de seguros (art. 492): ingiere los adjuntos de una solicitud, los clasifica, extrae sus campos, ejecuta validaciones y guarda un veredicto con el motivo de cada una.

    commits de código en 8 semanas
    224
    líneas de Python
    +40.8k
    • Python
    • FastAPI
    • SQLAlchemy
    • React
    • pytest

¿Construimos algo confiable?

Respondo en español o en inglés.

Escríbeme a Gmail