field notes 2026-04-18 7 min read the multiflow desk

Free merchant descriptor generator — 25-char compliant builder

3-minute scan
  • Descriptor generator Builds a Visa/Mastercard-compliant billing descriptor (25 chars max) plus a soft descriptor variant.
  • It accounts for 30-55% of disputes at most multi-brand operators.
  • The root cause is almost always descriptor confusion: the customer sees "WPY*ACMELLC 5555558888 CA" on their statement, doesn't recognize it, and disputes the charge as fraud.
On this page

    Descriptor generator

    Builds a Visa/Mastercard-compliant billing descriptor (25 chars max) plus a soft descriptor variant.

    (function(){ function sanitize(s){ return (s||"").toUpperCase().replace(/[^A-Z0-9 ]/g,"").replace(/\s+/g," ").trim(); } function gen(){ var brand = sanitize(document.getElementById("dg-brand").value); var cat = sanitize(document.getElementById("dg-cat").value); var city = sanitize(document.getElementById("dg-city").value); var supp = document.getElementById("dg-supp").value.trim(); var results = []; // Pattern A: brand + short city (name 21, city 13) var brandA = brand.substring(0, 21 - Math.min(city.length,4) - 1); var descA = brandA + " " + city.substring(0,4); results.push({label:"Pattern A (Brand + short city)", value:descA.substring(0,25), note:"Works for most low-risk merchants; 21+3 split keeps brand prominent"}); // Pattern B: brand + category marker var catShort = cat.substring(0, 8); var brandB = brand.substring(0, 25 - catShort.length - 1); var descB = brandB + "*" + catShort; results.push({label:"Pattern B (Brand*Category)", value:descB.substring(0,25), note:"Asterisk signals sub-brand under a parent processor; recommended for multi-brand portfolios"}); // Pattern C: parent + sub-brand var parentShort = "MFLOW"; var subB = brand.substring(0, 25 - parentShort.length - 1); var descC = parentShort + "*" + subB; results.push({label:"Pattern C (Parent*Sub-brand)", value:descC.substring(0,25), note:"Use when running on a parent merchant account; parent tag first helps acquirers"}); // Soft descriptor var soft = brand.substring(0, 25); results.push({label:"Soft descriptor (full brand)", value:soft, note:"Configured per transaction at the gateway; overrides the hard MID descriptor when supported"}); var html = '
    Support contact (surfaces under descriptor)
    '+(supp||"(none provided)")+'
    '; results.forEach(function(r){ var ov = r.value.length > 25; html += '
    '+r.label+'
    '+r.value+'
    Length: '+r.value.length+'/25 — '+r.note+'
    '; }); document.getElementById("dg-result").innerHTML = html; } document.getElementById("dg-gen").addEventListener("click", gen); gen(); })();

    Why the billing descriptor is the highest-leverage chargeback control

    Visa reason code 13.2 — "I don't recognize this charge" — is the single largest category of ecommerce chargebacks. It accounts for 30-55% of disputes at most multi-brand operators. The root cause is almost always descriptor confusion: the customer sees "WPY*ACMELLC 5555558888 CA" on their statement, doesn't recognize it, and disputes the charge as fraud. The customer is not malicious. They genuinely don't remember the purchase because the descriptor doesn't match the experience they had.

    Fix the descriptor and you reduce this category of chargebacks by 30-50%. Not theoretically — empirically, across every merchant we've migrated from generic to brand-matched descriptors. A single change to the descriptor string, propagated through the processor MID configuration, moves the needle more than any other single intervention outside of chargeback alerts.

    The 25-character rule

    Visa and Mastercard limit merchant descriptors to 25 characters total. This is what the customer sees on their statement. Within 25 characters you need to fit: the brand name (recognizable to the customer), a separator or category indicator, and ideally a geographic or support anchor.

    Additional fields (support phone, city, category code) are passed at the transaction level and surfaced by the issuer bank's app or website — but only if they're included. Most issuers now display phone and URL under the descriptor, which is why a phone number in the support contact field is as important as the descriptor itself.

    The three patterns that work

    Pattern A: Brand + City

    ACME LABS AUST — the classic. Brand name prominent, short geographic tail. Works when the brand name is under 20 characters and the customer shops primarily from the US. Recognizable immediately.

    Pattern B: Brand*Category

    ACME LABS*SUPPLMNTS — uses the asterisk separator to signal a sub-product or sub-brand. Common pattern at multi-brand operators running several product lines under one brand. Customers recognize the brand and see the category context.

    Pattern C: Parent*Sub-brand

    MFLOW*ACME LABS NUTRA — used when running on a parent merchant account where the parent processor name shows first. The parent serves as a consistent identifier across multiple brands, and the sub-brand name disambiguates the specific purchase. Slightly more confusing to customers than Pattern A but acceptable for multi-brand portfolios.

    Soft descriptors

    A soft descriptor is a per-transaction override of the hard-MID descriptor. Most modern processors (Stripe, Adyen, Braintree, Worldpay) support soft descriptors. You pass a statement_descriptor value with each charge, and it replaces or prepends to the hard descriptor on the customer's statement.

    Use case: a multi-brand portfolio running 12 brands on a single parent MID. The hard descriptor is the parent's name. Each brand passes its own soft descriptor per transaction. Customer sees the brand they bought from, not the parent. Chargebacks drop.

    Gotcha: some networks append the hard MID prefix to the soft descriptor, so the final string is longer than 25 and gets truncated unpredictably. Test with real transactions on real issuer apps before going live.

    Support phone as a chargeback saver

    Roughly 40% of modern issuer apps (Chase, Cap One, Citi, Amex) display the merchant's support phone number directly under the descriptor in the customer's transaction detail view. A confused customer who sees a phone number often calls it instead of disputing. Every call handled is a chargeback prevented.

    Pass a real, staffed number. 1-800 numbers are cheap and easy to spin up. Have a support script ready: "You're calling about a charge from Acme Labs — you purchased [product] on [date] for [amount], is that right?" A 3-minute call resolves 80-90% of descriptor confusion cases.

    Multi-brand descriptor strategy

    One brand, one descriptor. Every brand should have its own descriptor that the customer recognizes. Do not reuse a parent descriptor across 12 brands — customers buy from the brand, not the parent.

    Sub-brand variations need their own descriptors too. If you have ACME LABS NUTRA and ACME LABS SARMS, they should have different descriptors. Customers remember the specific product line.

    Refund descriptor matches original. When you refund a transaction, the refund descriptor should mirror the original charge descriptor. Mismatched refunds confuse customers even on legitimate refunds.

    Monitor customer-reported confusion. Support tickets that start with "what is this charge" are your signal. If you get more than one per $10k of processed volume, your descriptor is not working.

    Compliance rules

    • 25 characters maximum (some networks enforce 22; safer to target 22).
    • Uppercase letters, numbers, and spaces only. Some processors accept asterisk (*), period (.), and dash (-). Avoid everything else.
    • Must identify the legal merchant or clearly-branded DBA. Cannot be a misleading name.
    • Cannot imply affiliation with card networks or issuers ("VISA CASHBACK" forbidden).
    • Cannot include URLs with restricted TLDs (.gov, .edu, network-reserved).
    • Card-not-present descriptors should match card-present descriptors for the same entity where possible.

    FAQ

    Can I change my descriptor?

    Yes. Contact your processor. Most updates take 1-5 business days to propagate to all issuers. Existing transactions retain the old descriptor.

    What if my brand name is longer than 25 characters?

    Truncate to a recognizable abbreviation. "North Star Supplement Company" becomes "NORTHSTAR SUPPLEMENTS" (22 chars). Customers will recognize the brand core.

    Does the descriptor affect chargebacks if I win representment?

    The chargeback still counts against your ratio even if you win. A clear descriptor prevents the dispute entirely, which is better than winning it.

    Can I have different descriptors for different products?

    Yes, via soft descriptors. Pass a different statement_descriptor per transaction based on the product. Subject to processor support and the 25-character combined length.

    Do B2B and B2C descriptors differ?

    Not structurally. But B2B buyers often submit expense reports weeks after purchase — making descriptor clarity even more important because the buyer has forgotten the specifics.

    Found this useful? Share it X LinkedIn Reddit HN Email

    Running multiple brands?
    multiflow was built for this.

    The Operator Briefing

    Twice-monthly. No fluff.

    Processor shutdowns, reserve-hold playbooks, reconciliation lessons, and the merchant-account decisions that save operators six-figure years. Delivered to your inbox — never spam.

    No spam. Unsubscribe in one click.

    We use essential cookies · Privacy