2026-04-16·12 min read·

EU AI Act Art.54 GPAI Authorised Representative: Non-EU Provider Obligations — Developer Guide (2026)

EU AI Act Article 54 is the jurisdictional gateway rule for non-EU GPAI model providers with systemic risk. If you are a GPAI model provider established outside the European Union — a US lab, a UK startup, a Canadian research foundation — and your model meets the Art.51 systemic risk threshold of 10^25 FLOPs, Art.54 requires you to appoint a written-mandate Authorised Representative established in the EU before you place that model on the EU market.

Art.54 became applicable on 2 August 2025 as part of Chapter V of the EU AI Act (Regulation (EU) 2024/1689). The structure mirrors EU product safety law and the GDPR Art.27 representative mechanism: the EU Representative acts as the point of contact for the European AI Office, accepts legal communications on behalf of the non-EU provider, and is jointly responsible for cooperation obligations under Art.53.

For EU infrastructure providers and PaaS operators — including sota.io — Art.54 is relevant in two ways: first, as evidence of the compliance burden non-EU GPAI APIs impose on downstream integrators; second, as a direct illustration of why EU-established providers operating under a single EU legal regime have a structural compliance advantage over US-based GPAI providers that must layer Art.54 representative infrastructure onto every EU deployment.


Art.54 in the Chapter V GPAI Obligation Cascade

Art.54 sits as the fourth article of Chapter V, applying exclusively to the non-EU subset of systemic risk providers:

ArticleTitleApplies To
Art.51GPAI model classificationDefines systemic risk threshold (10^25 FLOPs)
Art.52General GPAI obligationsAll GPAI providers — both tiers
Art.53Systemic risk enhanced obligationsSystemic risk tier only
Art.54Authorised representativeNon-EU systemic risk providers only
Art.55Downstream provider obligationsAll GPAI providers — to downstream integrators
Art.56Code of practiceSystemic risk tier — compliance pathway

Art.54 is additive to Art.53, not an alternative. A non-EU systemic risk GPAI provider must comply with Art.52 + Art.53 + Art.54. The Authorised Representative does not substitute for the provider's own compliance obligations; it adds a mandatory EU point of contact through which the AI Office can exercise oversight.


Art.54(1): Who Must Appoint an Authorised Representative

Art.54(1) states: "Providers of GPAI models with systemic risk that are not established in the Union shall, prior to placing the GPAI model with systemic risk on the Union market, designate by written mandate an authorised representative established in the Union."

Three Cumulative Conditions

All three conditions must be met simultaneously for Art.54(1) to apply:

ConditionCriterionPractical Test
Not established in the UnionProvider's registered seat or principal place of business is outside EU/EEAUS/UK/CA/JP/etc. incorporation alone triggers; Irish subsidiary of US parent generally does not
GPAI model with systemic riskArt.51(1)(b): cumulative training compute ≥ 10^25 FLOPs, or Commission designationGPT-4 class, Gemini Ultra class, Claude Opus class — all meet the threshold
Placing on the Union marketMaking the model available — directly or via API — to GPAI providers/deployers established or operating in the EUAny EU-accessible API, even if marketed globally, constitutes market placement

What "Established in the Union" Means

The EU establishment test under AI Act Chapter V follows the same interpretation as GDPR Art.3: a non-trivial, stable presence through which the model is offered or used in the EU. A subsidiary that merely holds IP without operational control is not an establishment for this purpose. However, if a US parent's EU subsidiary is the formal API provider for EU customers, that subsidiary is the EU-established provider — Art.54 does not apply because the provider itself is established in the EU.

Practical scenario: OpenAI LLC (US) offers the GPT-4 API globally. OpenAI Ireland Ltd exists as an EU entity but the API contract may run through the US entity. Whether Art.54 applies depends on which entity is the legal provider under EU contracts — a compliance question for each specific vendor relationship.


Art.54(2): Written Mandate Requirements

Art.54(2) specifies that the written mandate must empower the Authorised Representative to perform two sets of tasks:

Task Set 1: Registration and Documentation

The mandate must authorise the Representative to register the GPAI model in the EU AI Database under Art.71. Registration covers:

Task Set 2: Cooperation with the AI Office

The mandate must authorise the Representative to cooperate with the European AI Office on behalf of the non-EU provider regarding:

Mandatory Content Elements of the Written Mandate

