Saltar al contenido

Antilavado (LFPIORPI) para inmobiliarias

TerraWare bloquea el efectivo que rebasa el límite en un solo pago, pero no si se fracciona en abonos

Por Eduardo Gallegos · Publicado el 23 de septiembre de 2026

Estructura de pagos de una unidad inmobiliaria: enganche, mensualidades y abonos en efectivo.

Un comprador liquida una casa de $2,500,000 pesos en cinco abonos en efectivo de $500,000 cada uno. Ninguno, por separado, rebasa el límite legal de efectivo para inmuebles. Verificamos en el código de TerraWare que el sistema evalúa exactamente eso -cada abono aislado- y nunca el valor real de la operación completa, que ya tiene cargado en memoria en ese mismo momento. El resultado: los cinco abonos entran sin que nada se dispare, aunque la venta completa esté muy por encima del límite que la ley prohíbe liquidar en efectivo.

El límite es sobre el valor de la operación, no sobre cada pago

La Ley Federal para la Prevención e Identificación de Operaciones con Recursos de Procedencia Ilícita (LFPIORPI) considera actividad vulnerable, en su artículo 17 fracción V, la intermediación en la transmisión de la propiedad de inmuebles. Y en su artículo 32, fracción I, es explícita sobre qué es lo que no puede pagarse en efectivo:

"Queda prohibido dar cumplimiento a obligaciones y, en general, liquidar o pagar, así como aceptar la liquidación o el pago, de actos u operaciones mediante el uso de monedas y billetes [...] en los supuestos siguientes: I. Constitución o transmisión de derechos reales sobre bienes inmuebles por un valor igual o superior al equivalente a ocho mil veinticinco veces el valor diario de la UMA, al día en que se realice el pago o se cumpla la obligación."

La condición no es "cada pago", es "por un valor igual o superior" referido a la constitución o transmisión de derechos reales -es decir, al valor de la operación inmobiliaria en sí. La ley no deja una puerta de "si lo divides en varios pagos ya no aplica": el bien vale lo que vale, sin importar en cuántas parcialidades se cobre.

Agenda una demo gratis

La sanción: hasta el 100% del valor de la operación, o 65,000 UMA

Participar en un acto prohibido por el artículo 32 se sanciona conforme al artículo 53, fracción VII, con la multa que fija el artículo 54, fracción III de la misma ley:

"Se aplicará multa equivalente a diez mil y hasta sesenta y cinco mil veces el valor diario de la UMA, o del diez al cien por ciento del valor del acto u operación, cuando sean cuantificables en dinero, la que resulte mayor [...] en el caso de las fracciones VI y VII del artículo 53 de esta Ley."

Con la UMA vigente en 2026 ($117.31 diarios, INEGI), el piso en UMA es de $1,173,100.00 y el techo de $7,625,150.00 MXN -pero la ley manda aplicar lo que sea mayor entre ese rango y el porcentaje del valor de la operación. En una venta de varios millones de pesos, el 10%-100% del valor puede superar por mucho el rango en UMA.

ElementoQué dice la norma
Actividad vulnerable (intermediación inmobiliaria)LFPIORPI art. 17 fr. V
Límite de efectivo, sobre el valor de la operaciónLFPIORPI art. 32 fr. I -- 8,025 UMA ($941,412.75 en 2026)
SanciónArt. 53 fr. VII + art. 54 fr. III
Multa10,000 a 65,000 UMA ($1,173,100.00-$7,625,150.00) o 10%-100% del valor de la operación, la que resulte mayor

Verificado en el código: se compara el abono, nunca el valor total ya cargado

Confirmamos el hallazgo directamente en el código de TerraWare (repo medware-inmobiliaria, rama main). recordPayment() (apps/services/core/src/sales/sales.service.ts:580-604) evalúa el límite de efectivo con evaluarOperacion():

const plan = await this.repo.findPlanById(client, planId, true); (línea 586 -- ya trae plan.totalCents, el valor completo de la venta)
const pld = await this.repo.getPldSettings(client, ctx.tenantId);
const evaluacion = evaluarOperacion(pld, input.amountCents, input.method);

