Pagos en efectivo
Aumente los ingresos integrando un mejor sistema de cobro de efectivo.
red mundial de venta libre basada en efectivo de Rapyd abre el método de pago más popular del mundo. Permita que sus clientes paguen en efectivo en su sitio web un artículo que hayan agregado a su
Según la información intercambiada con Rapyd, su sitio web proporciona a su cliente un número de referencia de pago que se puede mostrar al usuario como un código QR o un código de barras que se puede escanear. El cliente va a una tienda de venta libre cercana POS ubicación, muestra el número de referencia del pago al cajero y paga en efectivo.
Selecciona el método de pago.
Ingresa tu nombre y dirección de correo electrónico.
Haga clic Haga su pedido.

Copia el identificador de la transacción para tus registros.
Complete las instrucciones de pago.
Haga clic Finalizar.

Encontrará los métodos de pago en efectivo específicos en POS las ubicaciones que aceptarás y los campos obligatorios correspondientes que los clientes deben rellenar se describen en Cómo funciona.

El cliente confirma el pago en efectivo al finalizar la compra en el sitio web.
El backend del sitio web le pide a Rapyd que cree un pago en efectivo.
Rapyd procesa la transacción y responde con detalles de la transacción e instrucciones para el cliente.
Su sitio web muestra las instrucciones de pago, incluidos el importe y el número de referencia.

