GreenFlow docs

Referencia de la API

Documentación curada a mano para integradores que construyen sobre la plataforma multi-marca de alquiler de autos GreenFlow.

API key de demo — rotá la tuya
URL base: https://greenflow.live/api/v1/
Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP

Inicio rápido

Tres llamadas te llevan de cero a una reserva confirmada: listar flota, obtener token, crear la reserva. Todo lo demás (webhooks, cupones, configuración del tenant) se apoya encima de este flujo central.

1. Probá que tu key funciona

Pegale a GET /me para confirmar que la key resuelve a tu tenant. Si devuelve 401 acá, el resto de la API también.

bash
curl -s https://greenflow.live/api/v1/me \
  -H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP"

2. Listá la flota para un rango de fechas

POST a POST /fleet/list con fechas de pickup/dropoff más un office code, coordenadas o place UUID. La respuesta trae una entrada por vehículo reservable en todas las marcas habilitadas.

bash
curl -X POST https://greenflow.live/api/v1/fleet/list \
  -H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP" \
  -H "Content-Type: application/json" \
  -d '{
    "pickup_location": "AACGH",
    "pickup_date": "2026-05-15", "pickup_time": "10:00",
    "dropoff_date": "2026-05-18", "dropoff_time": "10:00",
    "passenger_country_code": "BR", "passenger_age": 30,
    "brands": [11]
  }'

3. Reservá un auto

Llamá a POST /fleet/show con un vehículo del paso anterior para mintear un tokenc, y después POST a /bookings para confirmar. El voucher PDF se envía por mail automáticamente.

Autenticación

Pasá tu API key como Authorization: Bearer gfc_<prefix>_<secret> o equivalentemente X-API-Key: gfc_<prefix>_<secret>. Las keys tienen forma gfc_a3b1c2d4_... — el prefix es indexable, el secret se guarda como sha256. Están scopeadas a un único tenant; el acceso cross-tenant devuelve 404 (nunca 403).

HTTP Body Causa
401{"message": "API key missing"}No Authorization / X-API-Key header.
401{"message": "Invalid API key"}Hash mismatch, revoked or expired.

Versionado

Todos los endpoints viven bajo /api/v1/. Los cambios incompatibles se publican bajo un nuevo prefijo (ej. /api/v2/); v1 queda congelada salvo por correcciones.

Códigos HTTP

Semántica REST estándar. Errores de validación devuelven 422 con forma Laravel. Errores de autenticación 401. Recursos ajenos o inexistentes 404. Los errores del GDS upstream salen como 422 con el mensaje del proveedor dentro de error.message.

Límites de tasa

Hoy no hay rate limit explícito a nivel aplicación. Los proxies upstream (Cloudflare, nginx) pueden limitar ráfagas. Integradores de alto volumen deberían coordinar con el equipo de producto.

Locales

Pasá X-Locale = en | es | pt para traducir los campos visibles al usuario en el payload de flota. También forma parte de la cache key: un request en pt se cachea separado de uno en en.

bash
curl -X POST https://greenflow.live/api/v1/fleet/list \
  -H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP" \
  -H "X-Locale: pt" \
  -H "Content-Type: application/json" \
  -d '{ "pickup_location": "AACGH", "pickup_date": "2026-05-15", "pickup_time": "10:00", "dropoff_date": "2026-05-18", "dropoff_time": "10:00", "passenger_country_code": "BR", "passenger_age": 30, "brands": [11] }'

Convenciones

Sólo JSON UTF-8. Fechas ISO-8601. Códigos de país ISO-3166-1 alpha-2. Monedas ISO-4217. Identificadores UUID v4.

Auxiliares

Endpoints más chicos que complementan el flujo principal — typeahead, sondas de identidad, catálogo de marcas, cambio de locale. Algunos son rutas reales hoy; otros son stubs documentados para endpoints aún no expuestos (cada página aclara cuál es cuál).

  • Lugares/places, /places/autocomplete, /places/search
  • Países — reference data (no standalone endpoint yet)
  • Oficinas — surfaced via /places/search and /fleet/list internally
  • Marcas/tenancy/brands
  • Utilitarios/me, /ping, /sandbox/defaults, locale switching