{"id":33443,"date":"2026-06-09T11:57:13","date_gmt":"2026-06-09T16:57:13","guid":{"rendered":"https:\/\/reformingretail.com\/?p=33443"},"modified":"2026-06-09T11:57:19","modified_gmt":"2026-06-09T16:57:19","slug":"stripe-doesnt-even-hide-the-fact-that-they-screw-merchants-on-refunds","status":"publish","type":"post","link":"https:\/\/reformingretail.com\/index.php\/2026\/06\/09\/stripe-doesnt-even-hide-the-fact-that-they-screw-merchants-on-refunds\/","title":{"rendered":"Stripe Doesn&#8217;t Even Hide The Fact That They Screw Merchants on Refunds"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Bet you thought all you had to do was beat the processor up on authorizations rates and you\u2019d be a hero, eh?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us introduce you to a nice processor honeypot that most people are totally clueless about.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whenever a customer buys something for $100, roughly $3 of that (in the US, at least, which is the last country to openly permit card extortion) gets sucked out to Interchange.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It would make sense that if that customer returned that item the merchant would get the $100 back, right?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Only if you had a conscience.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That $3 almost always disappears into the ether when returns are made.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Why?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because Visa and Mastercard are duopolies who make the rules that everyone in the game of card processing plays by.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And boy do they absolutely love to arbitrarily enforce those rules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The basics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When a customer returns a purchase there are two ways to make a return: a void, and a refund.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Technically a void is called a reversal according to the card network rulebook. Payment historians believe the term void arose as old terminals were limited to 4-letter displays. Reversal was too long, so it became void.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A transaction can only be voided or reversed BEFORE it settles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A transaction can only be refunded AFTER it settles.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But much of the payments industry uses the terms void and refund interchangeably, which is just wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Blame the idiot developers who toiled to simplify the idea of returning money to the cardholder without understanding the plumbing underneath.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This allows scumbags like Stripe to take total advantage of the returns process and in so doing create a nice windfall for themselves.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">According to Jason Kafer of <a href=\"https:\/\/www.paymentstherapist.com\/\">Payments Therapist<\/a>, when you send an authorization to the card networks, you\u2019re really following the <a href=\"https:\/\/www.paymentstherapist.com\/blog\/your-processor-knows-how-youre-losing-money\">ISO 8583 standard <\/a>and sending a 0100 message type. It\u2019s a field called MTI (message transmission indicator).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Until the transaction settles, you can adjust the authorization message. One way to adjust it is to increment the value, which you would do by sending another 0100 message. Imagine taking multiple payments on a single transaction: that\u2019s when you\u2019d increment a transaction.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another way to adjust the authorization is with a reversal, which is a MTI code of 0400, which subtracts from the authorization amount. Reversals can be partial or full, but it decreases the authorization amount.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No Interchange is assessed when these messages are going back and forth, and the cardholder would know this because their bank statement will just show <em>pending<\/em> in place of the transaction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once that 0400 message is sent, the pending transaction gets removed from the cardholder\u2019s statement and the transaction goes away.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And remember, no Interchange is assessed until the transaction is settled, so Interchange should always be available to the merchant in a voided transaction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A refund is a discrete type of transaction made up of 3 subfields that indicate the direction of money movement: direction, from_account, and to_account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the purpose of the article, we\u2019re ignoring subfields 2 and 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the authorization message, a sale processing code is 00.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a refund or a credit, the processing code is 20. This comes from Field 3 of ISO 8583 which we\u2019ve pasted an example&nbsp; below for reference:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"821\" src=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-4.png?resize=732%2C821&#038;ssl=1\" alt=\"\" class=\"wp-image-33446\" srcset=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-4.png?w=732&amp;ssl=1 732w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-4.png?resize=267%2C300&amp;ssl=1 267w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-4.png?resize=370%2C415&amp;ssl=1 370w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-4.png?resize=270%2C303&amp;ssl=1 270w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-4.png?resize=570%2C639&amp;ssl=1 570w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"718\" height=\"283\" src=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-2.png?resize=718%2C283&#038;ssl=1\" alt=\"\" class=\"wp-image-33444\" srcset=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-2.png?w=718&amp;ssl=1 718w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-2.png?resize=300%2C118&amp;ssl=1 300w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-2.png?resize=370%2C146&amp;ssl=1 370w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-2.png?resize=270%2C106&amp;ssl=1 270w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-2.png?resize=570%2C225&amp;ssl=1 570w\" sizes=\"auto, (max-width: 718px) 100vw, 718px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">During a sale, Interchange is debited from the acquirer and credited to the issuer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a refund, the reverse happens.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, the merchant acquirer DOES in fact get a refund of Interchange on a refunded transaction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But we\u2019d bet the merchant never sees Interchange returned in either a refund or void.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And we\u2019ll show you exactly how Stipe hoses their merchants with this knowledge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re technical enough you can look at Stripe\u2019s own APIs and you\u2019ll see that there is no such thing as a void or reversal, just refund: <a href=\"https:\/\/docs.stripe.com\/api\/refunds\">https:\/\/docs.stripe.com\/api\/refunds<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stripe, like many other developers, has ignored the very real and material differences between a void and refund in hopes nobody will question their sleight of hand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re 99% of Stripe\u2019s users, though, your interaction with Stripe is through their dashboard UI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So let\u2019s turn there next.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This first screenshot shows a transaction that was \u201crefunded\u201d 2 minutes later.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"433\" src=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=770%2C433&#038;ssl=1\" alt=\"\" class=\"wp-image-33447\" srcset=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=370%2C208&amp;ssl=1 370w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=270%2C152&amp;ssl=1 270w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=570%2C321&amp;ssl=1 570w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?resize=740%2C416&amp;ssl=1 740w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-5.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s a reversal, bro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Card payments don\u2019t settle in seconds: they settle in days.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Interchange was never even taken from the acquirer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Don\u2019t matter, baby: Stripe kept that $16.01 like it was Stripe\u2019s God-given right.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The next screenshot shows a transaction that was processed a minute before we took the screenshot, with the total and complete absence of a Void or Reversal button: just \u201cRefund\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"381\" src=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=770%2C381&#038;ssl=1\" alt=\"\" class=\"wp-image-33445\" srcset=\"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=1024%2C507&amp;ssl=1 1024w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=300%2C149&amp;ssl=1 300w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=768%2C381&amp;ssl=1 768w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=1536%2C761&amp;ssl=1 1536w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=370%2C183&amp;ssl=1 370w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=270%2C134&amp;ssl=1 270w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=570%2C282&amp;ssl=1 570w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?resize=740%2C367&amp;ssl=1 740w, https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?w=1580&amp;ssl=1 1580w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.paymentstherapist.com\/blog\/your-processor-knows-how-youre-losing-money\">And they\u2019re not the only acquirer that keeps interchange<\/a>, just the largest where this type of scam is clearly evident on their own interface.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is it in violation of network rules?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Meh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even if it were, it wouldn\u2019t matter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because we\u2019re giving you the 100%, iron clad guarantee that the duopolies will never audit nor enforce this because they treat Stripe with kid gloves.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ve submitted evidence of Stripe behavior that is in open defiance of network \u201crules\u201d and there\u2019s not once been a reprisal.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019re just waiting for a processor to come out with an additional fee for refund \u201chandling\u201d so they can keep more than 3% of the transaction\u2019s value.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Negotiate all you want on the rates a processor charges, but they\u2019ll always be one step ahead of you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Never a dull moment in payments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bet you thought all you had to do was beat the processor up on authorizations rates and you\u2019d be a hero, eh? Let us introduce you to a nice processor honeypot that most people are totally clueless about. Whenever a customer buys something for $100, roughly $3 of that (in the US, at least, which [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":33445,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[5,4,3],"tags":[],"class_list":["post-33443","post","type-post","status-publish","format-image","has-post-thumbnail","hentry","category-solutions","category-merchants","category-pos","post_format-post-format-image"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p81nA2-8Hp","jetpack_featured_media_url":"https:\/\/i0.wp.com\/reformingretail.com\/wp-content\/uploads\/2026\/05\/image-3.png?fit=1580%2C783&ssl=1","_links":{"self":[{"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/posts\/33443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/comments?post=33443"}],"version-history":[{"count":2,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/posts\/33443\/revisions"}],"predecessor-version":[{"id":33572,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/posts\/33443\/revisions\/33572"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/media\/33445"}],"wp:attachment":[{"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/media?parent=33443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/categories?post=33443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reformingretail.com\/index.php\/wp-json\/wp\/v2\/tags?post=33443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}