Bóveda de pagos: Almacena credenciales de pago para uso futuro

En esta guía te vamos a explicar como poder almacenar las credenciales de pago de tus usuarios para permitirles poder volver a pagar con ellas en futuras compras.

Descripción general

Los comercios digitales de hoy en día están cada vez más interesados en ofrecer a los usuarios la opción de almacenar su tarjeta de crédito/débito para futuras compras por varias razones fundamentales.

  • En primer lugar, la comodidad del cliente es una prioridad. Permitir que los usuarios guarden sus tarjetas de crédito les ahorra tiempo y esfuerzo en cada compra posterior. Ya no necesitan ingresar repetidamente la información de pago, lo que agiliza significativamente el proceso de compra y reduce la fricción en la experiencia del cliente.
  • En segundo lugar, el almacenamiento seguro de tarjetas de crédito fomenta la fidelización de los clientes. Cuando los usuarios saben que su información financiera está protegida y cifrada de manera segura, se sienten más cómodos y confiados al volver a comprar en el mismo comercio en línea. Esto puede llevar a una mayor retención de clientes y a compras repetidas.
  • Además, desde la perspectiva del comercio, tener la capacidad de almacenar la información de pago de los clientes puede impulsar las ventas impulsivas y el aumento del valor del carrito de compras. Los usuarios pueden realizar compras con un solo clic, lo que aumenta la probabilidad de que agreguen productos adicionales a su pedido antes de finalizar la compra.

Sin embargo, por diferentes protocolos, estándares (PCI) y leyes de seguridad digital, no es una tarea fácil para un comercio poder almacenar las credenciales de pago de un usuario. En DEUNA, nos pusimos como misión poderle ofrecer a nuestros comercios opciones fáciles de integrar para poder ofrecerle esta experiencia de usuario al cliente bajo los más altos estándares de seguridad.

Opciones para el almacenamiento de credenciales de pago

Headless: Almacena credenciales de pago usando los APIs de DEUNA

Aquellos comercios que quieran mantener su experiencia de compra e interacción con el usuario 100% en su control pueden usar las APIs de DEUNA.

Paso 1: Crear al usuario en DEUNA

Haz click aquí para ver como crear un usuario.

Ejemplo de como crear un usuario:

curl --location 'https\://<base url deuna env>/users/register'  
--header 'x-api-key: <merchant-api-key>'  
--header 'Content-Type: application/json'  
--data-raw '{  
    "email": "[email protected]",  
    "first_name": "Esteban",  
    "last_name": "Posada",  
    "phone": "444-769-2491",  
    "identity_document": "1722146485", // opcional  
}'

Ejemplo de respuesta exitosa:

{  
    "token": "\<user token (JWT token usado para autenticación)>",  
    "user_id": "<user ID v4 UUID>"  
}
  • token: lo vas a usar para ejecutar operaciones sobre este usuario. Este token expira por seguridad.
  • user_id: id único asociado por el sistema de DEUNA al usuario creado. Usualmente los comercios almacenan este ID en su base de datos relacionado al id del usuario en el sistema del comercio.

Operaciones sobre un usuario:

Paso 2: Almacena la credencial de pago (i.e. tarjeta de crédito y débito)

Haz click aquí para ver como crear una tarjeta.

Notas:

  • Para probar crear pagos en el ambiente de STAGING de DEUNA debes usar las tarjetas de prueba de los procesadores de pago que tienes configuradas en DEUNA.
  • Para comercios que no son PCI compliant, esta operación debe realizarse en el client-side application para que la información de la credencial de pago (PCI data) no llegue a tus servidores.

Ejemplo de como crear una tarjeta:

curl --location 'https://<base url deuna env>/users/<deuna-user-id>/cards' \
--header 'Authorization: Bearer <user-auth-token obtenido durante la creación del usuario en DEUNA>' \
--header 'Content-Type: application/json' \
--data '{
    "expiry_month": "11",
    "expiry_year": "2025",
    "card_holder": "Esteban Posada",
    "card_holder_dni": "185396924",
    "card_number": "4111111111111111",
    "card_cvv": "123",
    "address1": "Vergara 548",
    "zip": "001100",
    "city": "Cuahutemoc",
    "state": "CDMX",
    "country": "MEX",
    "phone": "12345755",
    // Opcional y si no se manda, se respeta la configuracion global a nivel comercio
    // https://docs.deuna.com/docs/verificaci%C3%B3n-de-tarjetas
    "card_verification_config": {
        "invoke_card_verification": true or false
    }
}'

Ejemplo de respuesta exitosa:

{
    "data": {
        "id": "3d095a95-7da4-4e62-a57c-8c9c4d7dd9db",
        "user_id": "930fedbb-a07c-44db-8514-ecf73fdee1a7",
        "card_holder": "Esteban Posada",
        "card_holder_dni": "185396924",
        "company": "visa",
        "last_four": "1111",
        "first_six": "411111",
        "expiration_date": "11/25",
        "is_valid": true,
        "verified_by": "card_verifier",
        "verified_at": "0001-01-01T00:00:00Z",
        "created_at": "2023-07-06T15:48:13.796043849Z",
        "updated_at": "2023-07-06T15:48:13.796056921Z",
        "deleted_at": null
    }
}

Algunas notas:

  • El valor en el campo data.id es el token creado por DEUNA para identificar esta tarjeta. Este token no es PCI sensitive data y puede almacenarse por el comercio. Los comercios almacenan este token al igual que por ejemplo el bin, los últimos 4 dígitos para mostrarle al usuario una representación de la tarjeta guardada. Es el token de la tarjeta, quien el comercio debe seguir enviandole en la creación de cargos usando a DEUNA.
  • Como se puede ver en el ejemplo de la respuesta (response body), los campos is_valid, verified_by, verify_at (UTC) son usados cuando el comercio tiene activada la funcionalidad de verificación de tarjetas que puedes conocer más acá.

Obtén el DEUNA user-token de un usuario previamente creado en DEUNA para más operaciones

Recuerda que el user token (token) en la respuesta cuando creas a un usuario expira, por lo que cuando expire y quieras realizar una operación sobre el usuario, debes usar el siguiente API para refrescar el token.

Para ver como entregar de forma segura un token autorizado haz click aquí.

Obtén las credenciales de pago asociadas a un usuario

Algunos comercios que no almacenan los tokens de las tarjetas de DEUNA en su sistema, utilizan este API cada vez que le deben mostrar al usuario sus credenciales de pago almacenadas. Acá puedes ver como obtener las credenciales de pago asociadas a un usuario.

Obtén información de una credencial de pago específica asociada a un usuario

Haz click aquí para mas información.

Elimina una credencial de pago asociada a un usuario

Haz click aquí para mas información.


Widget de credenciales de pago: utiliza el white-labeled widget de recolección de credenciales de pago preconstruido por DEUNA

En DEUNA, hemos construido para conveniencia y facilidad de los comercios, un widget white-label y 100% personalizable que pueda combinar con el UI/UX del comercio actual y pueda ahorrarle al comercio la integración por APIs que suele ser más compleja. Este widget se encarga de refrescar el token, si es necesario, almacenar la credencial de pago, adaptar el formulario según lo que se necesite de información para el método de pago que el usuario quiere guardar para uso futuro, etc. Este widget puede ser integrado por el comercio usando nuestros SDKs disponibles tanto para Web, iOS y Android.

  1. Web SDK:
    1. Widget completo
    2. Campos modulares (secure fields)
  2. iOS SDK:
    1. Widget completo
  3. Android SDK:
    1. Widget completo