How to Withdraw M-PESA Money Using an ATM Code
Fact-checked on
In this article
An M-PESA ATM withdrawal code authorises a cash withdrawal from your own registered M-PESA wallet at a participating ATM. You first request the code on your phone, then use it at the machine. It is different from your M-PESA PIN and from an ATM’s identifying number.
What you need
Have your registered M-PESA phone, access to your wallet, enough available balance for the withdrawal and applicable charges, and a participating ATM offering M-PESA withdrawal. Check the ATM’s instructions before generating a code; not every cash machine supports the service.
Generate the withdrawal code
Safaricom’s M-PESA app manual describes this route:
- Open the official M-PESA app and select Transact.
- Choose Withdraw at ATM.
- Enter the ATM number requested by the app, using the details displayed for that participating ATM. Check it carefully before continuing.
- Enter your M-PESA PIN privately in the official app to authorise the request.
- Wait for the SMS containing the withdrawal code. Read any instructions and validity period in the message.
Do this when you are ready at the machine. A withdrawal code is time-limited; if it expires, start a fresh request rather than repeatedly trying the old code.
Complete the ATM withdrawal
- Choose the ATM’s M-PESA withdrawal option and preferred language where offered.
- Follow its prompts for the SMS authorisation code, your mobile number and the amount. The order of prompts can differ by machine.
- Review the amount and any displayed charge before confirming.
- Collect your cash and receipt, and check the M-PESA confirmation and wallet balance.
The SMS withdrawal code is not your M-PESA PIN. Do not give your PIN to a guard, agent or person offering to help, and do not send either a PIN or a live withdrawal code to someone on the phone.
Common problems
If no code arrives, check the app’s result and your messages before requesting another. If the ATM rejects a code, check that you used the correct service and followed its instructions; do not assume a code from an unrelated transaction will work.
If your wallet is debited but cash is not dispensed, record the ATM location or identifier, time, amount and transaction reference. Contact Safaricom and the ATM operator through their official support channels. Do not immediately repeat a disputed withdrawal without checking its status.
Warning: Older guides may describe a voucher sent to an unregistered recipient. That is a different service. This guide covers a code you generate for an ATM withdrawal from your own wallet; it does not mean any SMS code can be exchanged for cash.