On this page
- MAC code table (as-of 2026-08-10)
- Authorization Optimizer — MACs 24–30
- Penalties for ignoring MAC 03 and MAC 21
- How PSPs surface MAC codes
- Visa equivalent: Visa Category Codes (VCC)
- The implementation gap
- Recovery rate claims (vendor-sourced — treat with caution)
- MAC code availability caveat
- Key terms
- Related concepts
Merchant Advice Codes (MAC)
Merchant Advice Codes (MAC)
Merchant Advice Codes are Mastercard-specific numeric codes appended to card authorization responses that provide machine-readable guidance to merchants and PSPs on whether — and when — to retry a declined payment. MACs travel in the ISO 8583 message field DE48 SE84 of the authorization response, arriving in milliseconds alongside the decline. [1]
MACs are distinct from decline codes: a decline code explains why the payment failed; a MAC tells the merchant what to do next. The same decline code (e.g. 51 — insufficient funds) can arrive with MAC 24, 27, or 30 — three entirely different retry windows — depending on issuer state and Mastercard's Authorization Optimizer assessment. [2]
MAC code table (as-of 2026-08-10)
| MAC | Summary | Retry action | Notes |
|---|---|---|---|
01 | Updated account information available | Trigger Card Account Updater before retrying | Expired card, credential refresh available |
02 | Cannot approve at this time — try later | Adaptive retry; retry window at merchant's discretion | Over credit limit, insufficient funds, velocity flag |
03 | Do not try again | Hard stop — do not retry | Account closed, suspected fraud, recurring agreement cancelled. Retrying triggers Mastercard fee. |
04 | Token not supported / token requirements not met | Resolve token issue before retrying | |
21 | Stop recurring payment | Hard stop — do not retry | Customer cancelled the recurring agreement. Retrying triggers Mastercard fee. |
24 | Retry after 1 hour | Wait ≥1 hour, then retry | Insufficient funds; MAC assigned by Mastercard Authorization Optimizer (not issuer) |
25 | Retry after 24 hours | Wait ≥24 hours, then retry | |
26 | Retry after 2 days | Wait ≥2 days, then retry | |
27 | Retry after 4 days | Wait ≥4 days, then retry | Payday-aligned |
28 | Retry after 6 days | Wait ≥6 days, then retry | |
29 | Retry after 8 days | Wait ≥8 days, then retry | |
30 | Retry after 10 days | Wait ≥10 days, then retry | |
40 | Consumer non-reloadable prepaid card | Ask customer for a different card | Informational; no retry guidance |
41 | Consumer single-use virtual card number | Ask customer for a different card | Informational |
42 | Sanctions Scoring Service threshold exceeded | Hard stop — sanctions flag | (Solidgate Docs, Checkout.com Docs updated 2026-01-07) |
43 | Consumer multi-use virtual card number | Informational; retry may be appropriate | Present in Braintree docs; absent from some other PSP tables |
Sources: Braintree Docs [3]; Checkout.com Docs [4]; Solidgate Docs [5]
MAC 05 and MAC 22: Some secondary sources (Chargebacks911 initial search result, some older Slicker tables) include MAC 05 (Negotiated value not approved) and MAC 22 (Merchant does not qualify for product code). These codes do not appear in Braintree's official MAC table, Checkout.com's recommendation-codes page, or Solidgate's docs. Their existence in primary Mastercard scheme documentation was not confirmed in this run — Mastercard Operating Rules are not publicly accessible.
Authorization Optimizer — MACs 24–30
MACs 24–30 are not assigned by the card issuer. They are assigned by Mastercard's Authorization Optimizer program, which appends them to authorization responses at the network layer for insufficient-funds declines (Code 51). The issuer sends the Code 51 decline; Mastercard's algorithm determines the optimal retry window and appends the corresponding MAC. [6]
The program launched October 9, 2023 in the US and January 1, 2024 in the EU. A fee applies per transaction where MAC 24–30 is received: $0.02/transaction in the US; €0.004/transaction in EEA/UK (as-of October 2023 — from Braintree F23 docs). This fee applies whether or not the merchant acts on the timing advice. [7]
Braintree F23 fee schedule (Oct 2023) — confirmed launch fee, but fee levels may have changed. IXOPAY (Sep 2025) does not update these exact amounts.
Mastercard's SVP of Payments Optimization (Sumeet Bhatt) reported that merchants using the Authorization Optimizer see an average 18% increase in conversions, and that the program has generated over $14 billion in incremental revenue since launch (as-of November 2024). [8]
Mastercard's $14B incremental revenue figure is from November 2024 — will have grown since; no more recent primary data found.
Penalties for ignoring MAC 03 and MAC 21
Retrying a card that returned MAC 03 or MAC 21 within 30 days triggers Mastercard's CNP Advice Decline Fee. The fee has escalated annually since its introduction in 2021 as evidence that widespread non-compliance persisted. [9]
MAC 03/21 penalty fee amounts vary significantly by source and region:
- Slicker (May 2026, USD figures): fee was $0.03 at launch (2021), rose to $0.10 (2022), $0.15 (2023), $0.50 (January 2025) — per excess retry
- IXOPAY (September 17, 2025): "as much as 0.50 EUR" — EUR denomination, no escalation history given
- TD Bank (February 2026, CAD figures for Canada): Mastercard CNP Advice Decline Fee rose from $0.05 CAD (until January 31, 2026) to $0.78 CAD (from February 1, 2026) — a 15.6× increase in Canada specifically The USD, EUR, and CAD figures suggest regional pricing tiers, currency translation gaps, and potentially different acquirer pass-through structures. No single globally-authoritative Mastercard fee schedule was accessible from public sources.
Separately, Mastercard's Excessive Attempts programme (also called Transaction Processing Excellence — TPE) imposes a fee for merchants attempting >35 retries on the same card in a 30-day period: $0.50/transaction (as-of January 2025, from IXOPAY). This is a separate fee from the CNP Advice Decline Fee.
Adyen's platform proactively blocks retries that would trigger the MAC 03/21 fee: refusalReasonCode 46 — "Transaction blocked by Adyen to prevent excessive retry fees." [10]
How PSPs surface MAC codes
Each major PSP exposes MACs differently. Not all provide the raw Mastercard numeric code; some abstract it into proprietary enumerations.
| PSP | Raw MAC field | Abstraction layer | Notes |
|---|---|---|---|
| Stripe | outcome.network_advice_code | outcome.advice_code — three strings: do_not_try_again, try_again_later, confirm_card_data | advice_code field only available from API version 2025-01-27 onwards; older API versions have no access. The two fields can disagree on the same transaction. |
| Adyen | additionalData.merchantAdviceCode | None (raw MAC passthrough) | Available automatically; no Customer Area config needed. Available on both approved and refused Mastercard payments. Not all issuers return it. |
| Braintree/PayPal | merchant_advice_code | merchant_advice_code_text (human-readable description) | Also sets doNotResubmit flag when applicable. |
| Checkout.com | processing.partner_merchant_advice_code | processing.recommendation_code (01/02/03 abstraction) | Raw MAC and Checkout.com abstraction both returned. Recommendation codes: 01 = updated info needed, 02 = try later, 03 = do not retry. Updated 2026-01-07; field labelled "Beta" as of June 2026. |
Sources: Stripe Docs [11]; Adyen Docs (© 2026); Braintree Docs (© 2026 PayPal); Checkout.com Docs [4]
Stripe advice_code vs network_advice_code can disagree. Example: an expired card returns network_decline_code: "54" + network_advice_code: "03" (Mastercard "do not retry") alongside advice_code: "confirm_card_data" (Stripe's assessment that updating card details may help). Merchants building retry logic should be explicit about which field they are consuming. (Stripe Docs, 2026-08-10)
Stripe API version caveat: The advice_code field was added to Charge.outcome, PaymentIntent.last_payment_error, Invoice.last_finalization_error, SetupIntent.last_setup_error, and StripeError in API version 2025-01-27.acacia. Merchants on earlier API versions receive no advice_code signal. Required SDK versions: Ruby v13.4.0, Python v11.5.0, Node v17.6.0 or newer. [12]
Visa equivalent: Visa Category Codes (VCC)
Visa does not use "Merchant Advice Codes." Its equivalent system is Visa Category Codes (VCC), a coarser 4-level taxonomy. [13]
| VCC | Meaning | Retry |
|---|---|---|
0 | Approved | N/A |
1 | Issuer will never approve | Hard stop — no retry |
2 | Issuer cannot approve at this time | Soft decline — up to 15 retries in 30 days |
3 | Data quality issues — revalidate | Soft decline — up to 15 retries in 30 days |
4 | Generic response | Soft decline — up to 15 retries in 30 days |
Key differences from MAC: VCC carries no timing guidance (no Visa equivalent of MAC 24–30). Visa's retry limit (15 attempts in 30 days on soft declines) applies across all VCC 2/3/4 codes without refinement. Merchants processing both networks operate under two distinct rulebooks. (BillPro 2026-06-02; Slicker June 2026)
VCC 1 conceptually maps to MAC 03/21 (permanent stop). However, terminology is inconsistent: Chargebacks911 calls Visa's stop-payment codes "Recurring Payment Cancellation codes," while BillPro uses "Visa Category Codes." (BillPro 2026-06-02; Chargebacks911 2026-08-04)
The implementation gap
Multiple vendor sources — with the caveat that all sell retry products — consistently report that the most common failure mode is receiving MACs in the authorization response and not routing them to any retry logic: "Most billing systems receive MAC data in authorization responses without routing it to any retry logic. The implementation gap is that common: the guidance arrives, gets logged, and goes ignored." (Slicker, 2026-05-15)
Juspay [14] identifies four structural failure modes: retrying on masked or normalized decline codes; ignoring per-credential retry accounting; letting multiple systems retry the same failure; and measuring recovery without measuring penalty exposure. Juspay also explicitly names that "some [PSPs] drop [MACs] completely" — PSPs not named.
The Mastercard penalty escalation trajectory itself (2021: $0.03 → 2025: $0.50/retry) is cited as evidence that widespread non-compliance persisted for years. (Slicker May 2026; Qualpay Nov 2025)
Only 64% of merchants track their false decline rates at all, per Dwayne Gefferie [15]. The remaining third operate blind on a metric that directly hits revenue.
Recovery rate claims (vendor-sourced — treat with caution)
All recovery rate figures below come from vendors selling retry products. No independent audit was found. Methodology is not disclosed. The "traditional vs AI" framing serves vendors' commercial interests.
- Traditional retry logic (without MAC awareness): ~15–25% recovery rate (Merchant Risk Council 2025, cited by Juspay and Slicker)
- MAC-aware rule-based retries: improvement cited but not quantified independently
- AI-powered retry systems: up to 70–85% recovery rate [16]
- Industry median: ~47.6% (Baremetrics/Slicker data, 2025)
- Involuntary churn as share of total churn: 20–40% across B2C subscription verticals (Slicker Sep 2025)
Soft decline share: Gefferie (March 2026 Substack) cites 80–90% of all payment declines as soft (retriable). Nathan DONDEY, a European acquirer professional commenting on the same post, explicitly challenges this framing for CIT (customer-initiated transaction) contexts, arguing that retry windows are shorter and the recoverable universe smaller in CIT. Neither provides primary data. The 80–90% figure likely applies to MIT (merchant-initiated/recurring) contexts where issuers apply softer policies.
MAC code availability caveat
MACs are not guaranteed in every decline response. "The availability of the MAC code depends on the policies of both the card issuer and the acquirer, and this feature is not yet universally supported by all banks." [5] Retry logic must handle null or absent MAC values gracefully, defaulting to conservative retry schedules when no MAC is received.
Key terms
| Term | Meaning |
|---|---|
| MAC | Merchant Advice Code — Mastercard-specific code in DE48 SE84 of authorization response |
| Authorization Optimizer | Mastercard network program that appends MACs 24–30 to Code 51 declines |
| CNP Advice Decline Fee | Mastercard penalty for retrying after MAC 03 or MAC 21 |
| Excessive Attempts Fee | Mastercard penalty for >35 retries in 30 days (separate from CNP Advice Decline Fee) |
| VCC | Visa Category Codes — Visa's coarser equivalent to MACs (4 categories, no timing guidance) |
| DE48 SE84 | ISO 8583 field location where MACs are embedded in authorization response messages |
| doNotResubmit | Flag set by Braintree and IXOPAY when MAC 03/21 is received |
Related concepts
Decline Codes · Hard Decline · Soft Decline · Dunning · Smart Retries · Involuntary Churn · Card Account Updater · Network Tokenisation · False Decline · Authorization Optimizer · Credential-on-File (CoF) · GMAP
References
- Chargebacks911, last modified 2026-08-04; Checkout.com Docs, last updated 2026-01-07 — chargebacks911.com/merchant-advice-codes
- Slicker, 2026-05-15 — www.slickerhq.com/resources/blog/merchant-advice-codes-payment-recovery
- © 2026 PayPal — developer.paypal.com/braintree/docs/reference/general/merchant-responses/merchant-advice-codes
- updated 2026-01-07 — www.checkout.com/docs/developer-resources/codes/recommendation-codes
- docs.solidgate.com/payments/card-payments/recover-revenue/merchant-advice-codes
- Braintree, Mastercard Fall 2023 Network Updates — developer.paypal.com/braintree/articles/risk-and-security/compliance/network-updates/2023/mastercard-f23
- Braintree F23 2023; IXOPAY, September 17, 2025 — www.ixopay.com/blog/card-scheme-penalty-fees
- PYMNTS TV, November 15, 2024 — www.pymnts.com/credit-cards/2024/mastercard-credential-lifecycle-management-helps-merchants-dodge-decline-frictions
- Qualpay, updated November 2025; Slicker, 2026-05-15 — help.qualpay.com/help/mastercards-decline-code-grouping-and-mac
- Adyen Docs, © 2026 — docs.adyen.com/development-resources/refusal-reasons
- 2026-08-10 — docs.stripe.com/declines
- Stripe Changelog, January 27, 2025 — edge-docs.stripe.com/changelog/acacia/2025-01-27/charge-outcome-advice-code
- Slicker, June 2026; BillPro, https://docs.bill.pro/docs/merchant-advice-codes-and-visa-category-codes, updated 2026-06-02 — www.slickerhq.com/resources/blog/visa-mastercard-payment-retry-rules
- July 2026 — juspay.io/blog/smart-payment-retries-which-declines-should-be-retried
- payments strategist, 20+ years, March 2026 Substack: — dwaynegefferie.substack.com/p/the-acquirer-divergence
- Slicker, September 16, 2025 — www.slickerhq.com/resources/blog/2025-ai-driven-retry-engines-cut-involuntary-churn-40-percent-b2c-verticals