Tarjeta almacenada
Almacene la información de pago del cliente para compras recurrentes y por suscripción.
Optimice el proceso de tarjeta almacenada y reduzca su carga de cumplimiento PCI generando un token seguro para los clientes que opten por guardar su información de pago con su negocio.
Un caso de uso típico puede seguir estos pasos:
Mientras navega en su sitio web, el cliente selecciona guardar su tarjeta para uso futuro.
Rapyd almacena los datos de la tarjeta y vincula la tarjeta al identificador personal único de Rapyd del cliente.
El cliente compra un artículo por 9.99 USD (dólares estadounidenses) utilizando la tarjeta almacenada.
Un mes después, vuelven a comprar otro artículo por 9,99 USD (dólares estadounidenses).
Su sitio web muestra la tarjeta almacenada como el método de pago seleccionado.
El cliente simplemente hace clic en Pagar ahora.
Múltiples métodos de pago
Este caso de uso describe a un cliente que almacena un único método de pago con Rapyd. Sin embargo, los clientes pueden almacenar múltiples métodos de pago si así lo desean.
Seleccione la tarjeta que se utilizará para el pago.
Haga clic en el ícono de lápiz para editar los datos de la tarjeta.

Opcional: Puede actualizar los datos de la tarjeta. Haga clic en Actualizar para guardar los cambios.
Haga clic en Realizar su pedido.

Redirección a la página de Pago exitoso.
Haga clic en Finalizar.

La forma de encontrar los métodos específicos de pago con tarjeta que aceptará y los campos requeridos correspondientes que los clientes deben completar se describe en Cómo funciona.

Un cliente en su sitio web agrega un artículo al carrito de compras y presiona el botón de checkout. El cliente completa la información de la tarjeta y selecciona Guardar los datos de la tarjeta para uso futuro. Luego, el cliente hace clic en Pagar ahora.
Su sitio web solicita a Rapyd que cree un ID de cliente.
Luego, su sitio web solicita a Rapyd que cree un Auth por $0 para validar la tarjeta utilizando el ID de cliente.
Rapyd envía a su sitio web el ID de cliente para utilizar la tarjeta almacenada como el método de pago predeterminado del cliente.
Nota
Para obtener más información sobre cómo guardar la información de la tarjeta del cliente mediante una página alojada, consulte Guarde los detalles de la tarjeta con Rapyd Checkout.

El backend del sitio web solicita a Rapyd que procese el pago del cliente, especificando el monto, la moneda y el ID de cliente.
Rapyd procesa la transacción utilizando la tarjeta almacenada vinculada al ID de cliente.Cuando el proceso se completa correctamente, Rapyd notifica al backend del sitio web.
Su sitio web muestra una página que informa al cliente que la compra se completó correctamente.

El cliente regresa un mes después, agrega un nuevo eBook al carrito de compras y realiza el checkout.
Con base en la información intercambiada con Rapyd, su sitio web muestra la tarjeta almacenada como el método de pago seleccionado.
El cliente hace clic en Pagar ahora .

