# Currency Spread

The currency spread feature lets merchants add a percentage on top of exchange rates to protect against currency fluctuation when accepting non-USD fiat payments through POS terminals.

## How It Works

When a customer pays in a non-USD fiat currency (e.g., BRL, EUR), the system converts the fiat amount to USD/crypto using exchange rates from the European Central Bank. The spread adjusts this rate so the merchant receives slightly more crypto, covering potential rate movement.

**Example with 2% spread on BRL:**

* Base rate: 1 USD = 5.80 BRL
* Adjusted rate: 1 USD = 5.684 BRL
* Customer pays 100 BRL -> merchant receives 17.59 USDT (instead of 17.24 USDT without spread)

## Configuring Spread

1. Go to **Dashboard > POS > Currencies**
2. Find the **Exchange Rate Spread** card
3. Set a **Default Spread** (applies to all currencies)
4. Optionally set **per-currency spreads** for enabled non-USD currencies (overrides the global default)
5. Click **Save Currency Settings**

### Settings

| Setting             | Description                                                                                            |
| ------------------- | ------------------------------------------------------------------------------------------------------ |
| Default Spread      | A global spread % applied to all non-USD currencies                                                    |
| Per-Currency Spread | Override spread for a specific currency. If set, it replaces the global default for that currency only |

### Constraints

* Spread must be a positive number less than 100%
* USD does not support spread (it's the base currency)
* Only enabled currencies show per-currency spread inputs

## What the Customer Sees

On the POS terminal screen, the customer sees the adjusted exchange rate. There is no "spread" label -- it appears as the current exchange rate. The crypto amount they need to pay reflects the spread-adjusted conversion.

## Server-Side Validation

The spread is applied client-side on the POS terminal for display, but validated server-side when the payment is created:

1. The server fetches the merchant's spread settings and the current base exchange rate
2. It calculates the expected adjusted rate
3. If the client-sent rate deviates by more than 1% from the expected rate, the server recalculates using the correct rate
4. The payment record stores the spread percentage applied for audit purposes

## Troubleshooting

| Issue                              | Solution                                                                                                     |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Spread not applying                | Ensure you saved settings after making changes. Only non-USD currencies support spread                       |
| Rate looks different than expected | Exchange rates update every 30 minutes. The displayed rate may differ slightly from the rate at payment time |
| Per-currency spread not working    | Make sure the currency is enabled in the Enabled Currencies section                                          |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.makapay.io/point-of-sale-pos/currency-spread.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
