← All case studies
Kaspi · 2026

Exchange rate differences: −74% support requests on social media

RoleProduct Designer
Timeline2 weeks to the first release
TeamPO and engineering
Year2026
Transaction details after confirmation: each line has its own rate and date
−74%

support requests on social media in one month

−62%

requests to second-line support in one month

3M

customers got a message with an explanation in one month

What happened. “Kaspi steals money” — that’s what people wrote on Threads when their balance was off by a few dozen tenge.

In January and February 2026 it was the top complaint about Kaspi on Threads. People posted screenshots where 20–50 ₸ (a few cents) disappeared from their balance — sometimes thousands.

One post got 2.8K likes and 400 comments, another 5.3K likes. Readers took the same questions to customer support.

Kaspi, have you lost your mind? People’s pennies quietly vanish, 20-30-50 tenge at a time. Take that from everyone and, excuse me, you can buy an island in the Maldives
We urgently need to quit Kaspi. This is outrageous!
Never checked my Kaspi charges. Today I looked out of curiosity after the complaints in this thread 😳 Found minus 500 tenge, just like that
Kaspi bank DRIVES ME CRAZY!!!!!!! You wake up and you’re down 14,626 tenge!
What the 🙊 exchange rate difference? I’m so 🙈 tired of you, and the difference always goes Kaspi’s way

Threads posts, January–February 2026, translated from Russian. No author names; swearing replaced with monkeys

Where the difference comes from. While the merchant’s bank confirms the purchase, the exchange rate changes. That’s how foreign-currency card payments work.

When you pay in a foreign currency, Kaspi first holds the amount in tenge at the current rate. The merchant’s bank confirms the purchase later: usually within 3 days, sometimes a week.

By then the rate has moved, so Kaspi charges or refunds the difference. Before, it silently disappeared from the balance and was only visible in the statement.

Analysis. People weren’t upset about the rate itself, but about money vanishing without explanation.

I collected posts from Threads, and together with the team we went through support requests. The picture was the same everywhere: the balance doesn’t add up, and people don’t know why.

Example: after a $200 purchase, 103,828.8 ₸ is available. After a 1,000 ₸ transfer it should be 102,828.8 ₸, but the screen shows 100,256.8 ₸. Where did 2,572 ₸ go? Nothing says.

Alternatives. Warning at checkout or locking the rate wasn’t an option.

People pay by card abroad, often without their phone at hand: a warning at the moment of payment simply wouldn’t reach them. Locking the rate at purchase is too expensive for the bank.

What’s left is to explain the difference when it appears — right away and in full.

The message. The difference used to vanish silently. Now a message explains it — a long one, but with a complete answer.

When the merchant’s bank confirms the purchase, a final calculation arrives: how much was held and at what rate, how much was charged in the end, the difference, and that Kaspi took no fee.

We usually keep copy as short as possible. Here we agreed on a long text. Together with transaction details and the answers in Kaspi Guide, it had to cover three things:

  • that’s how foreign-currency card payments work, Kaspi is no exception;
  • why the difference appears at all;
  • enough clarity that under the next angry post, people would reply: “it’s all explained in the message”.
Before: “Purchase: $200 … Available: 103,828.8 ₸” — then 2,572 ₸ vanish without explanation
Before: “Purchase: $200 … Available: 103,828.8 ₸” — then 2,572 ₸ vanish without explanation
After: “Final calculation from the merchant’s bank: held 107,470 ₸ at 537.35 ₸, final 110,042 ₸ at 550.21 ₸, difference −2,572 ₸. No additional Kaspi.kz fees”
After: “Final calculation from the merchant’s bank: held 107,470 ₸ at 537.35 ₸, final 110,042 ₸ at 550.21 ₸, difference −2,572 ₸. No additional Kaspi.kz fees”

One more detail. Purchase messages used to skip the tenge amount: a week later it could differ from the statement. Now the difference comes separately, so the tenge amount is shown right away.

BeforePurchase message: $200, no tenge amount
“Purchase: $200” — dollars only
AfterPurchase message: $150 (74,463 ₸)
“Purchase: $150 (74,463 ₸)” — the tenge amount right away

Versions. About 40 versions of the text before we settled on the final one.

In drafts the message was called “Purchase adjustment”. We tried just the numbers, an explanation in a separate block, two steps one by one. The final one is “Final calculation”: numbers first, then the explanation.

Draft: just the numbers
Draft: just the numbers
Draft: explanation in a separate block
Draft: explanation in a separate block
Draft: two steps, one by one
Draft: two steps, one by one

The transaction. Transaction details now explain what happened on their own.

While a purchase awaits confirmation, you can see the rate the amount is held at, that we’re waiting for the merchant’s bank, and that the final sum may go up or down.

After confirmation there are two lines: “held” and “confirmed and sent to the merchant”, each with its own rate and date. We also rewrote the answers in Kaspi Guide, the in-app help and support chat.

Before: “The amount may change within 3 days”
Before: “The amount may change within 3 days”
After: the hold rate, and why the final amount may change
After: the hold rate, and why the final amount may change
Before: “Charged” and a difference with no rate
Before: “Charged” and a difference with no rate
After: “Held … $1 = 537.35 ₸”, “Confirmed and sent to the merchant … $1 = 550.21 ₸”
After: “Held … $1 = 537.35 ₸”, “Confirmed and sent to the merchant … $1 = 550.21 ₸”

Edge cases. Along the way we found 5 more situations where money behaved unexpectedly.

Each got its own message.

  • Difference in your favor. The rate dropped and money comes back — we explain that too.
  • Negative balance. The PO suggested hiding it. We pushed back: the whole wave started from a lack of transparency. Now the message says how much will be taken from the next top-ups.
  • Several confirmations for one purchase. The first release waited for all of them and showed an average rate. The second calculates each part separately: a preliminary calculation, then the final one.
  • Several purchases from one merchant. Each gets its own difference and its own message, so amounts don’t merge.
  • No hold. The merchant’s bank didn’t send the data right away, and the money was charged a week later. We explain why the charge came late.
Difference in your favor: “refunded to your Kaspi Gold”
Difference in your favor: “refunded to your Kaspi Gold”
Negative balance: “will be taken from your next top-ups”
Negative balance: “will be taken from your next top-ups”
Preliminary and final calculation
Preliminary and final calculation
Two purchases, two messages
Two purchases, two messages
Delayed charge: “the merchant’s bank confirmed your purchase late”
Delayed charge: “the merchant’s bank confirmed your purchase late”

Result. In one month, support requests on social media dropped by 74%.

  • Fewer requests in one month: −74% to social media support, −62% to second-line support, −18% to the customer care service.
  • 3,059,689 customers in one month got a message explaining the exchange rate difference.
  • The numbers cover the month after launch. Kaspi shared them at a public presentation streamed on YouTube.
  • On Threads, people started saying thanks — here’s what they wrote after launch.
Noticed today that Kaspi added a notification with a detailed calculation, and they also show right away how much was charged in tenge when you pay in a foreign currency. Handy 👍
FINALLY, after so many complaints, they made this IMPORTANT feature! Now every lost penny from the exchange rate will be explained like this. THANK YOU!
Yay! Turns out they also started showing in brackets how much tenge went out when you pay in a foreign currency. Thank god, I was tired of adding and subtracting

Threads posts after launch, translated from Russian, no author names

What I learned. When it’s the customer’s money, transparency beats brevity.

A long message has a cost: it takes longer to read, and it arrives even for a difference of a few tenge. In return, people get the answer right away instead of taking the question to support.

Next case study

Cut product listing time almost in half

→