La API de Money Manager está diseñada bajo principios REST con retornos JSON estructurados, control de acceso granular mediante scopes y una arquitectura de control de concurrencia e idempotencia.
🌐 Base URL
- Entornos Locales / Desarrollo:
http://localhost:3001 - Entornos de Producción:
https://[tu-dominio-activo](Ej.https://money.depot.centero tu dominio personalizado).
📄 Especificaciones en Vivo (OpenAPI & Arazzo)
Money Manager expone esquemas en tiempo real directamente desde el código fuente para facilitar el consumo automático por parte de herramientas de automatización (como Make, n8n, o Zapier) o agentes autónomos de Inteligencia Artificial:
- Especificación OpenAPI 3.1: /api/openapi.json (Define todos los endpoints, esquemas de entrada/salida y seguridad).
- Workflow Arazzo 1.0: /api/arazzo.json (Describe flujos de llamadas lógicas encadenadas como el flujo de autenticación -> consulta de carteras -> registro de transacción).
📦 Formato de Respuestas (Success & Error Envelopes)
Respuestas Exitosas (2xx)
Todas las respuestas de endpoints exitosos devuelven un objeto JSON con una estructura limpia:
{
"data": {
"id": "tx_abc123",
"amount": 250.00,
"type": "expense",
"createdAt": "2026-07-08T19:00:00Z"
}
}jsonRespuestas de Error (4xx / 5xx)
Si una petición falla (errores de validación, autenticación o del servidor), la API responde con un formato de error estructurado acompañado de un requestId (útil para depurar en los logs del servidor):
{
"error": {
"code": "VALIDATION_FAILED",
"message": "Los parámetros de entrada son inválidos.",
"requestId": "583a965a-f992-40a3-b52d-3bae520d2d96",
"details": {
"amount": ["El monto debe ser un número positivo mayor a 0"]
}
}
}json🚦 Rate Limiting (Límites de Tráfico)
Para asegurar la estabilidad del servidor, la API implementa un límite de tráfico dinámico por cada clave de API (API Key) gestionado a través de Upstash Redis:
- Límite estándar: 60 peticiones por minuto por cada API Key.
- Cabeceras de Respuesta: Cada respuesta HTTP incluye cabeceras que indican tu consumo actual:
X-RateLimit-Limit: El límite total de peticiones permitidas en la ventana actual (60).X-RateLimit-Remaining: Cuántas peticiones te quedan en la ventana de tiempo.X-RateLimit-Reset: Marca de tiempo Unix en segundos en la que se restablece el límite.
- Exceso de Límite: Si superas las peticiones permitidas, la API responderá inmediatamente con un código de estado
HTTP 429 Too Many Requestsy el código de errorRATE_LIMIT_EXCEEDED.