El cliente va al punto de venta, muestra el número de referencia del pago y paga en efectivo.
La ubicación del punto de venta notifica a Rapyd que se recibió el efectivo.
Rapyd notifica el back-end de tu sitio web a través de un Webhook con pago completado que el pago se completó correctamente.
Notificas al cliente que la compra se ha realizado correctamente.
Los siguientes diagramas de secuencia de mensajes describen cómo se intercambia la información entre Rapyd, el comerciante, los clientes del comerciante y el POS.
Creación de un pago en efectivo: éxito
Crear pago en efectivo: caducado
Decide los métodos de pago que aceptarás para que el cliente pueda especificar sus métodos de pago en tu página de pago. Para hacerlo, usa Enumere los métodos de pago por país con los siguientes parámetros:
Nota
Con fines ilustrativos, utilizaremos PE (Perú) y PEN (peso peruano) para el país y la moneda en los códigos de muestra que aparecen a continuación.
Descripción de los parámetros de consulta
Parámetro de consulta | Descripción |
|---|---|
país | Entrar PE como código de país. |
moneda | Entrar BOLÍGRAFO como código de moneda. |
Solicitud de lista de métodos de pago por país
Solicita una lista de todos los métodos de pago disponibles (PEN en este caso).
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=PE¤cy=PEN // Message body absent
.NET Core
using System; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string country = "PE"; string currency = "PEN"; 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=PE¤cy=PEN'); 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=PE¤cy=PEN'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request country = 'PE' currency = 'PEN' results = make_request(method='get', path=f'/v1/payment_methods/country?country={country}¤cy={currency}') pprint(results)
Lista de métodos de pago por país Respuesta
Listar métodos de pago por país describe los campos de la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "a575ab97-c6ec-47f9-856d-0295f73ac6c2" }, "data": [ { "type": "pe_cajaarequipa_cash", "name": "Caja Arequipa Peru/Cash Payments", "category": "cash", "image": "https://iconslib.rapyd.net/checkout/pe_cajaarequipa_cash.png", "country": "pe", "payment_flow_type": "cash", "currencies": [ "PEN” ], "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 }, { "name": "description", "type": "string", "regex": "", "description": "the description field must be filled in.", "is_required": true, "is_updatable": false }, { "name": "expiration", "type": "string", "regex": "^[0-9]{10}$", "is_required": true } ], "is_expirable": false, "is_online": false, "minimum_expiration_seconds": null, "maximum_expiration_seconds": null } ] }
La respuesta muestra que pe_cajaarequipa_cash es un método de pago aceptable en este caso.
Nota
Una respuesta completa de la API suele incluir muchos métodos de pago.
Identifica los campos que tu cliente debe completar para el método de pago. Para hacerlo, usa Campos obligatorios para obtener el método de pago con el siguiente parámetro:
Descripción de los parámetros de ruta
Parámetro de ruta | Descripción |
|---|---|
tipo | Entrar pe_cajaarequipa_cash como tipo de método de pago. |
Obtener el método de pago Campos obligatorios Solicitud
Solicita el conjunto de campos obligatorios para un pago en efectivo (Caja Arequipa Perú/Pago en efectivo en este caso).
Solicitud
// Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/pe_cajaarequipa_cash/required_fields // Message body absent
.NET Core
using System; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { string type = "pe_cajaarequipa_cash"; 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/pe_cajaarequipa_cash/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/pe_cajaarequipa_cash/required_fields'); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request payment_method = 'pe_cajaarequipa_cash' results = make_request(method='get', path=f'/v1/payment_methods/{payment_method}/required_fields') pprint(results)
Obtener el método de pago Campos obligatorios Respuesta
Campos obligatorios para obtener el pago describe los campos de la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "b7ea9de2-28b7-49a1-8b6c-dac900b257b7" }, "data": { "type": "pe_cajaarequipa_cash", "fields": [ { "name": "userubigeo", "type": "string", "regex": "", "is_required": false, "instructions": "6 digits which identify State, Province and District" } ], "payment_method_options": [], "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 }, { "name": "description", "type": "string", "regex": "", "description": "the description field must be filled in.", "is_required": true, "is_updatable": false }, { "name": "expiration", "type": "string", "regex": "^[0-9]{10}$", "is_required": true } ], "minimum_expiration_seconds": null, "maximum_expiration_seconds": null } }
Cuando tu cliente haga el pago en tu sitio web, usa Crea un pago con los siguientes parámetros para que Rapyd procese el pago bancario de su cliente:
Descripción de los parámetros corporales
Parámetro corporal | Descripción |
|---|---|
método_pago | Introduzca un objeto con el siguiente campo: |
cantidad | Entrar 100 como importe del pago. |
moneda | Entrar BOLÍGRAFO como código de moneda. |
Crear solicitud de pago
Solicita a Rapyd que procese el pago de tu cliente (100 PEN en este caso) como una transacción en efectivo.
Solicitud
// Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 100, "currency": "PEN", "payment_method": { "type": "pe_cajaarequipa_cash", "fields": { } } }
.NET Core
using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var requestObj = new { amount = 100.00, currency = "PEN", payment_method = new { type = "pe_cajaarequipa_cash" }, }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments", request); 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 body = { amount: 100.00, currency: 'PEN', payment_method: { type: 'pe_cajaarequipa_cash' } }; const result = await makeRequest('POST', '/v1/payments', body); 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); $body = [ "amount" => "100.00", "currency" => "PEN", "payment_method" => [ "type" => "pe_cajaarequipa_cash" ] ]; try { $object = make_request('post', '/v1/payments', $body); var_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?>
Pitón
from pprint import pprint from utilities import make_request payment_body = { "amount": 100.00, "currency": "PEN", "payment_method": { "type": "pe_cajaarequipa_cash" } } results = make_request(method='post', path='/v1/payments', body=payment_body) pprint(results)
Crear respuesta de pago
Crear pago describe los campos de la respuesta.
Respuesta
{ "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "b046cb5a-0a90-44de-99b8-0ccdedb6ba73" }, "data": { "id": "payment_ad5b69484bf8863c5e14df82ca4895d5", "amount": 0, "original_amount": 100, "is_partial": false, "currency_code": "PEN", "country_code": "pe", "status": "ACT", "description": "test", "merchant_reference_id": "", "customer_token": "cus_7c4d7860c6b2db1a40da55920f33cf7c", "payment_method": "other_0eefd99416330f37687ed153b8c72db2", "expiration": 0, "captured": true, "refunded": false, "refunded_amount": 0, "receipt_email": "", "redirect_url": "", "complete_payment_url": "", "error_payment_url": "", "receipt_number": "", "flow_type": "", "address": null, "statement_descriptor": "Rapyd", "transaction_id": "", "created_at": 1600963416, "metadata": {}, "failure_code": "", "failure_message": "", "paid": false, "paid_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual_codes": {}, "textual_codes": { "TransactionID": "229845" }, "instructions": [], "ewallet_id": "ewallet_be4ba8f13da40caa59a7e03022a8acfe", "ewallets": [ { "ewallet_id": "ewallet_be4ba8f13da40caa59a7e03022a8acfe", "amount": 100, "percent": 100, "refunded_amount": 0 } ], "payment_method_options": {}, "payment_method_type": "pe_cajaarequipa_cash", "payment_method_type_category": "cash", "fx_rate": "", "merchant_requested_currency": null, "merchant_requested_amount": null, "fixed_side": "", "payment_fees": null, "invoice": "", "escrow": null, "group_payment": "", "initiation_type": "customer_present" } }
El datos la sección de esta respuesta muestra:
El pago
ides payment_ad5b69484bf8863c5e14df82ca4895d5. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posteriorEl
original_amountes 100.00.El
currency_codees BOLÍGRAFO.El
estadoes ACTUAR (activo). Esto significa que el proceso de pago está activo pero no está completo.El
códigopara la referencia de pago único es 229845. En este ejemplo, el código de pago es un número en formato de cadena. Los códigos de pago también pueden ser códigos de barras o códigos QR.Instrucciones para que tu cliente complete el pago.
Su sitio web muestra a su cliente:
el importe a pagar
el número de referencia del pago
las instrucciones para completar el pago.
Nota
Simulación de un pago en efectivo
El caja de arena no simula directamente la acción del cliente al depositar efectivo en un punto de venta. Puede simular esta acción Completar el pago. Para ello, necesitarás el ID de pago que generaste en tu sandbox.
Configure su sistema para recibir webhooks con el procedimiento descrito en Definición de un endpoint de webhook.
Una vez que el cliente haya realizado correctamente un pago:
La ubicación del punto de venta informa a Rapyd de que el pago se completó correctamente.
Rapyd le envía un webhook con los detalles de la transacción completada. Consulte Webhook: pago completado .
El webhook contiene los mismos tipos de información que la respuesta a la solicitud de creación de pago, excepto que el estado (bajo datos) ahora es CLO (cerrado). Esto indica que la transacción se ha completado.
En este punto, puedes mostrar un estado (correcto) en la pantalla para que tu cliente sepa que su compra se ha realizado correctamente y que puede continuar con la recogida de los artículos que ha comprado.