Skip to main content

Documentación

Pagos parciales

Los clientes pueden pagar sus compras con más de un método de pago, como efectivo y transferencia bancaria.

En ocasiones, un cliente elige pagar en efectivo o mediante transferencia bancaria y luego decide pagar solo una parte del monto requerido. Este caso de uso explora esta situación. Cuando se realiza el pago parcial, Rapyd cierra la transacción y le envía un webhook con los detalles.

Un cliente elige «pagar en efectivo» en su página de pago para un artículo que ha agregado a su carrito de compras.

El cliente va a un punto de pago en mostrador, muestra el número de referencia del pago al cajero y paga en efectivo, pero solo una parte del monto requerido. La plataforma Rapyd notifica al back-end de su sitio web que el pago se completó solo parcialmente. Su sitio web notifica al cliente los pasos necesarios para completar la compra.

Puede encontrar los métodos de pago específicos que aceptará y los campos obligatorios correspondientes que los clientes deben llenar en la sección Cómo funciona.

customer-checkout-cash.jpg
  1. Un cliente en su sitio web añade un eBook al carrito de compras y pulsa el botón checkout.

  2. El sitio web muestra las opciones de métodos de pago.

  3. El cliente selecciona un método de pago en efectivo y hace clic en Pagar.

process-the-payment.jpg
  1. El back-end de su sitio web le pide a Rapyd que cree un pago en efectivo.

  2. Rapyd procesa la transacción y responde con detalles de la transacción e instrucciones para el cliente.

  3. Su sitio web muestra las instrucciones de pago, incluidos el monto y el número de referencia.

tracking-cash-payment.jpg
  1. El cliente va al punto de venta, muestra el número de referencia del pago y paga en efectivo.

  2. La ubicación del punto de venta notifica a Rapyd que se recibió el efectivo.

  3. Rapyd notifica al back-end de su sitio web que el pago es parcial y está cerrado.

  4. Solicita al cliente el pago del dinero restante de la compra.

En su página de pago, permite que el cliente especifique los métodos de pago. En primer lugar, debe decidir qué métodos de pago aceptará. En este ejemplo, marque los métodos de pago en efectivo utilizando USD (dólares estadounidenses).

Para eso, utilizar Listar los métodos de pago por país con los siguientes parámetros:

Descripción de los parámetros de consulta

Parámetro de consulta

Descripción

country

Introducir US como código del país.

currency

Introducir USD como el código de moneda.

Solicitud de lista de métodos de pago por país

Solicita la lista de todos los métodos de pago disponibles en EE. UU.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=US&currency=USD
        
        // Message body absent
Respuesta de lista de métodos de pago por país

Veamos la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "cfa35a73-aa0b-4e7e-839c-4c3b6149edd7"
            },
            "data": [{
                    "type": "us_moneygram_cash",
                    "name": "MoneyGram",
                    "category": "cash",
                    "image": "https://iconslib.rapyd.net/checkout/us_moneygram_cash.png",
                    "country": "us",
                    "payment_flow_type": "cash",
                    "currencies": [
                        "USD"
                    ],
                    "status": 1,
                    "is_cancelable": false,
                    "payment_options": [],
                    "is_expirable": false,
                    "is_online": false,
                    "minimum_expiration_seconds": null,
                    "maximum_expiration_seconds": null
                }
            ]
        }

La respuesta muestra que us_moneygram_cash es un método de pago aceptable.

Nota: Una respuesta real suele incluir muchos métodos de pago.

Debe averiguar qué campos debe llenar el cliente para el método de pago.

Para ello, utilizar Obtener los campos obligatorios del método de pago con el siguiente parámetro:

Descripción de los parámetros de ruta

Parámetro de ruta

Descripción

type

Introducir us_moneygram_cash como tipo de método de pago.

Solicitud de obtener los campos obligatorios del método de pago

Solicite el conjunto de campos obligatorios para un pago en efectivo con MoneyGram.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/us_moneygram_cash/required_fields
        
        // Message body absent
Respuesta de obtener los campos obligatorios del método de pago

Veamos la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "be4d09f5-db63-43b9-8486-6d91a9c816cc"
            },
            "data": {
                "type": "us_moneygram_cash",
                "fields": [],
                "payment_method_options": [],
                "payment_options": [],
                "minimum_expiration_seconds": null,
                "maximum_expiration_seconds": null
            }
        }

La respuesta muestra que no hay campos obligatorios para un pago en efectivo con MoneyGram.

Al solicitar a Rapyd que procese un pago en efectivo, utilizar Crear pago con los siguientes parámetros:

Descripción de los parámetros del cuerpo

Parámetro del cuerpo

Descripción

payment_method

Introducir un objeto con el siguiente campo: type - us_moneygram_cash

amount

Introducir 9,99 como monto del pago.

currency

Introducir USD como el código de moneda.

Crear solicitud de pago

Solicita a Rapyd que procese el pago de USD 9,99 (dólares estadounidenses) como una transacción en efectivo.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body:
        {
            "amount": 9.99,
            "currency": "USD",
            "payment_method": {
                "type": "us_moneygram_cash",
                "fields": {}
           }
        }
Crear respuesta de pago

