Skip to main content
The Currency Converter supports bidirectional conversions between US Dollars and three major Latin American currencies, providing real-time exchange rates for accurate conversions.

Available Currency Pairs

The application supports 6 conversion options across 3 currency pairs:

USD ↔ ARS

United States Dollar and Argentine Peso

USD ↔ BRL

United States Dollar and Brazilian Real

USD ↔ COP

United States Dollar and Colombian Peso

Currency Details

USD ↔ ARS (Argentine Peso)

From: United States Dollar (USD)
To: Argentine Peso (ARS)
Convert US Dollars to Argentine Pesos using current market rates.
case 1 -> {
    base = "USD";
    yield "ARS";
}
Implementation: ConversorApp.java:51-54
From: Argentine Peso (ARS)
To: United States Dollar (USD)
Convert Argentine Pesos back to US Dollars.
case 2 -> {
    base = "ARS";
    yield "USD";
}
Implementation: ConversorApp.java:55-58

USD ↔ BRL (Brazilian Real)

From: United States Dollar (USD)
To: Brazilian Real (BRL)
Convert US Dollars to Brazilian Reais using current market rates.
case 3 -> {
    base = "USD";
    yield "BRL";
}
Implementation: ConversorApp.java:59-62
From: Brazilian Real (BRL)
To: United States Dollar (USD)
Convert Brazilian Reais back to US Dollars.
case 4 -> {
    base = "BRL";
    yield "USD";
}
Implementation: ConversorApp.java:63-66

USD ↔ COP (Colombian Peso)

From: United States Dollar (USD)
To: Colombian Peso (COP)
Convert US Dollars to Colombian Pesos using current market rates.
case 5 -> {
    base = "USD";
    yield "COP";
}
Implementation: ConversorApp.java:67-70
From: Colombian Peso (COP)
To: United States Dollar (USD)
Convert Colombian Pesos back to US Dollars.
case 6 -> {
    base = "COP";
    yield "USD";
}
Implementation: ConversorApp.java:71-74

Exchange Rate Source

The Currency Converter uses ExchangeRate-API (v6) to fetch real-time exchange rates for all conversions.

API Integration

The application makes HTTP requests to the ExchangeRate-API endpoint:
String url = "https://v6.exchangerate-api.com/v6/9ba310889b4d07769a662fc0/pair/" 
           + monedaBase + "/" + monedaObjetivo + "/" + cantidad;
API integration is implemented in ConsultaMoneda.java:17

API Response

The API returns a JSON response containing the conversion result:
{
  "result": "success",
  "documentation": "https://www.exchangerate-api.com/docs",
  "terms_of_use": "https://www.exchangerate-api.com/terms",
  "time_last_update_unix": 1709625600,
  "time_last_update_utc": "Wed, 05 Mar 2026 00:00:00 +0000",
  "time_next_update_unix": 1709712000,
  "time_next_update_utc": "Thu, 06 Mar 2026 00:00:00 +0000",
  "base_code": "USD",
  "target_code": "ARS",
  "conversion_rate": 350.0,
  "conversion_result": 35000.0
}
The application extracts the conversion_result field:
JsonElement elemento = JsonParser.parseString(respuesta.body());
JsonObject objectRoot = elemento.getAsJsonObject();
return objectRoot.get("conversion_result").getAsDouble();
JSON parsing is handled in ConsultaMoneda.java:26-29

Rate Accuracy and Updates

Real-Time Rates

Every conversion performs a fresh API request, ensuring you always get the most current exchange rates available. There is no caching of rates in the application.
Each call to consulta.obtenerTasa() triggers a new HTTP request to ExchangeRate-API (ConversorApp.java:79)

Update Frequency

ExchangeRate-API updates its rates:
  • Standard tier: Updates once per day (UTC midnight)
  • Real-time data: Reflects market conditions as of the last API update

Rate Precision

Conversion results are returned as Java double values, providing:
  • High precision for decimal calculations
  • Accurate representation of fractional currency amounts
  • Support for currencies with different decimal places

HTTP Client Implementation

The application uses Java’s modern HttpClient API (introduced in Java 11):
HttpClient cliente = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(url))
        .GET()
        .build();
HttpResponse<String> respuesta = cliente.send(request, 
        HttpResponse.BodyHandlers.ofString());
HTTP client implementation is in ConsultaMoneda.java:16-24

Currency Code Standards

All currency codes follow the ISO 4217 international standard:
CodeCurrencyCountry
USDUnited States DollarUnited States
ARSArgentine PesoArgentina
BRLBrazilian RealBrazil
COPColombian PesoColombia
These three-letter codes are used in both the API requests and the history tracking system

Error Handling

If the API is unreachable or returns an error:
catch (Exception e) {
    System.out.println("Error al conectar con la API: " + e.getMessage());
    return 0;
}
The application:
  1. Displays an error message with details
  2. Returns 0 as the conversion result
  3. Continues running (doesn’t crash)
  4. Still saves the failed conversion to history
Error handling is implemented in ConsultaMoneda.java:31-34

Build docs developers (and LLMs) love