SIS0051: número de pedido repetido.

Redsys bloqueó un identificador de pedido ya usado. Es la protección anti-duplicados funcionando — y tu integración generando identificadores mal.

Qué exige Redsys del número de pedido.

El campo Ds_Merchant_Order identifica cada operación: entre 4 y 12 caracteres, los 4 primeros numéricos, y único por comercio — para siempre, no solo por sesión. Además participa en la derivación de la firma (por eso pedidos mal gestionados a veces acaban también enSIS0042). Cuando llega uno repetido — da igual el método de pago o el tipo de operación —, Redsys corta antes de procesar: prefiere una venta fallida a un posible cobro doble. El número de tarjeta del cliente ni siquiera llega a validarse.

Causas típicas, por plataforma.

  • WooCommerce / PrestaShop: el módulo deriva el identificador del ID del pedido de tienda, y al reintentar el pago del mismo pedido lo envía idéntico. Los módulos actualizados añaden un sufijo por intento; los antiguos, no — actualiza antes de tocar nada más (guías de WooCommerce y PrestaShop).
  • Integraciones a medida: contador reiniciado (deploy, migración, restauración de copia), varias instancias generando el mismo rango, o derivar el pedido de algo estable (ID de carrito) en lugar de por intento.
  • Doble envío: doble clic en «pagar» o reintento automático del frontend que dispara dos peticiones con el mismo identificador — el segundo recibe SIS0051.

La solución correcta (no el parche).

  1. Identificador nuevo por intento de pago, no por pedido de tienda: pedido 1234 puede pagar con 123400, 123401, 123402… y tu notificación reconcilia por el prefijo.
  2. Antes de reintentar, consulta: si un intento murió sin respuesta, comprueba en el panel del TPV si quedó autorizado. Evitas tanto el SIS0051 como el susto del cobro doble.
  3. Deshabilita el botón de pago tras el clic y haz idempotente tu backend: el doble envío no debería poder generar dos peticiones.
  4. Tras migraciones, salta el contador: arranca en un rango claramente posterior al último usado (p. ej. fecha + secuencia).

Checklist post-error.

  • ¿El intento original está autorizado en el panel? → no relances el cobro; marca el pedido y arregla la notificación.
  • ¿El cliente vio dos errores seguidos? → explícale que no hay cargo (el SIS0051 se bloquea antes del banco).
  • ¿Se repite a diario? → es estructural: revisa la generación de identificadores, no reinicies «hasta que funcione».

Transparencia: esta página contiene enlaces de afiliado a MONEI. Si contratas a través de ellos, recibimos una comisión sin coste extra para ti. Nuestro compromiso: las fuentes, fechas y supuestos de cálculo se muestran de forma visible para que puedas comprobarlos y comparar el coste completo por tu cuenta.

Preguntas frecuentes.

¿Qué significa el error SIS0051 de Redsys?

«Número de pedido repetido», código de error de duplicidad: Redsys exige que cada operación lleve un Ds_Merchant_Order único por comercio, y la petición ha llegado con uno ya procesado (o ya intentado). Es una protección deliberada contra cobros duplicados — el sistema hace exactamente lo que debe; el que repite es tu lado.

¿Cómo se soluciona el SIS0051?

Genera un número de pedido nuevo para cada intento de pago — incluidos los reintentos tras fallo o cancelación. En WooCommerce/PrestaShop, actualiza el módulo (los modernos añaden sufijos por intento); en integraciones propias, deriva el Ds_Merchant_Order de un contador o timestamp por intento, no del ID de carrito que se mantiene fijo.

¿Por qué me sale SIS0051 si el pedido es nuevo?

Porque «pedido» para Redsys es el identificador enviado, no tu pedido de tienda: si tu plataforma reutiliza el mismo identificador cuando el cliente reintenta el pago del mismo carrito, para Redsys es un repetido. También ocurre tras migraciones o restauraciones de base de datos que resetean contadores a valores ya usados.

¿El SIS0051 significa que el cliente pagó dos veces?

No — al contrario: significa que el segundo intento fue bloqueado. Lo importante es comprobar si el primer intento llegó a autorizarse: mira el panel del TPV virtual. Si está autorizado, el pedido ya está cobrado y no debes relanzar el pago; si no, lanza un intento con número de pedido nuevo.

Relacionado: SIS0042 (firma incorrecta),probar en el sandbox odiagnóstico general de Redsys.