Veamos la respuesta.

    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "b98b2e90-aefd-48b2-aa0e-785b33640240"
            },
            "data": {
                "id": "payment_809838a4ff531cbeba84c04426c03d4a",
                "amount": 0,
                "original_amount": 9.99,
                "is_partial": false,
                "currency_code": "USD",
                "country_code": "us",
                "status": "ACT",
        
                //      ...
        
                "customer_token": "cus_d9cb9eb9e3f09f94d507ad62cb897441",
                "payment_method": "other_08dba6d49d5c52b8d9b9647f22dea8f8",
        
                //      ...
        
                "captured": true,
        
                //      ...
        
                "created_at": 1585569886,
        
                //      ...
        
                "paid": false,
                "paid_at": 0,
        
                //      ...
        
                "visual_codes": {},
                "textual_codes": {
                    "code": "8765434427478124"
                },
                "instructions": [
                    {
                        "name": "instructions",
                        "steps": [
                            {
                                "step1": "Scan or show your transaction code to the cashier and pay the amount"
                            }
                        ]
                    }
                ],
        
                //      ...
        
                "payment_method_type": "us_moneygram_cash",
                "payment_method_type_category": "cash",
        
                //      ...
        
            }
        }

La sección data de esta respuesta muestra:

  • El id del pago es payment_809838a4ff531cbeba84c04426c03d4a. Cuando ejecute este ejemplo en su sandbox, obtendrá un ID diferente, que necesitará para un paso posterior en este caso de uso.

  • El original_amount es 9,99.

  • El currency_code es USD (Dólares estadounidenses).

  • El status es ACT (activo). Esto significa que el proceso de pago está activo pero no está completo.

  • El code para la referencia de pago único es 8765434427478124. 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.

  • Hay instrucciones para su cliente.

Tu sitio web muestra al cliente el monto a pagar, el número de referencia del pago y las instrucciones.

Simular un pago en efectivo

No es posible simular un pago parcial.

Una vez realizado el pago parcial:

  1. La ubicación del punto de venta informa a Rapyd de que se recibió el pago parcial.

  2. Rapyd le envía un webhook con los detalles de la transacción completada.

    • Webhook PAYMENT_COMPLETED

      • {
                "id": "wh_e5f1259ae010a68c1bf191bbf8562a6c",
                "type": "PAYMENT_COMPLETED",
                "data": {
                          "id": "payment_809838a4ff531cbeba84c04426c03d4a",
                          "paid": true,
                          "order": null,
                          "amount": 5.49,
                          "escrow": {
                            "id": "",
                            "status": "",
                            "payment": "payment_809838a4ff531cbeba84c04426c03d4a",
                            "created_at": 0,
                            "updated_at": 0,
                            "amount_on_hold": 0,
                            "escrow_release_days": null,
                            "total_amount_released": 0,
                            "last_payment_completion": null
              }
                        },
                        "status": "CLO",
                        "address": {
                                "id": "address_8585f183015c79056aaac81f404377cf",
                                "zip": "12345",
                                "city": "Anytown",
                                "name": "John Doe",
                                "state": "NY",
                                "canton": "",
                                "line_1": "123 Main Street",
                                "line_2": "",
                                "line_3": "",
                                "country": "USA",
                                "district": "",
                                "metadata": {},
                                "created_at": 1570705044,
                                "phone_number": "+11570705033"
                        },
                        "dispute": null,
                        "fx_rate": "",
                        "invoice": "",
                        "outcome": null,
                        "paid_at": 1570705044,
                        "refunds": null,
                        "captured": null,
                        "ewallets": [{
                                        "amount": 5.49,
                                        "percent": 100,
                                        "ewallet_id": "ewallet_a9fc4a9abf57b62986ac278466c6e45e",
                                        "refunded_amount": 0,
                                        "released_amount": 0
                                }
                        ],
                        "metadata": {
                "merchant_defined": true
            },
                        "refunded": false,
                        "flow_type": "",
                        "created_at": 1570705044,
                        "ewallet_id": "ewallet_a9fc4a9abf57b62986ac278466c6e45e",
                        "expiration": 1573296810,
                        "is_partial": true,
                        "description": "The payment is partially complete.",
                        "country_code": "US",
                        "failure_code": "",
                        "instructions": [],
                        "payment_fees": null,
                        "redirect_url": "",
                        "visual_codes": {},
                        "currency_code": "USD",
                        "group_payment": "",
                        "receipt_email": "johndoe@rapyd.net",
                        "textual_codes": {},
                        "customer_token": "cus_d9cb9eb9e3f09f94d507ad62cb897441",
                        "payment_method": "other_08dba6d49d5c52b8d9b9647f22dea8f8",
                        "receipt_number": "",
                        "transaction_id": "",
                        "failure_message": "",
                        "original_amount": 25.25,
                        "refunded_amount": 0,
                        "error_payment_url": "https://www.computerhope.com/jargon/e/error.gif",
                        "payment_method_type": "us_moneygram_cash",
                        "complete_payment_url": "http://www.complete.com/images/complete-logo-website.svg",
                        "statement_descriptor": "statement_1570705033",
                        "merchant_reference_id": "2311-1570705033",
                        "payment_method_options": {},
                        "merchant_requested_amount": null,
                        "merchant_requested_currency": null,
                        "payment_method_type_category": "card"
                },
                "trigger_operation_id": "c5dc010e-48ab-4ed2-b2d3-b08481bf32db",
                "status": "NEW",
                "created_at": 1570705046
        }

Tenga en cuenta los siguientes datos:

  • status - CLO - Esto indica que la transacción está cerrada.

  • amount - 5,49 - Es menor que el monto para el que se creó el pago.

  • is_parcial - verdadero - Esto indica que no se recibió el monto total del pago.

Ahora puede mostrar al cliente una página para completar la compra del eBook.

¿Busca información técnica más detallada?

¿Desea ver los métodos y objetos de la API de Rapyd que utilizará? Ver Merchant API Reference para obtener más detalles técnicos.