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, a continuación, paga solo una parte del importe requerido. Este caso de uso explora este problema. Cuando se realiza el pago parcial, Rapyd cierra la transacción y te envía un webhook con los detalles

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

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, pero solo una parte del monto requerido. La plataforma Rapyd notifica al back-end de tu sitio web que el pago se completó solo parcialmente. Tu sitio web notifica al cliente los pasos necesarios para completar

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

customer-checkout-cash.jpg
  1. Un cliente de tu sitio web añade un libro electrónico al carrito de compras y pulsa el botón de pago.

  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 Paga.

process-the-payment.jpg
  1. El back-end de tu 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 importe 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 tu sitio web que el pago es parcial y está cerrado.

  4. Le pides al cliente el dinero restante adeudado por la compra.

En tu página de pago, permites que el cliente especifique los métodos de pago. En primer lugar, debes decidir qué métodos de pago aceptarás. En este ejemplo, comprobarás si los métodos de pago en efectivo utilizan USD (dólares estadounidenses).

Para eso, utilizarás 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

país

Entrar NOSOTROS como código de país.

moneda

Entrar USD como código de divisa.

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
Lista de métodos de pago por país Respuesta

Echemos un vistazo a 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.

Debes averiguar qué campos debe rellenar el cliente para el método de pago.

Para ello, utilizarás el 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 us_moneygram_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 con MoneyGram.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/us_moneygram_cash/required_fields
        
        // Message body absent
Obtener el método de pago Campos obligatorios Respuesta

Echemos un vistazo a 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 se requieren campos para un pago en efectivo con MoneyGram.

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

Descripción de los parámetros corporales

Parámetro corporal

Descripción

método_pago

Introduzca un objeto con el siguiente campo: escriba - us_moneygram_cash

cantidad

Entrar 9.99 como importe del pago.

moneda

Entrar USD como código de divisa.

Crear solicitud de pago

Le pides a Rapyd que procese el pago de 9,99 USD (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

Echemos un vistazo a 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",
        
                //      ...
        
            }
        }

El datos la sección de esta respuesta muestra:

  • El pago id es payment_809838a4ff531cbeba84c04426c03d4a. Cuando ejecutes este ejemplo en tu propia zona de pruebas, obtendrás un ID diferente, que necesitarás para un paso posterior en este caso práctico

  • El original_amount es 9.99.

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

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

  • El código 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 importe a pagar, el número de referencia del pago y las instrucciones.

Simulación de 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:

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

  • cantidad - 5.49 - Es inferior al importe para el que se creó el pago.

  • es_parcial - cierto - Esto indica que no se recibió el importe total del pago.

Ahora puede mostrar al cliente una página para completar la compra del libro electrónico.

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

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