Why you dial 0 first in South Africa, and why it breaks your CRM if you store it
The leading 0 is a national habit most South Africans never question. For a business running VoIP, a CRM or an auto-dialler, getting it wrong silently misroutes calls. Here is what the 0 actually does and how to store numbers so they always connect.
Why do you dial 0 before a phone number in South Africa?
The leading 0 is a trunk prefix. It tells the network the call is national rather than local or international. You drop it when dialling South Africa from abroad and replace it with the country code +27. Inside a VoIP system or CRM, store numbers in international E.164 format so they route correctly every time.
What the 0 actually does
South Africa uses a closed numbering plan, administered by ICASA under the Numbering Plan Regulations of 2016. You always dial the full number, and the leading 0 signals a national call.
The 0 is called a trunk prefix. When you dial it from inside the country, the network reads it as “route this call nationally” and uses the next digits to decide where. The real, internationally unique part of the number is the nine digits that follow the 0.
How the main South African prefixes break down
| Number type | Example prefix | Typical use |
|---|---|---|
| Geographic | 021, 011, 031 | Landlines tied to a region |
| Mobile | 06x, 07x, 08x | Cellphones across all networks |
| Non-geographic | 087 | VoIP and hosted PBX numbers |
| Toll-free | 0800 | Caller pays nothing; business absorbs the cost |
| Shared-cost | 0860 / 0861 | National business lines (split or flat-rate) |
Calling South Africa from abroad
This is where the 0 trips people up. Internationally, you drop the trunk 0 and use +27 instead.
A Cape Town landline written locally as 021 123 4567 becomes +27 21 123 4567 from overseas. The +27 replaces the 0; you never dial both. Dialling +27 0 21 keeps the call from connecting.
The same number, two ways of writing it
Why this matters for VoIP, CRMs and auto-diallers
A leading 0 stored in a database is the quiet cause of failed click-to-dial, mismatched caller ID and broken integrations.
Modern phone systems route on the full international number. If half your contacts are saved as 082… and the other half as +2782…, your click-to-dial, deduplication and reporting all drift. The fix is a single house rule.
Three rules that keep numbers connecting
| Scenario | With the 0 | Stored as E.164 (+27) |
|---|---|---|
| Dialling inside SA | Connects | Connects (system adds 0) |
| Dialling from abroad | Fails | Connects |
| CRM contact matching | Inconsistent | Reliable |
| WhatsApp / SIP routing | Often rejected | Accepted |
The 0 is a dialling instruction, not part of the number. Treat it that way in your systems and calls just connect.
WhichVoIP editorial view
Our verdict
The leading 0 is harmless when you dial by hand and quietly destructive when a computer stores it. The whole problem disappears with one convention: keep the international E.164 number in your databases and let the phone system present the local 0 to humans.
Setting up VoIP for your business?
Compare South African VoIP and hosted PBX providers and get quotes that include number setup and porting.
Frequently asked questions
Do I dial 0 when calling South Africa from another country?
What is E.164 format?
What does the 0 in front of South African numbers mean?
Why are some of my CRM click-to-dial calls failing?
What is an 087 number?
Keep reading
Sources: ICASA Numbering Plan Regulations (2016) and the ICASA numbering pages; ITU-T E.164 international numbering standard. Verified 02 June 2026.