Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Why Do We Keep Charging Customers the Wrong Fees After a Pricing Change?
Problems We Solve

Why Do We Keep Charging Customers the Wrong Fees After a Pricing Change?

Fintech startups hard-code fees and plans, so pricing changes bring wrong charges and refunds. We build a pricing service with versioned plans and fee checks.

Updated 3 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

Wrong fees happen because pricing lives in code in several places, plans are changed by editing those places, and nothing checks charges against what the customer's plan says. We build a pricing service that holds versioned plans and fee rules, calculates every fee in one place, and runs a daily check that flags charges that do not match the plan the customer was on.

Refunds after every pricing change

Marketing launches a new plan. Product changes the FX markup for one tier and adds a monthly fee for another. Engineering updates the numbers in the code before the launch date. For the next few weeks, support hears from customers who were charged the new fee on the old plan, charged twice for the monthly fee, or not charged at all.

Finance notices a shortfall in fee income in one area and a spike in refunds in another. Ops refund customers one by one in the admin panel. Nobody can easily list every affected customer, so the list is built from complaints.

Where fee logic hides

In a young fintech, fees are usually written into whichever part of the product charges them.

  • Card fees in the card service, transfer fees in the payments service, monthly fees in a scheduled job.
  • Plan details repeated in several places, sometimes with different values.
  • No record of which plan version a customer was on when a fee was charged.
  • Promotions and exceptions added as special cases in code.
  • No regular check that charges match the plan.

When pricing changes, every one of those places has to change at the right moment, for the right customers.

The cost of getting fees wrong

Overcharging customers creates refunds, complaints and reputational harm. Undercharging loses revenue that is awkward to recover. Every pricing change becomes a risky engineering release. Finance cannot confidently forecast fee income. What customers are told about fees and how refunds are handled is for your own policy; the job here is to make sure you charge what you meant to.

One pricing service with a daily check

What we build moves fee logic into one place and adds a check behind it.

  1. A pricing service holds every plan and fee rule as data, with a version and an effective date.
  2. Each customer has a plan assignment with dates, so you always know which version applied on a given day.
  3. Every part of the product asks the pricing service for the fee rather than calculating it itself.
  4. Promotions and exceptions are rules in the service with start and end dates, not code branches.
  5. Pricing changes are made by an authorised person in an admin screen, reviewed by a second person and scheduled for their effective date.
  6. A daily check recalculates every fee charged the previous day against the plan in force and flags mismatches for ops.
  7. Plan changes produce a preview of affected customers before they go live.
Fee typePreviously calculated inNow
Card transaction and FX feesCard servicePricing service, versioned
Transfer feesPayments servicePricing service, versioned
Monthly plan feesScheduled jobPricing service, versioned
Promotions and waiversSpecial cases in codeDated rules in the service

We can move one fee type at a time, starting with the one that causes the most trouble, so there is no single risky switch.

Pricing changes without the fallout

A new plan is set up as data, reviewed and scheduled. On the effective date, it applies to the right customers. The next morning's check confirms that fees charged match plans. If something is wrong, ops see a list of affected customers straight away, not after the complaints.

Finance get a reliable fee report by plan and version, and product can test pricing ideas without a release for every change.

Does this sound familiar?

  • Pricing changes need engineering releases.
  • Customers are refunded after most pricing changes.
  • Fee values appear in more than one part of the code.
  • You cannot say which plan version applied to a past charge.
  • Nobody checks charged fees against plans routinely.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

Do we have to move every fee at once?

No. We move fee types one at a time and run the daily check across all of them from the start.

Can the check find past errors?

Yes, for periods where charge and plan data exist. It gives you a list to decide what to do about.

Who can change prices?

Only roles you authorise, with a second approval if you want it, and every change is recorded.

Does this work with card processors that charge fees themselves?

Where the processor calculates a fee, the service holds the expected value and the check compares it.

What drives the cost?

The number of fee types and plans, how scattered current logic is, and how many services need to call the pricing service.

Keep reading

More on Problems We Solve

Start here

Tell us where your fintech ops team loses the day

Describe the queue or the report that eats your ops team's week, the providers and partner bank you sit on, and the admin tools people use now. We will tell you what we would build, what we would leave to your own engineers, and if a setting in your provider's dashboard already solves it, we will say so instead.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →