Calculadora de cambio en efectivo
La calculadora de cambio en efectivo determina cuánto dinero debe recibir un cliente después de pagar una compra.
Ejecutar — gratis
Introduzca el total final y el efectivo entregado, ambos en la misma moneda. La herramienta resta los valores con dos decimales exactos y evita errores habituales de coma flotante. Resulta útil en cajas, mercadillos, eventos escolares, oficinas de cobro y cualquier operación que requiera un resultado rápido y verificable.
Introduzca los dos importes de la operación
Comience con el total final de la compra, una vez aplicados impuestos, descuentos, cupones, depósitos y cualquier otro ajuste. Después indique cuánto efectivo entregó realmente el cliente. Los dos valores deben estar en la misma moneda y tener como máximo dos decimales. Por ejemplo, si la venta cuesta 13.47 y el cliente entrega 20.00, registre esas cifras como total de compra e importe entregado. No introduzca una autorización de tarjeta, el saldo de una tarjeta regalo ni el valor de un pago mixto, salvo que la parte en efectivo cubra por sí sola todo el total mostrado. La calculadora admite cero, algo útil para una operación totalmente bonificada, pero no admite importes negativos. La API también reconoce alias claros, aunque amount_tendered y purchase_total facilitan la lectura posterior de los registros. Revise el recibo antes de calcular: una resta correcta no puede reparar un total sin impuestos o con un artículo equivocado. Mantener visibles ambas entradas permite que el cajero, el cliente o un auditor reproduzcan fácilmente el resultado.
Comprenda cómo se calcula el cambio
La regla es sencilla: el cambio equivale al importe entregado menos el total de compra. Sin embargo, el dinero exige un tratamiento decimal cuidadoso. La calculadora convierte cada valor en un número entero de centésimas antes de restar y después vuelve a mostrar el resultado como importe. Así, 20.00 menos 13.47 produce 6.53 sin ruido de coma flotante binaria. La respuesta incluye el importe entregado normalizado, el total normalizado, el valor numérico change_due, la cadena change_due_formatted con dos decimales y la fórmula aplicada. Un resultado de 0.00 indica que el cliente pagó el importe exacto y no corresponde devolver efectivo. Si entregó menos que el total, existe una cantidad pendiente, no un cambio; la herramienta rechaza la entrada e indica cuánto falta. Esto evita interpretar un número negativo como dinero para devolver. La calculadora no elige billetes ni monedas, porque las denominaciones dependen de la divisa, el lugar y la caja disponible. Su función es calcular el importe aritmético universal que se debe al cliente.
Utilice el resultado con seguridad en caja
Diga en voz alta el cambio formateado, mantenga visible el efectivo recibido y cuente el dinero devuelto antes de guardar el pago original. Un método habitual comienza en el total de compra y suma monedas y billetes hasta alcanzar el importe entregado; el resultado calculado funciona como objetivo independiente. En una compra de 13.47 pagada con 20.00, el objetivo es 6.53, con independencia de las denominaciones utilizadas. Si integra la API en un punto de venta, conserve juntas las dos entradas y la respuesta para que la conciliación posterior muestre exactamente qué se calculó. Cada solicitud cuesta $0.002; la calculadora del navegador permite una comprobación manual inmediata. El cálculo es determinista, no consulta la red ni deduce símbolos monetarios o tipos de cambio. Respete siempre las normas locales de redondeo en efectivo cuando la moneda más pequeña en circulación sea superior a una centésima. En esos lugares, aplique primero al total el redondeo exigido legalmente y utilice después este resultado como objetivo de cambio.
Qué puede hacer con ella
Comprobar el cambio en una caja
Confirme cuánto debe devolver cuando un cliente paga en efectivo el total final del recibo.
Gestionar una caja temporal
Ofrezca a voluntarios de una colecta, mercado o evento escolar un método uniforme para calcular el cambio.
Automatizar el cálculo en el punto de venta
Envíe a la API el efectivo recibido y el total, y registre el resultado determinista para la conciliación.
Preguntas frecuentes
¿Qué fórmula utiliza la calculadora?
Utiliza change_due = amount_tendered - purchase_total tras convertir ambos importes en centésimas enteras.
¿Qué ocurre si el cliente no entrega suficiente efectivo?
La solicitud devuelve un error de entrada no válida que indica cuánto falta, porque un pago insuficiente no es cambio.
¿Puedo utilizar cualquier moneda?
Sí, si ambas entradas usan la misma moneda y esta se expresa con dos decimales. El resultado no incluye deliberadamente ningún símbolo monetario.
¿Indica qué billetes y monedas debo devolver?
No. Calcula el cambio total; la selección de denominaciones depende de la moneda y del contenido de la caja.
¿Cuánto cuesta un cálculo mediante API?
Cada solicitud a la API cuesta $0.002. También puede usar la calculadora en el navegador para una comprobación manual.
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/life/change-due \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"amount_tendered":20,"purchase_total":13.47}'const res = await fetch("https://api.kit.forhosting.com/life/change-due", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"amount_tendered": 20,
"purchase_total": 13.47
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/change-due",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"amount_tendered": 20,
"purchase_total": 13.47
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/change-due", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"amount_tendered":20,"purchase_total":13.47}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"amount_tendered":20,"purchase_total":13.47}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/change-due", 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
{
"amount_tendered": 20,
"purchase_total": 13.47
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.change_due",
"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. |