ElementLegal BasisContent
Representative identityArt.54(2)Name, EU establishment address, contact details
Provider identityArt.54(2)Non-EU provider name, address, responsible officer
Scope of authorityArt.54(2)Explicit authorisation for Art.71 registration + Art.53 cooperation
DurationArt.54(2)Must cover the period the model is on the EU market
Governing lawBest practiceSpecify EU jurisdiction for the mandate itself
Liability allocationBest practiceInternal indemnification between provider and Representative
Revocation procedureBest practiceSuccessor appointment obligation before revocation

Who Can Serve as Authorised Representative?

Art.54 does not specify qualifications for the Authorised Representative beyond EU establishment. In practice:


Art.54(3): Notification to the Commission

Art.54(3) requires that the provider notify the European Commission of the name and contact details of the Authorised Representative. This notification is separate from the Art.71 EU AI Database registration.

Notification Timeline

Art.54(3) links notification to the market placement obligation: prior to placing the model on the EU market. The practical sequence is:

  1. Appoint Representative (written mandate executed)
  2. Notify the Commission (name + contact details)
  3. Register in EU AI Database via Representative (Art.71)
  4. Place model on EU market (make API available to EU providers/deployers)

Steps 1–3 must precede Step 4. Retroactive compliance — offering the API first, appointing the Representative later — is a violation of Art.54(1).

Commission Notification Format

No implementing act specifying the notification format has been published as of April 2026. The AI Office has published guidance indicating that notification should be submitted through the EU AI Database portal, which includes a dedicated field for Authorised Representative details. Until a formal implementing act is issued, providers should document the notification with timestamped correspondence (email to ai-act@eu-register.europa.eu or the official AI Office notification channel).


Art.54 × Art.53: Cooperation Obligation Flow

The Authorised Representative is not a passive address for EU mail — Art.54(2) specifically requires the mandate to cover cooperation with the AI Office on Art.53 obligations. This creates a four-way obligation chain:

Non-EU GPAI Provider (US)
        │
        │ Written mandate (Art.54(2))
        ▼
EU Authorised Representative
        │
        │ Cooperation interface for:
        ├─► Art.53(1)(a): Adversarial test results → AI Office
        ├─► Art.53(1)(b): Serious incident reports → Commission
        ├─► Art.53(1)(c): Cybersecurity documentation → AI Office
        └─► Art.53(1)(d): Energy efficiency data → AI Office

Critical implication: The Representative can be required by the AI Office to produce adversarial test results, incident reports, and cybersecurity documentation. If the non-EU provider has stored these records on US-hosted infrastructure, the Representative may need to transmit records that are simultaneously subject to CLOUD Act compellability from the US side.


Art.54 × Art.25: Provider/Deployer Distinction

Art.25 (Chapter III) establishes the provider/deployer/importer chain for high-risk AI systems. Art.54 uses a different term — "authorised representative" — but the functional role is analogous to the Art.25(1) importer: a party that takes on compliance responsibility on behalf of a non-EU provider.

ConceptChapter III Art.25Chapter V Art.54
TriggerNon-EU high-risk AI system providerNon-EU GPAI systemic risk provider
RoleImporter — places system on EU marketAuthorised Representative — designated before market placement
RegistrationArt.49 — EU database for high-risk AIArt.71 — AI database via Representative
ObligationEnsure provider has complied with Chapter IIICooperate with AI Office on Art.53 obligations
LiabilityImporter takes on provider obligations if provider cannot complyRepresentative does not substitute provider; provider remains primary

The key difference: an Art.25 importer takes on provider obligations if the provider cannot be reached. An Art.54 Representative does not substitute for the provider's obligations — the non-EU provider remains the primary duty-holder. The Representative is a procedural compliance conduit, not a liability transfer.


GDPR Art.27 Representative Analogy

Art.54 is structurally modelled on GDPR Art.27 (EU Representative for non-EU data controllers). Both mechanisms:

FeatureGDPR Art.27EU AI Act Art.54
TriggerNon-EU controller processing EU resident data without EU establishmentNon-EU GPAI systemic risk provider placing on EU market
MandateWritten designationWritten mandate
Subject matterDPA communications + data subject requestsAI Office cooperation + Art.71 registration
TimelinePrior to processingPrior to market placement
NotificationNot required separatelyCommission notification required (Art.54(3))
Rep can be same entity?Yes — same entity can serve as GDPR Art.27 + AI Act Art.54 RepYes — no prohibition on combining roles
LiabilityArt.27 Rep is not liable as a data controllerArt.54 Rep is not primary duty-holder
TerminationRep can resign with reasonable noticeRevocation requires successor designation

