GreenFlow docs

Referencia de errores

Taxonomía consolidada de las formas de error que podés recibir. Código HTTP a la izquierda, body canónico a la derecha.

Autenticación

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.

Validación

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."]
  }
}

Cupones

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": "..."}

Errores del GDS upstream

Cuando el proveedor rechaza un request, GreenFlow expone el mensaje tal cual dentro de error.message. Estos son 422, no 5xx — el proveedor dijo que no, tu payload era sintácticamente válido.

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

Estados intra-meta (no HTTP)

Dentro de meta.{vendor}.reason en respuestas de /fleet/list, las entradas por marca llevan una clave reason cuando la marca aportó cero vehículos. No son errores HTTP: la respuesta es 200, pero una o más marcas quedaron silenciosas para ese 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.