GatewayPrismaQR · planes, recargos y descuentos · versión 3 · 2026-10-03

Planes de cuotas QR

Cómo se ofrecen cuotas, recargos y descuentos por BIN en un cobro QR: la fuente de los planes es una configuración por comercio (el POS manda promociones, modo A, o el gateway guarda los planes, modo B) y el POS imputa la diferencia después del pago.

Fuente de los planes
por comercio · modo A o modo B
Ajustes
descuentos y recargos con signo · importe_recdesc
Cierre en el POS
postpago, por lo efectivamente cobrado
A cerrar con Prisma
5 preguntas (la 10 es crítica)

1. La respuesta corta

El cliente elige en la billetera; el POS no elige nada. El POS nunca ve la tarjeta: los BINs le llegan al gateway desde Prisma v27 p.19. El POS manda por QR el importe a cobrar, y se entera del medio, de las cuotas y del importe final cuando el pago ya está aprobado. Entonces imputa la diferencia, sea un descuento o un recargo, y cierra el ticket por lo efectivamente cobrado. Es un esquema postpago.

¿De dónde salen los planes? De una configuración por comercio, con dos modos que producen el mismo resultado y están activos desde el inicio:

Un ejemplo de punta a punta, igual en los dos modos:

Paso Qué pasa Montos
1 El POS pide cobrar $ 1.000 por QR y el comercio tiene 6 cuotas con +20 % para Mastercard importe 1.000
2 El cliente elige en la billetera «Mastercard, 6 cuotas» la billetera cobra 1.200
3 El gateway devuelve el resultado al POS importe 1.000 · importe_final 1.200 · recdesc +200 · cuotas 6
4 El POS cierra el ticket venta 1.000 + recargo 200 · medio QR 1.200

Con un descuento el camino es el mismo, con signo negativo: un plan de 1 pago al −10 % sobre $ 1.000 devuelve importe_final 900 y recdesc −100, y el POS imputa el descuento y cierra por 900.


2. Los dos modos

La fuente de los planes es un atributo del comercio (Merchant.planSource, AC-18): POS_SUPPLIED es el modo A y GATEWAY_CONFIGURED es el modo B. Los dos aplican recargos y descuentos, producen el mismo OfferedPlans por tarjeta y comparten las reglas de Prisma (1 cuota siempre, medio 112 siempre).

Modo A: el POS manda promociones Modo B: el gateway guarda los planes
Fuente de verdad Las tablas del POS, las mismas que usa el pinpad La tabla installment_plan del gateway, por comercio
Cómo llegan al gateway Filas promos en cada trxpago Se cargan desde la consola (o con SQL de semilla)
Qué trae cada fila Orden, medio de pago, BIN desde y hasta, cuotas, % con signo, base opcional Medio, banco, rango de BIN, cuotas, % con signo, TNA y CFT, vigencia, días, monto mínimo, sucursal
Qué gana Para cada cantidad de cuotas, la primera fila por orden cuyo prefijo y medio coinciden (AC-11) Entre los planes vigentes, el más específico: rango de BIN > banco > medio y sucursal > comercio (AC-13)
Empates No hay: el orden decide La consola rechaza dos planes que empaten
Vigencias, días, mínimo Los resuelve el POS: manda solo lo vigente El gateway las filtra con la fecha del servidor
Base La fila puede aplicar a una parte del ticket (AC-12) No aplica: el ajuste es sobre todo el importe QR
Diferencias por sucursal Salen solas: cada POS tiene su base Plan con sucursal propia que reemplaza al del comercio
Cambio necesario en el POS Serializar las promociones en trxpago Ninguno para ofrecer planes
Consola de planes No hace falta Sí (S5)

En los dos modos, el POS necesita la misma imputación postpago (§11), porque el resultado que vuelve es el mismo: importe, importe_final y importe_recdesc con signo.


3. En qué momento se decide

