> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# EU AI Act — Article 50 Transparency

> How Devotel Orbit's AI voice and chat agents satisfy the EU AI Act Article 50 transparency obligation, and how to configure and verify it

# EU AI Act — Article 50 Transparency

Article 50 of the EU AI Act requires that a person be informed when they are interacting with an AI system (unless this is obvious from the context), and that AI-generated or synthetically-modified audio, image, video, or text content be marked as such. The obligation applies from **August 2, 2026**.

This page documents the AI-disclosure controls Devotel Orbit already ships that satisfy this obligation for AI voice and chat agents, how to enable them, and how to export evidence for a regulator or enterprise buyer.

***

## Overview

AI disclosure is a **tenant-scoped, per-regulation opt-in**. A single settings surface drives the same behavior for four regulations that share the same shape: the EU AI Act Article 50, Korea's AI Basic Act (live since 2026-01-22), California SB 243 (live since 2026-01-01), and the Utah AI Policy Act. Configure it under **Settings → Compliance → AI Disclosure** in the dashboard, or via the API described below.

Disclosure is **off by default** for every workspace. A tenant operator turns on the rules that apply to their traffic.

> **Not automatic geo-detection.** Orbit does not infer a contact's jurisdiction from a phone number, address, or IP — enabling a rule applies it workspace-wide to every AI interaction, it does not switch on or off per contact based on location. If your organization's traffic touches the EU, enable the `eu_ai_act_enabled` rule for the whole workspace. The one exception is the California SB 243 minor reminder, which fires only for contacts you have explicitly flagged as a minor — Orbit never infers minor status from a birth date or other signal.

## What ships today

1. **Chat notice** — a configurable notice ("You are chatting with an AI assistant…") is prepended to an AI agent's first reply in a conversation. It is sent once per conversation — it does not repeat on every turn.
2. **Voice intro** — a configurable spoken introduction ("This call is being handled by an AI agent…") is played before an AI voice agent begins a call. You can supply a pre-recorded audio URL or let Orbit synthesize the text.
3. **AI-generated content marking** — messages sent by an AI agent are stamped with `metadata.ai_generated: true`. Recorded calls with any AI involvement are stamped with EU AI Act Article 50 provenance metadata on the archived recording. Where the configured text-to-speech provider embeds an inaudible content-provenance watermark, that support is recorded per call — watermarking coverage varies by TTS provider today, so treat it as an additional signal rather than a universal guarantee.
4. **California SB 243 minor reminder** — when enabled, contacts explicitly flagged as a minor get a periodic "you're talking to an AI" reminder during long-running sessions, on a configurable interval.
5. **Conformity dossier export** — a one-click, per-agent evidence pack that maps the agent's transparency configuration, evaluation/red-team results, human-oversight approvals, and decision audit log to EU AI Act Articles 12, 14, 15, and 50.
6. **AI-disclosure ledger export** — a privacy-preserving, tamper-evident, cryptographically signed ledger proving *when* and *where* an AI (not a human) handled an interaction, independently verifiable without trusting Orbit's UI.

## Configuring AI disclosure

### Dashboard

Navigate to **Settings → Compliance → AI Disclosure**. Edit the chat notice and voice intro copy, then turn on **EU AI Act §50** (and any other applicable jurisdiction rules) under "Jurisdiction rules". Turn on **Enabled by default** so the notices are actually presented — the jurisdiction toggles alone only mark which regulations apply; **Enabled by default** is what activates stamping and notice delivery.

### API

```bash theme={null}
GET /api/v1/compliance/ai-disclosure
```

Returns the tenant's current singleton settings row (or `{ "settings": null }` if never configured):

```json theme={null}
{
  "data": {
    "settings": {
      "id": "aidisc_default",
      "defaultEnabled": true,
      "chatNoticeText": "You are chatting with an AI assistant…",
      "voiceIntroAudioUrl": null,
      "voiceIntroText": "This call is being handled by an AI agent…",
      "minorBreakReminderMinutes": 60,
      "marketingDisclosureRequired": true,
      "krDisclosureEnabled": false,
      "caMinorReminderEnabled": true,
      "euAiActEnabled": true
    }
  }
}
```

```bash theme={null}
PUT /api/v1/compliance/ai-disclosure
```

Accepts a partial update — only the supplied keys change. Requires the `owner` or `admin` role.

```json theme={null}
{
  "default_enabled": true,
  "chat_notice_text": "You are chatting with an AI assistant.",
  "voice_intro_text": "This call is being handled by an AI voice agent.",
  "eu_ai_act_enabled": true
}
```

| Field                           | Type                  | Notes                                                                                                  |
| ------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ |
| `default_enabled`               | boolean               | Master switch — stamps `metadata.ai_generated` and presents the notices below on every AI interaction. |
| `chat_notice_text`              | string (1–2000 chars) | Text prepended to an AI agent's first chat reply per conversation.                                     |
| `voice_intro_text`              | string (1–2000 chars) | Text spoken before an AI voice agent connects, when no audio URL is set.                               |
| `voice_intro_audio_url`         | HTTPS URL or `null`   | Optional pre-recorded intro; overrides synthesis from `voice_intro_text`.                              |
| `eu_ai_act_enabled`             | boolean               | Apply EU AI Act Article 50 transparency obligations.                                                   |
| `kr_disclosure_enabled`         | boolean               | Apply Korea's AI Basic Act disclosure (effective 2026-01-22).                                          |
| `ca_minor_reminder_enabled`     | boolean               | Apply the California SB 243 minor reminder.                                                            |
| `minor_break_reminder_minutes`  | integer (1–1440)      | How often the SB 243 reminder repeats during a session.                                                |
| `marketing_disclosure_required` | boolean               | Require an explicit AI disclosure on automated marketing outreach.                                     |

Every update is written to the audit log (`compliance.ai_disclosure_updated`) and invalidates the in-process settings cache immediately, so a toggle takes effect on the very next agent turn.

## Verifying it's working

1. **Live check** — with `default_enabled` and `eu_ai_act_enabled` on, start a new chat session with an AI agent and confirm the configured `chat_notice_text` appears on the first reply; place a test call to an AI voice agent and confirm the voice intro plays before the agent speaks.

2. **Per-turn metadata** — inspect a chat message sent by the agent and confirm `metadata.ai_generated` is `true`.

3. **Conformity dossier** — export the evidence pack for an agent:

   ```bash theme={null}
   GET /api/v1/agents/{id}/conformity-dossier?format=json
   ```

   Add `?format=html` for a downloadable, human-readable evidence pack suitable for an auditor or enterprise security questionnaire. Each section reports `present`, `partial`, `absent`, or `unavailable` — a legacy tenant missing a backing table degrades that one section rather than failing the whole export.

4. **AI-disclosure ledger** — export the signed, tamper-evident ledger for an agent:

   ```bash theme={null}
   GET /api/v1/agents/{id}/ai-disclosure-ledger?format=json
   ```

   The ledger carries provenance metadata only (agent id, model, outcome, timestamps, aggregate counts) — never verbatim prompt/response text — and is signed with a detached content credential so a copy handed to a regulator or partner can be verified without trusting Orbit's UI.

Both exports require the `owner`, `admin`, or `developer` role and are themselves audit-logged.

## Known limitations

* Jurisdiction rules are workspace-wide opt-ins, not automatic per-contact geolocation — see the note above.
* TTS-embedded audio watermarking depends on the configured voice provider; not every provider supports it as of mid-2026.
* This page describes the transparency (Article 50) surface. It does not cover the EU AI Act's separate high-risk-system (Annex III) obligations, which are a different regulatory tier with a later compliance timeline.

If you have a requirement this page doesn't cover, contact [trust@devotel.io](mailto:trust@devotel.io).
