South Africa
Southern Africa · ZAR (R) · dial code +27 · English, Zulu, Afrikaans, Xhosa
Overview of IdentifyOrg in South Africa →
- Local currency
- ZAR
- Phone numbers
- +27821234567
- National ID
- South African ID number: coming
Available in South Africa
- Phone verification (SMS OTP)
- SMS and bulk SMS
- Document OCR and verification
- Liveness detection
- Face match
- Address verification
- Verification Suite (applicant links and embed)
- Website audit
- Domain verification
- AI content detection
- Video and voice calls
- Live streaming
- Chat
- WhatsApp assistant and platform
- File tools (PDF, images, audio)
- Short links
- QR codes
- Video meetings
- VAT and tax-ID validation
Nigeria only
These read Nigerian identity, banking and utility records, so they do not work for South Africa. Calling them for another country returns 403 not_available_in_country:
- BVN verification
- NIN verification
- Driver's licence (FRSC)
- Bank account name check
- BVN to account match
- CAC business registry check
- Credit bureau score
- Bills (airtime, data, electricity, TV)
- Business payment gateway (collections)
{
"error": {
"code": "not_available_in_country",
"message": "BVN verification is only available for Nigeria. ...",
"status": 403
}
}Coming: South African ID number verification
A South Africa-specific identity check against the South African ID number (Department of Home Affairs) is planned. Until it launches, you can verify people in South Africa with document OCR, liveness and face match, which work with any passport, national ID or driver's licence photo.
Prices in ZAR
Your balance is held in naira. Prices below are converted at ₦80.9196 per ZAR, rounded up. Top-ups in ZAR are credited at the same rate.
| Service | Price | Unit |
|---|---|---|
| Phone verification (SMS OTP) | R0.08 | per code sent |
| SMS | R0.04 | per message |
| Document OCR and verification | R0.62 | per document |
| Liveness detection | R0.99 | per check |
| Face match | R0.99 | per check |
| Address verification | R1.90 | per check |
| VAT number validation (live) | R16.60 | per check |
| Video call | R0.04 | per participant-minute |
| Voice call | R0.02 | per participant-minute |
| Website audit | R3.75 | per scan |
| AI text detection | R0.99 | per check |
Phone number format
South Africa mobile numbers are written locally as 082 123 4567 and internationally as +27821234567. The leading 0 is a national prefix: we drop it when we add +27, so local-format numbers work if you also send the country.
curl -X POST https://api.identifyorg.com/v1/phone/verify/start \
-H "X-IdentifyOrg-Key: io_live_xxxx" \
-H "Content-Type: application/json" \
-d '{ "phone": "+27821234567" }'
# The same number in local format needs the country:
curl -X POST https://api.identifyorg.com/v1/phone/verify/start \
-H "X-IdentifyOrg-Key: io_live_xxxx" \
-H "Content-Type: application/json" \
-d '{ "phone": "0821234567", "country": "ZA" }'const res = await fetch("https://api.identifyorg.com/v1/phone/verify/start", {
method: "POST",
headers: { "X-IdentifyOrg-Key": process.env.IDENTIFYORG_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ phone: "0821234567", country: "ZA" }), // or phone: "+27821234567"
});
const { id } = await res.json(); // then POST /v1/phone/verify/check with { id, code }import os, requests
r = requests.post(
"https://api.identifyorg.com/v1/phone/verify/start",
headers={"X-IdentifyOrg-Key": os.environ["IDENTIFYORG_KEY"]},
json={"phone": "+27821234567"},
)
verification_id = r.json()["id"]Topping up your balance
Card payments in ZAR, converted to your naira balance at the rate shown when you pay. Provider availability is set per country, and cards in US dollars are the fallback where a local-currency option is not open yet.
Data protection
Personal data in South Africa is governed by the Protection of Personal Information Act (POPIA). Phone verification stores only a salted hash of each code; check your own obligations as the data controller.