%%{init: {"sequence": {"wrap": true, "width": 180}}}%%
sequenceDiagram
    autonumber
    participant POS
    participant GW as GatewayPrismaQR
    participant PR as Prisma
    participant W as Billetera

    POS->>GW: trxpago con importe 100.000
    alt Modo A
        GW->>GW: guarda las promociones que mandó el POS junto con el pago
    else Modo B
        GW->>GW: usa la tabla de planes del comercio
    end
    GW->>PR: crear intención (original_amount 100.000)
    W->>PR: escanea el QR, el cliente tiene 3 tarjetas cargadas
    PR->>GW: BINs 450799 Visa Galicia, 520048 MC Macro, 491511 Visa Débito Santander
    GW->>GW: match del BIN con las promociones o los planes (milisegundos)
    GW->>PR: intención completa (por tarjeta: 1, 3, 6 y 12 cuotas con sus montos)
    PR->>W: muestra las opciones
    W->>PR: el cliente elige MC Macro, 6 cuotas
    PR->>GW: notificación con amount 112.000 e installments 6
    GW-->>POS: importe 100.000, importe_final 112.000, recdesc +12.000, cuotas 6
    POS->>POS: imputa el recargo postpago y cierra el ticket

En el modo A los planes llegan antes del escaneo, junto con el pago; en el modo B ya están en la base. En los dos casos, cuando Prisma manda los BINs, el gateway tiene todo lo necesario: el match tarda milisegundos y el presupuesto de 27 s v27 p.22 se va en la red, no en el cálculo.


4. Qué dice Prisma v27 (hechos)

Regla Fuente
Cada medio de pago de la intención completa lleva installments con quantity, total_amount, amount_per_installment, cft y tna. v27 p.22–30
El plan de 1 cuota es obligatorio en cada medio que mandamos. v27 p.24
El medio 112 (Transferencias 3.0) va siempre. v27 p.24
Con cada BIN, Prisma manda payment_method_id y bank_id (código BCRA). v27 p.19
El único ejemplo con cuotas es 6 × 200 = 1.200 = original (sin interés). No hay ejemplo con total_amount distinto del original. v27 p.27
La notificación devuelve amount (lo cobrado) e installments (las cuotas elegidas). v27 p.35–47
El cashback solo existe con Visa Débito. v27 p.97

Conclusión: que Prisma acepte un total_amount distinto del original_amount, mayor o menor, es una suposición hasta que conteste la pregunta 10 (§13). El sistema se construye con recargos y descuentos activos, pero habilitarlos en producción depende de esa respuesta.


5. Lo que ya existe en el POS

5.1 Rangos y planes

flowchart TB
    PAN["Número de tarjeta"] --> BANDA["dM_Banda<br/>ordenada por iOrden<br/>cDesde · cHasta · iDigmin · iDigmax"]
    BANDA -- "primer rango que matchea" --> RANGO["iIdRango"]
    RANGO --> TARPL["dM_TarPl<br/>cPlan · iCuotas · iPlan<br/>cComercio · fRecDescMPP · bHabilitado"]
    TARPL --> VENTA["Venta con recargo o descuento<br/>idRECARGO_DESCUENTO"]
Pieza Qué hace Fuente
IdentifyDataCard Recorre dM_Banda por iOrden y se queda con la primera fila que matchea: compara el PAN por prefijo contra cDesde y cHasta y verifica el largo con iDigmin e iDigmax. POS pos_card.cpp:2903
dM_TarPl Planes por rango: nombre, cuotas, código de plan, moneda, número de comercio y fRecDescMPP (recargo o descuento %). POS pos_card.cpp:2448-2499
idRECARGO_DESCUENTO (17) Movimiento con signo que registra el recargo o descuento en dE_TMdeP. POS de referencia pos_defi.h:562

Lo que no tienen las tablas del POS: vigencia por fechas y días de la semana. Hoy el comercio las maneja actualizando las tablas. En el modo B esas columnas existen en el gateway.

5.2 Redondeo del POS

Función Qué hace Fuente
ROUND_DOUBLE(d) Redondeo a 2 decimales alejándose del cero (suma 0,50000001 y trunca). POS pos_misc.cpp
RoundExp100(x) redondeo2(redondeo2(x) / 100): se usa para «importe × % / 100». POS pos_mis2.cpp:1287

El gateway calcula igual que el POS (mitad hacia arriba con el mismo doble redondeo, AC-14). Si no, la misma tarjeta daría un recargo distinto en el pinpad y en el QR.


6. Modo A: promociones del POS

6.1 Cómo viajan en trxpago

El POS manda filas planas, una por cantidad de cuotas, ordenadas. Se envían solo las que tienen planes habilitados para QR, para no mandar la tabla entera desde un POS DOS. Los nombres de los campos son provisionales: S3 los fija con el equipo del POS.

