Merchant Category Code (MCC) – what is it and how it works?
Updated: 2 days ago
Merchant Category Code (MCC) is a four-digit code assigned to merchants that defines the main type of their business activity. These codes are defined by card networks such as Mastercard and Visa, and they play a key role in the authorization and classification of payment transactions.
How does MCC work?
When a store or business sets up a payment terminal (a device enabling card payments), it must declare its primary business activity — this is when an MCC code is assigned. This code is visible in the payment system during every transaction.
For example:
A BP gas station might have the code 5541 – “Service stations (with or without ancillary services).”
A grocery store, like Lidl, would have MCC 5411.
A specialty store, such as one selling nuts – MCC 5441.
Some codes are broad (e.g., “gas station”), while others are very specific. Each transaction can have only one MCC — the one assigned to the terminal by the acquiring bank (acquirer).
Transaction information (amount, terminal location, store name, MCC code, etc.) is transmitted from the terminal to the payment gateway, then to the card network, and finally to the bank. MCC is one of the key elements used by banks to decide whether to approve or reject a transaction.
How many MCC codes are there?
The number of MCC codes depends on the payment network – Visa, Mastercard, Mir, etc. – and typically ranges between 750 and 800. Interestingly, some companies and industries have their own unique codes. For example:
PLL LOT (Polish Airlines) has the code 3182 – “LOT Polish Airlines.”
Grouping MCC codes – a problem without a perfect solution
Each bank and payment institution has its own method for classifying MCCs into broader categories such as: transportation, dining, healthcare, etc. Unfortunately, there is no universal standard – different institutions may assign the same MCC to different categories. Moreover, business activities may change over time, making it difficult to maintain an accurate classification.
This creates challenges for developers of payment solutions, especially those enabling card spending limits based on MCC categories:
Should users be allowed to choose from all 800 codes themselves?
Or is it better to offer pre-built category buckets, like “restaurants” or “pharmacies”?
At Sparados, we chose flexibility – we allow manual MCC assignment via CSV or API, and for user convenience, we offer predefined MCC groups in the corporate panel. This allows users with more advanced needs (e.g., insurance companies) to precisely set where a card can be used – split into pharmacies, private clinics, hospitals, etc.
MCC limits – whitelists and blacklists
Banks and fintechs usually implement two models for filtering transactions based on MCC:
Whitelist – only transactions from specified MCCs are allowed.
Blacklist – transactions from specified MCCs are blocked.
This enables control over where a user can spend money – e.g., a corporate card can be restricted to MCCs related only to business travel.
Limitations and exceptions in practice
Each terminal has only one assigned MCC. This means:
If you buy alcohol at a gas station, the transaction will still have the gas station MCC (5541) – not a liquor store.
A lunch card will accept any purchase at a restaurant, even if it’s not a qualified meal – which can lead to misuse.
That’s why card terms and conditions often include additional rules and clarifications on what can and cannot be financed.
How do MCC restrictions work in Sparados?
In Sparados, an administrator decides in which merchant categories a company card can be used. You do it with spending categories: lists of MCC codes that work as a whitelist (only these codes are accepted) or a blacklist (these codes are declined). A payment at a merchant outside the allowed categories is declined at authorization.
How to set it up in the corporate panel
Go to the settings and open the Spending Categories tab.
Pick a ready-made system category, such as gastronomy, airlines or hotels and accommodations, or click Add Spending Category to create your own.
Give the category a name and a short description, then choose whether the selected codes go on the whitelist (accepted) or the blacklist (declined).
Select codes from the full MCC list, or upload a file with the codes you want to use.
Assign the category when you issue the card. The active categories are always visible in the card details.
Creating your own category takes about 10 minutes. Companies that manage cards from their own systems can assign MCC codes by CSV upload or through the Sparados API.
Typical setups
Team or use case | Allowed categories (whitelist) |
Employees on business trips | hotels, airlines, public transport |
Couriers and sales representatives | gas stations, car washes |
Construction and installation crews | hardware stores and wholesale outlets |
Insurers paying for claims | pharmacies, private clinics, hospitals |
When MCC alone is not enough
One terminal has one MCC, so a purchase of alcohol at a gas station still carries the gas station code (5541). That is why in Sparados you can combine MCC categories with other rules:
a list of specific merchants (Merchant ID), for example only one retail chain or only Google Ads and Meta,
countries where the card works,
hours and days when the card is active,
daily and weekly amount limits, which you can change in real time.
Step-by-step guide: How to limit card solvency to only selected categories? All control options: How to Restrict Card Transactions?
Want to see MCC restrictions in the Sparados panel? Book a demo
Reporting based on MCC
Issues with MCC classification also affect transaction reporting. Fortunately, solutions are available that learn from user data and dynamically adjust categories to their needs. Automatic classifiers can eventually assign the correct category on their own.
An added difficulty arises when small business owners don’t update their MCC after changing business activity – for example, a fishing gear store starts selling bicycles but forgets to notify the acquiring bank. Luckily, such situations are becoming increasingly rare.
Fun Fact: Valentine’s Day vs Women’s Day – who wins in flower shops?
According to data from Sparados:
Valentine’s Day (14.02.2025): the number of transactions in flower shops rose from an average of 273 to 3122.
Women’s Day (08.03.2025): a whopping 4532 transactions – over a 1560% increase from the daily average!
On Women’s Day, the number of purchases was 45% higher than on Valentine’s Day – it looks like March 8th is the real flower holiday in Poland.
Chart from card transactions in the period 10.02.2025 – 10.03.2025

Frequently asked questions about MCC restrictions
Can I block specific MCC codes on employee cards in Sparados?
Yes. Create a spending category set as a blacklist, select the MCC codes you want to block and assign the category to the card. Payments at merchants with these codes will be declined.
Can a company card work only in hotels and airlines?
Yes. Assign a whitelist category with the MCC codes for hotels and airlines, for example the ready-made system categories. All other payments will be declined.
What happens when an employee pays at a merchant outside the allowed categories?
The transaction is declined at authorization, so the expense never happens and the finance team does not need to chase it afterwards.
Can I set MCC restrictions through an API?
Yes. MCC codes can be assigned by CSV upload or through the Sparados API.
Does an MCC block stop every unwanted purchase?
Not always, because each terminal has only one MCC. For tighter control, combine MCC categories with a merchant list (Merchant ID), country restrictions and time restrictions.
Summary:
MCC is the foundation of how payment systems work, impacting transaction control, classification, and reporting. Although the system is not perfect and requires constant updating, it offers tremendous customization potential – both for financial institutions and end users. At Sparados, we believe that flexibility and automation are key to modern payment solutions.
Read more of our articles:



