Ir al contenido

Programa de puntos

Panel → Puntos. Dar puntos por comprar y dejar que se canjeen como descuento en compras siguientes.

De fábrica está apagado. Un programa de fidelización cambia el margen de cada pedido, así que se enciende a propósito y con sus números puestos.

🔴 Un punto no es dinero, y esa es toda la diferencia

Sección titulada «🔴 Un punto no es dinero, y esa es toda la diferencia»

Esto es lo contrario de una tarjeta regalo, y confundirlos es el fallo que hace que una tienda liquide mal el IVA durante años sin que aparezca un solo error por pantalla.

Tarjeta regalo / saldo Puntos
Cómo se consigue Se compra (o se abona) Se gana comprando
Qué es Medio de pago Descuento futuro
Base imponible del pedido No cambia Baja
IVA del pedido El completo El de la base rebajada
¿Se puede pasar a dinero? Sí, es dinero No, nunca

El motivo no es una opinión: el Tribunal de Justicia de la UE lo resolvió el 5 de marzo de 2026 (asunto C-436/24, Lyko Operations). Unos puntos que no se compran, no valen nada por sí solos, no se transfieren y no se cambian por dinero no son un bono: son un descuento sobre una compra posterior. Y un descuento baja la base imponible, así que se liquida IVA solo sobre lo que el cliente paga de verdad.

Con el 21 % y una compra de 100 € se ve de un vistazo:

tarjeta regalo de 10 € base 100,00 · IVA 21,00 · total 121,00 · cobras 111,00
1.000 puntos (= 10 €) base 90,00 · IVA 18,90 · total 108,90 · cobras 108,90

Los dos son correctos. Lo que no lo es —y es lo que hacen muchas tiendas— es meter los puntos como una forma de pago: ingresas 108,90 y declaras el IVA de 121,00, poniendo 2,10 € de tu bolsillo en cada pedido.

Por eso los puntos no se convierten en saldo ni compran tarjetas regalo. No es una funcionalidad que falte: es la línea que hace que sigan siendo puntos. En cuanto se convierten en algo que la tienda está obligada a aceptar como pago, vuelven a ser un bono con su IVA íntegro.

Panel → Puntos, en el bloque «Cómo funciona».

Ajuste Qué hace De fábrica
Activo Enciende el programa No
Puntos por euro Cuántos da cada euro de base 1
Valor del punto Cuántos céntimos descuenta un punto 1
Mínimo para canjear Por debajo de esto no se puede gastar 100
Múltiplo de canje Se gasta de N en N 100
Tope por pedido % máximo del pedido que pueden pagar sin tope
Caducan tras Días de vida de cada punto 365
Gana en portes Si el porte también da puntos No

Con los valores de fábrica, 100 puntos = 1 € y se devuelve el 1 % de lo comprado. Es un punto de partida razonable: se entiende en una frase, y la recompensa se nota sin regalar margen.

Sobre la base de la mercancía: sin impuestos, ya descontados los cupones y los propios puntos, sin portes (salvo que lo enciendas) y sin las tarjetas regalo. Cada exclusión tapa un agujero concreto:

  • Sin impuestos, porque si no un cliente de un país con IVA alto ganaría más puntos por la misma compra.
  • Ya descontado, porque si no un 50 % de descuento daría los mismos puntos que pagar el precio entero.
  • Sin tarjetas regalo, porque si no la misma compra daría puntos al comprar la tarjeta y otra vez al gastarla.

Y se ganan al cobrar, no al hacer el pedido. Un pedido por transferencia entra antes que el dinero: dar los puntos antes es regalar descuento contra un cobro que puede no llegar.

Cada vez que alguien gana puntos se abre un lote con su propia fecha. No caducan todos a la vez ni «si no compras en un año»: caduca cada lote cuando cumple su plazo, y al gastar se tira siempre del lote que caduca antes.

Eso evita las dos quejas de siempre. Que se pierdan 4.000 puntos de golpe el día 366; y que alguien gaste los puntos que no caducan mientras deja morir los que sí.

Una tarea nocturna apunta en el libro lo que ha caducado, para que el cliente lea «−1.200 caducados el 3 de marzo» en vez de ver un número que encogió sin explicación. Si pones Caducan tras en vacío, no caducan nunca.

Mira la rotura. En el panel sale el porcentaje de puntos ganados que acaban caducando. Por debajo del 20 % estás regalando margen: la recompensa es demasiado fácil. Por encima del 50 % no llega nadie, y un programa que no se usa no fideliza a nadie — solo engorda el pasivo.

En el checkout, el cliente dice cuántos quiere gastar. Lo que se aplica viene topado por cuatro sitios y manda el más pequeño:

  1. Los que ha pedido gastar.
  2. Los que tiene de verdad.
  3. Lo que queda por pagar de la mercancía (nunca deja una línea en negativo, y las tarjetas regalo quedan fuera).
  4. El tope por pedido, si has puesto uno.

Y luego se redondea a la baja al múltiplo, para que quien pide 1.000 gaste 1.000 y no 1.037.

Hace falta haber entrado en la cuenta: los puntos son de una cuenta y no se transfieren. No hay ningún código que dictar.

El descuento se reparte entre las líneas del pedido, igual que un cupón. Sin repartir no se sabe cuánto se pagó por cada artículo, y una devolución parcial devolvería de más o de menos.

Cuando un pedido se devuelve entero, se deshace lo que produjo:

  • Los puntos que se gastaron vuelven a su lote, con la fecha de caducidad que ya tenían. Si volvieran como lote nuevo, comprar y devolver sería la forma de que los puntos no caduquen nunca.
  • Los puntos que dio esa compra se retiran, del lote que los dio. Si el cliente ya se los había gastado, se queda en negativo: se los dio una compra que ya no existe, y lo compensa comprando. Perdonárselos sería que devolver saliera a cuenta.

Un reembolso parcial no toca los puntos. Raspar tres puntos por devolver 3 € de 100 deja un libro que nadie entiende, y el redondeo de cada trocito se come más de lo que devuelve.

Panel → Puntos → un cliente → Ajustar. Para una cortesía o para arreglar un descuadre. La nota es obligatoria: un ajuste sin motivo es indistinguible de un error cuando alguien lo mire dentro de un año, y queda apuntado quién lo hizo.

  • GET /store/mis-puntos — cuántos tiene, qué caduca y cuándo, y su libro.
  • POST /store/carritos/:id/puntos con { "puntos": 1000 } — canjear.
  • DELETE /store/carritos/:id/puntos — deshacer el canje.

La respuesta trae siempre cuántos se han aplicado de verdad y, si no se ha podido, por qué. Un botón que aplica en silencio una cantidad distinta de la pedida es la primera razón por la que alguien escribe a soporte.

  • Los puntos vivos son un pasivo. Son descuento prometido que alguien va a usar. El panel lo enseña en euros al valor de hoy: es lo que costará si se canjean todos.
  • La caducidad la decides tú, pero mírala. Aquí no hay un mínimo legal como el de las tarjetas regalo, porque un punto no es dinero del cliente; pero las condiciones del programa tienen que estar escritas y ser accesibles, y un cambio a peor no puede aplicarse a lo ya ganado sin avisar.
  • Esto no es asesoramiento fiscal. El tratamiento descrito es el de un programa con las condiciones de arriba (no se compran, no se transfieren, no se cambian por dinero). Si montas algo distinto —puntos que se venden, que se regalan entre clientes o que se cambian por tarjetas— el tratamiento cambia y conviene preguntarlo.