{
  "id": 1206901,
  "totalitem": 100000.00,
  "totalcashback": 0,
  "nropv": 1,
  "nroticketfiscal": "12346",
  "promos": [
    { "orden": 10, "mediopago": 1,   "desde": "450799", "hasta": "450799", "cuotas": 3,  "recdesc": 0 },
    { "orden": 11, "mediopago": 1,   "desde": "450799", "hasta": "450799", "cuotas": 6,  "recdesc": 0 },
    { "orden": 20, "mediopago": 31,  "desde": "491511", "hasta": "491511", "cuotas": 1,  "recdesc": -10 },
    { "orden": 25, "mediopago": 31,  "desde": "454545", "hasta": "454545", "cuotas": 1,  "recdesc": -20, "base": 30000 },
    { "orden": 31, "mediopago": 1,   "desde": "4",      "hasta": "4",      "cuotas": 6,  "recdesc": 12 },
    { "orden": 41, "mediopago": 104, "desde": "51",     "hasta": "55",     "cuotas": 6,  "recdesc": 12 },
    { "orden": 42, "mediopago": 104, "desde": "51",     "hasta": "55",     "cuotas": 12, "recdesc": 25 }
  ]
}

6.2 El match de BINs

La regla replica IdentifyDataCard, pero por cantidad de cuotas (AC-11):

flowchart TB
    START["BIN de Prisma (6 u 8 dígitos)<br/>más payment_method_id"] --> ACC{"¿Medio aceptado<br/>por el comercio?"}
    ACC -- "no" --> NOACC["No se ofrece<br/>(pregunta 13 a Prisma)"]
    ACC -- "sí" --> LOOP["Recorrer las filas de promos<br/>por orden ascendente"]
    LOOP --> PM{"¿La fila es del mismo medio<br/>que informa Prisma?"}
    PM -- "no" --> NEXT["Siguiente fila"]
    PM -- "sí" --> LEN{"¿desde o hasta tienen<br/>más dígitos que el BIN?"}
    LEN -- "sí" --> UNDEC["Indecidible:<br/>se saltea y se registra"]
    UNDEC --> NEXT
    LEN -- "no" --> PFX{"¿El prefijo del BIN cae<br/>entre desde y hasta?"}
    PFX -- "no" --> NEXT
    PFX -- "sí" --> Q{"¿Esa cantidad de cuotas<br/>ya tiene ganadora?"}
    Q -- "sí" --> NEXT
    Q -- "no" --> WIN["GANA esta fila<br/>para esa cantidad de cuotas"]
    WIN --> NEXT
    NEXT --> MORE{"¿Quedan filas?"}
    MORE -- "sí" --> PM
    MORE -- "no" --> DONE["Una ganadora por cantidad de cuotas<br/>más 1 pago sin ajuste si falta"]

Reglas:

  1. Para cada cantidad de cuotas gana la primera fila por orden cuyo prefijo y medio coinciden. No gana «la más específica»: si el gateway usara otra regla, la misma tarjeta tendría planes distintos en el pinpad y en el QR.
  2. Comparación por prefijo: BIN[0:len(desde)] ≥ desde y BIN[0:len(hasta)] ≤ hasta, igual que el strncmp del POS.
  3. Chequeo de medio de pago: la fila tiene que coincidir con el payment_method_id de Prisma. Esto evita que una Visa débito caiga en un rango genérico «4» pensado para Visa crédito.
  4. Dos límites conocidos: Prisma no informa el largo del PAN, así que iDigmin e iDigmax no se pueden evaluar; y un desde o hasta de más de 8 dígitos no se puede decidir con el BIN: se saltea y queda registrado (R-08).
  5. Sin ganadora: la tarjeta va en 1 pago sin ajuste, siempre que el medio esté aceptado.
  6. Se guarda qué fila ganó para cada cantidad de cuotas y por qué se descartaron las otras.

6.3 Con base

Cuando una fila trae base, el ajuste se calcula sobre esa base (acotada al importe QR) y se convierte en un porcentaje efectivo sobre el QR (AC-12). Ejemplo, QR de $ 100.000, fila −20 % con base $ 30.000:

Concepto Cálculo Resultado
Ajuste 30.000 × −20 % −6.000,00
% efectivo sobre el QR −6.000 / 100.000 −6 %
Total del plan 100.000 − 6.000 94.000,00

