When a transfer fails on the way into a trading account, people almost always blame the trading platform. Usually the block happened much earlier, inside the mobile money wallet, and it happened for a reason the wallet never explained properly: the account is registered at a tier whose ceilings the transfer did not fit under.

Your EasyPaisa, JazzCash, bKash, M-PESA or eZ Cash account has its own KYC system. It has tiers, each tier has its own ceilings on what you can send and hold, and none of it is connected in any way to identity verification on a trading platform. Two separate companies, two separate sets of documents, two separate sets of limits. Clearing one does nothing for the other.

This page is about the rail side — the part almost every crypto guide skips over on its way to talking about order books. If you have ever had a transfer bounce back for no stated reason, or arrive smaller than you sent, the explanation is far more likely to be here than anywhere on the exchange.

Your wallet has its own KYC, and nobody tells you

Mobile money grew up as a way to move small amounts of cash between people who did not have bank accounts. That origin still shapes the design. Opening a wallet can be almost frictionless — a SIM, a name, sometimes a photo of an ID at an agent counter — and the system compensates for that light onboarding by capping what a lightly verified account is allowed to do.

The result is a tier ladder. At the bottom sits an account registered with the minimum the provider will accept, with the tightest ceilings. Further up sit accounts that have submitted fuller documentation, sometimes been verified in person at an agent or a branch, and have correspondingly larger allowances. Providers use different names for these levels and different requirements to move between them, but the shape is the same everywhere the site covers.

Two things follow, and both bite regularly.

Two verifications, two companies, zero connection. If your problem is a rejected transfer out of a wallet, the fix lives with the wallet provider, not with the exchange.

The upgrade path is always the provider’s own: their app, their customer care line, or an agent or branch that handles registrations. What they ask for varies — a national identity document is the usual core of it, sometimes with proof of address or a biometric check. Ask the provider what your current tier is and what the next one requires. It is a short conversation and it settles the question permanently.

What a blocked transfer actually looks like

Tier problems rarely announce themselves as tier problems. They arrive disguised as something else, which is exactly why they get misattributed to the exchange.

What you seeWhat is often actually happening
The transfer is refused outright, with a generic error codeThe amount was over the per-transaction ceiling for your tier, or over whatever was left of the daily one
The app will not accept the figure you typed, or quietly caps itThe entry field is enforcing a ceiling before the transfer is even attempted
The account is restricted or frozen for reviewAn automated check flagged a pattern — an unusual size, an unusual burst of activity, or a sequence that looks like a limit being worked around
Part of the money arrives and part does notThe transfer was split, by you or by a retry, and only some of the legs cleared
The money leaves but takes far longer than usual to appearA pending state on the provider’s side, which is not the same thing as a completed transfer

That last row causes more trouble in P2P trades than any of the others, because a seller looking at a notification and a seller looking at available funds are looking at two different facts. It has its own page: whether a mobile money payment can be reversed after you release.

None of these arrive with a message saying your tier is too low. You get a code, or nothing at all. The only reliable way to separate a tier ceiling from a genuine outage is to ask the provider — which is why the first move after a failed transfer is the provider’s support channel, not a forum thread.

Three ceilings, not one

People talk about their limit as though it were a single number. There are usually at least three, they are enforced independently of each other, and the one that stops you is reliably the one you were not watching.

CeilingWhat it capsHow it catches people
Per transactionThe largest single transfer allowedThe easiest one to plan around, because it refuses immediately, at the moment you enter the amount
DailyEverything you move in a day, added togetherThe classic trap. Four transfers go through, the fifth fails, and nothing about the fifth was different
Monthly volume, or a balance capTotal movement over a longer window, or the most the wallet is allowed to hold at onceInvisible for weeks, then it stops something in the month you happen to be moving more than usual

Balance caps deserve their own mention because they fail in the opposite direction. Sending out is fine; receiving is refused, because accepting the money would push the wallet past what your tier may hold. Someone cashing out into a wallet that is already close to its ceiling can watch a payment bounce for reasons that have nothing to do with the sender.

Then there is the ceiling nobody publishes: the provider’s own risk screening. It is not a number you can look up, and it reacts to patterns rather than to amounts — a quiet account that suddenly gets busy, a run of transfers to unfamiliar recipients, a first large transfer after years of small ones. This is why a large transfer from a rarely used account behaves differently from the identical amount sent by somebody who moves that much every week.

Chopping a payment into pieces specifically to stay under a threshold is precisely the pattern automated monitoring exists to catch. Splitting because one transfer genuinely does not fit is ordinary. Splitting to duck a limit tends to produce the review you were hoping to avoid.

Charges step, they do not scale

Mobile money charges are almost never a flat percentage. They are banded. A range of amounts costs one fixed charge, the next range costs a different one, and the jump between bands happens at a specific figure. Send a little more and the charge can move up a step.

Safaricom’s official M-PESA Charges page, showing the page heading, a published and last updated date line, introductory text, and the top of the consumer tariff table with a TRANSACTION RANGE (KES) column beside per-transaction-type charge columns
Safaricom’s published M-PESA tariff table, screenshotted September 2026. Charges step up in bands rather than scaling smoothly — which is why the size of a transfer changes what it costs you.

The structure in that screenshot is the thing to look at rather than any individual figure. A left-hand column sets out transaction ranges, and the columns beside it give the charge for each type of transaction within that range. One row covers a band of amounts. Cross into the next band and you are on a different row with a different charge, regardless of how small the step across the boundary was.

Two consequences follow, and they run in opposite directions.

