Tarjeta almacenada
Almacene la información de pago del cliente para compras recurrentes y por suscripción.
Optimice el proceso de almacenamiento de tarjeta 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, vuelve 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 un clic para pagar.
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.

En la sección Cómo funciona se describe cómo encontrar los métodos de pago con tarjeta específicos que usted aceptará y los campos obligatorios correspondientes que los clientes deben completar.

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 elegir su método de pago en la página de finalización de compra. Utilice List Payment Methods by Country 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 |
|---|---|
country | Ingrese US como el código del país. |
currency | 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
Payment Method Type 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 data de la respuesta muestra que una tarjeta Visa es una opción de pago válida.
Nota
Una respuesta real generalmente muestra muchos métodos de pago.
Identifique los campos que el cliente debe completar para el método de pago.
Para identificar estos campos, utilice Get Payment Method Required Fields con el siguiente parámetro.
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
type | 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
Payment Method Type 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:
numberexpiration_monthexpiration_yearnamecvv
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á Create Customer con los siguientes parámetros:
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
name | Ingrese Jane Doe como el nombre del cliente. |
payment_method | 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
Customer Object 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 data 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 card_. El
Idde la tarjeta en el código de ejemplo anterior es card_dbc9f6743ec2ab00486843edfdca42d9. Esta tarjeta queda almacenada comodefault_payment_method.
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 Create Payment con los siguientes parámetros:
Descripción de los parámetros del cuerpo
Parámetro del cuerpo | Descripción |
|---|---|
amount | Ingrese 9.99 como el monto del pago. |
currency | Ingrese USD como el código de la moneda. |
customer | 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
Payment Object 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 status (dentro de data) es CLO (cerrado). Payment Object muestra los valores posibles para el status.
En este punto, puede informar al cliente que la compra se ha completado.
Consulta de nombre de cuenta
Añada el objeto full_name a la solicitud para realizar una consulta de nombre de cuenta (ANI). Los campos del objeto incluyen: first_name, middle_name, y last_name. El esquema de la tarjeta hace coincidir los detalles del titular de la tarjeta con la información bancaria del titular de la tarjeta. El ANI se utiliza para la gestión del fraude. Consulte Add Payment Method to Customer o Create Payment para obtener detalles adicionales.
Agregar método de pago a la solicitud del cliente
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/customers/payment_methods // Message body: { "type": "gb_visa_card", "fields": { "number": "4761340000001082", "expiration_month": "02", "expiration_year": "26", "cvv": "111", "name": "Jon Doo" }, "full_name": { "first_name": "John", "middle_name": "Johnson", "last_name": "Doe" }, "complete_payment_url": "https://complete.rapyd.net", "error_payment_url": "https://error.rapyd.net" }
Agregar método de pago a la respuesta del cliente
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "9ce88535-f718-4ea8-a265-554e6957a70e" }, "data": { "id": "card_e2bdbf293c33cb2ab87c1014fda5f5f6", "type": "gb_visa_card", "category": "card", "metadata": {}, "image": "", "webhook_url": "", "supporting_documentation": "", "next_action": "not_applicable", "full_name": { "first_name": "John", "middle_name": "Johnson", "last_name": "Doe" }, "account_name_inquiry": { "account_name_inquiry_result": "Partial match", "account_name_inquiry_details": { "first_name": "Match", "last_name": "Match", "middle_name": "No match" } }, "name": "Jon Doo", "last4": "1082", "acs_check": "unchecked", "cvv_check": "unchecked", "bin_details": { "type": "DEBIT", "brand": "VISA", "level": "GOLD", "issuer": "INTL HDQTRS-CENTER OWNED", "country": "SG", "bin_number": "476134" }, "expiration_year": "26", "expiration_month": "02", "fingerprint_token": "ocfp_b8eafaeeea548e97ef23914cffa7154a", "network_reference_id": "000000906217732", "complete_payment_url": "https://complete.rapyd.net", "error_payment_url": "https://error.rapyd.net" } }
¿Busca información técnica más detallada?
¿Desea ver los métodos y objetos de la API de Rapyd que utilizará? Visite Merchant API Reference para obtener más detalles técnicos.