Marcas
El catálogo de marcas de alquiler que GreenFlow agrega. Cada integrador tiene una porción por tenant indicando cuáles están habilitadas.
GET /tenancy/brands — catálogo por tenant
Devuelve el catálogo COMPLETO más un booleano `active` por fila indicando si el tenant de la API key actual la tiene habilitada. Acompañalo con PUT /tenancy/brands/{brandId} para alternar.
Request
bash
curl -s https://greenflow.live/api/v1/tenancy/brands \
-H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP"
Response
json
{
"data": [
{"id": 1, "name": "AVIS", "display_order": 1, "logo": "brands/avis.svg", "active": true},
{"id": 2, "name": "BUDGET", "display_order": 2, "logo": "brands/budget.svg", "active": true},
{"id": 11, "name": "LOCALIZA", "display_order": 11, "logo": "brands/localiza.svg", "active": true},
{"id": 10, "name": "MOVIDA", "display_order": 10, "logo": "brands/movida.svg", "active": false}
]
}
No hay ruta pública `/brands`
Intencionalmente no hay un
GET /api/v1/brands anónimo que liste todas las marcas sin contexto de tenant — el catálogo es el mismo para todos pero el subconjunto activo varía, y queremos que los callers vean "qué PUEDO usar" no "qué ofrece la plataforma". Usá GET /tenancy/brands en su lugar.Brand id ↔ enum vendor
Los ids de marca son estables entre deploys (1=AVIS, 2=BUDGET, ... 11=LOCALIZA). La lista completa vive en App\Services\GDS\Enums\Vendor y las constantes correspondientes en App\Models\Brand.
| id | vendor | notes |
|---|---|---|
| 1 | AVIS | ABG group (shared adapter) |
| 2 | BUDGET | ABG group |
| 3 | PAYLESS | ABG group |
| 4 | ALAMO | ANE group |
| 5 | NATIONAL | ANE group |
| 6 | ENTERPRISE | ANE group |
| 7 | HERTZ | HDT group |
| 8 | DOLLAR | HDT group |
| 9 | THRIFTY | HDT group |
| 10 | MOVIDA | Brazil-only |
| 11 | LOCALIZA | Brazil-only |
Errores
| HTTP | Body | Causa |
|---|---|---|
| 401 | {"message": "Invalid API key"} | Missing or invalid Bearer token. |
| 404 | {"message": "brand not found"} | Unknown brand id on PUT /tenancy/brands/{id}. |