
Promotion redesign rolls out across Customer Care, Referrals, and Promotions: All three Voucherable types now use the redesigned interface in the Dashboard, giving operators consistent controls for creating offers, applying targeting rules, and managing usage.
Vehicle photo capture is more reliable: Riders can now finish the rental start and end photo flow without hitting a recurring iOS camera crash, and photo uploads complete reliably even on weak mobile signal instead of stalling for minutes.
Consistent Mapbox token usage across the app: Aligned Mapbox token handling so map components initialize reliably across all map-driven flows, preventing intermittent map load failures.
Updated iOS location permission purpose string: Refined the location permission prompt with a clearer description of how location is used, addressing App Store review feedback and clearing the way for faster iOS submissions.
POI search now works in the app and is configurable from the Dashboard: Riders can search for points of interest directly in the app, and operators control which result types appear (on-demand stations, Mapbox POIs) through an extensible map-search configuration in the Dashboard.
Insurance add-on now respects per-category configuration: The insurance icon and "Add insurance" CTA only appear for vehicle categories where the add-on is enabled, so riders can start rentals on non-insured categories without hitting a forced-insurance error. Operators can now mix insured and non-insured categories within the same fleet.
Subscription config UI matches backend behavior: Removed the obsolete redeem-limits options (global and user-specific) from the Subscription configuration UI, since redeem limits aren’t appropriate for renewing offers.
Cleaner display for Apple Pay, Google Pay, and PayPal: Improved how digital wallet payment methods are presented to operators in the Dashboard, surfacing the most relevant identifiers at a glance.
Faster business account member add flow: It’s now possible to search for users when adding members to a business account, instead of having to provide a specific User ID.
Fairer discount voucher prioritization: When a customer holds multiple active DISCOUNT-type vouchers (e.g. a 50% discount package and a 100% subscription discount), the pricing engine now applies the highest percentage discount instead of the one expiring soonest. Expiration date is used only as a tie-breaker.
Bugfix: Multiple AFTER_XTH_RIDE_REWARD vouchers per branch: Operators can now configure multiple ride-milestone rewards (e.g., reward at the 1st ride and a different reward at the 5th). Note that multiple applicable rewards are still not supported and will fail.
INVERS OneAPI vehicle auto-provisioning: Vehicles connected via INVERS OneAPI are now created automatically once INVERS reports a new device, removing the manual setup step operators previously had to perform after hardware was mounted. New vehicles arrive in the configured default branch and category, ready to use. (BOP-1993, BOP-2005, BOP-2021)
Manual driver license approval works for users without an active push subscription: Resolved a backend error where manual driver license approval failed when the user had no active push notification subscription, blocking customer care from finalizing license checks. Notification issues no longer interfere with user updates.
Braze user attributes preserved across updates: Fixed an issue where user attribute updates sent to Braze included null for fields with no current value (e.g. location_id, last_ride_time outside of an active rental), causing Braze to silently delete previously stored values. Null fields are now omitted, so attributes persist correctly between updates.
Consistent rental time fields across operational APIs: Aligned rental time fields across operational API responses so integrators can rely on a single source of truth for start, end, and duration values without applying ad-hoc reconciliations.
Refund invoices expose the original invoice reference: The back-office invoices endpoint now returns a refundedInvoice object on refund records, so finance integrations can match a refund to its source invoice in one call.
Tile-level error handling on embedded dashboards: Errors on individual tiles in the embedded analytics dashboards no longer break the whole page, isolating failures so the rest of the dashboard stays usable while the affected tile recovers.
Station Performance Map reads at a glance: The map's color palette was previously inverted in a way that made utilization patterns hard to interpret (Healthy showed red, Limited showed green). Colors are now semantically ordered, and the map is scoped to a single question: where are the utilization clusters, good and bad? Revenue stays available in the adjacent Station Ranking Table.
Revenue by Price Component chart now shows data: The Revenue by Price Component tile in the Monetization Intelligence dashboard previously appeared empty. It now renders the data correctly.