GreenFlow docs

Referência de erros

Taxonomia consolidada dos formatos de erro que você pode receber. Código HTTP à esquerda, body canônico à direita.

Autenticação

HTTPBodyCausa
401{"message": "API key missing"}No Authorization / X-API-Key header.
401{"message": "Invalid API key"}Hash mismatch, revoked, or expired.
404Cross-tenant resource or missing. 404 never 403.

Validação

Standard Laravel-shaped 422s:

json
{
  "message": "The pickup location field is required. (and 2 more errors)",
  "errors": {
    "pickup_location": ["The pickup location field is required when pickup lat is not present."],
    "pickup_date":     ["The pickup date field is required."]
  }
}

Cupons

HTTPBody
404{"error": "coupon_not_found"}
422{"error": "coupon_not_valid"}
422{"error": "coupon_brand_or_rate_mismatch"}
422{"error": "coupon_country_mismatch"}
422{"error": "coupon_days_out_of_range"}
422{"error": "coupon_validation_failed", "reason": "..."}

Erros do GDS upstream

Quando o provedor rejeita uma requisição, GreenFlow expõe a mensagem literalmente dentro de error.message. São 422, não 5xx — o provedor disse não, seu payload estava sintaticamente válido.

json
{ "error": { "message": "RATE NOT AVAILABLE FOR THIS CAR CLASS" } }

Estados intra-meta (não HTTP)

Dentro de meta.{vendor}.reason nas respostas de /fleet/list, as entradas por marca carregam uma chave reason quando a marca contribuiu com zero veículos. Não são erros HTTP: a resposta é 200, mas uma ou mais marcas ficaram silenciosas para essa query.

reasonNotas
no_offices_for_pickupOffice code doesn't apply to this brand.
no_offices_for_pickup_within_radiusNo office found in pickup_radius_km for lat/lng search.
circuit_openAdapter circuit breaker is open.
provider_errorException parsing the provider response. See errors.{vendor}.
provider_returned_emptyProvider returned zero vehicles.