7. Modo B: planes del gateway

7.1 Qué guarda cada plan

Tabla installment_plan, por comercio:

Campo Significado
payment_method_id, bank_id? Medio de pago de Prisma y, opcionalmente, el banco (código BCRA)
bin_from?, bin_to? Rango de BIN como prefijos de texto (conserva ceros a la izquierda), comparados como el strncmp del POS
quantity, adjustment_pct Cantidad de cuotas y porcentaje con signo
tna, cft Tasas, que se envían a Prisma cuando hay recargo
plan_code? Código del plan, por ejemplo Cuotas MiPyME 13 y 16
valid_from, valid_to, weekdays?, min_amount? Vigencia, días de la semana (máscara de bits, vacío = todos) y monto mínimo
branch_id? Plan propio de una sucursal, que reemplaza al del comercio
enabled Habilitado

El plan de 1 cuota es implícito y nunca se guarda: siempre se ofrece.

7.2 Cómo se resuelve

flowchart TB
    START["BIN, medio y banco de Prisma<br/>más importe, fecha y sucursal"] --> ACC{"¿Medio aceptado<br/>por el comercio?"}
    ACC -- "no" --> NOACC["No se ofrece"]
    ACC -- "sí" --> CAND["Candidatos: planes habilitados<br/>del comercio para ese medio"]
    CAND --> F1{"¿Coinciden banco y rango de BIN<br/>cuando el plan los fija?"}
    F1 -- "no" --> OUT["Se descarta"]
    F1 -- "sí" --> F2{"¿Está vigente hoy, aplica este día<br/>y el importe llega al mínimo?"}
    F2 -- "no" --> OUT
    F2 -- "sí" --> G["Por cada cantidad de cuotas<br/>gana el plan más específico"]
    G --> S["Rango de BIN gana sobre banco<br/>y banco gana sobre medio<br/>la sucursal gana sobre el comercio"]
    S --> DONE["Una ganadora por cantidad de cuotas<br/>más 1 pago sin ajuste si falta"]

El ajuste se calcula siempre sobre todo el importe QR. Dos planes que empatan en especificidad para la misma tarjeta son un error de configuración: la consola se niega a guardarlos (AC-13).


8. Cómo se calculan los montos

Valen para los dos modos y son los del POS:

Concepto Fórmula Ejemplo (100.000; 6 cuotas +12 %)
Recargo o descuento rd = redondeo2(redondeo2(importe × %) / 100) (RoundExp100) 12.000,00
Total del plan total = importe + rd 112.000,00
Valor de la cuota cuota = redondeo2(total / cuotas), mitad hacia arriba 18.666,67
Diferencia por redondeo cuota × cuotas − total +0,02 (pregunta 11 a Prisma)
Lo que vuelve al POS recdesc = amount − importe +12.000,00

9. Ejemplo y simulador

Almacor, ticket de $ 100.000 por QR. Los medios aceptados son 1, 31, 104, 105, 106 y 112; Amex (65) no está aceptado.

Modo A. Promociones que manda el POS:

Orden Medio BIN Cuotas Ajuste Base
10 Visa crédito (1) 450799 3 0 % —
11 Visa crédito (1) 450799 6 0 % —
20 Visa Débito (31) 491511 1 −10 % —
25 Visa Débito (31) 454545 1 −20 % $ 30.000
30 Visa crédito (1) 4 3 0 % —
31 Visa crédito (1) 4 6 +12 % —
40 Mastercard crédito (104) 51–55 3 0 % —
41 Mastercard crédito (104) 51–55 6 +12 % —
42 Mastercard crédito (104) 51–55 12 +25 % —

El orden importa: la Visa de Galicia (450799) gana las filas 10 y 11 y obtiene 6 sin interés; cualquier otra Visa crédito cae en las filas 30 y 31 y obtiene 6 con +12 %.

Modo B. Planes del gateway, vigentes del 2026-10-01 al 2026-10-31:

Plan Medio Banco Cuotas Ajuste Días Mínimo
1 Visa crédito (1) todos 3 0 % todos —
2 Mastercard crédito (104) todos 3 0 % todos —
3 Visa crédito (1) Galicia 6 0 % martes y jueves —
4 Visa crédito (1) todos 6 +12 % todos —
5 Mastercard crédito (104) todos 6 +12 % todos —
6 Mastercard crédito (104) todos 12 +25 % todos $ 50.000
7 Visa Débito (31) Santander 1 −10 % martes —