El backend del sitio web solicita a Rapyd que procese el pago del cliente, especificando el monto, la moneda y el ID de cliente.
Rapyd procesa la transacción utilizando la tarjeta almacenada vinculada al ID de cliente.Cuando el proceso se completa correctamente, Rapyd notifica al backend del sitio web
Su sitio web muestra al cliente una página de “compra exitosa”.
Decida qué métodos de pago con tarjeta aceptará, para que el cliente pueda especificar sus métodos de pago en la página de pago. Utilice Listar métodos de pago por país con los siguientes parámetros:
US y USD se utilizan como ejemplo de país y moneda.
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
país | Ingrese US como el código del país. |
moneda | Ingrese USD como el código de la moneda. |
Solicitud de listado de métodos de pago por país
Cree una solicitud para obtener una lista de todos los métodos de pago disponibles en US.
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=US¤cy=USD // Message body absent
.NET Core
using System; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string country = "US"; string currency = "USD"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment_methods/country?country={country}¤cy={currency}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment_methods/country?country=US¤cy=USD'); console.log(result); } catch (error) { console.error('Error completing request', error); } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); try { $object = make_request('get', '/v1/payment_methods/country?country=US¤cy=USD'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Python
from pprint import pprint from utilities import make_request country = 'US' currency = 'USD' results = make_request(method='get', path=f'/v1/payment_methods/country?country={country}¤cy={currency}') pprint(results)
Respuesta de listado de métodos de pago por país
El Tipo de método de pago describe los campos incluidos en la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "cfa35a73-aa0b-4e7e-839c-4c3b6149edd7" }, "data": [{ "type": "us_debit_visa_card", "name": "Visa", "category": "card", "image": "https://iconslib.rapyd.net/checkout/us_visa_card.png", "country": "us", "payment_flow_type": "card", "currencies": [ "USD" ], "status": 1, "is_cancelable": false, "payment_options": [{ "name": "customer", "type": "customer", "regex": "", "description": "make sure a customer was created with first_name, last_name and email", "is_required": true, "is_updatable": false } ], "is_expirable": false, "is_online": false, "minimum_expiration_seconds": null, "maximum_expiration_seconds": null } ] }
La sección datos de la respuesta muestra que una tarjeta Visa es una opción de pago aceptable.
Nota
Una respuesta real generalmente enumera muchos métodos de pago.
Debe identificar los campos que el cliente debe completar para el método de pago.
Para identificar estos campos, utilizará Obtener campos requeridos del método de pago con el siguiente parámetro.
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
tipo | Ingrese us_debit_visa_card como el tipo de método de pago. |
Solicitud de obtención de los campos requeridos del método de pago
Cree una solicitud para obtener el conjunto de campos requeridos para una tarjeta Visa.
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/us_debit_visa_card/required_fields // Message body absent
.NET Core
using System; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string type = "us_visa_card"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment_methods/{type}/required_fields"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
JavaScript
const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment_methods/us_visa_card/required_fields'); console.log(result); } catch (error) { console.error('Error completing request', error); } }
PHP
<?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); try { $object = make_request('get', '/v1/payment_methods/us_visa_card/required_fields'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Python
from pprint import pprint from utilities import make_request payment_method = 'us_visa_card' results = make_request(method='get', path=f'/v1/payment_methods/{payment_method}/required_fields') pprint(results)rom pprint import pprint from utilities import make_request country = 'US' currency = 'USD' results = make_request(method='get', path=f'/v1/payment_methods/country?country={country}¤cy={currency}') pprint(results)
Respuesta de obtención de los campos requeridos del método de pago
El Tipo de método de pago describe los campos incluidos en la respuesta.
Respuesta
{ “status”: { “error_code”: “”, “status”: “SUCCESS”, “message”: “”, “response_code”: “”, “operation_id”: “598b1a00-e302-4037-b0ef-aac895974e9e” }, “data”: { “type”: “us_visa_card”, “fields”: [ { “name”: “number”, “type”: “string”, “regex”: “”, “is_required”: true, “instructions”: “card number” }, { “name”: “expiration_month”, “type”: “string”, “regex”: “”, “is_required”: true, “instructions”: “expiration month as string, 01-12” }, { “name”: “expiration_year”, “type”: “string”, “regex”: “”, “is_required”: true, “instructions”: “expiration year in to digits as string, 18-99" }, { “name”: “cvv”, “type”: “string”, “regex”: “”, “is_required”: false, “instructions”: “card cvv” }, { “name”: “name”, “type”: “string”, “regex”: “”, “is_required”: false, “instructions”: “card holder name” }, { “name”: “address”, “type”: “Address”, “regex”: “”, “is_required”: false, “instructions”: “card billing address. see Address object for more details” } ], “payment_method_options”: [ { “name”: “3d_required”, “type”: “string”, “regex”: “”, “description”: “”, “is_required”: false, “is_updatable”: false } ], “payment_options”: [ { “name”: “customer”, “type”: “customer”, “regex”: “”, “description”: “make sure a customer was created with first_name, last_name and email”, “is_required”: true, “is_updatable”: false } ], “minimum_expiration_seconds”: null, “maximum_expiration_seconds”: null } }
La respuesta muestra que, para una tarjeta Visa de EE. UU., es obligatorio proporcionar los siguientes campos:
númeromes_expiraciónaño_expiraciónnombrecvv
Asegúrese de que el cliente complete todos estos campos.
Cuando su cliente guarda los datos de su tarjeta, Rapyd crea un ID de cliente único, almacena la tarjeta y la vincula a dicho ID. Utilice este ID siempre que necesite que Rapyd gestione una solicitud para este cliente. El requisito mínimo para crear el ID es el nombre del cliente. Envíe a Rapyd una solicitud para crear el ID del cliente y almacenar la tarjeta.
Para ello, utilizará Crear cliente con los siguientes parámetros:
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
nombre | Ingrese Jane Doe como el nombre del cliente. |
método_pago | Ingrese un objeto con los siguientes campos:
|
Solicitud de creación de cliente
Usted solicita a Rapyd que cree un ID de cliente y un método de pago para su cliente.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/customers // Message body: { "name": "Jane Doe", "payment_method": { "type": "us_debit_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "10", "expiration_year": "20", "cvv": "123", "name": "Jane Doe" } } }
Python
from pprint import pprint from utilities import make_request customer_body = { "name": "Jane Doe", "payment_method": { "type": "us_visa_card", "fields": { "number": "4111111111111111", "expiration_month": "10", "expiration_year": "20", "cvv": "123", "name": "Jane Doe" } } } create_customer_response = make_request(method='post', path='/v1/customers', body=customer_body) pprint(create_customer_response)
Respuesta de creación de cliente
El Objeto de cliente describe los campos incluidos en la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "92b400c5-6c1d-484c-b327-bb7015897f89" }, "data": { "id": "cus_8ded332b08966abf51bdc28c106acb7c", // ... "name": "Jane Doe", "default_payment_method": "card_dbc9f6743ec2ab00486843edfdca42d9", // ... "payment_methods": { "data": [ { "id": "card_dbc9f6743ec2ab00486843edfdca42d9", "type": "us_debit_visa_card", "category": "card", "metadata": null, "image": "https://iconslib.rapyd.net/checkout/us_visa_card.png", "name": "Jane Doe", "last4": "1111", "cvv_check": "unchecked", // ... "expiration_year": "20", "expiration_month": "10", // ... } ], // ... "url": "/v1/customers/cus_8ded332b08966abf51bdc28c106acb7c/payment_methods" }, // ... "created_at": 1581246256, // ... } }
La sección datos de esta respuesta muestra lo siguiente:
Rapyd crea un ID de cliente para su cliente. El ID del cliente comienza con cus_. El valor del
Iddel cliente en el código de ejemplo anterior es cus_8ded332b08966abf51bdc28c106acb7c. Cuando ejecute este ejemplo en su propio sandbox, obtendrá un ID de cliente diferente.Rapyd también crea un ID de tarjeta para su cliente. El ID de la tarjeta comienza con tarjeta_. El
Idde la tarjeta en el código de ejemplo anterior es card_dbc9f6743ec2ab00486843edfdca42d9. Esta tarjeta queda almacenada como elmétodo_de_pago_predeterminado.
Cuando su cliente paga con su tarjeta almacenada, usted envía el pago a Rapyd para su procesamiento.
Para enviar el pago del cliente, utilice Crear pago con los siguientes parámetros:
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
monto | Ingrese 9.99 como el monto del pago. |
moneda | Ingrese USD como el código de la moneda. |
cliente | Ingrese el 'customer_id' que recibió cuando creó el cliente en su sandbox.Para los fines de este caso de uso, se utiliza cus_8ded332b08966abf51bdc28c106acb7c, que es el ID de cliente creado en el sandbox. |
Solicitud de creación de pago
Solicite a Rapyd que procese el pago de su cliente por 9.99 USD (dólares estadounidenses), tal como se muestra en el código de ejemplo a continuación.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 9.99, "currency": "USD", "customer": "cus_8ded332b08966abf51bdc28c106acb7c" }
Python
from pprint import pprint from utilities import make_request payment_body = { "amount": 9.99, "currency": "USD", "customer": "cus_8ded332b08966abf51bdc28c106acb7c" } create_payment_response = make_request(method='post', path='/v1/payments', body=payment_body) pprint(create_payment_response)
Respuesta de creación de pago
El Objeto de pago describe los campos incluidos en la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "4e44e8c1-ee8c-411a-a2de-a2a2ae0122d3" }, "data": { "id": "payment_7b4cb9456f1ff73132831fc2e35d88be", "amount": 9.99, "original_amount": 9.99, "is_partial": false, "currency_code": "USD", "country_code": "US", "status": "CLO", // ... "customer_token": "cus_8ded332b08966abf51bdc28c106acb7c", "payment_method": "card_dbc9f6743ec2ab00486843edfdca42d9", "expiration": 0, "captured": true, // ... "created_at": 1581248060, // ... "paid": true, "paid_at": 1581248060, // ... "payment_method_type": "us_debit_visa_card", "payment_method_type_category": "card", // ... } }
La respuesta (en el código de ejemplo anterior) muestra que Rapyd procesó correctamente el pago según el monto, la moneda y el ID del cliente. Se pagó un monto de 9.99 USD (dólares estadounidenses) desde la tarjeta del cliente.
Siempre recibirá una respuesta similar. La única diferencia será la fecha, el ID del pago y el monto, en caso de que no sea idéntico.
Puede verificar que el pago fue exitoso, ya que el estado (Dentro de datos) es CLO (cerrado). El Objeto de pago enumera los valores posibles para el estado.
En este punto, puede informar al cliente que la compra se ha completado.
¿Busca información técnica más detallada?
¿Desea ver los métodos y objetos de la API de Rapyd que utilizará? Merchant API Reference para obtener más detalles técnicos.