How it works
Select pickup, return, and rental category.
Create a booking without locking the exact car too early.
Operations assigns, swaps, charges, and audits the booking.
“The monthly structure is easy to understand, and the application flow stays clear even when several people are involved.”
Demo tenant: demo-wave2 · rental: demo-rental-airport
Local demo credentials only — not real accounts.
operator.manager@ecpv2.local••••••••••
company.manager@ecpv2.local••••••••••
company.accountant@ecpv2.local••••••••••
customer.demo@ecpv2.local••••••••••
customer.onboarding@ecpv2.local••••••••••
X-Partner-Key · pk_demoota_demo_rental_airport••••••••••
Partner key prefix (public id): pk_demoota_demo_rental_airport
pk_••••.sk-••••
export BASE=http://localhost:8010 export KEY="<paste the partner key above>"
curl -H "X-Partner-Key: $KEY" \ "$BASE/api/partner/v1/availability/?pickup_date=2026-07-01&return_date=2026-07-04"
curl -X POST -H "X-Partner-Key: $KEY" -H "Content-Type: application/json" \
-d '{"offer_id": 1, "pickup_date": "2026-07-01", "return_date": "2026-07-04"}' \
"$BASE/api/partner/v1/quote/"
curl -X POST -H "X-Partner-Key: $KEY" -H "Content-Type: application/json" \
-d '{"offer_id": 1, "pickup_date": "2026-07-01", "return_date": "2026-07-04", "guest": {"email": "guest@example.com", "name": "Guest"}}' \
"$BASE/api/partner/v1/bookings/"
curl -H "X-Partner-Key: $KEY" "$BASE/api/partner/v1/bookings/1/"
curl -X POST -H "X-Partner-Key: $KEY" "$BASE/api/partner/v1/bookings/1/cancel/"