GreenFlow docs

Reservas

Crie, consulte e cancele reservas. Cada reserva tem um booking_code do provedor e um local_number interno do GreenFlow; ambos servem como {code}.

POST /bookings — criar

Consome o tokenc cunhado por POST /fleet/show. No 201, o servidor persiste Booking + Sale, enfileira o job do voucher PDF e envia o email de confirmação.

Campos

Campo Tipo Notas
brandintobrigatório. Same vendor id as in /fleet/list.
pickup_location / dropoff_locationstringobrigatório. Office code.
pickup_date / dropoff_datedatetimeobrigatório. Format Y-m-d\TH:i:s (no offset).
ratestringobrigatório. From rates[].code.
vehicle_codestringobrigatório. From cars[].vehicle_code.
tokencuuidobrigatório. From /fleet/show.
coupon_codestringopcional. See coupons.
customer.*objectobrigatório. See curl below.
airline / frequent_flyerobjectopcional. Propagated to ABG/ANE adapters.
mail_notification / sms_notificationboolDefaults true / false.
bash
curl -X POST https://greenflow.live/api/v1/bookings \
  -H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP" \
  -H "Content-Type: application/json" \
  -d '{
    "brand": 11,
    "pickup_location": "AACGH", "dropoff_location": "AACGH",
    "pickup_date": "2026-05-15T10:00:00", "dropoff_date": "2026-05-18T10:00:00",
    "rate": "011880", "vehicle_code": "B",
    "tokenc": "836c7fb31f624ca2a8b5a519f26825d2",
    "customer": {
      "name": "Joao", "lastname": "Silva", "email": "joao@example.com", "age": 30,
      "address": { "country_code": "BR" },
      "telephone": { "phone_number": "11987654321" }
    }
  }'
json
{
  "data": {
    "uuid": "01935f1e-9b0a-7c88-b9e3-3f7c8e9d1a02",
    "booking_code": "BR-1234567",
    "local_number": "GFC042389XY",
    "brand": "LOCALIZA",
    "name": "Joao", "last_name": "Silva",
    "voucher": { "status": "queued" }
  }
}

Efeitos colaterais

  1. Creates a Booking (status RESERVED) and Sale (PENDING) in a DB transaction.
  2. Queues the voucher PDF emission + booking confirmation email.
  3. Dispatches the booking.created webhook event.
  4. Writes a booking.created audit log row.

GET /bookings/{code}

Requer lastname como query param — pseudo-auth leve para que o code sozinho não seja suficiente para ler a reserva.

bash
curl -s "https://greenflow.live/api/v1/bookings/BR-1234567?lastname=Silva" \
  -H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP"
json
{
  "data": {
    "uuid": "01935f1e-9b0a-7c88-b9e3-3f7c8e9d1a02",
    "booking_code": "BR-1234567",
    "local_number": "GFC042389XY",
    "status": "RESERVED",
    "pickup_date": "2026-05-15 10:00:00",
    "dropoff_date": "2026-05-18 10:00:00",
    "gds": { "booking_code": "BR-1234567", "status": "RESERVED" }
  }
}

DELETE /bookings/{code}

Cancela upstream. Se havia cupom aplicado, é revertido e o slot de uso é liberado.

bash
curl -X DELETE https://greenflow.live/api/v1/bookings/BR-1234567 \
  -H "Authorization: Bearer gfc_7s2wprmy_DWTZRBGBEV6La4dTOoFdMkEhWmWCsXdwc3zVMnqP"
json
{ "data": { "success": true, "booking_code": "BR-1234567", "local_number": "GFC042389XY" } }

Erros

HTTPBody
401{"message": "Invalid API key"}
422{"error": {"message": "RATE NOT AVAILABLE FOR THIS CAR CLASS"}}
422{"error": "coupon_validation_failed", "reason": "coupon_expired"}
404Cross-tenant booking or mismatched lastname.