A data or airtime purchase is one of the simplest things you can do in a fintech app: choose a network, enter a number, pick an amount, confirm. So when a purchase fails, it is easy to assume the app is broken. Most of the time it is not. The reasons why data and airtime purchases fail sit in a small set of places — the network selected, the balance in your wallet, the carrier’s own system, the plan’s availability, and the way duplicate orders are handled.
This guide explains what each purchase state means, how to separate a real failure from a delay, and how to fix the common cases without making them worse. It is written for the way purchases actually happen in Nigeria: quick top-ups on the go, often for a second line, sometimes with a wallet balance lower than the buyer expects.
Success, pending and failed: the three states
Every purchase ends in one of three states, and confusing them is the root of most frustration.
- Success — the carrier accepted the order and the airtime or bundle was delivered. The receipt shows what was bought, for which number, and the reference. Delivery is the event that matters; the receipt is the evidence.
- Pending — the order reached the carrier, but the final answer has not come back. The money may already be held from your wallet. Pending is a waiting state, not a decision.
- Failed — the carrier refused the order, or the order could not be placed at all. A failed purchase should return the money to your wallet, and the receipt should say why.
| State | What it means | What to do |
|---|---|---|
| Success | Delivered to the number | Verify with the carrier balance check and keep the receipt |
| Pending | Sent, answer not back | Wait and check the transaction detail; do not repurchase |
| Failed | Refused or not placed | Check the reason, confirm the wallet refund, then retry once |
The practical rule is simple: only a failed state calls for a new purchase. A pending state calls for patience and a look at the transaction detail.
What pending actually means
Pending is the state people misread most often. When you confirm a purchase, the app sends the order to the carrier and waits for the carrier to confirm delivery. That wait is not instant. The carrier may be processing a queue, its system may be slow, or the order may be sitting behind a maintenance window. From the app’s side, the honest answer during that period is that the outcome is not known yet.
That uncertainty feels like failure, but treating it as failure is expensive. If you buy again while the first order is pending, you can end up with two delivered bundles, two charges, or one successful order and one duplicate that is blocked after the fact. The duplicate guard exists to stop exactly that. Waiting for the first order to resolve is almost always cheaper than racing it.
Why data and airtime purchases fail: the five real causes
Almost every failure traces back to one of five causes. The order below is roughly the order in which they happen, from the buyer’s side to the carrier’s side.
Wrong network
Choosing MTN for an Airtel number is the most common buyer-side error, and it fails every time. Nigerian mobile numbers carry a prefix that belongs to a network, but prefixes move between carriers and numbers are ported, so a prefix is a hint, not a guarantee. Good apps validate the number against the selected network before taking your money. If the app lets you continue, check the number yourself before approving.
The failure is final: the carrier will not deliver an MTN bundle to an Airtel line. The wallet is refunded, but the time is gone. If you are buying for someone else, read the number back to them and confirm the network they use, not the network you assume from the prefix.
Insufficient wallet balance
A purchase is paid from your wallet, not from the airtime balance on the line. It is common to see plenty of airtime on the phone and still fail because the wallet is short. The fix is to check the wallet balance before confirming, and to fund the wallet first if the purchase is time-sensitive.
There is a second version of this problem: the balance is enough for the plan but not for the plan plus the amount already reserved by a pending order. If an earlier purchase is still pending, its amount may be held. Check the transaction list before assuming the wallet is wrong.
Carrier downtime
Networks have maintenance windows, overloaded moments and partial outages. During those periods, orders may fail, hang, or take longer than usual. Nothing in the app can fix a carrier that is not answering, and no support agent can force a delivery that the carrier has not processed.
Most carrier downtime is short. A failed order during downtime is refunded; a pending order resolves when the carrier’s system recovers. The important thing is not to interpret a slow carrier as a failed app and start sending more orders. A queue of duplicates during an outage is the worst possible time to add load.
Plan discontinued or changed
Carriers retire and replace plans without much notice. A plan you bought last month can disappear from the list, change its validity, or be replaced by a similar bundle at a different price. If the app offers a plan the carrier has already withdrawn, the order will fail or hang.
The fix is to refresh the plan list before buying and choose from what is currently available. Do not insist on a plan name you remember; match the volume and validity you need to a plan that exists today. A discontinued plan is not an app fault, and retrying it will keep failing.
Wrong number, inactive line, or closed line
A purchase can also fail because the receiving line cannot accept it. An inactive line, a line that has been barred, or a number that has been recycled may not receive a bundle. A typo in one digit delivers to a stranger or fails entirely, depending on the number.
The app can validate the network, but it cannot know whether the line is active or whether the person on the other end is the person you meant. Confirm the number digit by digit, especially when buying for family or staff. A delivered bundle cannot be recalled.
Duplicate guards, and why they exist
A duplicate guard blocks a second identical order placed shortly after the first. It exists because the most common buyer reaction to a slow purchase is to buy again, and the most common result of buying again is paying twice for one intention.
The guard is not a punishment and it is not a sign that the app distrusts you. It is a protection that assumes the first order may still succeed. If the first order does succeed, the duplicate would leave you with two bundles and less money. If the first order fails, the guard releases and you can buy again cleanly.
What counts as a duplicate depends on the order details: the same number, the same plan, and a short window between attempts. Changing the amount or the plan can bypass the guard, which is exactly why you should not do that as a workaround. A different order is not a fix for a pending order; it is a second order that may also deliver.
Why data and airtime purchases fail even when the app is working
It helps to remember where the app’s responsibility ends. The app validates the number, checks the wallet, sends the order, records the result and credits or refunds the wallet. The carrier decides whether to deliver. Between those two systems there is a network call that can time out, a queue that can stall, and a carrier rule that can reject the order.
So a failure is often a correct result, not a bug. The app correctly reported that the carrier refused. The useful question is not “why did the app fail me” but “which of the five causes applies, and what does the receipt say”. That question leads to a fix; the first question leads to a retry, which is often the wrong move.
Airtime-specific failures
Airtime purchases have a few failure modes that data purchases do not.
- Bonus airtime is not transferable. If you are buying airtime for another line, the recipient receives the value, but any bonus attached to their line behaves by the carrier’s rules and may not be usable for transfers.
- The line is on a plan that blocks top-ups. Some corporate or special lines have restrictions that prevent ordinary top-ups.
- The amount is outside the carrier’s accepted range. Carriers set minimum and maximum top-up amounts. An amount below the minimum or above the maximum is refused, and the app should show the accepted range.
- The number is a data-only or special service line. Not every SIM behaves like a normal consumer line.
When an airtime purchase fails, read the reason on the receipt before retrying. If the reason is the amount range, change the amount. If the reason is the line, the buyer needs to confirm the number and its status with the carrier.
Data-specific failures
Data adds its own complications because plans carry conditions. A night bundle bought for daytime use may deliver successfully and still be useless, which is not a failure but feels like one. A plan may exclude tethering, expire faster than expected, or require the line to be active for a minimum period.
There is also the plan-list problem: carriers rotate offers, and a bundle that was available at the start of the month may be gone by the end. If the order fails because the plan no longer exists, choose the nearest available plan by volume and validity. Do not keep retrying a plan the carrier has withdrawn.
Finally, data delivery can lag behind a successful order. The receipt may say success before the carrier’s balance updates. Check the carrier’s own balance code and give it a few minutes before concluding that the bundle did not arrive.
Refunds: what should happen and when
A failed purchase should return the money to your wallet. The refund is not a separate favour; it is the reversal of a charge for something that was not delivered. The receipt should show the failure and the refund, and the wallet balance should return to what it was before the attempt.
Refund timing depends on where the failure happened. A rejection before the order left the app can be reversed immediately. A failure after the carrier was contacted may wait until the carrier confirms that no delivery will happen. That is why a failed order sometimes shows the refund a little later than the failure itself.
If the receipt says failed and the wallet has not been credited, check the transaction detail first. If the money is still held, contact support with the reference rather than buying again. A second purchase while a refund is pending can complicate the balance and make the reconciliation slower.
When pending lasts longer than expected
Most pending orders resolve quickly. Some do not, and the difference is usually the carrier. If an order has been pending for an unusual length of time, the first step is still the transaction detail: it may have resolved without a notification reaching you.
If it is genuinely stuck, contact support with the reference. Do not cancel by buying something else, and do not assume the money is lost. A pending order is an open question with a record attached, which is a much better position than a duplicate with no clear history.
What not to do after a failed purchase
- Do not repurchase while the first order is pending. This is the single most expensive habit in this guide.
- Do not change the number or amount to bypass a duplicate guard. You are creating a second order, not fixing the first.
- Do not send money to a stranger who offers to “push” the order manually. No legitimate support process works through a chat contact’s personal account.
- Do not delete the receipt or clear the app before the issue resolves. The reference is the case.
- Do not assume a failed charge will disappear on its own if the wallet still shows it held. Check, then ask.
When to contact support
Contact support when a purchase is marked failed but the wallet has not been refunded, when a purchase has been pending far longer than normal, when the receipt and the delivered amount do not match, or when the same failure repeats with a clear pattern that the receipt does not explain.
Do not contact support for a normal pending order in its first few minutes, and do not contact support instead of checking the number and network. Those are the two most common reasons a support ticket ends with the answer already on your screen.
What to include in a support message
A good message is short and complete: the transaction reference, the phone number bought for, the network, the plan or amount, what state the purchase shows, and what you have already checked. A screenshot of the receipt helps, but the reference is what lets support find the order.
Avoid messages that only say “it failed”. They start a conversation that could have been resolved in one reply. The reference is the difference between a search and an answer.
Prevention checklist
- Confirm the network from the number itself, not from memory.
- Read the number back when buying for someone else.
- Check the wallet balance, including any amount held by pending orders.
- Refresh the plan list before choosing a data bundle.
- Read the plan conditions: validity, night-only, tethering.
- Buy during stable periods when the purchase is urgent.
- Keep the receipt until the bundle or airtime is confirmed on the line.
A calm routine for a failed purchase
- Open the transaction detail and read the state.
- If pending, wait. Check again before doing anything else.
- If failed, read the reason and check the wallet refund.
- Fix the cause: network, number, amount, plan, or balance.
- Retry once, with the corrected details.
- If it fails again for the same reason, contact support with the reference.
This routine is deliberately boring. Boring is what you want when money is in transit.
Reading the receipt properly
The receipt is not decoration. It names the number, the network, the plan or amount, the state, the reference and the amount charged. When something goes wrong, those fields are the entire case. Save the receipt before you leave the screen; finding it later is harder than keeping it now.
A receipt that says success is also useful: it lets you check the carrier balance against what was bought and prove delivery if the line later disputes it. For a business buying for staff, the receipts double as a spending record.
Myths that cause repeat failures
- “If it is slow, buying again speeds it up.” It does not; it creates a duplicate risk.
- “A failed purchase means the app took my money.” A failed purchase should refund; check the receipt and the wallet.
- “Any prefix tells me the network.” Prefixes move and numbers are ported; validate the number.
- “The plan will still exist tomorrow.” Carriers withdraw plans without notice.
- “Support can force a pending order through.” Support can trace it; only the carrier can deliver it.
The real cost of a failed purchase
The money is usually recoverable. The cost that is not recoverable is time and attention: a line that stays dry while you retry, a duplicate charge that takes a day to sort out, a support conversation that could have been avoided by checking the number. Treat the receipt and the state as the important artefacts, and most failures become a two-minute correction rather than an afternoon.
The same three-state rule applies to the other bills you pay from the wallet — electricity, cable TV and gift cards — so the receipt habit is worth keeping everywhere.
Related: How to check your data balance on MTN, Airtel and Glo.
Frequently asked questions
Why did my data purchase fail when I have airtime on my line?
Data is paid from your wallet, not from the airtime balance on the SIM. Check the wallet balance before retrying.
Can I buy again if the first purchase is pending?
Do not. Wait for the first order to resolve. Buying again can deliver twice and charge twice.
How long should a pending purchase take?
Most resolve quickly, but the exact time depends on the carrier. If it stays pending unusually long, check the transaction detail and contact support with the reference.
Will I get a refund automatically?
A failed purchase should be refunded to your wallet automatically. If the receipt says failed and the wallet is still short, contact support with the reference.
Why does the app say wrong network?
The number’s prefix or porting record does not match the network you selected. Confirm the network with the line’s owner and choose again.
Can a data bundle fail because the plan was discontinued?
Yes. Carriers withdraw plans without notice. Refresh the list and choose an available plan with similar volume and validity.
What happens if I enter the wrong number?
The bundle or airtime goes to the number entered. Delivery cannot be recalled, which is why reading the number back matters.
Does a pending order block my wallet balance?
It can hold the amount while the carrier decides. Check the transaction list before assuming the wallet is wrong.
Why did my airtime purchase fail for a line that is active?
The amount may be outside the carrier’s accepted range, the line may have top-up restrictions, or the carrier may be temporarily unavailable. The receipt should show the reason.
Can support cancel a pending order?
Support can trace it and explain the state, but the carrier controls delivery. In most cases the order resolves on its own.
Is it safe to retry after a failure?
Yes, once the first order is marked failed and the cause is understood. Retrying a pending order is the unsafe version.
Why is my data not showing after a successful purchase?
Carrier delivery can lag behind the receipt. Check the carrier’s balance code, wait a few minutes, then contact support with the reference if it still has not arrived.
Buy airtime and data with a clear receipt and a visible purchase state on Mabro: buy airtime or choose a data bundle. If a purchase is stuck, the airtime to cash guide explains how transfer limits and carrier rules affect the other direction.
