Our WooCommerce store paid Kount about $700 a month to screen orders for fraud. We replaced it with a custom plugin that stops risky checkouts before an order is ever created, and the Kount subscription is now retired.
The store was DermWarehouse, the skincare site we ran on WooCommerce for 10 years before it joined forces with Dermstore. With hundreds of brands and a steady stream of fraudulent checkout attempts, fraud screening wasn’t optional. The question was whether we needed to pay a platform $8,400 a year to do it.
This post covers why we moved off Kount, exactly what our plugin checks, how we rolled it out without a gap in protection, and what the results did and didn’t show.
Why Kount stopped making sense
Kount scored each order after payment. By the time it made a call, the order already existed in the store. That meant every questionable order became work for a person.
Across DermWarehouse’s Kount history, the decisions broke down like this:
| Kount decision | Orders |
|---|---|
| Approved | 120,882 |
| Sent to review | 2,904 |
| Declined | 377 |
The 2,904 reviews were the real cost. Each one was an order that had already been placed and needed someone to look at it before it shipped. Our theme tagged each of those orders with a “Review Order” note for our team in ShipStation.
So we were paying about $700 a month for a tool that still left us with a manual review pile. What we wanted was simpler: stop the bad checkouts before they became orders at all.
What the plugin checks at checkout
Our plugin runs when a customer submits checkout, before WooCommerce creates the order. It looks at five things:
- The IP address, against a block list of IPs we’ve already flagged.
- The email, against an allow list of known-good customers and a block list of known-bad addresses.
- Order history. Whether the email already has a completed or processing order on the store.
- Email deliverability, using ZeroBounce. It tells us whether the address is valid, invalid, or flagged for abuse.
- Domain age. A brand-new email domain is a common sign of a throwaway address.
Those results combine into a decision to allow the checkout or stop it. We’re not publishing the exact cutoff, since that would tell fraudsters what to aim for.
Two design choices mattered more than any single check:
- It doesn’t check the street address. In practice, every block in our log came from the email checks.
- It fails open. If ZeroBounce doesn’t respond in time, the checkout goes through. A slow third-party service should never cost us a real sale.
What a blocked customer sees
When the plugin stops a checkout, no order is created. The customer sees one message:
We were unable to process your order. Please use a valid email address.
The message doesn’t say which check failed, so it gives a fraudster nothing to adjust.
A real customer who gets blocked can still contact support. Our team clicks Flag Valid on their entry in the block log, which adds the email to the allow list. Their next checkout skips the checks and goes straight through.
How we rolled it out: alongside Kount, not instead of it
We didn’t switch Kount off and the plugin on in one day. The two ran side by side for months, so there was never a gap in protection.
- March 31 to April 10, 2026: Our development team built the first version.
- April 1, 2026: the plugin blocked its first checkout. Kount kept scoring every order that got through.
- July 19, 2026: Kount’s last decline on DermWarehouse.
- August 13, 2026: we updated the plugin’s admin screen.
Since DermWarehouse joined forces with Dermstore and the site redirected, the plugin is no longer active there as of November 1, 2026. It’s still running on Park Perfection’s site.
Running both had a real benefit: the plugin stopped bad checkouts at the door, while Kount stayed in place as a safety net for anything that got past it. By the time we turned Kount off, the plugin had been running on live checkouts for seven months.
The results
774 checkout attempts stopped on DermWarehouse between April 1 and October 31, 2026, before any of them became an order. Every one was stopped by the email checks. We later installed the same plugin on Park Perfection, our skincare brand, where it stopped 80 more between July 23 and November 5, 2026.
42 real customers cleared. DermWarehouse’s allow list holds 42 emails that our team later marked as real customers, against 774 blocked attempts. That’s the honest number for mistaken blocks: about 1 in 18. Each of those customers could check out normally once flagged.

The cost. Kount ran about $700 a month, or $8,400 a year. ZeroBounce, the email service the plugin uses, offers pay-as-you-go credits starting at $39 for 2,000 checks, or a subscription at $99 a month. On the $99 plan, the switch saves about $7,200 a year
When a custom build makes sense, and when it doesn’t
A custom plugin isn’t the right answer for every store. Here’s how we’d think about it.
A custom build makes sense when:
- Your fraud follows a pattern you can see in your own data. Ours showed up in bad email addresses, which made it something we could check directly.
- The monthly fee is large next to the problem it solves. At $700 a month, our first version, built over working sessions from March 31 to April 10, paid for itself quickly.
- You have a developer who can maintain it. A custom plugin is yours to update when WooCommerce or ZeroBounce changes.
A fraud platform makes more sense when:
- You don’t have a developer to own the code over time.
- Your fraud doesn’t follow a pattern you can define, so you need a vendor watching patterns across many stores.
- You need something a vendor contract provides that your own code can’t, so check what your current platform actually covers before you cancel it.
Whichever way you go, run the new approach alongside the old one first. That overlap is what let us switch with confidence.
Checklist for replacing a fraud platform
- Pull your current platform’s decision history and count the orders sent to manual review
- Find the signals your fraud actually shows up in (bad emails, repeat IPs, new domains)
- Check at checkout, before an order is created, not after payment
- Show a neutral error message that doesn’t say which check failed
- Build a one-click way to clear a real customer onto an allow list
- Let checkouts through if a third-party check times out
- Keep your blocking threshold private
- Run both systems in parallel before you turn the old one off
- Track blocks and cleared customers so you can see the mistake rate
Paying too much for fraud screening?
This plugin is one of the custom builds on our Custom WooCommerce Development page. If a fraud tool’s monthly bill has you wondering whether there’s a better way, talk to our developers about what your store actually needs.
About this post: Written by Jason Parks, co-founder of The Media Captain, who owned DermWarehouse and Park Perfection during this project. Austin San, the developer on our team who built the plugin, provided the technical details and reviewed this post for accuracy.