Le bureau de services PRO du coin facture 250–450 SAR pour renouveler votre licence commerciale sur Balady. Ce qu'il fait concrètement : se connecter, six clics, téléverser un PDF que vous possédez déjà, et payer. Pour un seul établissement, c'est une nuisance. Pour une chaîne gérant 40 succursales ou une plateforme ERP servant 3 000 marchands, c'est un processus manuel récurrent qui n'a pas lieu d'être.
L'Arabie Saoudite a émis et renouvelé plus de 274 000 licences commerciales au premier semestre 2026 — 97 000 nouvelles émissions et 177 000 renouvellements. Ce volume de renouvellements (environ 30 000 par mois) représente l'opportunité d'automatisation. La difficulté est que les opérations de licence Balady ne sont pas un seul appel API. Elles constituent une cascade de prérequis, et la plupart des tentatives d'automatisation échouent à l'un des quatre points de contrôle avant même l'envoi de la première requête.
Ce que gère la plateforme Balady
Balady (منصة بلدي) est la plateforme numérique unifiée du ministère des Municipalités et du Logement pour tous les services municipaux. Pour les entreprises, les types de licences concernés sont :
- Licence d'activité commerciale (رخصة النشاط التجاري) — obligatoire pour toute activité de commerce, restauration, conseil ou industrie
- Licence artisanale (رخصة الحرفة) — pour les métiers et activités qualifiées
- Permis de construire (رخصة البناء) — activités de construction
- Licence temporaire de boutique mobile — pour les opérations saisonnières ou événementielles
La licence d'activité commerciale génère la plus forte demande d'intégration. Elle se connecte à la Défense civile, au Registre du commerce, au système d'adresse nationale, et — pour certaines catégories d'activités — à Qiwa.
Balady publie ses données ouvertes via un point d'accès dédié :
GET apiservices.balady.gov.sa/v1/momrah-services/open-data
Les exigences d'intégration et le schéma de données sont documentés sur balady.gov.sa/ar/e_participation/11520. Pour la soumission de licences et les requêtes de statut, l'accès passe par Balady Aamal (business.balady.sa). Le pack d'intégration complet — points d'accès exacts, flux d'authentification et définitions de schéma — est fourni après approbation du compte authentifié via Nafath, selon le même modèle que Etimad, Muqeem et SIMAH.
Les 4 prérequis qui bloquent silencieusement l'automatisation
Chaque demande de licence Balady échouée remonte à l'un de ces quatre états de dépendance. La plateforme ne renvoie pas de message d'erreur clair — elle indique simplement que la demande ne peut pas être soumise.
1. Le registre du commerce doit être actif
Le bloqueur silencieux le plus courant. Balady vérifie le registre du commerce (CR) auprès du registre Wathq/Maroof à chaque soumission. Si le CR a expiré — même d'un seul jour — la demande ne peut pas être soumise. L'erreur est un générique "لا يمكن تقديم الطلب" sans date d'expiration dans la réponse.
La solution : récupérer le statut du CR depuis l'API Wathq (developer.wathq.sa) et vérifier expiryDate avant tout accès à Balady. Wathq retourne le statut du CR, le propriétaire, les codes d'activité et la date d'expiration en un seul appel. Le renouvellement du CR via le Centre des affaires saoudien (business.sa) prend 1 à 5 jours — planifiez en conséquence.
2. Le permis de Défense civile doit être à jour
Balady génère deux factures distinctes pour la plupart des opérations de licence commerciale : une facture de frais de Défense civile (NCDD) et une facture municipale. La séquence est imposée : la facture municipale n'apparaît qu'après paiement et compensation de la facture de Défense civile.
Les systèmes qui soumettent une demande de licence et attendent immédiatement un lien de paiement unique vont bloquer ici. Le bon schéma d'intégration est : soumettre → interroger la facture CD → payer la facture CD → attendre la compensation → interroger la facture municipale → payer la facture municipale. Contourner cette séquence produit un statut "في انتظار الدفع" qui ne se résout jamais.
Le délai de compensation de la Défense civile varie selon le type d'activité. La vente au détail à faible risque se compense généralement en quelques heures ; les activités alimentaires, médicales et industrielles peuvent déclencher une inspection sur site, ajoutant 2 à 7 jours.
3. L'adresse nationale doit correspondre
Toute demande de licence nécessite une adresse nationale vérifiée liée à l'emplacement physique de l'établissement. Balady valide l'adresse auprès du registre Subul. Trois divergences qui bloquent silencieusement les demandes :
- Numéro de bâtiment ou d'unité modifié après un relevé municipal (courant dans les quartiers en expansion de Riyad)
- Boîte postale soumise à la place d'une adresse de rue — Balady exige une adresse liée à des coordonnées géographiques précises
- Adresse de complexe sans désignation d'unité individuelle — les chaînes avec plusieurs points de vente dans un même complexe ont besoin d'une entrée d'adresse distincte par point
Effectuez la vérification d'adresse via l'API Subul avant l'appel de licence, pas en repli après l'échec de la soumission.
4. Examen professionnel Qiwa (selon l'activité)
Pour les catégories d'activités réglementées — médicales, juridiques, conseil, préparation alimentaire — Balady vérifie que le titulaire de licence ou le directeur responsable a réussi l'examen de compétence professionnelle via Qiwa. Il s'agit d'une consultation directe du registre, pas d'un téléversement de document.
Un échec courant : un directeur de succursale change, le nouveau directeur n'a pas encore passé l'examen Qiwa, et chaque tentative de renouvellement pour cette succursale échoue silencieusement. La solution est de vérifier le statut de l'examen Qiwa du directeur responsable avant de déclencher le renouvellement.
Schéma de validation préalable
Exécutez les vérifications des prérequis en lot avant tout appel Balady.
interface LicensePrereqs {
crStatus: 'ACTIVE' | 'EXPIRED' | 'SUSPENDED';
crExpiryDate: string;
addressVerified: boolean;
cdPermitStatus: 'CURRENT' | 'EXPIRED' | 'PENDING_INSPECTION';
qiwaExamPassed: boolean | null; // null pour les activités non réglementées
}
async function validateLicensePrereqs(
crNumber: string,
nationalAddressCode: string,
activityCode: string,
responsibleManagerId: string
): Promise<LicensePrereqs> {
const [cr, address, qiwa] = await Promise.all([
wathqClient.getCR(crNumber),
subulClient.verifyAddress(nationalAddressCode),
isRegulatedActivity(activityCode)
? qiwaClient.getExamStatus(responsibleManagerId, activityCode)
: Promise.resolve(null),
]);
return {
crStatus: cr.status,
crExpiryDate: cr.expiryDate,
addressVerified: address.verified,
cdPermitStatus: await getCDPermitStatus(crNumber),
qiwaExamPassed: qiwa?.passed ?? null,
};
}
async function triggerLicenseRenewal(
crNumber: string,
nationalAddressCode: string,
activityCode: string,
responsibleManagerId: string
): Promise<void> {
const prereqs = await validateLicensePrereqs(
crNumber, nationalAddressCode, activityCode, responsibleManagerId
);
if (prereqs.crStatus !== 'ACTIVE') {
throw new Error(`CR ${crNumber} est ${prereqs.crStatus} — renouvelez via business.sa d'abord`);
}
if (!prereqs.addressVerified) {
throw new Error(`Adresse ${nationalAddressCode} non vérifiée par Subul`);
}
if (prereqs.qiwaExamPassed === false) {
throw new Error(`Le directeur ${responsibleManagerId} n'a pas réussi l'examen Qiwa pour l'activité ${activityCode}`);
}
if (prereqs.cdPermitStatus === 'EXPIRED') {
throw new Error(`Permis Défense civile expiré — mettez à jour via NCDD avant la soumission Balady`);
}
// Tous les prérequis validés — soumettre le renouvellement à Balady Aamal
const renewal = await baladyAamalClient.submitRenewal({ crNumber, nationalAddressCode });
// Attendre la facture Défense civile en premier — ne pas sauter à la facture municipale
await pollForCDInvoice(renewal.requestId);
}4 modes d'échec
CR expiré alors que votre système l'affiche actif. Balady vérifie l'état en temps réel via Wathq ; l'enregistrement CR en cache dans votre ERP est obsolète. Synchronisez le statut CR depuis Wathq chaque semaine, pas seulement au moment du renouvellement.
La facture Défense civile n'apparaît jamais. Une activité à risque moyen a déclenché une inspection sur site. Le rendez-vous d'inspection doit être planifié manuellement via le portail NCDD — il n'existe pas de hook API. Intégrez un chemin d'escalade humaine pour ce statut plutôt qu'une boucle de sondage infinie.
Divergence d'adresse après relevé municipal. Les coordonnées de l'établissement ont changé dans la couche GIS de la municipalité suite à une expansion de quartier. La correction nécessite une mise à jour de l'adresse nationale via Subul — un flux de travail distinct du renouvellement de licence. Détectez cela tôt en exécutant la vérification d'adresse trimestriellement, pas seulement au moment du renouvellement.
Statut d'examen Qiwa non propagé après réussite. Les résultats d'examen Qiwa mettent jusqu'à 48 heures à apparaître dans le registre après la réussite. Un renouvellement déclenché immédiatement après que le directeur a passé l'examen échouera. Ajoutez un délai de 48 heures après la réussite de l'examen avant de relancer le flux de renouvellement.
Violations et contestation
Exercer une activité sans licence commerciale valide expose l'établissement à :
- Un avertissement initial avec une période de correction
- Après la période de correction : amende de 1 000 à 5 000 SAR par violation
- Fermeture possible pour les catégories d'activités à haut risque
Si Balady suspend ou annule une licence, une contestation peut être déposée dans les 60 jours suivant la date de suspension. Automatisez le suivi de la fenêtre de contestation : stockez le champ suspensionDate de la réponse de statut Balady et générez une alerte au jour 45, pas au jour 59.
Enjeux pour les opérations multi-sites
Une chaîne de 40 succursales en Arabie Saoudite renouvelle environ 480 licences commerciales par an. À 300 SAR par renouvellement via un bureau PRO, cela représente 144 000 SAR annuels en frais de traitement manuel, plus le risque de conformité lié aux renouvellements tardifs. La couche de validation préalable, une fois construite, fait également remonter les lacunes de conformité qui génèrent des violations avant qu'elles ne deviennent des amendes — CR expirés, permis de Défense civile qui arrivent à terme, changements de directeur qui cassent les vérifications Qiwa.
Cette intégration n'est pas un produit que nous vous vendons. C'est le middleware de conformité entre votre ERP et le registre municipal qui rend exploitables les données que vous possédez déjà.
Si vous construisez ou héritez d'un système qui doit gérer des licences commerciales saoudiennes à grande échelle, nous pouvons auditer les points d'intégration et identifier où la configuration actuelle va défaillir. Contactez-nous pour commencer par un audit diagnostic.