Marcas
O catálogo de marcas de locação de carros que o GreenFlow agrega. Cada integrador tem uma fatia por tenant indicando quais estão habilitadas.
GET /tenancy/brands — catálogo por tenant
Retorna o catálogo COMPLETO mais um booleano `active` por linha indicando se o tenant da API key atual a tem habilitada. Combine com 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}
]
}
Sem rota pública `/brands`
Intencionalmente não há um
GET /api/v1/brands anônimo que liste todas as marcas sem contexto de tenant — o catálogo é o mesmo para todos mas o subconjunto ativo varia, e queremos que callers vejam "o que EU POSSO usar" e não "o que a plataforma oferece". Use GET /tenancy/brands.Brand id ↔ enum vendor
Os ids de marca são estáveis entre deploys (1=AVIS, 2=BUDGET, ... 11=LOCALIZA). A lista completa vive em App\Services\GDS\Enums\Vendor e as constantes correspondentes em 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 |
Erros
| 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}. |