Chaque mois, la même histoire se répète dans des centaines d'établissements saoudiens : les salaires ont été versés à temps, les montants étaient exacts, les virements ont bien atteint les comptes des employés — et la violation apparaît quand même. Le taux de conformité chute, le certificat de saoudisation est bloqué, la demande de visa est gelée.
C'est alors que la recherche d'une solution démarre au mauvais endroit. L'entreprise mandate un bureau de services administratifs pour téléverser le fichier à sa place, ou envisage de changer entièrement de logiciel de paie. Les deux traitent le symptôme.
La vraie cause : le système de protection des salaires ne mesure pas si vous avez payé. Il mesure s'il a pu réconcilier quatre sources de données distinctes. Si ces sources divergent d'un seul caractère, l'enregistrement est rejeté, indépendamment du fait que l'argent soit arrivé.
Ce que le moteur de Mudad compare réellement
Depuis les mises à jour entrées en vigueur en 2026, la liaison est quasi temps réel : la banque notifie Mudad du virement, et Mudad le compare au contrat de l'employé dans Qiwa ainsi qu'à son immatriculation à la GOSI. Vous ne téléversez plus un fichier en attendant un mois le verdict — l'écart apparaît immédiatement sur le tableau de bord d'un inspecteur.
Quatre comparaisons tournent en coulisses :
- Fichier de salaires contre registre Qiwa — chaque employé sous contrat figure-t-il dans le fichier, et le montant correspond-il au salaire contractuel ?
- Fichier de salaires contre GOSI — un employé immatriculé à l'assurance sociale mais absent du fichier est lu comme un salaire impayé.
- Fichier de salaires contre virement bancaire — l'IBAN du fichier est-il celui qui a réellement reçu les fonds, et la valeur virée égale-t-elle la valeur déclarée ?
- Retenues contre les plafonds du code du travail — toute retenue dépassant les limites légales est signalée automatiquement, même si elle a fait l'objet d'un accord interne.
Aucune de ces quatre comparaisons ne demande « avez-vous payé ? ». Toutes demandent « vos données sont-elles cohérentes entre quatre systèmes dont aucun ne possède les autres ? ».
Où naissent réellement les enregistrements rejetés
Voici la liste qui mérite d'être affichée devant l'équipe RH, car chacun de ces points prend naissance à l'intérieur de vos propres systèmes, bien avant que le fichier n'atteigne Mudad :
- Une nouvelle recrue dans la paie, pas encore immatriculée à la GOSI — deux jours d'écart sur la date d'entrée suffisent.
- Un numéro d'Iqama saisi avec un espace résiduel, ou en chiffres arabo-indiens au lieu des chiffres latins.
- Un IBAN périmé resté dans la fiche employé après un changement de banque.
- Un salaire de base divergent du salaire contractuel après une promotion jamais répercutée dans Qiwa.
- Un employé en congé sans solde dont le statut n'a pas été mis à jour : le système lit un salaire manquant.
- Un doublon produit par un traitement correctif en milieu de mois.
- Le paiement en espèces — toujours rejeté. Mudad a confirmé officiellement que le versement en liquide n'est pas accepté lors du dépôt du fichier.
Chacun de ces cas est un défaut d'appariement entre deux enregistrements, pas une défaillance du logiciel de paie. C'est pourquoi remplacer le système de paie règle rarement le problème : le nouveau système héritera des mêmes données incohérentes.
Le coût dépasse largement l'amende
Le tableau des infractions et sanctions publié par le ministère des Ressources humaines et du Développement social fixe une amende de 10 000 SAR pour l'employeur qui ne téléverse pas le fichier de protection des salaires chaque mois. Des sources spécialisées du marché évoquent des pénalités à partir d'environ 3 000 SAR par employé en cas de retard, avec doublement en cas de récidive.
Mais l'amende n'est pas la ligne la plus chère. Une baisse du taux de conformité entraîne :
- La rétention du certificat de saoudisation — le ticket d'entrée aux appels d'offres publics.
- La suspension de la délivrance des visas, de l'authentification des contrats et des transferts de parrainage.
- La suspension des services de l'établissement sur Qiwa et Muqeem.
Une entreprise de BTP qui perd son éligibilité à un appel d'offres à cause d'un certificat de saoudisation bloqué n'a pas perdu dix mille riyals : elle a perdu un projet. C'est ainsi qu'il faut chiffrer l'erreur.
Sur les seuils de conformité eux-mêmes, les chiffres publiés circulent entre 80 %, 85 % et 90 % selon la taille de l'établissement et le service concerné, et le délai légal de dépôt va jusqu'à 30 jours à compter de la date d'exigibilité, avec une recommandation pratique de déposer avant le 10. Vérifiez toujours les chiffres en vigueur pour votre établissement directement auprès de Mudad et du ministère — ils évoluent à chaque vague de mise à jour. Ce qui n'évolue pas, c'est que la marge est étroite et se resserre.
La solution : une couche de réconciliation avant le dépôt
La bonne intervention ne se situe ni dans Mudad ni dans le logiciel de paie. Elle se situe dans l'espace entre les deux. Une petite couche de réconciliation qui lit vos propres sources et exécute les mêmes comparaisons que le moteur de Mudad — mais avant le dépôt, tant que la correction est encore gratuite.
type WageRecord = {
iqamaId: string;
fullNameAr: string;
iban: string;
basicWage: number;
housingAllowance: number;
otherAllowances: number;
deductions: number;
paidOn: string; // date ISO
};
type Finding = { iqamaId: string; code: string; detail: string };
const normalizeDigits = (s: string) =>
s
.replace(/[٠-٩]/g, d => String(d.charCodeAt(0) - 0x0660))
.replace(/\s+/g, "");
function reconcile(
payroll: WageRecord[],
qiwaContracts: Map<string, number>,
gosiRoster: Set<string>,
bankTransfers: Map<string, { iban: string; amount: number }>
): Finding[] {
const findings: Finding[] = [];
const seen = new Set<string>();
for (const row of payroll) {
const id = normalizeDigits(row.iqamaId);
if (seen.has(id)) {
findings.push({ iqamaId: id, code: "DUPLICATE", detail: "doublon" });
continue;
}
seen.add(id);
const contractWage = qiwaContracts.get(id);
const total = row.basicWage + row.housingAllowance + row.otherAllowances;
if (contractWage === undefined) {
findings.push({ iqamaId: id, code: "NO_CONTRACT", detail: "absent de Qiwa" });
} else if (total < contractWage * 0.8) {
findings.push({
iqamaId: id,
code: "WAGE_SHORTFALL",
detail: `viré ${total} contre contrat ${contractWage}`,
});
}
const transfer = bankTransfers.get(id);
if (!transfer) {
findings.push({ iqamaId: id, code: "NO_TRANSFER", detail: "aucun virement trouvé" });
} else if (normalizeDigits(transfer.iban) !== normalizeDigits(row.iban)) {
findings.push({ iqamaId: id, code: "IBAN_MISMATCH", detail: "IBAN divergent" });
}
}
// Présent à la GOSI mais absent du fichier — la classe de rejet la plus coûteuse
for (const id of gosiRoster) {
if (!seen.has(id)) {
findings.push({ iqamaId: id, code: "MISSING_RECORD", detail: "à la GOSI, absent du fichier" });
}
}
return findings;
}La logique est volontairement simple. La valeur ne réside pas dans la sophistication mais dans le timing : exécuter ces comparaisons le 3 du mois plutôt qu'attendre un avis de rejet transforme une violation en une tâche administrative d'une heure.
Par-dessus, on construit un petit tableau de bord : taux de conformité projeté avant dépôt, enregistrements en suspens classés par gravité, journal des justifications déposées. C'est exactement la couche de reporting au-dessus des systèmes existants — ni remplacement de la paie, ni bureau externe qui dépose à votre place.
Deux fenêtres temporelles à connaître
- 72 heures pour déposer une justification préventive en cas de défaut technique, avant que la violation ne soit formellement enregistrée.
- 60 jours pour former un recours via Qiwa une fois la violation émise.
La première fenêtre est gaspillée presque à chaque fois, parce que personne ne découvre le défaut tant qu'elle est encore ouverte. C'est l'automatisation de la détection qui rend cette fenêtre de 72 heures exploitable.
Et depuis le 1er janvier 2026, l'obligation s'est étendue aux travailleurs domestiques via la plateforme Musaned, faisant entrer dans le périmètre les établissements et particuliers qui payaient un chauffeur ou une employée de maison en espèces.
Un schéma déjà rencontré
Qui a lu notre guide sur les refus de demandes NPHIES dans la santé saoudienne reconnaîtra l'architecture : une plateforme gouvernementale qui impose la concordance entre des systèmes jamais conçus pour se parler, et des rejets qui semblent aléatoires jusqu'à ce qu'on en mesure les causes. La même histoire s'est jouée avec la facturation électronique et ZATCA.
La conclusion tient dans les trois cas, et nous l'avons détaillée dans Le piège de l'ERP : intégrer plutôt que remplacer. La conformité en Arabie Saoudite a cessé d'être une question de « quel système acheter ». C'est devenu une question de « comment faire concorder les systèmes que j'exploite déjà, avant qu'un régulateur ne découvre qu'ils ne concordent pas ».
Par où commencer la semaine prochaine
- Téléchargez le rapport des enregistrements rejetés des trois derniers mois depuis le système de conformité, et triez-le par motif de rejet, pas par employé.
- Vous constaterez très probablement que deux ou trois motifs concentrent l'essentiel des rejets. Ce sont les points d'intégration à corriger.
- Déterminez quel système détient la vérité pour chaque champ. Qui détient l'IBAN ? Qui détient le salaire contractuel ? Qui détient la date d'entrée ? L'absence de réponse claire est la cause racine.
- Lancez la réconciliation automatiquement avant le jour du dépôt, pas après.
La première étape est purement diagnostique. Elle n'exige ni projet ni budget — seulement que le rapport de rejet soit lu comme une donnée et non comme un reproche.
Les violations WPS se répètent-elles chez vous alors que les salaires partent à temps ? Envoyez-nous votre rapport d'enregistrements rejetés des trois derniers mois : nous vous le retournons classé par cause de rejet, avec le point d'intégration responsable de chaque catégorie. Diagnostic gratuit, sans engagement, via la page contact.
Sources et références : le tableau des infractions et sanctions publié par le ministère des Ressources humaines et du Développement social, la documentation Mudad Business sur le système de conformité, et le portail e-services de la GOSI. Les taux de conformité et les délais changent à chaque vague de mise à jour — vérifiez les chiffres applicables à votre établissement auprès des sources officielles avant toute décision.