# Construye una app de kilometraje en 50 líneas de código

> Tutorial paso a paso usando el SDK JavaScript oficial y Express.

**Autor:** Camila Ribeiro — Editora de Operaciones de Campo  
**Publicado:** 2026-05-02  
**Actualizado:** 2026-05-02  
**URL:** https://kilometraje.co/blog/construye-una-app-de-kilometraje-en-50-lineas-de-codigo

**TL;DR:** Tutorial paso a paso usando el SDK JavaScript oficial y Express.

- Vamos a construir una pequeña app que recibe origen, destino y país, calcula la distancia GPS, aplica la tarifa oficial y devuelve un recibo PDF — todo en menos de 50 líneas de Node.js.
- Node.js 18+ y una clave de API.
- Añade caché de 24h por par origen-destino, middleware de autenticación y monitorea X-RateLimit-Remaining para alertar antes del límite.

## El objetivo

Vamos a construir una pequeña app que recibe origen, destino y país, calcula la distancia GPS, aplica la tarifa oficial y devuelve un recibo PDF — todo en menos de 50 líneas de Node.js.[^irs-2025] El ingrediente secreto es el SDK oficial `quilometragem-sdk-js`.

## Prerrequisitos

Node.js 18+ y una clave de API. Consíguela en `https://quilometragem.com/account/api` (gratis, 1.000 peticiones por ventana de 30 días).

## Paso 1: instalar dependencias

```
npm init -y
npm install express quilometragem-sdk-js
```

## Paso 2: el servidor

```
import express from 'express';
import { Quilometragem } from 'quilometragem-sdk-js';
const app = express(); app.use(express.json());
const qkm = new Quilometragem({ apiKey: process.env.QKM_API_KEY });

app.post('/quote', async (req, res) => {
  const { origin, destination, country = 'mx', employeeName } = req.body;
  const route = await qkm.distance({ origin, destination });
  const r = await qkm.reimbursement({ distanceKm: route.distance, country });
  const receipt = await qkm.receipt({
    employeeName, origin, destination,
    distanceKm: route.distance, ratePerKm: r.ratePerKm,
    currency: r.currency,
  });
  res.json({ distance: route.distance, amount: r.amount,
    currency: r.currency, receiptUrl: receipt.url, hash: receipt.hash });
});
app.listen(3000);
```

## Paso 3: probar

```
QKM_API_KEY=qkm_live_… node server.js
curl -X POST localhost:3000/quote -H 'Content-Type: application/json' \
  -d '{"origin":"CDMX","destination":"Querétaro","country":"mx","employeeName":"Ada"}'
```

La respuesta trae distancia, monto, link público del recibo y hash SHA-256.

## Próximo paso: producción

Añade caché de 24h por par origen-destino, middleware de autenticación y monitorea `X-RateLimit-Remaining` para alertar antes del límite.

## Fuentes

- [IRS — Standard Mileage Rates for 2025](https://www.irs.gov/tax-professionals/standard-mileage-rates) — Internal Revenue Service (2026-04-28)
