Validation des numéros mobile money camerounais (MTN et Orange)
Project description
PhoneVerify Mobile Money Cameroun
Package Python de validation des numéros de téléphone mobile money pour le Cameroun
Validation instantanée, détection d'opérateurs et conversion de formats pour MTN et Orange
Le Problème
Le Cameroun est le leader du mobile money en zone CEMAC avec 96% des transactions. Cependant, 0,5% des transactions échouent à cause d'erreurs de format de numéros, représentant 2,5 milliards FCFA bloqués annuellement.
Ce que j'ai constaté:
- ❌ Formats inconsistants entre applications
- ❌ 50+ startups fintech développent CHACUNE leur propre validateur
- ❌ Confusion entre opérateurs (MTN vs Orange)
- ❌ Maintenance coûteuse lors de changements réglementaires
- ❌ Barrière à l'entrée pour nouvelles startups
Solution : Package Open Source unifié pour l'écosystème fintech camerounais 🇨🇲
Installation Rapide
pip install phoneverify-cameroon
import phoneverify_cameroon as pv
# Validation simple
result = pv.validate_phone("677123456")
print(f"Valid: {result['is_valid']}") # True
print(f"Opérateur: {result['operator']}") # MTN Mobile Money
print(f"Format E164: {result['formatted']['E164']}") # +237677123456
Fonctionnalités
- ✅ Validation format camerounais
- ✅ Détection automatique opérateur (MTN/Orange)
- ✅ 39 préfixes supportés (19 MTN + 20 Orange)
- ✅ Gestion multiple formats d'entrée
Fonctions Principales
validate_phone()- Validation complète avec détailsdetect_operator()- Détection d'opérateur uniquementformat_phone()- Conversion de formatsbulk_validate()- Validation en masseget_supported_operators()- Liste des opérateurs
Formats Supportés
- E164 :
+237677123456(international) - National :
0677123456(format local officiel) - Local :
677123456(format interne) - Display :
677 12 34 56(affichage utilisateur)
📚 Documentation
Validation Simple
import phoneverify_cameroon as pv
# Validation d'un numéro MTN
result = pv.validate_phone("677123456")
print(result)
Résultat :
{
"original_input": "677123456",
"is_valid": true,
"operator": "MTN Mobile Money",
"operator_code": "MTN",
"prefix": "677",
"cleaned_number": "677123456",
"formatted": {
"E164": "+237677123456",
"national": "0677123456",
"local": "677123456",
"display": "677 12 34 56"
},
"error": null
}
Gestion des Formats d'Entrée
Le package accepte tous les formats couramment utilisés :
# Tous ces formats sont valides pour le même numéro
formats = [
"677123456", # Local
"0677123456", # National
"+237677123456", # International
"+237 677 123 456", # Avec espaces
"237-677-123-456", # Avec tirets
"(677) 123-456", # Format parenthèses
]
for phone in formats:
result = pv.validate_phone(phone)
print(f"{phone} -> {result['is_valid']}") # Tous True
Détection d'Opérateurs
# Détection simple
operator = pv.detect_operator("677123456")
print(operator) # "MTN Mobile Money"
operator = pv.detect_operator("655123456")
print(operator) # "Orange Money"
# Opérateur inconnu
operator = pv.detect_operator("600123456")
print(operator) # None
Conversion de Formats
# Conversion vers différents formats
number = "677123456"
e164 = pv.format_phone(number, "E164") # "+237677123456"
national = pv.format_phone(number, "national") # "0677123456"
display = pv.format_phone(number, "display") # "677 12 34 56"
Traitement en Masse
# Validation de plusieurs numéros
numbers = ["677123456", "655987654", "invalid123", "680555666"]
# Validation bulk
results = pv.bulk_validate(numbers)
for result in results:
print(f"{result['original_input']}: {result['is_valid']}")
# Détection d'opérateurs avec regroupement
detection = pv.detect_operators_bulk(numbers)
print(f"MTN: {len(detection['MTN'])} numéros")
print(f"Orange: {len(detection['Orange'])} numéros")
print(f"Invalides: {len(detection['Invalid'])} numéros")
# Conversion en masse
conversions = pv.convert_format_bulk(numbers, "E164")
for conv in conversions:
if conv['converted']:
print(f"{conv['original']} -> {conv['converted']}")
Informations sur les Opérateurs
# Liste des opérateurs supportés
operators = pv.get_supported_operators()
for op in operators:
print(f"{op['name']}: {len(op['prefixes'])} préfixes")
print(f"Code: {op['code']}")
print(f"Préfixes: {op['prefixes'][:5]}...") # Premiers 5
print()
# Tous les préfixes supportés
all_prefixes = pv.get_supported_prefixes()
print(f"Total: {len(all_prefixes)} préfixes supportés")
print(f"MTN commence par: 65x, 67x, 68x")
print(f"Orange commence par: 64x, 65x, 68x, 69x")
📊 Opérateurs et Préfixes Supportés
MTN Mobile Money (19 préfixes)
650, 651, 652, 653, 654
670, 671, 672, 673, 674, 675, 676, 677, 678, 679
680, 681, 682, 683
Orange Money (20 préfixes)
640
655, 656, 657, 658, 659
686, 687, 688, 689
690, 691, 692, 693, 694, 695, 696, 697, 698, 699
Total : 39 préfixes actifs
🤝 Contribution
Donner un coup de main.. 🙃
- Fork le projet sur GitHub
- Créer une branche feature (
git checkout -b feature/amazing) - Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing) - Ouvrir une Pull Request
📄 Licence
MIT License - Utilisation libre pour projets commerciaux et open source.
Développé avec ❤️ pour l'écosystème fintech camerounais
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file phoneverify_cameroon-1.0.1.tar.gz.
File metadata
- Download URL: phoneverify_cameroon-1.0.1.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c61da0dfba66f5693166121dc8dd920610ab0848c4e5e1ac8686a88fb6defe5
|
|
| MD5 |
6c2308598dd176670a00a30c641bcf97
|
|
| BLAKE2b-256 |
941ac19aa795dcf4b3b0824687618c4cd84443aff5b5f206d0ca15e969531981
|
File details
Details for the file phoneverify_cameroon-1.0.1-py3-none-any.whl.
File metadata
- Download URL: phoneverify_cameroon-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0cc9113794c6bb68cf269fea9420dcf874501460ee3e052e7b8b7ef3ee6984e
|
|
| MD5 |
e4f4ca2766d0f3abd0ebd6a07937f868
|
|
| BLAKE2b-256 |
5ea190e0767977edb9f40f125a43718ebc44afd357762d2757f0ae903a0cfbaa
|