Skip to main content

Documentación

Pago con FX

Permita a los clientes pagar en su moneda local.

La función Pago con divisas permite a sus clientes realizar transacciones en la moneda que elijan, incluso si esa moneda es diferente de la que admite su método de pago. El proceso de cambio de divisas es transparente para el cliente.

Puedes aceptar un pago con FX desde miles de métodos de pago (tarjeta, transferencia bancaria, Billetera electrónica, con diferentes monedas).

Los casos de uso comunes pueden incluir:

  • Vendes mercancía en tu tienda online y aceptas varios métodos de pago de clientes internacionales que utilizan una moneda local diferente.

  • Usted es un contratista independiente que acepta pagos de clientes internacionales.

Su empresa con sede en Europa vende productos en su tienda en línea. Un cliente de los Estados Unidos quiere comprarte un producto que cuesta 370 euros (euros). Sin embargo, el cliente utiliza un método de pago que solo admite USD (dólares estadounidenses).

Rapyd facilita la transición tanto para el comerciante como para el cliente a través de la función de pago con divisas.

Certificación PCI

Solo clientes con PCI-DSS La certificación puede gestionar la información de identificación personal de las tarjetas. Este método está disponible para los comerciantes que hayan firmado un acuerdo especial con Rapyd

Puedes aceptar un pago con FX desde miles de métodos de pago (tarjeta, transferencia bancaria, monedero electrónico, con diferentes monedas).

Cómo funciona describe cómo encontrar los métodos de pago específicos que aceptarás y sus campos obligatorios.

Paso 1: Compra por parte del cliente
fx-pmt.jpg
  1. Un cliente añade un artículo en su sitio web que cuesta 370 EUR (euros) a la cesta de la compra. El cliente quiere pagar en USD (dólares estadounidenses). El cliente pulsa el botón de pago y llega a la página de pago. El cliente selecciona el método de pago de su elección (tarjeta, transferencia bancaria, billetera electrónica, con diferentes monedas)

  2. Le pides a Rapyd los campos obligatorios del método de pago y se los presentas al cliente.

  3. El cliente rellena los detalles requeridos y confirma el pago pulsando Pague.

Paso 2: Procesamiento del pago

Nota

Comprueba si la moneda del tipo de método de pago es diferente de la moneda del sitio web.

process-fx-pmt.jpg
  1. El back-end de tu sitio web le pide a Rapyd que procese el pago con FX en la moneda del destinatario (EUR).

  2. Rapyd procesa el pago y envía una respuesta al back-end del sitio web.

  3. Tu sitio web muestra una página que indica al cliente que la compra se ha realizado correctamente.

Descubre cómo elegir los métodos de pago que aceptarás y busca sus campos obligatorios. El cliente debe rellenar estos campos para el método de pago.

En tu página de pago, permites al cliente elegir un método de pago. Para procesar el pago con FX, debes:

  1. Decide qué métodos de pago aceptarás.

  2. Para conocer los métodos de pago aceptados, utilice Enumere los métodos de pago por país con los siguientes parámetros:

Descripción de los parámetros de ruta

Parámetro de ruta

Descripción

país

Entrar NOSOTROS como abreviatura del 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. que admiten USD.

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/country?country=US&currency=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}&currency={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&currency=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&currency=USD');
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • 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}&currency={currency}')
        pprint(results)
Lista de métodos de pago por país Respuesta
    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "2ae2817f-a9ff-464c-a5e9-e6dfb04d4ea3"
            },
            "data": [
        
                  // ...
                  
                {
                    "type": "us_debit_mastercard_card",
                    "name": "Mastercard",
                    "category": "card",
                    "image": "https://iconslib.rapyd.net/checkout/us_mastercard_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
                },
        
                  // ...        
            ]
        }

El datos La sección de esta respuesta muestra que Mastercard es un método de pago aceptable.

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

Usará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_debit_mastercard_card como tipo de método de pago.

Obtener el método de pago Campos obligatorios Solicitud

Solicita el conjunto de campos obligatorios:

    • Solicitud

      • // Request URL: GET https://sandboxapi.rapyd.net/v1/payment_methods/us_debit_mastercard_card/required_fields
        
        // Message body absent
    • .NET Core

      • using System;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        string type = "us_mastercard_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_mastercard_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_mastercard_card/required_fields');
            var_dump($object);
        } catch (Exception $e) {
            echo "Error: $e";
        }
        ?>
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payment_method = 'us_mastercard_card'
        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
    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "25bdf361-e575-4baf-a180-6cd4602201e8"
            },
            "data": {
                "type": "us_debit_mastercard_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": true,
                        "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"
                    }
                ],
                  
         // ...
                  
                "minimum_expiration_seconds": null,
                "maximum_expiration_seconds": null
            }
        }

La respuesta muestra que los campos obligatorios para us_debit_mastercard_card son:

  • número - El número de la tarjeta de crédito.

  • mes_caducidad - El mes de caducidad de la tarjeta de crédito.

  • año_caducidad - El año de caducidad de la tarjeta de crédito.

  • cvv - El número de verificación de la tarjeta.