El tercer argumento es input.amountCents: el monto del abono que se está registrando en ese momento, no plan.totalCents. La función evaluarOperacion() (apps/services/core/src/common/pld.ts:55-70) ni siquiera acepta un parámetro de valor total -su firma sólo recibe un monto y un método de pago:

export function evaluarOperacion(s: PldSettings, amountCents: number, method: string): EvaluacionPld {
  const efectivoCents = umbralCents(s, s.efectivoUmas);
  const monto = Number.isFinite(amountCents) ? amountCents : 0;
  return {
    efectivoProhibido: efectivoCents !== null && method === 'efectivo' && monto > efectivoCents,
    ...
  };
}

Cuando el rechazo sí se dispara -porque un abono individual, por sí solo, ya rebasa el límite-, el propio mensaje de error invita a fraccionar: "La LFPIORPI (art. 32) no permite liquidar en efectivo por encima de ${pld.efectivoUmas} UMAs [...]. Usa transferencia o divide conforme a la ley." (sales.service.ts:603-604). Pero "dividir" el mismo abono en dos pagos en efectivo, cada uno por debajo del límite, no cambia el valor de la operación que el artículo 32 mira -sólo evita que este control lo detecte.

Buscamos en el resto del repositorio (finanzas.repository.ts, platform.repository.ts, y las pruebas de pld.test.ts) algún punto que sume los abonos en efectivo de un mismo plan o de una misma operación contra el umbral: no existe. Todas las pruebas de evaluarOperacion() comprueban montos individuales, nunca acumulación entre pagos.

Agenda una demo gratis

Qué significa en la práctica, y qué falta en el producto

El sistema sí bloquea correctamente un abono único que por sí mismo rebasa el límite -esa parte funciona, y ya está verificada por función-. Lo que falta es comparar contra plan.totalCents -el valor de la operación completa, que el código ya carga unas líneas antes- en vez de (o además de) cada abono aislado. Puedes ver ese recorrido completo, del enganche al abono en efectivo, en este flujo de producto, o estimar la exposición con tus propios números en la calculadora de exposición por efectivo fraccionado LFPIORPI.

Preguntas frecuentes

¿TerraWare no controla nada del límite de efectivo?
Sí lo controla: un abono único que por sí solo rebasa el límite del art. 32 se rechaza. Lo que no hace es sumar los abonos de la misma operación contra el valor total de la venta.

¿Fraccionar el pago en abonos es legal para evitar el límite?
No según el texto del art. 32: la condición que dispara la prohibición es el valor de la constitución o transmisión de derechos reales sobre el inmueble, no el tamaño de cada pago por separado.

¿Cuál es la multa exacta?
La ley no fija un monto único: de $1,173,100.00 a $7,625,150.00 MXN (10,000 a 65,000 UMA, valor 2026), o del 10% al 100% del valor de la operación, lo que resulte mayor.

¿Significa que alguna operación real ya incumplió?
No necesariamente: el hallazgo es que el sistema no lo detectaría si ocurriera, no que ya haya pasado con certeza en tu operación.

Fuentes consultadas: Ley Federal para la Prevención e Identificación de Operaciones con Recursos de Procedencia Ilícita, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión (última reforma DOF 16-07-2025), artículos 17 fracción V, 32 fracción I, 53 fracción VII y 54 fracción III. Valor de la UMA 2026 publicado por el INEGI ($117.31 diarios, vigente desde el 1 de febrero de 2026). Este artículo es orientativo y no sustituye una revisión de tu caso por tu responsable de cumplimiento o asesor legal.

Ve cómo TerraWare registra hoy un abono en efectivo, y dónde falta la suma

Te mostramos en vivo el registro de un pago, el control que ya existe, y el punto exacto donde el valor total de la operación se queda fuera de la comparación.

Agenda una demo gratis
Agendar 30 min
Contacta a un especialista
Ventas y Proyectos (abre en una ventana nueva) Soporte Técnico (abre en una ventana nueva)