Which is the whole point of this section. Read your own provider’s published tariff. Not a number from an article, not what a merchant told you, not what the charge was last year. Providers publish these tables on their own sites, revise them, and date them — the page above carries a published and last updated line for exactly that reason, and a table without a date on it is not worth planning around.

Charges also vary by transaction type, which is what those separate columns are for. Sending to a registered user, sending to somebody not registered on the network, withdrawing cash at an agent, and paying a business can each sit under a different column of the same table at the same amount. Reading across the wrong column is an easy way to be surprised.

One more asymmetry worth expecting: a transfer between a wallet and a bank account may be priced by whichever side initiates it, and the two directions are not always charged the same way.

Why three names have to agree

The name on your wallet, the name on your bank account and the name on your trading profile should all be the same name. When they are not, the failures are slower and more expensive than a rejected transfer, because they surface after the money has already moved.

Everyone in the chain checks independently, and none of them can see each other’s checks. The provider matches the registered wallet owner against the documents it holds. A bank matches the account holder. A trading counterparty matches the sender name against the person on the order, and refuses or disputes when it does not line up. Any one of those checks can stop things, and each of them is looking at a different record.

Almost all mismatches are mundane rather than suspicious:

The household and business cases are the ones worth pausing on, because the money genuinely is yours to send and it still fails the check. From the receiving end there is no way to distinguish a family wallet from an account that has been taken over. Nobody is accusing you of anything; the record simply does not support the claim, and unverifiable claims get set aside. Our page on how escrow works and how disputes are decided goes into what that looks like when it lands in an appeal.

All of it is fixable, and the time to fix it is now rather than mid-transfer. Ask the provider to correct or update the registered name where it is wrong, and make sure the identity document you verified with elsewhere carries the same spelling. It is paperwork, it is dull, and it removes an entire category of problem permanently.

Before a large first transfer

If you are about to move noticeably more than you usually do, a few minutes of checking beforehand is worth more than any amount of troubleshooting afterwards.

1

Find out which tier you are actually on

Ask the provider, or check the limits screen in the app if it has one. Guessing is not the same as knowing, and the answer usually takes one short call or one visit to an agent.

2

Read the current tariff table on the provider’s own site

Find where the band boundaries sit around the amount you intend to send, and check you are reading the column for the transaction type you are actually doing.

3

Count the daily ceiling against everything else you will send today

Not just this one transfer. The daily figure counts every transfer added together, including the ones you already made this morning and forgot about.

4

Check the receiving side too

If money is coming back into the wallet, a balance cap can refuse it on arrival. The ceiling that stops you is not always on the sending end.

5

Confirm the names line up

Wallet, bank account and trading profile all carrying the same name, spelled the same way. This is the cheapest check on the list and the one that prevents the most expensive failure.

6

Send a small transfer first, then the rest

A small transfer that arrives cleanly tells you the route works, the names pass and the charge matches what you calculated. The test costs you one small charge. Skipping it can cost you a large amount stuck somewhere with a support ticket attached.

If a large transfer does fail, resist the reflex to retry it several times in a row. Repeated attempts on an account that has just been flagged tend to deepen the flag. Find out why it failed before trying again.

What this page leaves out

Stated plainly, so you know where the edges are.

Crypto assets are volatile and can lose value. Nothing on this page is financial or legal advice.

The short version: your wallet has a tier you probably do not know, that tier sets several ceilings that are enforced separately, the charges attached to it move in steps rather than smoothly, and the name on the account has to match the names everywhere else. Four things, all knowable in an afternoon, and between them they explain most of the transfers that fail on the way into a trade.

Questions people ask

Why was my transfer rejected when there was enough money in the wallet?

Balance is only one of the conditions. A mobile money transfer also has to fit under a per-transaction ceiling, under whatever is left of a daily ceiling, and sometimes under a monthly one — and the tier your wallet is registered at sets all of them. A wallet opened quickly with minimal documents sits at a low tier by default, so a well funded account can still refuse a transfer that is simply too large for its tier.

Is my wallet tier the same thing as verification on a trading platform?

No, and this confusion costs people more time than any other. They are two separate systems, run by two separate companies, that do not talk to each other. Clearing identity checks on a trading platform does not raise a single ceiling on your mobile wallet, and upgrading your wallet changes nothing about your trading account.

Should I split a large payment into smaller ones?

Sometimes splitting is the only way to fit under a per-transaction ceiling, but treat the cost as an open question rather than an assumption. Charges are usually banded, so two transfers can come to more than one, or to less, depending on which bands the amounts land in. Work it out against your own provider’s published tariff first. Habitually slicing payments to sit under a threshold is also the kind of pattern that attracts a review, which is the opposite of what you want.

Where do I find my actual limits and charges?

Your provider publishes them, and that published table is the only source worth trusting. Look for a tariff or charges page on the provider’s own website, or the limits screen inside the app. Figures quoted in articles, forums and group chats go stale quickly and are often for a different tier or a different country than yours.

The money left my wallet but never arrived. What now?

Start with the provider rather than the trading platform, because the transaction lives on the provider’s ledger. Find it in your app, keep the reference code, and raise it through the provider’s support channel. If it was part of a P2P order, say so inside that order as well and leave the order open — closing it removes the record everyone would need later.

Why does the name on my wallet have to match my other accounts?

Because every party in the chain checks it independently. The provider checks the registered owner against the documents on file, a bank checks the account holder, and a trading counterparty checks that the sender name matches the person on the order. A mismatch anywhere along that chain is what gets payments held, refused or disputed afterwards, even when the money genuinely was yours.