Plate codes by emirate — what the cascade actually filters
The recharge wizard does not show every plate code in one giant list. It cascades from emirate to category to code, because most combinations are not valid in real life.
UAE plate numbering is one of those areas where the documentation looks like a small thing on the surface, and then explodes into seven different number systems the moment you start writing a form. The recharge wizard tries to hide that complexity behind two cascading selects.
The first select — emirate
All seven emirates are listed: Abu Dhabi, Dubai, Sharjah, Ajman, Umm Al Quwain, Ras Al Khaimah and Fujairah. The order is alphabetical, except that Dubai is pushed to the second slot because the bulk of recharges are tied to plates registered there.
The second select — category
Once you've picked an emirate, the category list is filtered to the ones that exist there. Dubai and Abu Dhabi expose the full set — Private, Taxi, Motorcycle, Government, Heavy vehicle and Public transport. The smaller emirates may not expose every category in the same way. Umm Al Quwain, for example, has Private and Motorcycle in our cascade, because those are by far the two we see on the top-up side.
The third select — plate code
Here is where it gets interesting. Plate codes are not category-shaped — they are emirate-and-category-shaped. Dubai Private uses single Latin letters A through Z. Abu Dhabi Private uses digits 1 through 21, plus the special code 50. Sharjah Private uses just 1 through 4. Motorcycles in most emirates have no plate code at all — there is just a number stamped on the plate.
So the cascade has three layers and the wizard treats the third layer as required when applicable: if no plate codes exist for your emirate-category pair, the field becomes a notice that reads “No plate code applies” and the validation does not require a selection. That single rule eliminates the most common error from the legacy form on this domain — a motorcyclist staring at a mandatory plate-code dropdown with no options.
One small UX detail
Between selecting a category and getting the plate codes, the field shows a short spinner for roughly one to two seconds. That is not network latency — the data is bundled into the page. The spinner is intentional, because in user testing the instant-fill version felt like a glitch (“is it really updating?”). A short delay reads as “the form is working on it”.
That is also why the “Continue” button is disabled while the plate-code field is loading: a fast click could bypass the cascade. Small detail, but it removes a class of bug.
← Back to blog