Qué es el pago por referencia de Redsys
El pago por referencia es la función del TPV virtual de Redsys que permite volver a cobrar a un cliente sin que tenga que escribir otra vez su tarjeta. En el primer pago, Redsys guarda la tarjeta y devuelve al comercio una referencia (también llamada token o identificador). En los cobros siguientes, el comercio envía esa referencia en lugar de los datos de la tarjeta.
Es lo que hace posibles los pagos recurrentes con Redsys: cuotas mensuales, suscripciones de software, matrículas, cuotas de socio o contratos de mantenimiento que se cobran solos cada periodo.
La tarjeta nunca sale de Redsys. El comercio solo guarda la referencia, que no sirve fuera de su número de comercio. Por eso no tiene que almacenar datos de tarjeta ni asumir las obligaciones de PCI DSS que eso conlleva.
Pago por referencia, COF y MIT: tres conceptos que van juntos
Cuando hables con tu banco o leas la documentación de Redsys verás tres términos. Conviene distinguirlos:
- Pago por referencia (tokenización). Guardar la tarjeta en Redsys y cobrarla después con su referencia.
- COF (credential on file, credencial almacenada). La marca que indica a las redes de tarjetas que la operación usa una tarjeta guardada con permiso del titular, y para qué: un cobro recurrente, un pago a plazos o un pago puntual. El primer pago se marca como inicial y los siguientes enlazan con él.
- MIT (merchant initiated transaction, operación iniciada por el comercio). Un cobro que lanza el comercio sin que el cliente esté delante, como la cuota de cada mes. Frente a él está el CIT, la operación que inicia el propio cliente.
Un cobro de suscripción bien hecho es, por tanto, un MIT recurrente sobre una credencial COF que se obtuvo en un primer pago autenticado por el cliente.
Qué pedir a tu banco
El pago por referencia no siempre viene activado en un TPV virtual recién contratado. Antes de empezar, pide a tu banco o a su servicio de soporte del TPV:
- Que active el pago por referencia (tokenización) en tu número de comercio.
- Que permita las operaciones COF y MIT, es decir, los cobros recurrentes iniciados por el comercio sin el cliente presente.
- Los datos de acceso del entorno de pruebas, para hacer las primeras operaciones con la tarjeta de pruebas de Redsys sin mover dinero.
- Tu número de comercio (FUC), el terminal y la clave de firma de cada entorno, que necesitará la aplicación que vaya a cobrar.
Las comisiones del TPV no cambian por usar el pago por referencia: pagas lo mismo que tengas pactado con tu banco por cada operación.
Cómo funciona un cobro recurrente, paso a paso
1. Primer pago con el cliente presente
El cliente acepta las condiciones de la suscripción y paga en la página segura de Redsys, normalmente con autenticación 3D Secure (la confirmación en la aplicación de su banco). En esa operación el comercio pide a Redsys que guarde la tarjeta y la marca como primer pago COF recurrente.
2. Redsys devuelve la referencia
En la notificación del pago, Redsys envía la referencia de la tarjeta, su caducidad y el identificador de la operación inicial. El comercio guarda esos datos asociados a la suscripción.
3. Cobros siguientes sin el cliente
En cada periodo, el comercio envía a Redsys una petición directa (por REST, servidor a servidor) con el importe, la referencia y las marcas de MIT recurrente. No hay redirección ni intervención del cliente: el cobro se aprueba o se rechaza en el momento.
4. Cambio de tarjeta o baja
Si la tarjeta caduca o el cliente quiere usar otra, se repite el primer paso para obtener una referencia nueva. Cuando la suscripción termina, la referencia se puede borrar en Redsys para que no se pueda volver a usar.
PSD2 y autenticación reforzada en los pagos recurrentes
La directiva europea PSD2 exige autenticación reforzada (SCA) en los pagos con tarjeta por internet. En las suscripciones se cumple así:
- El primer pago se autentica con 3D Secure, y en él el cliente autoriza los cobros futuros.
- Los cobros siguientes, al ser iniciados por el comercio y estar enlazados con ese primer pago, quedan fuera del ámbito de la SCA y se cobran sin pedir nada al cliente.
Aun así, el banco del cliente puede pedir de forma puntual que confirme un cobro. Redsys lo indica con un código de respuesta específico (el 195). En ese caso no tiene sentido reintentar el cobro tal cual: hay que enviar al cliente un enlace para que lo confirme.
Para programadores: los parámetros del pago por referencia
Si vas a integrarlo tú, estos son los parámetros de Redsys que intervienen en cada fase. Se envían dentro de Ds_MerchantParameters, firmados con HMAC-SHA256 y la clave del comercio.
| Fase | Parámetros | Para qué |
|---|---|---|
| Primer pago (redirección) | DS_MERCHANT_IDENTIFIER=REQUIREDDS_MERCHANT_COF_INI=SDS_MERCHANT_COF_TYPE=R |
Pedir que guarde la tarjeta y marcar la operación como primer pago COF recurrente. |
| Notificación del primer pago | Ds_Merchant_IdentifierDs_Merchant_Cof_TxnidDs_ExpiryDate |
La referencia, el identificador de la operación inicial y la caducidad de la tarjeta, que hay que guardar. |
| Cobro recurrente (REST) | DS_MERCHANT_IDENTIFIER=<referencia>DS_MERCHANT_COF_INI=NDS_MERCHANT_COF_TYPE=RDS_MERCHANT_COF_TXNID=<id inicial>DS_MERCHANT_EXCEP_SCA=MITDS_MERCHANT_DIRECTPAYMENT=true |
Cobrar con la referencia como MIT recurrente, sin autenticación ni redirección. Se envía a trataPeticionREST. |
| Baja | DS_MERCHANT_TRANSACTIONTYPE=44DS_MERCHANT_IDENTIFIER=<referencia> |
Borrar la referencia en Redsys. |
Dos detalles que suelen dar problemas: el número de pedido debe ser único en cada operación, también en cada cobro recurrente; y la respuesta de la petición REST también va firmada, así que hay que comprobar su firma antes de dar el cobro por bueno.
Lo que hace falta además del cobro
Cobrar con la referencia es la parte sencilla. Para que un negocio de suscripciones funcione solo, alrededor del cobro hace falta:
- Un calendario de cobros que lance cada día los que vencen y no cobre dos veces el mismo periodo, aunque un proceso se repita.
- Gestión de impagos: avisar al cliente, reintentar el cobro unos días después y suspender el servicio si no hay manera de cobrar.
- Cambio de tarjeta cuando caduca o el cliente quiere usar otra, sin cobrarle nada.
- Una factura por cada cobro. En España, emitida con un sistema que cumpla con Verifactu: huella encadenada, código QR de la AEAT y envío del registro a Hacienda.
- Avisos a tu plataforma, si vendes software, para dar de alta, suspender o reactivar la cuenta del cliente según pague.
Cobra suscripciones con Redsys sin programar el cobro
Crescere.VF hace todo lo anterior con tu propio TPV Redsys: primer pago con 3D Secure, cobros automáticos con la tarjeta guardada, reintentos y suspensión por impago, factura Verifactu en cada cobro y una API con avisos firmados para conectar tu SaaS.
Está incluido en el plan Empresarial y puedes probarlo 30 días gratis con tu TPV en modo pruebas.