EU AI Act Compliance for SaaS: An Engineer's Guide

EU AI Act compliance for SaaS is an engineering problem, not a legal memo. Article 50 is live. Here's what changes in your product, your code, and your docs.
Your Deadline Was Three Weeks Ago
Most of what has been written about EU AI Act compliance for SaaS was written in the future tense. Get ready before August. Prepare your terms. Book a workshop. That framing expired on 2 August 2026, when Article 50 of Regulation (EU) 2024/1689 became enforceable. If your product generates text, images, audio or video for a user in the EU, or puts a chatbot in front of one, the obligations are already live and you are already either compliant or not.
The good news is that the part that scares people most — the high-risk regime, with its conformity assessments and third-party audits — moved. The Digital Omnibus on AI (Regulation (EU) 2026/1744, in force since 27 July 2026) pushed standalone Annex III high-risk systems to 2 December 2027 and product-embedded Annex I systems to 2 August 2028. What did not move is transparency.
The bad news is that almost every guide treats this as a legal deliverable. It isn't. Article 50 asks for things that live in your rendering layer, your API responses, your model-serving path and your build artifacts. A lawyer cannot ship a machine-readable marker. This is an engineering guide.
EU AI Act Compliance for SaaS Starts With One Question: Provider or Deployer?
Every obligation in the Act attaches to a role, and SaaS companies routinely hold both at once. Get this wrong and you will spend six months implementing the wrong controls.
You are a provider when you place an AI system on the market under your own name — including when you wrap someone else's foundation model in your product and sell the result. The model vendor's compliance does not flow through to you. You wrapped it, you renamed it, you own the output.
You are a deployer when you use an AI system under your own authority for your own purposes — the résumé screener you bought, the support summarizer running on your internal tickets.
The practical consequence: if you sell an AI feature to customers who then use it on their end users, you are the provider and your customers are deployers. Their obligations are not yours, but your product has to make theirs possible. A deployer who must disclose a deepfake cannot do it if your API strips the provenance metadata. Provider obligations are, in effect, a product requirement to expose the hooks your customers will be fined for lacking.
Non-EU providers have a second wrinkle: Article 22 requires an authorised representative established in the EU before a high-risk system is placed on the market. "We have no EU entity" is not a defence. The Act follows the output, not the office.
What Actually Landed, and What Slipped
| Obligation | Applies from | Who it hits |
|---|---|---|
| Article 5 prohibited practices | 2 Feb 2025 | Everyone — social scoring, manipulative techniques, untargeted face scraping |
| GPAI provider obligations | 2 Aug 2025 | Anyone shipping a general-purpose model |
| Article 50 transparency | 2 Aug 2026 | Chatbots, synthetic content, emotion recognition, deepfakes |
| Annex III high-risk (standalone) | 2 Dec 2027 | HR tech, credit, education, insurance, essential services |
| Annex I high-risk (in products) | 2 Aug 2028 | AI embedded in regulated physical products |
Penalties are tiered, and the number people quote is usually the wrong one. Article 5 breaches carry up to €35 million or 7% of global annual turnover. Most other infringements, including Article 50, top out at €15 million or 3%. Supplying incorrect information to authorities is €7.5 million or 1%. The 7% figure is real but it belongs to a category of conduct that a normal SaaS product does not engage in by accident.
The Four Engineering Changes Article 50 Forces
None of these are policy documents. All four are tickets.
-
Interaction disclosure at the surface, not in the terms. Article 50(1) requires that a person be informed they are interacting with an AI system unless it is obvious to a reasonably well-informed user. This is a component, not a clause — a persistent label on the chat surface, present before first input, not a sentence buried in a ToS page nobody opens. If you A/B tested that label away for conversion, put it back.
-
Machine-readable marking on generated output. Article 50(2) requires providers of systems generating synthetic audio, image, video or text to mark outputs in a machine-readable format, detectable as artificially generated or manipulated, using solutions that are effective, interoperable, robust and reliable as far as technically feasible. In practice that means C2PA content credentials on media, cryptographic signing of provenance manifests, and metadata that survives your CDN. Note what "interoperable" rules out: a proprietary marker only your own detector understands does not satisfy the standard. Note also what it rules in — the text limb is the hardest, and "state of the art" is a moving defence, which is why your marking approach needs a version and a changelog.
-
A provenance path that survives the pipeline. This is where teams actually fail. You mark the image at generation time, then a thumbnailer re-encodes it, an optimizer strips EXIF, and the marker is gone by the time it reaches a browser. Provenance has to be treated as a first-class artifact through every transform, with a test that asserts the marker is still present at the last hop. If you cannot produce that test, you do not have marking — you have an intention.
-
Exception logic you can defend. The marking obligation does not apply where the system performs an assistive function for standard editing, or does not substantially alter the deployer's input data or its semantics. That is a real and useful carve-out — grammar correction is not synthetic content generation. But "substantially alter the semantics" is a judgement, and the only version of that judgement worth anything is one written down at design time, per feature, with the reasoning. Decide it in the design doc, not in the incident review.
Risk Classification Is an Architecture Decision
The deferral to December 2027 is a reprieve, not a pardon, and the trap is treating it as free time. High-risk classification under Annex III is driven by use case, not by model capability. The same summarization endpoint is unregulated for meeting notes and high-risk when it ranks job applicants.
Which means classification is a function of who your customers are and what they do with your API — and if you cannot tell, you cannot classify. Most SaaS platforms discover in month two that they have no idea which of their enterprise accounts are using the "smart ranking" feature for hiring.
The architectural response is to make use-case boundaries explicit before the regime lands:
- Separate the endpoints. A general text endpoint and an employment-decision endpoint should be different surfaces with different logging, even if they call the same model today. Merged surfaces cannot be selectively brought into scope later without a migration.
- Instrument purpose, not just usage. Capture the declared use case at the contract or workspace level, so scope is queryable rather than reconstructed from a sales call.
- Design the human-oversight seam now. Article 14 requires that high-risk systems be effectively overseen by natural persons. Retrofitting a review queue into a fully automated path is a rewrite; leaving the seam open costs almost nothing. The same discipline that keeps agentic systems from failing quietly applies here — see our field guide on why AI agents fail in production, where the recurring theme is that a control in a prompt is not a control.
The Documentation You Cannot Retrofit
Technical documentation under the Act is not a PDF you write in November 2027. It requires training and validation data characteristics, accuracy and robustness metrics, known limitations, and the risk-management measures you took — as of the versions you actually shipped.
If you are not versioning datasets, pinning model and prompt revisions, and recording evaluation results per release, you are not keeping records. You are keeping a snapshot of today with a story about the past. At Kuaray we treat the model registry, the eval suite and the provenance log as production infrastructure with the same backup and retention posture as the database, because when a regulator or an enterprise procurement team asks what version 3.2 was trained to do, "we think it was fine" is not an answer.
Build this now and it is a logging change. Build it in 2027 and it is an archaeology project with a deadline.
Where to Start
Stripped of the legal framing, EU AI Act compliance for SaaS decomposes into about two weeks of engineering effort, in this order:
- Inventory every AI feature and assign each one a role — provider, deployer, or both. One row per feature, not per product.
- For each provider row, check whether output is synthetic content under Article 50(2), and if so, whether a marker exists and survives to the client.
- Audit your chat and assistant surfaces for interaction disclosure that a user would actually see.
- Write the exception rationale for anything you are claiming is assistive editing.
- Turn on model, prompt and dataset versioning if it isn't already on.
None of this requires a conformity assessment. All of it is the substrate a conformity assessment will later stand on — and most of it makes your system easier to debug regardless of what Brussels does next.
If you are shipping AI features into the EU and cannot answer question two, that is the gap worth closing this quarter. We help teams build the AI and machine learning plumbing and the security and compliance posture that make these obligations a property of the system instead of a recurring fire drill.