
Booking pricing always reflects what was charged: When a booking is created, the dashboard shows an estimated price from the pricing calculator. That estimate used to keep showing after the booking ended, rather than the final amount charged. Finished bookings now display the actual amount charged. Separately, bookings created before a pricing update can once again be opened, edited, and invoiced correctly, closing a gap that risked zero-charge invoices.
Signup fees correctly identified in exports: A bug causing signup fee line items to appear as standard rental charges in the exports endpoint has been fixed, restoring downstream integrations that rely on accurate fee-type classification.
Requires the latest app version. Contact your Customer Success Manager for details.
Insurance prompt and QR unlock now work together: When both the insurance acknowledgment prompt and QR-based vehicle unlock are active, only the QR unlock was shown and the insurance prompt was suppressed. Both screens now appear in the correct sequence, so riders complete the required acknowledgment before starting a trip.
Deep link to subscriptions screen: The /subscriptions deep link path is now supported in the app, allowing marketing campaigns and lifecycle messages to send users directly to the subscriptions screen in a single tap.
Filter presets in booking lists can be saved again: Saving a custom filter configuration on any of the side panels (e.g. Users, Vehicles, Bookings, etc.) booking list was failing silently. The issue has been resolved and operators can save and reuse filter presets as expected.
Damage records can now be exported: The Damages section in the back office now includes an export button that generates a CSV of all damage records matching the active filters. This brings Damages in line with Vehicles and Tasks, which already had export functionality, and removes the need to manually copy data page by page.
Finished bookings show the charged price, not an estimate: After a booking ends, the price display in the Dashboard was still showing a calculated estimate rather than the actual charged amount. It now shows the final charged price.
Bookings before a pricing update can be opened and edited again: Following a pricing bundle version change, bookings created under the previous version could no longer be opened or edited in the back office, and risked being invoiced at zero. The root cause has been fixed so older bookings remain fully accessible and price correctly regardless of when they were created.
More available drop-off slots for round-trip bookings: For round-trip bookings at stations where overbooking is turned off, a station that was going to be briefly full at a later date used to hide all earlier drop-off times too. Those earlier times are now offered, giving riders more return slots to choose from.
Expanding booking events no longer causes a server error: Clicking to expand an entry in a booking's Events tab was triggering a server error. This has been resolved and operators can review the full event history for any booking.
Out-of-order vehicles now count toward station capacity: Vehicles marked as out of order were invisible to the station capacity planner, meaning a broken vehicle physically occupying a parking spot was not reflected in capacity calculations. These vehicles now count toward station occupancy, preventing the system from offering slots that are physically taken.
Station capacity analytics on the Calendar: The Calendar page's initial view now shows station capacity analytics, including vehicle counts, out-of-order vehicles, and upcoming bookings, giving operators a clearer picture of station load at a glance.

Station maximum capacity setting available in branch settings: Operators can now enable or disable the maximum station capacity setting directly from the overbooking section of the branch settings, without needing to contact support. When set, the system prevents new bookings from exceeding the defined parking capacity.

Birthdate filter on the customer list endpoint: The Operations API GET /customers endpoint now supports filtering by birthdate range, enabling operators to query for customers within a specific age bracket. This is particularly relevant for operators with age-based access rules, for example automatically identifying under-18 customers for time-restricted driving rules.
relatedRentalIds added to INVOICE_CREATED webhook: Follow-up and refund invoices generated after the original rental invoice can now be linked back to their rental. The INVOICE_CREATED webhook payload now includes a relatedRentalIds field on all invoice types, so integration partners can reliably associate every invoice with its source rental.
Signup fees correctly typed in exports: The /exports endpoint was returning signup fee line items with type = RENTAL_PERSONAL instead of SIGNUP_FEE, breaking downstream integrations that depend on accurate fee classification. The correct type is now returned.
Total Rentals count now accurate in analytics: The "Total Rentals" metric in analytics was overstating unique completed rentals by approximately 1.5x due to a counting error in the underlying query. It now reflects the true count of distinct completed rentals.