InicioAPI e IntegracionesIntroducción y OpenAPI

Introducción y OpenAPI

Última actualización: 3 de julio de 2026

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.center o 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"
  }
}
json

Respuestas 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 Requests y el código de error RATE_LIMIT_EXCEEDED.