Para 6 cuotas, la Visa de Galicia gana el plan 3 (banco, más específico) los martes y jueves y el plan 4 el resto de los días. La fecha por defecto es el martes 2026-10-06.

Simulador

Elija el modo del comercio, el importe del QR y la tarjeta que trae el cliente. El simulador aplica el match de §6 (modo A) o de §7 (modo B) sobre las tablas de arriba, arma la oferta para Prisma y muestra qué vuelve al POS según el plan elegido.

1 · Match de BIN

    2 · Oferta a Prisma (intención completa)

    CuotasAjusteTotalCuota

    3 · Respuesta al POS (plan elegido)


    10. El ciclo de vida del ajuste

    flowchart TB
        A["Modo A: promos en trxpago<br/>(desde dM_TarPl.fRecDescMPP)<br/>Modo B: installment_plan"] --> C["Match del BIN<br/>(gateway)"]
        C --> D["installments.total_amount<br/>(intención completa)"]
        D --> E["El cliente elige<br/>(billetera)"]
        E --> F["notificación.amount<br/>más installments"]
        F --> G["recdesc = amount − importe<br/>(gateway)"]
        G --> H["Imputación postpago<br/>(POS)"]
    

    Lo que vuelve al POS:

    Elección del cliente importe importe_final importe_recdesc cuotas
    Visa Galicia, 6 sin interés 100.000,00 100.000,00 0,00 6
    MC Macro, 6 cuotas +12 % 100.000,00 112.000,00 +12.000,00 6
    Visa Débito Santander, 1 pago −10 % 100.000,00 90.000,00 −10.000,00 1
    Visa Débito Nación, 1 pago −20 % sobre base 30.000 (modo A) 100.000,00 94.000,00 −6.000,00 1

    La regla no cambia: importe + importe_recdesc == importe_final, al centavo (INV-04).


    11. La imputación en el POS

    11.1 Cómo cierra el POS (postpago)

    Después de la aprobación, el POS recibe importe, importe_final e importe_recdesc y cierra por lo que cobró la billetera. La imputación que hoy existe para descuentos en un POS de la familia hace todo esto POS de referencia pos_mppo.cpp:3625-3719:

    1. Controles: coherencia importe + recdesc == importe_final, descuento no mayor que el total, e idempotencia por autorizadortrxid.
    2. Filas de detalle por alícuota de IVA (bAcumulado=1, importes negativos para el descuento) POS de referencia pos_tic2.cpp:987-1157.
    3. El IVA se recalcula desde el neto con el ajuste, nunca se prorratea. El centavo de residuo va al bucket de mayor neto.
    4. Recalcula las percepciones y prorratea los redondeos fiscales.
    5. Registra idRECARGO_DESCUENTO con signo en dE_TMdeP y lo imprime como «Rec/Desc» entre SUBTOTAL y TOTAL POS de referencia pos_vnta.cpp:4279-4330.

    11.2 Descuento y recargo

    Los dos son de primera clase: el POS imputa el que corresponda al signo de importe_recdesc.

    flowchart TB
        R["importe_recdesc del gateway"] --> S{"Signo"}
        S -- "negativo (descuento)" --> D1["Filas negativas por alícuota"]
        S -- "positivo (recargo)" --> R1["Filas positivas por alícuota"]
        D1 --> IVA1["IVA recalculado desde el neto"]
        R1 --> IVA2["IVA del recargo financiero<br/>(definición impositiva pendiente)"]
        IVA1 --> T["idRECARGO_DESCUENTO con signo<br/>en dE_TMdeP · cierra la Z"]
        IVA2 --> T
        T --> P{"¿Impresora fiscal?"}
        P -- "no" --> PNF["Línea Rec/Desc en el ticket<br/>(genérica)"]
        P -- "sí" --> PF["Comando fiscal: D para descuento, R para recargo<br/>(a validar)"]
    
    Pieza Descuento Recargo
    Control de signo en la imputación Existe en el POS de referencia Pasa de «rechazar» a «dirección»
    Filas de detalle por alícuota Existe Hay que emitir filas positivas
    Consumidores de bAcumulado==1 (nota de crédito, borrado de filas, informe impositivo) Asumen descuento Revisar uno por uno o usar otro marcador
    Percepciones Existe El código ya tiene un TODO_PERCEPCIONES_IVA que advierte que está mal para recargos
    Saldo y totales Existe Simétrico, debería andar
    Ticket sin impresora fiscal Existe Genérico
    Ticket con impresora fiscal No validado No validado, con comando R

    11.3 El peligro de hoy

    Hoy, si llega un recdesc positivo, la imputación del POS de referencia devuelve 0 y el llamador lo ignora. La venta queda registrada por el importe original, mientras la billetera cobró más. No hay reversa ni error visible: solo una línea de log (inferido de leer el código, no se ejecutó). Es el riesgo R-04.

    Regla (INV-06): el POS nunca registra una venta QR por un importe distinto del que cobró la billetera. Si no puede imputar, falla en forma explícita y dispara la reversa del pago.

    11.4 Almacor y Becerra

    Sus fuentes solo parsean importe_recdesc POS pos_ctoq.cpp:3508; la imputación existe únicamente en el POS de referencia. Hay que portarla a Almacor y Becerra y sumarle el recargo. Es una dependencia del sistema, no una alternativa (R-07).


    12. Riesgos

    ID Riesgo Nivel Mitigación
    R-04 El POS registra la venta por el importe original cuando le llega un recargo (§11.3). ALTO Falla explícita más reversa (INV-06).
    R-05 Impresora fiscal: el comando de descuento por QR nunca se validó y el de recargo no existe. Becerra no tiene impresora fiscal; falta confirmar Almacor. ALTO para ajustes Validar con el equipo fiscal antes de habilitar ajustes.
    R-06 Tratamiento impositivo del recargo financiero (IVA, percepciones). MEDIO Consulta con el asesor del comercio: es política impositiva, no una decisión técnica.
    R-07 El modo A y los ajustes necesitan una versión nueva del POS de Almacor y Becerra. ALTO Planificar el trabajo del POS en paralelo; probar el gateway contra el emulador y un simulador de POS.
    R-08 Rangos del POS de más de 8 dígitos no se pueden decidir con el BIN. BAJO Relevar las tablas reales de Almacor y Becerra y registrar los rangos indecidibles.

    13. Preguntas que hay que cerrar con Prisma

    La numeración es la de PRISMA-PREGUNTAS.md.

    # Pregunta Si la respuesta es «no»
    10 ¿Aceptan total_amount distinto del original_amount, más alto o más bajo? No se pueden habilitar en producción los recargos ni los descuentos; hasta entonces solo planes sin ajuste.
    13 Si nos llega un BIN de un medio no aceptado, ¿podemos omitirlo en la intención completa? Habría que ofrecerlo al menos en 1 pago.
    11 Si cuota × cantidad no da exacto total_amount, ¿cuál cobran? Ajustar la última cuota o el total.
    12 En la notificación, ¿amount es el total_amount del plan elegido? Recalcular el importe final de otra forma.
    8 Formato de cft y tna: ¿40.05 o 0.4005? Solo de formato.

    14. Decisiones

    # Decisión Fuente
    D1 La fuente de los planes es un atributo del comercio: modo A (el POS manda) o modo B (el gateway guarda). Los dos están activos. ADR-003, AC-18
    D2 Recargos y descuentos activos desde el inicio. Su uso en producción depende de la pregunta 10 y de la imputación en el POS. SPEC §3
    D3 1 pago sin ajuste siempre en todo medio aceptado; el medio 112 siempre. v27, AC-08
    D4 Modo A: para cada cantidad de cuotas gana la primera fila por orden cuyo prefijo y medio coinciden; con base, ajuste sobre la base convertido a % efectivo. AC-11, AC-12
    D5 Modo B: se filtra por vigencia, día y mínimo y gana el más específico; la consola rechaza empates. AC-13
    D6 El gateway calcula como el POS: mitad hacia arriba con el doble redondeo de RoundExp100. AC-14
    D7 TNA y CFT los aporta el adquirente o el banco; el gateway solo verifica la coherencia. AC-15
    D8 El POS cierra postpago, por lo cobrado; si no puede imputar, falla y revierte. INV-06
    D9 Rangos indecidibles (más de 8 dígitos) se saltean y se registran. R-08