Steps 1-2: Country, Currency & Amount

Step 1: Ask the Sender to select the country and currency

  1. Using data retrieved from the GET /countries/ API operation, the PSP can display a dropdown Countries list to the Sender via the PSP’s app or other channel. (Left and middle figure below.)

  2. The response to GET /countries/ lists all Nexus-enabled countries and the currencies available in that country. If the Sender selects a country with more than one currency, the PSP should immediately:

    1. Display a second form element (eg <select> or <radio>) that lists the currencies available (Right hand screen below.)

    2. Ask the Sender to select the currency that the Recipient expects to receive

  3. The app should store the select country (and currency, if applicable) in memory, as it will be required when retrieving FX quotes

WORKED EXAMPLE: Data stored by the app

This JSON gives an example of the data that the PSP's app will need to store whilst the payment is being set up, based on the examples shown. We will add to this data as we proceed through the setup phase.

// Example payment object stored in PSP's app
"payment": {
        "destinationCountry": "SG", // destination country
        "destinationCurrency": "SGD"  // destination currency
}   

Step 2: Ask the Sender to define the amount that should be sent, or the amount that should be received

On the next screen, the PSP should now generate a form that will allow the user to define either:

  • The amount the Sender wishes to send (the Source Currency Amount), OR

  • The amount the Sender wishes the Recipient to receive (the Destination Currency Amount)

Validating maximum transaction amounts

Different IPSs have different limits on the maximum value of a transaction. The GET /quotes/ API operation in Nexus will automatically apply these limits and reduce the Source Currency Amount or Destination Currency Amount accordingly. However, the PSP can also use client-side validation (eg setting the max attribute of the HTML form input element) to cap the amounts that can be inputted:

  • The Source Currency Amount field (labelled “You send” in the example screen) can be capped to either:

    • the maximum value that the PSP is willing to send, or

    • the maximum value of the IPS to which the PSP is connected to. (This should be known by the Source PSP; it could alternatively be retrieved by calling GET /ipss/{country_code} with the country code of the PSP’s home country.)

  • The Destination Currency Amount field (labelled “They receive” in the example screen) should be capped to the maximum defined in the /IPSs/IPS/MaxAmt element that is returned in response to GET /ipss/{country_code} with the country code of the Destination Country.

    • Where the IPSs element contains two or more Destination IPSs with different MaxAmt values, use the larger amount as the max attribute on the form input element. Nexus will automatically calculate the maximum amount that can be sent for each specific quote depending on which IPS the FXP is a member of.

WORKED EXAMPLE: Data stored by the app

This JSON gives an example of the data that the PSP's app will need to store whilst the payment is being set up, based on the examples shown. We can now add AmtCcy and Amt:

// Example payment object stored in PSP's app
"payment": {
        "destinationCountry": "SG", // destination country
        "destinationCurrency": "SGD"  // destination currency
        "amountCurrency": "SGD" // shows that the Sender specified the Destination Currency Amount, not Source Currency Amount 
        "amount": 150, // value of the payment, in amountCurrency        
}

Last updated