En plan de pagos y cobranza inmobiliaria explicamos cómo se estructura y se factura el cobro de una unidad en preventa. La facturación CFDI 4.0 de TerraWare no está activa por ahora; consulta su disponibilidad. Lo que ese artículo no cubría es CÓMO se marca ese comprobante, y ahí encontramos algo que ninguna pieza previa de este blog había señalado: el emisor de CFDI de TerraWare (repo medware-inmobiliaria) declara siempre el comprobante como pago en una sola exhibición (PUE), sin importar que el plan de pagos declare enganche + mensualidades a meses. No corrige ningún artículo previo —el flujo descrito sigue siendo correcto—, complementa con un detalle fiscal que faltaba.
Nota: la facturación CFDI 4.0 de TerraWare no está activa por ahora; consulta su disponibilidad. Este análisis describe lo que hace el código del emisor de CFDI.
Lo que exige la ley cuando el cobro no es completo al momento
El Código Fiscal de la Federación (CFF, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión, última reforma DOF 09-04-2026) regula esto en el artículo 29-A, fracción VII, que fija dos rutas según cómo se cobre la operación:
"a) Cuando la contraprestación se pague en una sola exhibición, en el momento en que se expida el comprobante fiscal digital por Internet correspondiente a la operación de que se trate, se señalará expresamente dicha situación [...]
b) Cuando la contraprestación no se pague en una sola exhibición, o pagándose en una sola exhibición, ésta se realice de manera diferida del momento en que se emite el comprobante fiscal digital por Internet que ampara el valor total de la operación, se emitirá un comprobante fiscal digital por Internet por el valor total de la operación en el momento en que ésta se realice y se expedirá un comprobante fiscal digital por Internet por cada uno del resto de los pagos que se reciban [...], los cuales deberán señalar el folio del comprobante fiscal digital por Internet emitido por el total de la operación."
Un enganche seguido de mensualidades es, casi por definición, el supuesto del inciso b): el precio de la unidad no se paga completo al momento de facturar el enganche, sino en abonos repartidos a lo largo de meses o años. Cada uno de esos abonos exige marcarse como pago en parcialidades o diferido (PPD), no como pago en una sola exhibición (PUE).
Verificado en el código: el tipo lo sabe, la factura no lo dice
Lo que hace este hallazgo distinto a otros de esta serie es que el propio código de TerraWare declara que sabe la diferencia: dos paquetes de tipos compartidos definen paymentMethod: z.enum(['PUE', 'PPD']).default('PUE') (packages/shared-schemas/src/facturacion.schema.ts:35 y packages/shared-types/src/finance.ts:110). El enum existe, PPD es una opción válida en el sistema de tipos.
El problema es que el endpoint que de verdad timbra un CFDI de contrato —contracts.schemas.ts:48-53, que acepta paymentId, concept (texto libre), totalCents y kind (ingreso/egreso)— no tiene ningún campo paymentMethod que aceptar. Y el constructor del cuerpo que se envía al PAC, buildFacturamaCfdiRequest() (apps/services/core/src/contracts/cfdi/facturama-payload.ts:63), fija PaymentMethod: 'PUE' como literal fijo, con un comentario que lo confirma en el código: // Pago en una sola exhibición. No hay ninguna rama que lea si el pago que se está timbrando es un enganche, una mensualidad de un plan a 24 meses, o el saldo final: todos salen marcados PUE.
El receptor, en cambio, sí es el correcto: el CFDI sale a nombre del comprador, con sus datos fiscales reales (facturama-payload.ts:72), y emitCfdi bloquea la emisión con un error 422 si al comprador le faltan datos fiscales (contracts.service.ts:431-436 y receptorDelComprador, :570-587): no se timbra con receptor genérico. Antes de timbrar, captura el RFC, nombre, código postal, régimen y uso de CFDI del comprador.
La sanción: infracción del art. 83, multa del art. 84, ambos del CFF
Emitir un comprobante que no cumple los requisitos del artículo 29-A —incluido el correcto método de pago de la fracción VII— cae en la infracción del artículo 83, fracción VII: "expedirlos sin que cumplan los requisitos señalados en este Código". El artículo 84, fracción IV, inciso a), fija la multa general:
"a) De $22,300.00 a $127,530.00. En caso de reincidencia, las autoridades fiscales podrán, adicionalmente, clausurar preventivamente el establecimiento del contribuyente por un plazo de tres a quince días [...]"
A diferencia del caso de un complemento de pago faltante (multa específica del inciso d), aquí el defecto es el propio método de pago del comprobante, así que aplica el supuesto general del inciso a). Monto actualizado por resolución miscelánea fiscal, DOF 28-12-2025 —vigente para 2026—.
| Elemento | Qué dice la norma / qué hace TerraWare |
|---|---|
| Cuándo usar PUE | Art. 29-A, fr. VII, inciso a), CFF — pago completo al momento de facturar |
| Cuándo usar PPD | Art. 29-A, fr. VII, inciso b), CFF — pago no recibido completo al momento, como un enganche o una mensualidad |
| Tipos de datos en TerraWare | Sí distinguen PUE/PPD (facturacion.schema.ts:35, finance.ts:110) |
| Endpoint real que timbra el CFDI de un contrato | No acepta paymentMethod (contracts.schemas.ts:48-53) |
| Método de pago que sale en el CFDI | Siempre PUE, literal fijo (facturama-payload.ts:63) |
| Receptor del CFDI | El comprador, con sus datos fiscales; si faltan, no se timbra (contracts.service.ts:431-436, facturama-payload.ts:72) |
| Multa por comprobante que no cumple los requisitos de forma | Art. 84, fr. IV, inciso a): $22,300.00 a $127,530.00, con posible clausura preventiva en reincidencia |
Qué sigue siendo tuyo mientras tanto
Mientras TerraWare no distinga PUE de PPD en el CFDI real, cada desarrolladora que venda con enganche y mensualidades tiene que decidir el método de pago correcto por su cuenta y corregirlo fuera del sistema en cada abono que no sea la liquidación total. El receptor sí queda a nombre del comprador, siempre que hayas capturado sus datos fiscales completos; sin ellos, el sistema no emite el comprobante.
Preguntas frecuentes
¿TerraWare timbra un CFDI por cada abono del plan de pagos?
Hoy no: la facturación CFDI 4.0 de TerraWare no está activa por ahora; consulta su disponibilidad. En el código, el emisor timbra un CFDI 4.0 por cada pago (no sale solo al registrarlo), pero no distingue el método de pago correcto de cada uno.
¿El sistema tiene alguna opción para marcar PPD?
El tipo de datos lo define (paymentMethod: 'PUE' | 'PPD'), pero el endpoint que realmente timbra el CFDI de un contrato no tiene ese campo, y el constructor de la petición al PAC fija PUE de forma literal.
¿A quién se factura una unidad vendida en TerraWare?
Al comprador del contrato, con su RFC y sus datos fiscales. Si faltan, el sistema no timbra.
¿Cuál es la multa exacta?
De $22,300.00 a $127,530.00 por comprobante que no cumple los requisitos de forma del art. 29-A, con posible clausura preventiva de 3 a 15 días en reincidencia. El monto concreto dentro del rango lo determina la autoridad fiscal caso por caso.
Fuentes consultadas: Código Fiscal de la Federación, texto vigente publicado por la Cámara de Diputados del H. Congreso de la Unión, última reforma DOF 09-04-2026, artículos 29-A, 83 y 84. Monto de la multa del art. 84, fracción IV, actualizado por resolución miscelánea fiscal, DOF 28-12-2025. Este artículo es orientativo y no sustituye una revisión de tu caso por tu contador o asesor fiscal.
Ve TerraWare en tu propia demo
Te mostramos TerraWare con tu propio caso y qué parte del método de pago correcto sigue corriendo fuera del sistema. La facturación CFDI 4.0 no está activa por ahora; consulta su disponibilidad.
Agenda una demo gratis