Eliminating duplicate payments

Restoring customer trust and reducing operational burden

Restoring customer trust and reducing operational burden

Reece Group

Australia's largest plumbing and bathroom supplies business

Compressed image
Compressed image
Compressed image
My role

As Principal UX Designer, I:

  • Was the sole designer

  • Led discovery, strategy and solution design

  • Steered cross-functional alignment

  • Used this as a clear example of the value of UX, bolstering UX maturity in the organisation

Team

The team I worked with:

  • Product manager

  • Tech lead

  • Full stack engineer

Stakeholders

Internal stakeholders included:

  • Finance

  • Operations

The problem

Customers were unintentionally making duplicate online account payments, often multiple times, due to a lack of clarity about whether their first payment went through. These payment errors had real consequences:

  • Customer pain: maxed-out cards, repeated charges, time lost chasing refunds.

  • Business impact: at least 200 duplicate payments per quarter (~$120k/month in refunds), plus manual workload across Accounts Receivable, Branch Ops, Tech, and Customer Success.

  • Strategic friction: hindered the company’s goal of shifting more payments online to free up branch staff.

Customers just didn’t trust that their payment had been submitted

Discovery & problem framing

Though product and engineering leads initially assumed a simple UI fix would suffice (“just block the payment”), I advocated for discovery to uncover root causes and identify the most effective, sustainable solution.

Framing the problem was the the most efficient way to nip it in the bud for good.

What I lead

Stakeholder interviews with Accounts Receivable and Branch Ops to hear real-world pain firsthand.

Quantitative analysis of payment data to uncover behavioural patterns:

  • 50% of duplicate payments occurred within 20 seconds

  • Majority involved saved cards

  • Higher repeat behavior on mobile apps

  • 44% of users returned to the dashboard after submitting a payment

If it's clear payment was submitted, they won't attempt to pay again

The solution

Since this was a low-risk 'just do it' fix once we understood the cause, my design efforts focused on mapping complexity and ensuring robust coverage across all payment flows.

Key contributions
  • Mapped 3 distinct user flows: invoice payments, statement payments, unauthenticated 'punchout' payments.

  • Created a journey map to visualise how duplicate payments affected customers, AR teams, and branch staff, surfacing shared pain points and systemic bottlenecks.

  • Defined a 72-hour block logic: once a payment was submitted, users were blocked from repeating it until it was either processed or bounced.

UX/UI interventions
  • Added a 'Processing' state next to paid items across the dashboard, transaction history, and punchout screens.

  • Designed platform-specific enhancements for iOS and Android, where confusion was highest, making the confirmation screen far more prominent.

  • Delivered responsive mockups for web, iOS, and Android to ensure consistency across all touch points.

Account payment dashboard
Account payment dashboard
Account payment dashboard

If a payment is submitted, remove the call to action & indicate it is processing

Challenges

Initial resistance from product & tech: PM and TL believed this was a simple button fix. I had to advocate for time to investigate root causes and push for a discovery-led approach.

Payment processing lag: Payments take 1–2 days to clear with banks and financial institutions, so we couldn’t just remove items from the dashboard or mark them as 'paid' immediately. We had to allow for the delay while still preventing accidental resubmissions, which I solved by introducing a 'Processing' state and a 72-hour block window.

Complexity of payment logic: Each payment flow (invoice, statement, punchout) had its own behaviour and edge cases. Mapping this complexity was key to ensuring coverage and preventing unintended consequences.

No way to trace invoice payments: This part of the app was built on outdated tech that didn’t support basic analytics. We couldn’t track key metrics like device type or payment method, and had to infer behavior based on other payment types (e.g. statements) when sizing the problem and designing the solution.

Outcome & impact

Problem eliminated: Duplicate online payments dropped from 1.2% to zero immediately.

Efficiency win: AR team no longer spends time issuing refunds (~18/month previously).

Cross-functional praise: Engineering Tech Lead called it “really impressive analysis”

UX visibility: I showcased the case study to product and department leads as a model for data-driven, discovery-led design.

Marina Watson

UX and product design leader

I'm based in Melbourne, Australia on the land of the Bunurong People of the Kulin Nation

2025 Marina Watson. All Rights Reserved

Marina Watson

UX and product design leader

I'm based in Melbourne, Australia on the land of the Bunurong People of the Kulin Nation

2025 Marina Watson. All Rights Reserved

Marina Watson

UX and product design leader

I'm based in Melbourne, Australia on the land of the Bunurong People of the Kulin Nation

2025 Marina Watson. All Rights Reserved