Merchant Advice Code (MAC)
Last updated:October 17, 2025
You run a successful online store. Orders come in, and your system quietly handles payments in the background — subscriptions, recurring purchases, saved cards. One morning, your system tries to charge a card for a monthly subscription. The transaction is declined. No explanation. No shopper to ask. Just a failed payment.
Your retry logic kicks in. You try again later that day. Then again the next morning. Still declined. Eventually, the transaction is dropped. The sale is lost. And your system has logged three failed attempts — each one costing you time, network fees, and a hit to your approval rate.
But here’s the part most merchants never see: the issuer had already sent a signal. With the first decline, they include a small code — a Merchant Advice Code (MAC). It might've said: “Don’t retry right now. Wait.” Or, “This account is closed. Stop trying.” But your system didn’t act on it. Not because it ignored the advice — but because it didn’t understand it. That’s what MACs are: quiet, actionable messages from the issuer, passed through the card network, meant to guide your next move. They're not just technical metadata. They're a way to make smarter retry decisions, reduce unnecessary retries, and avoid higher fees that can come from repeated failed attempts.
MAC is how issuers talk to you.
MAC Control is how you learn to listen.
- What is a MAC?
- What do card networks do?
- Why MACs matter
- Normalized MAC codes
- Where MAC Control applies
- How MAC Control helps merchants
- How MAC Control decides
What is a MAC?
A short code sent by the issuer in the decline response to tell the merchant what to do next (retry, wait, or stop).Think of it as “issuer guidance for your next move”.
What do the card networks do?
The card schemes - like Visa and Mastercard - don't create Merchant Advice Codes. But they play a critical role in how MACs work:- They define the MAC rules and codes
- They deliver the MAC from issuer to acquirer to merchant
- They enforce the rules - including applying higher fees if MAC guidance is ignored
Why MACs matter
MACs help you:- Avoid unnecessary retries — stop sending transactions that are bound to fail
- Reduce noise in your traffic — fewer failed attempts means cleaner data and better performance metrics
- Stay compliant with scheme rules — avoid penalties for ignoring issuer guidance
MAC Control doesn’t boost approvals — it filters out the failures.
That means fewer declines, fewer fees, and a clearer view of what’s working.
Normalized MAC codes
Here are the simple rules for merchants:- 🔴 Don’t retry — the issuer has clearly indicated the transaction shouldn’t be attempted again. Retrying may lead to higher costs.
- 🟠 Fix the issue first — something needs attention (e.g., expired card, insufficient funds). Retry only after resolving it.
- 🟡 Wait before retrying — the timing isn’t right. Retrying too soon could result in additional fees or lower approval rates.
MAC | Likely decline reason | Description (Issuer advice) |
---|---|---|
🟠01
![]() ![]() |
Account update or SCA needed | Retry with updated card info or 3DS |
🟡02
![]() ![]() |
Insufficient funds or credit limit | Retry after 72 hours |
🔴03
![]() ![]() |
Account closed or fraud suspected | Do not retry. Obtain new payment method |
⚪04
![]() ![]() |
Token setup issue | Retry with correct token configuration |
🔴21
![]() |
Recurring agreement cancelled by customer | Do not retry. Cardholder opted out |
🟠22
![]() |
Merchant not eligible for installments | Do not retry |
🟡24
![]() |
Temporary funding issue | Retry after 1 hour |
🟡25
![]() |
Temporary funding issue | Retry after 24 hours |
🟡26
![]() |
Temporary funding issue | Retry after 2 days |
🟡27
![]() |
Temporary funding issue | Retry after 4 days |
🟡28
![]() |
Temporary funding issue | Retry after 6 days |
🟡29
![]() |
Temporary funding issue | Retry after 8 days |
🟡30
![]() |
Temporary funding issue | Retry after 10 days |
⚪40
![]() |
Consumer non-reloadable prepaid card used | Informational only |
⚪41
![]() |
Single-use virtual card used | Informational only |
⚪42
![]() |
Sanctions screening triggered | Do not retry. Cardholder or transaction matched a sanctions list |
⚪43
![]() |
Multi-use virtual card is used | Informational only. May appear on approved or declined transactions |
How MAC Control helps merchants
Let’s go back to that moment — a transaction is declined, and your system is left to decide: retry or not? You received a:
- 🔴03 — the account is closed
- 🟡02 — insufficient funds
- 🟠01 — the card needs updating
Now what?
You could build logic to interpret each MAC. You could track scheme rules, retry windows, and fee thresholds. And yes — it is the merchant’s responsibility to follow issuer advice. But MAC Control simplifies this by automating the complexity. Once enabled, MAC Control reads the MAC, understands the issuer’s advice, and makes the decision for you — instantly.
Here’s how MAC Control responds:
- 🔴03 / 🔴21 Block for 30 days - issue is permanent or customer opted out
- 🟡02 / 🟡24-30 Block temporarily - retry allowed after delay
- 🟠01 (Card update) Block for 7 days - unless card info is refreshed
- 🟠01 (SCA needed) Block for 7 days - until 3DS is enabled
- 🟠22 Block for 30 days - merchant not eligible for product
MAC Control = smarter retries, fewer costs, better compliance.
Where MAC Control applies
MAC Control activates when:- A transaction uses a PAN, wallet DPAN, or network token
- A MAC is present in the decline response
It applies across:
- Saved cards
- Subscription renewals
- Wallet payments
- Online pre-auths, debits, rebills, refunds, reversals, credits
MAC Control works across acquirers — but only where MACs are supported.
Not all acquirers expose MACs, so coverage may vary.
How MAC Control decides
Account-Level Issues
These are tied to the cardholder or merchant - not the transaction. MAC Control blocks retries unless something changes.
- 🟠01 – Card needs update or SCA not completed
- 🔴03 – Account closed or flagged for fraud
- 🟠22 – Merchant not eligible for installment product
Examples:
- Card expired → Retry only after update
- Strong Customer Authentication (SCA) required → Retry only after authentication
Transaction-Level Issues
These are tied to the specific transaction - like amount or agreement. MAC Control blocks identical retries, but allows changes.
- 🟡02 / 🟡24–30 – Cardholder may add funds - retry later or with smaller amount
- 🔴21 – Customer cancelled agreement - retry only with new consent
Examples:
- Retry later with a new amount
- Retry with a new order or updated agreement