Skip to main content

ExchangeRate Model

The ExchangeRate class represents the conversion rate between two currencies.

Class Structure

public class ExchangeRate
{
    public const int MIN_RATE = 0;
    public const int MAX_RATE = 99999999;
    
    public int Id { get; }
    public Currency BaseCurrency { get; }
    public Currency TargetCurrency { get; }
    public float Rate { get; }
}

Properties

Id
integer
required
Unique identifier for the exchange rate
BaseCurrency
Currency
required
The source currency for the exchange rate. See Currency for details.
TargetCurrency
Currency
required
The destination currency for the exchange rate. See Currency for details.
Rate
float
required
The exchange rate from base currency to target currencyConstraints:
  • Must be greater than 0 (MIN_RATE)
  • Must not exceed 99999999 (MAX_RATE)
  • Represents how many units of target currency equal 1 unit of base currency
Rate Constraints: The rate must be in the range (0, 99999999]. A rate of 0 or below is not allowed, and rates exceeding 99,999,999 will be rejected.

ExchangeRateDTO

Data transfer object used for API responses containing full exchange rate information.

TypeScript Definition

interface ExchangeRateDTO {
  Id: number;
  BaseCurrency: Currency;
  TargetCurrency: Currency;
  Rate: number;
}

Properties

Id
integer
required
Unique identifier for the exchange rate
BaseCurrency
Currency
required
Complete currency object for the base currency
TargetCurrency
Currency
required
Complete currency object for the target currency
Rate
float
required
Exchange rate value (0 < rate ≤ 99999999)

Example Response

{
  "Id": 1,
  "BaseCurrency": {
    "ID": 1,
    "Code": "USD",
    "FullName": "US Dollar",
    "Sign": "$"
  },
  "TargetCurrency": {
    "ID": 2,
    "Code": "EUR",
    "FullName": "Euro",
    "Sign": "€"
  },
  "Rate": 0.85
}

AddExchangeRateDTO

Data transfer object used when creating a new exchange rate.

TypeScript Definition

interface AddExchangeRateDTO {
  BaseCurrencyCode: string;
  TargetCurrencyCode: string;
  Rate: number;
}

Properties

BaseCurrencyCode
string
required
Currency code for the base currency (e.g., “USD”)Must be a valid currency code that exists in the system (3-5 uppercase letters)
TargetCurrencyCode
string
required
Currency code for the target currency (e.g., “EUR”)Must be a valid currency code that exists in the system (3-5 uppercase letters)
Rate
float
required
Exchange rate valueConstraints:
  • Must be greater than 0
  • Must not exceed 99999999

Example Request

{
  "BaseCurrencyCode": "USD",
  "TargetCurrencyCode": "EUR",
  "Rate": 0.85
}

UpdateRateDTO

Data transfer object used when updating an existing exchange rate.

TypeScript Definition

interface UpdateRateDTO {
  Rate: number;
}

Properties

Rate
float
required
New exchange rate valueConstraints:
  • Must be greater than 0 (MIN_RATE)
  • Must not exceed 99999999 (MAX_RATE)

Example Request

{
  "Rate": 0.87
}
When updating an exchange rate, only the rate value can be modified. To change the currency pair, you must create a new exchange rate record.

Rate Constraints Summary

ConstraintValueDescription
MIN_RATE0Rate must be greater than 0 (exclusive)
MAX_RATE99999999Rate must be less than or equal to 99,999,999

Additional Examples

USD to GBP Exchange Rate

{
  "Id": 2,
  "BaseCurrency": {
    "ID": 1,
    "Code": "USD",
    "FullName": "US Dollar",
    "Sign": "$"
  },
  "TargetCurrency": {
    "ID": 3,
    "Code": "GBP",
    "FullName": "British Pound",
    "Sign": "£"
  },
  "Rate": 0.73
}

EUR to RUB Exchange Rate

{
  "Id": 3,
  "BaseCurrency": {
    "ID": 2,
    "Code": "EUR",
    "FullName": "Euro",
    "Sign": "€"
  },
  "TargetCurrency": {
    "ID": 4,
    "Code": "RUB",
    "FullName": "Российский рубль",
    "Sign": "₽"
  },
  "Rate": 105.50
}

Creating a New Exchange Rate

{
  "BaseCurrencyCode": "GBP",
  "TargetCurrencyCode": "JPY",
  "Rate": 185.25
}

Updating an Exchange Rate

{
  "Rate": 186.50
}

Build docs developers (and LLMs) love