Practical takeaway for compliance teams: If your organisation already provides GDPR Art.27 representative services, the legal infrastructure — written mandate templates, notification procedures, supervisory authority interface — maps directly to Art.54. The AI Act extends the model to GPAI compliance.


CLOUD Act × Art.54: Jurisdiction Risk for Mandate Records

The written mandate required by Art.54(2) and the cooperation records generated under Art.53 create at least six record categories subject to CLOUD Act compellability if stored on US-hosted infrastructure:

Record TypeArt.54/Art.53 BasisCLOUD Act Risk
Written mandate agreementArt.54(2)18 U.S.C. §2713: compellable from US cloud provider if stored on US-hosted service
Commission notification correspondenceArt.54(3)Email to Commission stored on US-hosted mailserver
Art.71 registration dataArt.54(2) → Art.71Submitted via EU AI Database portal; no US nexus if portal is EU-hosted
Art.53(1)(a) adversarial test result transmissionsArt.54(2) → Art.53(1)(a)Transmission records and response docs
Art.53(1)(b) incident report copiesArt.54(2) → Art.53(1)(b)Copies of incident notifications to Commission
Art.53(1)(c) cybersecurity cooperation docsArt.54(2) → Art.53(1)(c)Security assessment submissions and AI Office responses

The dual-compellability problem: A non-EU GPAI provider that stores Art.54 mandate records and Art.53 cooperation correspondence on US-hosted cloud (AWS S3, GCP, Azure) creates a scenario where the EU AI Office can demand the records via the Art.54 Representative, while the US DOJ can compel the same records directly from the US cloud provider under CLOUD Act §2713. The records flow two directions — EU regulatory disclosure and US law enforcement disclosure — potentially simultaneously, without the provider being able to object on the basis of EU confidentiality obligations.

Mitigation: An EU-native PaaS for storing mandate records and cooperation correspondence creates a single-regime document management environment. EU GDPR data protection law applies; CLOUD Act compellability requires additional MLAT procedure and does not extend to EU-established cloud providers for EU-stored data.


Practical Decision Tree: Does My Model Require an Art.54 Representative?

Q1: Is your GPAI model provider established in the EU?
    │
    ├─► YES → Art.54 does NOT apply. Go to Art.52+Art.53 if systemic risk tier.
    │
    └─► NO (US/UK/CA/etc.) → Continue to Q2.

Q2: Does your model meet the Art.51 systemic risk threshold?
    │
    ├─► NO (cumulative training compute < 10^25 FLOPs, no Commission designation)
    │    → Art.54 does NOT apply. Art.52 baseline applies if you are a GPAI provider.
    │
    └─► YES or UNCERTAIN → Continue to Q3.

Q3: Do you place the model on the EU market (direct API, licensing, distribution)?
    │
    ├─► NO (internal use only, no EU-accessible API) → Art.54 does NOT apply.
    │
    └─► YES → Art.54 APPLIES. You must:
              1. Appoint EU Authorised Representative (written mandate)
              2. Notify Commission (Art.54(3))
              3. Register in EU AI Database (Art.71 via Representative)
              4. Only then: place model on EU market

SPECIAL CASES:

Llama fine-tune (open-weight): If you fine-tune Llama-3.1-405B or similar:
- Fine-tuner may become a new GPAI provider under Art.51 if cumulative compute of
  fine-tuning PLUS base model training is attributed to fine-tuner.
- Current AI Office guidance: fine-tuners below 10^25 FLOPs cumulative do NOT
  inherit the base model's systemic risk classification.
- Art.54 most likely does NOT apply to Llama fine-tuners unless they independently
  cross the 10^25 FLOPs threshold.

API wrapper (no retraining): If you build an API product on top of a systemic risk
GPAI API (GPT-4, Claude Opus, Gemini Ultra):
- You are a downstream deployer/provider under Art.55, NOT the GPAI model provider.
- Art.54 applies to the GPAI model provider (OpenAI, Anthropic, Google), NOT to you.
- Your Art.55 obligation: receive and pass downstream the Art.52 model card + any
  Art.53 incident notifications relevant to your product.

