A Saudi startup with four employees builds an internal HR tool. The team reads that Absher Business is the Ministry of Interior platform for establishments, that it is free, and that it handles exit/re-entry visas and iqama status. They design the whole workflow around it. Then they try to register the commercial registration and the platform refuses.
Nobody made a mistake in the code. They are an LLC. LLCs cannot use Absher Business at any headcount — not at four employees, not at one. The correct platform for them is Muqeem, which is a paid annual subscription requiring a ZATCA zakat and tax certificate and a Chamber of Commerce legalisation step before it can be activated at all.
This is the single most expensive misunderstanding in Saudi workforce automation, and it is almost entirely absent from the content that ranks for these terms. This article fixes it.
The rule: entity type first, headcount second
Most guides state the rule as a headcount threshold — "Absher Business is for establishments with up to 100 employees." That is half of a two-part test, and it is the half that misleads.
The actual test has two gates, and both must pass for Absher Business eligibility:
| Gate | Absher Business | Muqeem |
|---|---|---|
| Legal entity type | Saudi sole proprietorship (مؤسسة فردية) only | Any company — LLC, joint-stock, foreign branch — plus establishments over the headcount limit |
| Workforce size | 1 to 100 workers | Any size, including a single employee |
| Ownership | Saudi investors only | Saudi, GCC, and foreign |
| Cost | Free | Paid annual subscription |
Read the failure modes off that table:
- An LLC with one employee is on Muqeem. Entity type alone disqualifies it. Headcount never enters the calculation.
- A sole proprietorship with 101 workers is on Muqeem. It passed the entity gate and failed the size gate.
- A foreign-owned establishment is on Muqeem regardless of both, because it fails the ownership gate.
The Directorate General of Passports scoped its establishment e-services this way when the platform launched in 2017, and the boundary has held since. Absher Business exists to serve the small Saudi sole proprietor for free. Everything with corporate structure sits behind Muqeem's commercial gateway.
If you are building against Muqeem, we have written the engineering guide to what integration there actually means — the Elm gateway, the dependency chain, and why the API you were promised does not exist as a self-service product: Muqeem integration: the iqama API nobody documents.
Why this is an architecture decision, not an admin detail
The platform you land on determines three things that are extremely painful to change later.
One: whether a programmatic surface exists at all. Absher Business is free and has no developer portal, no published API, and no commercial integration tier. It is a web portal and a mobile app. You cannot buy your way to an API, because there is no product to buy. Muqeem, by contrast, has a commercial gateway operated through Elm, with packages — Muqeem Comprehensive for unlimited transactions, Muqeem Operations for pay-per-use.
The practical consequence: the same automation requirement has a completely different technical ceiling on each side of the line. On Absher Business your ceiling is the delegation model described below. On Muqeem you have a negotiated integration path.
Two: your cost model. Absher Business is free. Muqeem subscription fees scale with the number of resident employees, the package chosen, and any add-on services, and are paid through SADAD biller code 085. A team that budgeted zero for government platform access and then converts to a company discovers a recurring line item that nobody forecast.
Three: your onboarding latency. Absher Business activation requires an authenticated commercial registration and an owner or authorised signatory with a verified Absher individual account. Muqeem requires a completed registration form, a ZATCA zakat and tax certificate attached, and Chamber of Commerce approval and legalisation of that form before the subscription can be paid. That is a multi-day, multi-agency sequence — not a signup form.
The migration event nobody plans for
Here is the failure that costs real money, and it does not look like a technical event when it happens.
Saudi Arabia's Companies Law made converting a sole proprietorship into an LLC straightforward, and formalising this way is common as a business takes on partners, raises money, or wins contracts that require corporate structure. The commercial registration is amended. The business continues trading. From the finance and operations side, nothing broke.
From the platform side, everything broke. The moment the entity type changes from مؤسسة فردية to شركة, Absher Business eligibility ends. Every workflow built on it stops. The organisation must now register on Muqeem, obtain the ZATCA certificate, get the form legalised by the Chamber of Commerce, and pay a subscription — while iqama renewals and exit/re-entry requests continue to fall due on their own schedule, indifferent to the migration.
The same cliff exists at the headcount boundary. A sole proprietorship growing through 100 workers crosses it on an ordinary hiring day.
Treat entity type and headcount as monitored state, not as configuration you set once at install. This is the single highest-value tripwire you can build into a Saudi HR or PRO system, and it costs almost nothing:
type EntityType = 'sole_proprietorship' | 'llc' | 'joint_stock' | 'foreign_branch';
type Platform = 'absher_business' | 'muqeem';
interface EstablishmentProfile {
crNumber: string;
entityType: EntityType;
workforceSize: number;
saudiOwned: boolean;
}
// Entity type is evaluated FIRST. Headcount only matters if the entity gate passes.
export function resolvePlatform(profile: EstablishmentProfile): {
platform: Platform;
reason: string;
} {
if (profile.entityType !== 'sole_proprietorship') {
return {
platform: 'muqeem',
reason: `Entity type "${profile.entityType}" is never eligible for Absher Business, at any workforce size.`,
};
}
if (!profile.saudiOwned) {
return { platform: 'muqeem', reason: 'Absher Business is limited to Saudi investors.' };
}
if (profile.workforceSize > 100) {
return {
platform: 'muqeem',
reason: `Workforce of ${profile.workforceSize} exceeds the 100-worker limit.`,
};
}
return { platform: 'absher_business', reason: 'Saudi sole proprietorship within the 100-worker limit.' };
}Then run it on a schedule against the live commercial registration record rather than against a value someone typed during onboarding. Wathq is the authoritative source for the CR's legal form and status, and we have covered how to read it in Maroof and Wathq: business verification APIs in Saudi Arabia.
const HEADCOUNT_ALERT_THRESHOLD = 90; // alert with runway, not at the cliff
export function checkPlatformDrift(
stored: EstablishmentProfile,
live: EstablishmentProfile,
): string[] {
const alerts: string[] = [];
if (stored.entityType !== live.entityType) {
const before = resolvePlatform(stored).platform;
const after = resolvePlatform(live).platform;
if (before !== after) {
alerts.push(
`CRITICAL: CR ${live.crNumber} changed entity type. Platform moves ${before} to ${after}. ` +
`Muqeem onboarding needs a ZATCA certificate plus Chamber of Commerce legalisation — start now.`,
);
}
}
if (live.entityType === 'sole_proprietorship' && live.workforceSize >= HEADCOUNT_ALERT_THRESHOLD) {
alerts.push(
`WARNING: workforce at ${live.workforceSize} of 100. Begin Muqeem onboarding before crossing.`,
);
}
return alerts;
}Alerting at 90 rather than 100 is deliberate. The Muqeem onboarding sequence is measured in days across three parties, so an alert that fires on the day you cross the boundary has already cost you the runway you needed.
The delegation model is the only permission layer you get
If you land on Absher Business, delegation (التفويض) is the whole of your access-control design. There is no API and no service account, so the platform's own authorisation model is the mechanism you build around.
It works as scoped grants rather than shared access. The commercial registration owner delegates a specific service to a specific person for a defined duration — one delegate authorised to issue exit/re-entry visas, another to handle vehicle services, each electronically certified. The delegate must hold their own active, identity-verified Absher individual account, and must accept the delegation from that account before it takes effect.
Four properties of this model that break naive automation:
- Delegations expire. They carry a duration, and when it lapses the delegate simply cannot perform the action. Your system will report the transaction as failed with no indication that the cause was an authorisation that quietly ran out.
- A delegate leaving the company does not revoke anything automatically. Offboarding has to explicitly enumerate and revoke delegations, or you retain a live grant on the establishment's government services held by a former employee.
- Sharing login credentials is prohibited, and the liability is not theoretical. Using Absher Business to manage a commercial registration you do not own or are not officially authorised for is expressly forbidden, and misuse of authorisations exposes the business and the responsible individuals under the cybercrime and administrative regulations. The "just share the GRO's login" shortcut is a legal exposure, not a workaround.
- Vehicle delegation carries its own preconditions. Only one delegate per vehicle. The registration must be valid, the insurance current, and the vehicle free of reports. The delegate needs a valid driving licence. Outstanding traffic violations on either party block the delegation outright — so a violation your fleet system never surfaced is enough to stop a vehicle authorisation on the day it is needed.
Since none of this is queryable, maintain your own dated register of delegations — who holds which scope, granted when, expiring when — and reconcile it against reality on a fixed cadence. It is the same pattern we recommend wherever a Saudi platform is the system of record but exposes no read API: model the state locally, treat the portal as authoritative, and alert on divergence.
interface Delegation {
delegateNationalId: string;
scope: 'exit_reentry' | 'vehicle_services' | 'employee_records' | 'traffic';
grantedOn: string; // ISO date
expiresOn: string; // ISO date
acceptedByDelegate: boolean;
}
export function delegationRisks(d: Delegation, today: string, activeStaff: Set<string>): string[] {
const risks: string[] = [];
const daysLeft = Math.floor(
(Date.parse(d.expiresOn) - Date.parse(today)) / 86_400_000,
);
if (!d.acceptedByDelegate) {
risks.push(`Delegation "${d.scope}" was granted but never accepted — it is not yet in force.`);
}
if (daysLeft <= 14) {
risks.push(`Delegation "${d.scope}" expires in ${daysLeft} days.`);
}
if (!activeStaff.has(d.delegateNationalId)) {
risks.push(`ORPHANED: "${d.scope}" is held by someone no longer on active staff. Revoke it.`);
}
return risks;
}Note that acceptedByDelegate is a real state, not a formality. A delegation granted by the owner but never accepted from the delegate's own account looks complete on the granting side and does nothing.
Be sceptical of vendors selling "Absher API integration"
Search for Absher integration in English and you will find agencies advertising "Absher SSO integration" as a service, and articles asserting that "Absher's APIs can auto-renew business licenses or employee visas."
Weigh that against what is actually published. Absher Business has no developer portal, no API documentation, and no published integration tier. The identity federation that vendors are usually describing is Nafath, which is a genuine national single sign-on with a real onboarding path — a different product from Absher Business, addressing a different problem. We compared the identity layers and their real access routes in Yakeen vs Nafath vs Wathq: which Saudi identity layer.
This matters commercially. We have seen the same pattern around Ejar, where competitor guides published invented endpoint tables for an API with no developer portal. A proposal quoting you for "Absher API integration" is quoting for something that does not exist in that form. What can legitimately be built is: Nafath-based authentication, Wathq-based commercial registration verification, a Muqeem gateway integration through the commercial route, and disciplined internal state management around the portal work that remains manual. That is a real project. It is just not the one on the brochure.
The related platforms in an establishment's workflow do have documented routes — Qiwa for the labour and Nitaqat side, covered in Qiwa integration for HR systems, and municipal licensing in Balady commercial licence automation. Knowing which platform genuinely offers what is most of the battle.
The volume tells you why this is worth automating
Absher Business reported more than 2.5 million transactions executed electronically through the platform in June 2026 alone. Even the manual, portal-bound side of this is running at serious scale — which is exactly why the delegation hygiene and platform-drift monitoring above pay for themselves. The cost of getting this wrong is not a bad afternoon; it is an employee at an airport gate with an exit/re-entry visa that was never issued because a delegation expired.
Checklist before you build
- Pull the legal form of the commercial registration from Wathq — do not trust an onboarding form field.
- Run the entity gate before the headcount gate. Reversing them produces confidently wrong answers.
- If the answer is Muqeem, budget the subscription and start the ZATCA certificate and Chamber of Commerce legalisation early — it is a multi-agency sequence.
- If the answer is Absher Business, accept that there is no API and design the delegation model deliberately.
- Keep a dated register of every delegation: scope, holder, grant date, expiry, accepted status.
- Wire delegation revocation into employee offboarding as a required step.
- Alert on approaching 100 workers at 90, not at 100.
- Monitor the CR for entity-type changes as a critical event, not an informational one.
Conclusion
The question "Absher Business or Muqeem?" looks like an administrative lookup and is actually the decision that fixes your integration surface, your cost model, and your onboarding timeline. Entity type decides it first; headcount only matters afterwards. An LLC with one employee is on Muqeem, and no amount of engineering changes that.
The teams that get burned are not the ones who chose wrong at the start — they are the ones who chose correctly, then converted to a company eighteen months later and discovered that a routine legal restructuring had silently invalidated their entire government automation layer.
If you are unsure which side of the line your establishment sits on, or you are looking at a proposal quoting for an "Absher API," get in touch — we will map your commercial registration against the actual eligibility rules and tell you plainly what can be automated and what cannot. Knowing which of your workflows have a real integration path is worth more than any tool you could buy.