# Steps 1-2: Country, Currency & Amount

{% hint style="info" %}
The rest of this section assumes that readers are familiar with the main actors in Nexus: Payment Service Providers (PSPs), Instant Payment System Operators (IPSOs), Foreign Exchange Providers (FXPs) and Settlement Access Providers (SAPs).

For a primer on each of these actors please see [Chapter 2.3 of the Nexus (2024) report](https://www.nexusglobalpayments.org/wp-content/uploads/2025/03/Project-Nexus-Report-Phase-3.pdf).
{% endhint %}

The example user journey below demonstrates how an individual Sender would use their existing PSP channel (eg an app) to make a payment through Nexus, and describes the steps taken by Nexus behind the scenes.

{% hint style="warning" %}
Note that there is no "Nexus app" and payment Senders do not register with or interact directly with Nexus. The app shown is a mockup designed to give an example of how a PSP may integrate the service into their own app.
{% endhint %}

### Step 1: Ask the Sender to select the country and currency <a href="#toc116457912" id="toc116457912"></a>

1. Using data retrieved from the `GET /countries/` API operation, the Source PSP (Sender's PSP) can display a dropdown Countries list to the Sender via the Source 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 selected country (and currency, if applicable) in memory, as it will be required when retrieving FX quotes

<figure><img src="https://260996932-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdlTzGEXDmi664xppppmm%2Fuploads%2Fgit-blob-f2843a0163f64ddddf830743acbc847f4cc56e7e%2FSlide1.PNG?alt=media" alt=""><figcaption><p>Sender would first select the country that the payment is going to. If more than one currency is available in that country, they would also select the currency (right pane).</p></figcaption></figure>

### Step 2: Ask the Sender to define EITHER the amount that should be sent, OR the amount that should be received <a href="#toc116457913" id="toc116457913"></a>

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 **`DebtorAccountAmount`** which will be debited from the Sender/Debtor's account), OR
* The amount the Sender wishes the Recipient to receive (the **`CreditorAccountAmount`** which will be credited to the Recipient/Creditor's account)

<figure><img src="https://260996932-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdlTzGEXDmi664xppppmm%2Fuploads%2Fgit-blob-8abc16a85f069d50838440c9f8e566bcdda8b915%2FSlide2.PNG?alt=media" alt=""><figcaption><p>The Sender would use their existing banking app to define either the amount they wish to send in their own currency, or the amount they wish the Recipient to receive, in the Recipient's currency.</p></figcaption></figure>

### Validating maximum transaction amounts in-app <a href="#toc116457914" id="toc116457914"></a>

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 inform the Source PSP if the requested amount exceeds the Source Currency Amount or Destination Currency Amount at a given exchange rate. 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 input:

* The **Source Currency Amount** field (labelled “*You send*” in the example screen) can be capped to either:
  * 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 /countries/{countryCode}/currencies/{currencyCode}/max-amounts` with the country code of the PSP’s home country.), OR
  * the maximum value that the PSP is willing to send (if lower than the local IPS limit)
* The **Destination Currency Amount** field (labelled “*They receive*” in the example screen) should be capped to the maximum defined in the response to `GET /countries` for the selected Destination Country.

{% hint style="info" %}
For further details see [maximum-value-of-a-nexus-payment](https://docs.nexusglobalpayments.org/payment-processing/maximum-value-of-a-nexus-payment "mention")
{% endhint %}