Python Implementation

from __future__ import annotations
from dataclasses import dataclass, field
from datetime import date, datetime
from enum import Enum
from typing import Optional


class CooperationRequestType(Enum):
    ADVERSARIAL_TEST_RESULTS = "adversarial_test_results"      # Art.53(1)(a)
    SERIOUS_INCIDENT_REPORT = "serious_incident_report"        # Art.53(1)(b)
    CYBERSECURITY_DOCUMENTATION = "cybersecurity_documentation" # Art.53(1)(c)
    ENERGY_EFFICIENCY_DATA = "energy_efficiency_data"          # Art.53(1)(d)
    DATABASE_REGISTRATION = "database_registration"            # Art.71 via Art.54(2)
    GENERAL_INQUIRY = "general_inquiry"


class CooperationStatus(Enum):
    RECEIVED = "received"
    IN_PROGRESS = "in_progress"
    RESPONDED = "responded"
    ESCALATED_TO_PROVIDER = "escalated_to_provider"
    CLOSED = "closed"


@dataclass
class MandateScope:
    """Tracks the authorisation scope within the Art.54(2) written mandate."""
    includes_art71_registration: bool
    includes_art53_1a_testing: bool
    includes_art53_1b_incidents: bool
    includes_art53_1c_cybersecurity: bool
    includes_art53_1d_energy: bool
    governing_law: str  # e.g., "Belgium" or "Ireland"
    mandate_language: str  # e.g., "EN" (must match EU AI Database requirements)

    def validate_art54_completeness(self) -> list[str]:
        gaps = []
        if not self.includes_art71_registration:
            gaps.append("Art.54(2): Mandate does not cover Art.71 registration obligation")
        if not (self.includes_art53_1a_testing and self.includes_art53_1b_incidents
                and self.includes_art53_1c_cybersecurity):
            gaps.append("Art.54(2): Mandate does not cover full Art.53 cooperation scope")
        return gaps


@dataclass
class CooperationRequest:
    """Single AI Office cooperation request handled via the Art.54 Representative."""
    request_id: str
    received_date: date
    request_type: CooperationRequestType
    requesting_authority: str  # "European AI Office" | "Member State NCA: {country}"
    description: str
    status: CooperationStatus = CooperationStatus.RECEIVED
    response_date: Optional[date] = None
    response_summary: Optional[str] = None
    escalated_to_provider: bool = False
    provider_response_date: Optional[date] = None

    def days_open(self) -> int:
        end = self.response_date or date.today()
        return (end - self.received_date).days


@dataclass
class GPAIAuthorisedRepresentativeRecord:
    """
    Art.54 Authorised Representative mandate and compliance record.
    Use for non-EU GPAI model providers with systemic risk.
    """
    # Provider details
    provider_name: str
    provider_country: str  # ISO 3166-1 alpha-2, e.g., "US", "GB", "CA"
    provider_contact_officer: str

    # Representative details
    representative_name: str
    representative_eu_country: str  # Must be EU Member State
    representative_contact: str

    # Model details
    model_name: str
    model_version: str
    systemic_risk_basis: str  # e.g., "Art.51(1)(b): 1.8×10^26 FLOPs cumulative training"

    # Mandate details
    mandate_execution_date: date
    mandate_scope: MandateScope
    commission_notification_date: Optional[date] = None  # Art.54(3)
    art71_registration_date: Optional[date] = None
    art71_registration_id: Optional[str] = None  # EU AI Database reference

    # Cooperation history
    cooperation_requests: list[CooperationRequest] = field(default_factory=list)

    def market_placement_cleared(self) -> bool:
        """
        Returns True only if all Art.54 prerequisites are met before EU market placement.
        Art.54(1): mandate executed; Art.54(3): Commission notified; Art.71: registered.
        """
        return (
            self.mandate_execution_date is not None
            and self.commission_notification_date is not None
            and self.art71_registration_date is not None
        )

    def validate_art54_compliance(self) -> list[str]:
        gaps = []
        mandate_gaps = self.mandate_scope.validate_art54_completeness()
        gaps.extend(mandate_gaps)
        if not self.commission_notification_date:
            gaps.append("Art.54(3): Commission has not been notified of Representative")
        if not self.art71_registration_id:
            gaps.append("Art.54(2) → Art.71: GPAI model not registered in EU AI Database")
        if not self.market_placement_cleared():
            gaps.append("Art.54(1): Prerequisites not met — do not place model on EU market yet")
        return gaps

    def add_cooperation_request(self, request: CooperationRequest) -> None:
        self.cooperation_requests.append(request)

    def open_requests(self) -> list[CooperationRequest]:
        return [r for r in self.cooperation_requests
                if r.status not in (CooperationStatus.RESPONDED, CooperationStatus.CLOSED)]

    def representative_summary(self) -> dict:
        return {
            "provider": f"{self.provider_name} ({self.provider_country})",
            "representative": f"{self.representative_name} ({self.representative_eu_country})",
            "model": f"{self.model_name} v{self.model_version}",
            "mandate_executed": self.mandate_execution_date.isoformat(),
            "commission_notified": (
                self.commission_notification_date.isoformat()
                if self.commission_notification_date else "PENDING"
            ),
            "art71_registration": self.art71_registration_id or "PENDING",
            "market_placement_cleared": self.market_placement_cleared(),
            "open_cooperation_requests": len(self.open_requests()),
            "compliance_gaps": self.validate_art54_compliance(),
        }


