Your credit card does not decide rewards based on where you shopped. It decides based on a four-digit number called the Merchant Category Code, or MCC. The same dollar can earn 4 miles at a restaurant, 0.4 miles at an insurer, and zero at a top-up kiosk, all because of which code the merchant carries. If you chase cashback or miles, the MCC is the rule that quietly decides whether you won or lost the swipe. This guide covers what MCCs are, the codes that matter most in Singapore, the categories banks have been cutting in 2025 and 2026, and how to check a merchant's code before you commit a big spend.
An MCC is a four-digit code that classifies a merchant by what it sells. It is defined by an international standard, ISO 18245, and assigned by the card networks (Visa, Mastercard, American Express) when a business sets up card acceptance. When you tap or swipe, the merchant's MCC travels with the transaction. Your bank reads that code, not the shop's name, and applies whatever bonus, base rate, or exclusion is attached to it.
This matters for one reason. Singapore credit card bonus categories are written in MCCs, not in English. A card that advertises "4 miles per dollar on dining" really means "4 miles on MCCs 5811, 5812, 5814." If a restaurant codes as something else, you get the base rate instead. Knowing the code lets you predict the reward before you spend, and lets you understand why a transaction you expected to earn bonus points came back at 0.4 miles per dollar.
The codes live in ISO 18245, whose current second edition was published in February 2023. It defines MCCs as four-digit numbers for classifying merchants by the goods or services they supply, and it is maintained by a dedicated ISO maintenance agency that approves additions and changes. The networks each keep their own working list based on the standard, which is why the same merchant can occasionally carry a different code on Visa versus Mastercard.
The four digits are loosely grouped into ranges, which is enough to sanity-check a code at a glance:
Card networks charge merchants an interchange fee on every transaction, and that fee varies by category. Supermarkets and petrol stations sit at the low end; restaurants and travel sit higher. Banks fund rewards out of interchange, so they pay generous bonuses where the margin is fat and little or nothing where it is thin. That is the whole logic behind exclusions. Insurance, utilities, education, hospitals and government bills carry low interchange, so banks rarely want to reward them.
The practical effect is that two purchases that feel identical can earn very differently. Buying a phone from an electronics chain (MCC 5732) might earn your card's general online or retail rate. Buying the same phone through a telco's bill payment portal could code as 4814 (telecommunications) and earn the base rate or nothing, depending on the card. For a guide to which cards earn the most across normal categories, see our roundup of the best rewards credit cards in Singapore.
These are the codes you will run into most often in Singapore. Treat them as a strong guide, not gospel. A single brand can carry different MCCs across outlets, and the registered category does not always match what the shop sells, so always verify before a large purchase.
| Category | Typical merchants | MCC |
|---|---|---|
| Supermarkets / grocery | FairPrice, Cold Storage, Giant, Sheng Siong, Don Don Donki | 5411 |
| Eating places / restaurants | Most full-service cafes and restaurants | 5812 |
| Fast food | McDonald's, KFC and other quick-service chains | 5814 |
| Caterers | Caterers and some delivery-first kitchens | 5811 |
| Department stores | Takashimaya, BHG, some Lazada listings | 5311 |
| Online marketplaces | Shopee, Qoo10 (varies) | 5399 |
| Direct marketing / misc online | Amazon.sg (often) | 5942 or 5999 |
| Ride-hailing / taxi | Grab rides, Gojek, ComfortDelGro | 4121 |
| Public transport | SimplyGo bus and train fares | 4111 |
| Petrol / service stations | Shell, Esso, Caltex, SPC | 5541 or 5542 |
| Telcos | Singtel, M1, StarHub bill payments | 4814 |
| Utilities | SP Group and electricity retailers | 4900 |
| Insurance | Premium payments to insurers | 6300 |
| Government services | Many .gov.sg payments, HealthHub on some cards | 9399 |
| Stored value / quasi-cash | GrabPay and EZ-Link top-ups | 6540 or 6051 |
Category ranges tell you the rough neighbourhood. What trips people up is the specific brand, because the registered code rarely matches what the shop feels like. The merchants below are the ones readers ask about most. Codes drift over time and can differ by outlet or payment route, so use this as a head start, not a guarantee, and verify a big purchase yourself.
Two patterns are worth burning into memory. First, food delivery is not dining. GrabFood, foodpanda and Deliveroo code as 5499 (miscellaneous food stores), so a dining card that earns on 5812 usually pays only the base rate on a delivery order. Second, the platform you use can change the code. Taobao's app has been seen coding as a department store (5311) while its website codes as a supermarket (5411), and Grab splits into three codes depending on whether you take a ride, order food, or top up GrabPay.
| Merchant | Typical MCC | Codes as |
|---|---|---|
| Shopee | 5399 | General merchandise (not dining/grocery) |
| Lazada | 5311 | Department store |
| RedMart (via Lazada) | 5411 | Supermarket |
| Amazon.sg | 5999 | Miscellaneous specialty retail |
| Qoo10 | 5399 | General merchandise |
| Taobao (app vs site) | 5311 or 5411 | Department store or supermarket |
| Grab rides | 4121 | Taxi / limousine |
| GrabFood / foodpanda / Deliveroo | 5499 | Food stores (not restaurants) |
| GrabPay top-up | 6051 or 7399 | Quasi-cash / business services |
| Netflix, Spotify | 5815 or 5968 | Digital goods / subscription |
| Watsons, Guardian | 5912 | Drug store / pharmacy |
| Challenger, Best Denki | 5732 | Electronics |
| Uniqlo, Cotton On | 5651 | Family clothing |
| Changi duty-free (in person) | 5309 | Duty-free store |
| iShopChangi (online) | 4582 | Airport / airport terminal |
A handful of edge cases swallow more rewards than the obvious exclusions, because the spend looks like it should earn and quietly does not.
Sometimes a merchant carries the correct bonus MCC and the points still do not show. The code is only the first gate. A few other things have to line up.
Most bonus rates are capped. A card paying high cashback on dining usually caps the bonus at a fixed monthly figure and often needs a minimum monthly spend to switch the bonus on at all. The OCBC 365 Card, for example, pays 6 percent on dining but earns up to S$80 cashback on a minimum S$800 monthly spend, or up to S$160 once you spend S$1,600 a month. Past the cap, extra dining spend earns the base rate even though the MCC is right. Foreign-currency spend, instalment plans and transactions routed through a third-party payment processor can also fall outside the bonus, because the processor's own MCC, not the shop's, is what your bank reads. Our guide to cashback credit cards in Singapore lists the caps and minimum spends on the popular cards so you can see where the bonus actually stops.
The exclusion list is where most people lose rewards without realising. Banks publish these in the card terms, but almost nobody reads them. Across 2025 and 2026, Singapore issuers kept trimming the list, so codes that earned a year ago may not earn now.
Categories that are commonly excluded or earn only a token rate:
Cards marketed as having no exclusions still draw a line somewhere. The American Express True Cashback Card, for example, covers education, insurance, utilities and government but still excludes GrabPay top-ups and SimplyGo. The UOB Absolute Cashback Card pays its headline rate broadly but drops to a fraction for donations, government, healthcare, utilities, education and professional services, which works out to a soft exclusion. A flat-rate card with few carve-outs is usually the safest choice for irregular bills, but read the fine print rather than trust the marketing line.
There is no public master directory of Singapore merchant MCCs, so checking takes a little effort. Four methods are practical in 2026, listed in order of convenience.
HeyMax and WhatCard both let you look up a merchant by name from a crowd-built database, and WhatCard goes one step further by recommending which of your cards earns the most on that code. They are free and instant, which makes them the right first stop. The catch is that they reflect codes other people saw, so a recoded merchant or a different outlet can be wrong, and a marketplace with several MCCs may show only one.
HeyMax pulls from Visa's database, so a code it shows can differ for the same merchant on a Mastercard transaction, and a merchant's registered business name may not match its shopfront. That is fine for an everyday check, but if you are about to charge a large sum, confirm it against the network your card actually runs on rather than trusting one lookup.
The Amaze card historically let you make a small transaction and read the resulting MCC in the Instarem app, since the card runs on Mastercard's network. As of June 2026 this has become unreliable: per The MileLion, the MCC no longer shows in the app for some users, though it still works for others. Treat it as a bonus method rather than your main one.
If accuracy matters, the DBS digibot method is the gold standard. Temporarily lock your DBS credit card, attempt a small transaction at the merchant so it gets declined, then ask the digibot to show the declined transaction details. It returns the exact category the merchant codes as on your own card. It is slow and fiddly, but for a five-figure renovation or a big-ticket booking it removes the guesswork. The same logic applies to other issuers that show declined transaction details.
Knowing the code is only useful if you act on it. A few habits turn this into real money:
If you are choosing a card around your actual spend pattern, line up the categories you spend most on against each card's bonus MCCs. Our guides to the best grocery credit cards and best dining rewards cards break this down by category, and a simple budget breakdown of where your money goes makes the choice obvious.
It is a four-digit Merchant Category Code that classifies a merchant by what it sells, defined by ISO 18245 and assigned by the card networks. Your bank reads it on every transaction to decide whether the spend earns bonus rewards, the base rate, or nothing.
Search the merchant on HeyMax for a quick estimate (Visa-based), use the Instarem Amaze app if it is showing MCCs for you, or for the most accurate result lock your DBS card, trigger a declined transaction, and read the category from the DBS digibot.
The merchant almost certainly coded under an excluded or non-bonus MCC. Common culprits are insurance (6300), utilities (4900), hospitals (8011 to 8099), government (9399) and top-ups (6540), which most cards exclude or reward only at a token rate.
Yes. A brand can use different codes across outlets, online versus in-store, or even across Visa and Mastercard, because the networks maintain their own lists and processors set the code. That is why you should verify rather than assume.
Most do. FairPrice, Cold Storage, Giant, Sheng Siong and Don Don Donki typically code as 5411, which is the grocery bonus category on most cards. Some specialty or convenience formats can code differently, so check if the reward matters.
Rarely on miles cards, and the trend in 2025 and 2026 has been to cut them further. A few flat-rate cashback cards still earn on them, or you can use a fee-based bill payment service like Citi PayAll, where the roughly 2.6 percent fee usually only makes sense for large amounts.
Those categories carry low interchange fees, so the bank earns little from them and cannot fund rewards. Excluding them also blocks people from gaming sign-up bonuses through top-ups and quasi-cash, which is why stored-value codes are excluded almost everywhere.
Usually not. GrabFood, foodpanda and Deliveroo typically code as 5499 (miscellaneous food stores), not 5812 (restaurants), so a dining card earns only its base rate on delivery. Eat in at the same restaurant and the charge codes as 5812, which earns the dining bonus.
Yes. Each network keeps its own working list based on ISO 18245, and the merchant's acquirer sets the code per network, so the same shop can show one MCC on Visa and another on Mastercard. If a bonus depends on it, check against the network your card runs on.
Yes, and it does. A merchant or its payment processor can be reassigned a new code, sometimes overnight, which is how HealthHub started coding as 9399 and lost rewards on some cards. A card that earned at a merchant last year may not this year, so recheck before a large or repeat spend.
Almost never. Top-ups code as quasi-cash or business-services MCCs (around 6051 or 7399) that nearly every card excludes, to stop people manufacturing spend for sign-up bonuses. A small number of flat-rate cards still earn on them, but check the card's terms first.
This is general financial information for Singapore, not personal financial advice. Figures change — verify current rates against the official sources above before acting. See our full disclaimer.