Referencia de la API
Documentación curada a mano para integradores que construyen sobre la plataforma multi-marca de alquiler de autos GreenFlow.
https://greenflow.live/api/v1/
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.
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.
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.
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/searchand/fleet/listinternally - Marcas —
/tenancy/brands - Utilitarios —
/me,/ping,/sandbox/defaults, locale switching