@dataclass
class ManagingCooperationTracker:
    """
    Tracks all cooperation requests across multiple GPAI models handled by
    the same Art.54 Authorised Representative (typical for compliance firms
    handling multiple non-EU GPAI provider clients).
    """
    representative_firm: str
    records: list[GPAIAuthorisedRepresentativeRecord] = field(default_factory=list)

    def add_record(self, record: GPAIAuthorisedRepresentativeRecord) -> None:
        self.records.append(record)

    def models_not_cleared_for_market(self) -> list[str]:
        return [
            f"{r.provider_name}/{r.model_name}"
            for r in self.records
            if not r.market_placement_cleared()
        ]

    def all_open_requests(self) -> list[tuple[str, CooperationRequest]]:
        result = []
        for record in self.records:
            for req in record.open_requests():
                result.append((f"{record.provider_name}/{record.model_name}", req))
        return result

    def overdue_requests(self, threshold_days: int = 30) -> list[tuple[str, CooperationRequest]]:
        """Flag requests open longer than threshold_days without a response."""
        return [
            (model, req)
            for model, req in self.all_open_requests()
            if req.days_open() > threshold_days
        ]

    def compliance_dashboard(self) -> dict:
        total = len(self.records)
        cleared = sum(1 for r in self.records if r.market_placement_cleared())
        open_req = self.all_open_requests()
        overdue = self.overdue_requests()
        return {
            "representative": self.representative_firm,
            "total_models_managed": total,
            "market_placement_cleared": cleared,
            "pending_market_clearance": total - cleared,
            "open_cooperation_requests": len(open_req),
            "overdue_requests_30d": len(overdue),
            "models_at_risk": [m for m, _ in overdue],
        }

Art.54 Compliance Checklist (40 Items)

Scope Determination (Art.54(1))

Authorised Representative Selection (Art.54(2))

Written Mandate Content (Art.54(2))

Commission Notification (Art.54(3))

Art.71 Registration (via Art.54(2))

Ongoing Cooperation (Art.54(2) → Art.53)


Art.54 × Chapter V: Full Obligation Map for Non-EU Systemic Risk Providers

ObligationArticleApplies ToArt.54 Representative Role
Technical documentationArt.52(1)(a)ProviderPassive — held by provider
Training data transparencyArt.52(1)(a)(i)ProviderPassive — held by provider
Copyright compliance policyArt.52(1)(a)(ii)ProviderPassive — held by provider
Machine-readable model cardArt.52(1)(b)ProviderPassive — held by provider
Commission accessArt.52(2)ProviderRepresentative as EU contact point
Public training summaryArt.52(3) → Art.71ProviderRepresentative registers
Adversarial testingArt.53(1)(a)ProviderRepresentative transmits results
Serious incident reportingArt.53(1)(b)ProviderRepresentative receives + transmits
Cybersecurity measuresArt.53(1)(c)ProviderRepresentative cooperates on docs
Energy efficiencyArt.53(1)(d)ProviderRepresentative reports data
EU RepresentativeArt.54Non-EU onlyRepresentative IS this obligation
Downstream info chainArt.55ProviderPassive — provider obligation
Code of practiceArt.56ProviderPassive — provider obligation

See Also