Saltar al contenido principal

Guardar método de pago

Para guardar un método de pago para uso futuro, debes generar un paymentToken al crear o confirmar el pago y, a continuación, almacenarlo en tu servidor. Este proceso se denomina habitualmente .

La tokenización protege los datos sensibles sustituyéndolos por un equivalente no sensible, conocido como token. El token no tiene significado ni valor externo. Es una referencia —o identificador— que, a través de un sistema de tokenización, apunta a los datos sensibles. Este proceso recopila de forma segura la información sensible de la tarjeta y evita el robo de datos.

1. Genera el token de pago

Al crear un pago Del lado del servidor

POST https://api.monei.com/v1/payments
curl --request POST 'https://api.monei.com/v1/payments' \
--header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 110,
"currency": "EUR",
"orderId": "14379133960355",
"generatePaymentToken": true,
"callbackUrl": "https://example.com/checkout/callback",
"completeUrl": "https://example.com/checkout/complete"
}'

Consulta todos los parámetros de solicitud disponibles.

nota

Para obtener el token de pago para uso futuro sin cobrar a tu cliente, crea un pago con los siguientes parámetros:

{
"amount": 0,
"currency": "EUR",
"orderId": "14379133960355",
"transactionType": "VERIF",
"generatePaymentToken": true,
"callbackUrl": "https://example.com/checkout/callback",
"completeUrl": "https://example.com/checkout/complete"
}

Al confirmar un pago Del lado del servidor

POST https://api.monei.com/v1/payments/:id/confirm
curl --request POST 'https://api.monei.com/v1/payments/26d1f09c42bb59a29b06e280f9553cd5/confirm' \
--header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \
--header 'Content-Type: application/json' \
--data-raw '{
"paymentToken": "7cc38b08ff471ccd313ad62b23b9f362b107560b",
"generatePaymentToken": true
}'

Consulta todos los parámetros de solicitud disponibles.

Al enviar un formulario de pago Del lado del cliente

Puedes pasar generatePaymentToken: true al enviar un formulario de pago. Esto es útil para permitir que tus clientes elijan si desean guardar el método de pago para uso futuro.

checkout.html
<form
action="https://secure.monei.com/payments/{{payment_id}}/confirm"
method="post"
id="payment-form"
>
<div class="card-field">
<div id="card-input">
<!-- A MONEI Card Input Component will be inserted here. -->
</div>
<!-- Used to display card errors. -->
<div id="card-error"></div>
</div>
<label>
<!-- A checkbox to save payment method -->
<input type="checkbox" name="generatePaymentToken" value="true" />
save payment method
</label>
<button type="submit" id="payment-button">Submit payment</button>
</form>

Consulta la integración del método de pago con tarjeta para más detalles.

2. Obtén y almacena el token de pago

Una vez completado el pago, el cliente es redirigido a la completeUrl con el parámetro de consulta payment_id. Puedes obtener el paymentToken permanente llamando al endpoint obtener pago.

Almacena este paymentToken en tu base de datos junto con la información del cliente. La próxima vez que el cliente realice una compra, crea un pago con este token para omitir el formulario de pago. Ten en cuenta que el cliente deberá completar igualmente la verificación .

nota

MONEI no devolverá el paymentToken en la solicitud HTTP POST a la callbackUrl por motivos de seguridad. Debes llamar al endpoint obtener pago para obtener el token. El paymentToken generado no caduca y solo debe utilizarse del lado del servidor.

3. Cobra con un método de pago guardado

Cómo cobras con un paymentToken guardado depende de si el cliente está presente:

  • (un clic) — el cliente está en tu sitio y elige su tarjeta guardada. Crea un pago con el paymentToken para saltarte el formulario. Es posible que el cliente aún tenga que completar 3D Secure.
  • Iniciado por el comercio / sin el cliente presente — cobras al cliente cuando no está presente (por ejemplo, plazos o tu propia facturación recurrente). Marca el primer pago de la serie con el parámetro sequence y, después, cobra los pagos siguientes con el paymentToken y el sequenceId de ese primer pago. Los pagos iniciados por el comercio no piden al cliente completar 3D Secure cada vez. Consulta la referencia de crear pago para ver los campos exactos de sequence.
tip

Para la facturación recurrente estándar, usa MONEI Suscripciones — guarda el método de pago, gestiona el ciclo de facturación, los reintentos y la secuencia iniciada por el comercio por ti, así no tienes que gestionar tokens manualmente.