Nota: La respuesta muestra que el nombre y dirección los campos NO son obligatorios.

Obtenga FX Rate Call

Puede comprobar el tipo de cambio actual con Obtenga el tipo de cambio.

Cuando el cliente realiza el pago en tu sitio web, le pides a Rapyd que procese el pago con tarjeta del cliente y que convierta la moneda de USD a EUR.

Usarás Crear pago con los siguientes parámetros:

Descripción de los parámetros corporales

Parámetro corporal

Descripción

cantidad

Entrar 370 como la cantidad de EUR a pagar.

moneda

Entrar EUR como la moneda que recibirá el vendedor.

caducidad

Introduzca la fecha de caducidad de la transacción, en tiempo Unix.

divisa_solicitada

Entrar USD como la moneda admitida por el método de pago.

método_pago

Introduzca un objeto con los siguientes campos:

  • tipo - us_debit_mastercard

  • tarjeta campos - (objeto)

    • número - 4 1111111 como número de tarjeta

    • .mes de caducidad - 10

    • año_caducidad - 20

    • cvv - 123

Crear solicitud de pago

Le pides a Rapyd que procese el pago de 370 EUR (euros) del cliente y que te cobre el pago de inmediato.

    • Solicitud

      • // Request URL: POST https://sandboxapi.rapyd.net/v1/payments
        
        // Message body:
        {
           "amount": 370,
           "currency": "EUR",
           "expiration": 1591173527,
           "fixed_side": "buy",
           "payment_method": {
               "type": "us_debit_mastercard_card",
               "fields": {
                   "number": "4111111111111111",
                   "expiration_month": "10",
                   "expiration_year": "20",
                   "cvv": "123"
               }
           },
           "requested_currency": "USD"
        }
    • .NET Core

      • using System;
        using System.Text.Json;
        
        namespace RapydApiRequestSample
        {
            class Program
            {
                static void Main(string[] args)
                {
                    try
                    {
                        var requestObj = new
                        {
                            amount = 370,
                            currency = "EUR",
                            expiration = 1591173527,
                            fixed_side = "buy",
                            payment_method = new
                            {
                                type = "us_mastercard_card",
                                fields = new
                                {
                                    number = "4111111111111111",
                                    expiration_month = "10",
                                    expiration_year = "20",
                                    cvv = "123",
                                }
                            },
                            requested_currency = "USD"
                        };
        
                        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: 370,
              currency: 'EUR',
              requested_currency: 'USD',
              fixed_side: 'buy',
              payment_method: {
                type: 'us_visa_card',
                fields: {
                  number: '4111111111111111',
                  expiration_month: '10',
                  expiration_year: '20',
                  cvv: '123'
                }
              },
              expiration: 1601173527
            };
            const result = await makeRequest('POST', '/v1/payments', body);
        
            console.log(result);
          } catch (error) {
            console.error('Error completing request', error);
          }
        }
    • Pitón

      • from pprint import pprint
        
        from utilities import make_request
        
        payment_body = {
            "amount": 370,
            "currency": "EUR",
            "expiration": 1591173527,
            "fixed_side": "buy",
            "payment_method": {
                "type": "us_mastercard_card",
                "fields": {
                    "number": "4111111111111111",
                    "expiration_month": "10",
                    "expiration_year": "20",
                    "cvv": "123"
                }
            },
            "requested_currency": "USD"
        }
        
        create_payment_response = make_request(method='post',
                                               path='/v1/payments',
                                               body=payment_body)
        pprint(create_payment_response)
Respuesta de pago con divisas
    • Respuesta

      • {
            "status": {
                "error_code": "",
                "status": "SUCCESS",
                "message": "",
                "response_code": "",
                "operation_id": "4b257ecb-2775-4a3d-a829-978ead4d6dff"
            },
            "data": {
                "id": "payment_02e2ce0763a6473ef7788109ae5d0479",
                "amount": 426.13,
                "original_amount": 426.13,
                "is_partial": false,
                "currency_code": "USD",
                "country_code": "US",
                "status": "CLO",
                  
         // ...
                  
                "paid": true,
                "paid_at": 1583308522,
                  
         // ...
                  
                "payment_method_type": "us_debit_mastercard_card",
                "payment_method_type_category": "card",
                "fx_rate": "1.151688",
                "merchant_requested_currency": "EUR",
                "merchant_requested_amount": 370,
                "fixed_side": "buy",
                "payment_fees": null,
                "invoice": "",
                "escrow": null,
                "group_payment": ""
            }
        }

El datos la sección de esta respuesta muestra:

  • El cantidad es 426.13, que es la cantidad equivalente a USD requerido para el 370 EUR pago.

  • El merchant_requested_amount es 370,00, que es la cantidad de EUR que se paga.

  • El fx_rate es el EUR para USD tipo de cambio de 1.151688.

  • El paid_at este campo indica la hora de finalización de la operación de pago, en Hora de Unix.