Calculadora de tipo de cambio cruzado con moneda común
Un tipo de cambio cruzado relaciona dos monedas cotizadas frente a una misma tercera moneda.
Ejecutar — gratis
Introduzca los códigos de la moneda base y cotizada, indique la moneda común y especifique cuántas unidades de esta equivalen a una unidad de cada moneda. La calculadora divide cotizaciones compatibles para obtener las unidades de la moneda cotizada por cada unidad de la moneda base, además del tipo inverso. Valida los códigos y rechaza los tipos iguales a cero antes de dividir. El uso automatizado de la API cuesta $0.002 por solicitud.
Lea ambos tipos de entrada en la misma dirección
Un cálculo cruzado fiable comienza por la dirección de la cotización. Esta calculadora espera que ambos tipos sigan la misma convención: unidades de la moneda común por una unidad de la moneda indicada. Por ejemplo, si la moneda base es EUR, la cotizada es GBP y la común es USD, base_rate significa USD por EUR y quote_rate significa USD por GBP. No introduzca un tipo como USD por EUR y el otro como GBP por USD, pues apuntan en direcciones opuestas y no pueden dividirse directamente. Los códigos se normalizan a mayúsculas y deben tener exactamente tres letras. La moneda común debe ser distinta de las dos monedas cruzadas, que también deben diferir entre sí. Así, cross_rate siempre expresa unidades de la moneda cotizada por una unidad de la base, mientras que inverse_rate expresa la dirección contraria. Antes de calcular, anote las unidades junto a cada tipo: denominadores coincidentes confirman que son compatibles.
Comprenda la división y el tipo inverso
Cuando ambas cotizaciones comparten la moneda común en el numerador, esa unidad se cancela al dividir. La calculadora divide base_rate entre quote_rate. Si un EUR equivale a 1.08 USD y un GBP a 1.26 USD, dividir 1.08 USD por EUR entre 1.26 USD por GBP cancela USD y deja GBP por EUR. El inverso se calcula por separado dividiendo quote_rate entre base_rate y produce EUR por GBP. Mostrar ambas direcciones evita aplicar al revés un tipo correcto en una factura, un libro contable o una hoja de cálculo. La fórmula de la salida conserva el orden de las monedas para que el resultado mantenga su interpretación al copiarlo. El redondeo solo estabiliza la representación de dígitos significativos en JSON; no impone una precisión comercial. Para liquidación o contabilidad, aplique después la política de decimales y redondeo exigida por su entidad.
Valide los datos de origen antes de usar el resultado
Un tipo cruzado solo es tan actual y fiable como sus dos cotizaciones de origen. Esta capacidad no consulta la red ni afirma que los valores sean precios de mercado en tiempo real. Para procesos financieros, use tipos del mismo proveedor, momento de valoración, convención de mercado y categoría. Combinar un tipo minorista de venta con un punto medio interbancario puede generar un cruce matemáticamente válido pero comercialmente engañoso. Ambos valores deben ser números finitos mayores que cero. El cero genera un error de entrada específico, y también se rechazan valores negativos o no numéricos. El cálculo determinista facilita flujos reproducibles: una misma entrada JSON siempre produce la misma salida. Si necesita auditoría, conserve junto al resultado las dos cotizaciones originales, su fuente y fecha. Recuerde además que el cruce teórico puede diferir de una oferta ejecutable por márgenes, comisiones, liquidez, importes mínimos y reglas de redondeo, aspectos que quedan fuera de esta calculadora.
Qué puede hacer con ella
Crear un tipo cruzado en una hoja de cálculo
Compruebe el tipo entre dos monedas cuando la hoja ya contiene cotizaciones compatibles de ambas frente a una moneda común.
Conciliar registros en varias monedas
Obtenga un factor de conversión coherente para comparar valores contables procedentes de una misma tabla de tipos de la moneda de informe.
Verificar una conversión cotizada
Compare el tipo cruzado de un operador o sistema con el valor matemático implícito antes de considerar márgenes y comisiones.
Preguntas frecuentes
¿Cuánto cuesta la solicitud API?
Cada solicitud API cuesta $0.002. El cálculo también está disponible en el navegador para el uso gratuito admitido.
¿Qué dirección deben seguir los tipos?
Ambos deben expresar unidades de la moneda común por una unidad de la moneda base o cotizada correspondiente.
¿Por qué se rechazan los tipos iguales a cero?
Un tipo cero carece de sentido en este cálculo y haría que una de las direcciones exigiera dividir entre cero.
¿Se consultan precios de divisas en tiempo real?
No. Solo se utilizan los tipos que usted facilita y no se efectúan solicitudes de red.
¿Qué significa cross_rate?
Es el número de unidades de la moneda cotizada equivalentes a una unidad de la moneda base.
¿Se incluyen comisiones o diferenciales de compra y venta?
No. El resultado es el cruce aritmético implícito; las comisiones, los diferenciales y las reglas de liquidación se tratan por separado.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/econ/cross-exchange-rate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base_currency":"EUR","quote_currency":"GBP","common_currency":"USD","base_rate":1.08,"quote_rate":1.26}'const res = await fetch("https://api.kit.forhosting.com/econ/cross-exchange-rate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base_currency": "EUR",
"quote_currency": "GBP",
"common_currency": "USD",
"base_rate": 1.08,
"quote_rate": 1.26
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/cross-exchange-rate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base_currency": "EUR",
"quote_currency": "GBP",
"common_currency": "USD",
"base_rate": 1.08,
"quote_rate": 1.26
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/cross-exchange-rate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base_currency":"EUR","quote_currency":"GBP","common_currency":"USD","base_rate":1.08,"quote_rate":1.26}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base_currency":"EUR","quote_currency":"GBP","common_currency":"USD","base_rate":1.08,"quote_rate":1.26}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/cross-exchange-rate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"base_currency": "EUR",
"quote_currency": "GBP",
"common_currency": "USD",
"base_rate": 1.08,
"quote_rate": 1.26
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.cross_exchange_rate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |