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

# Aktueller Plan

> GET /plans/current/

Gibt den aktiven Abonnementplan des authentifizierten Kontos zurück — sein Ablaufdatum, den Abrechnungsstatus und die vollständige Menge an Quoten/Berechtigungen, die der Plan gewährt.

<Note>
  Erfordert einen Management-API-Schlüssel mit `MANAGEMENT_API`- (oder `MANAGEMENT_API_SANDBOX`-)Quota, gesendet als roher `Authorization`-Header-Wert — siehe die [Management-API-Übersicht](/de/api-reference/management-api/overview).
</Note>

## Anfrage

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://management.scanova.io/plans/current/' \
    --header 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "is_active": true,
    "is_free": false,
    "expire": "2027-08-16",
    "is_expired": false,
    "days_left": 365,
    "recurring_enabled": false,
    "can_cancel_subscription": false,
    "payment_method": null,
    "pricing": null,
    "plan": {
      "id": 275,
      "slug": "pro-scanova-io",
      "name": "Pro - scanova.io",
      "plan_type": "Normal",
      "description": "...",
      "version": 1,
      "family": {
        "id": 12,
        "name": "Pro"
      },
      "quotas": [
        {
          "quota_id": 401,
          "codename": "QR_CODE_LIMIT",
          "name": "QR Code Limit",
          "value": 100
        }
      ],
      "is_enterprise_plan": false,
      "is_custom_plan": false
    },
    "upcoming_plan": null
  }
  ```
</ResponseExample>

Live gegen ein Test-Konto mit Pro-Plan verifiziert — `pricing` und `payment_method` sind bei diesem Konto `null`, da es sich derzeit nicht in einem bezahlten, wiederkehrenden Abrechnungszyklus befindet; `plan.quotas` ist oben aus Gründen der Kürze gekürzt (eine echte Antwort enthält jede Quota, die der Plan gewährt).

### Antwortfelder

<ResponseField name="is_active" type="boolean">
  Ob der Plan derzeit aktiv ist (nicht abgelaufen, nicht gekündigt).
</ResponseField>

<ResponseField name="is_free" type="boolean">
  Ob es sich um einen kostenlosen Plan handelt.
</ResponseField>

<ResponseField name="expire" type="string">
  Ablaufdatum (`YYYY-MM-DD`), oder der wörtliche String `"Lifetime"` für einen Plan ohne Ablaufdatum.
</ResponseField>

<ResponseField name="is_expired" type="boolean">
  Ob der Plan bereits abgelaufen ist.
</ResponseField>

<ResponseField name="days_left" type="integer">
  Verbleibende Tage bis `expire`.
</ResponseField>

<ResponseField name="recurring_enabled" type="boolean">
  Ob die automatische Verlängerung aktiviert ist.
</ResponseField>

<ResponseField name="can_cancel_subscription" type="boolean">
  Ob das Konto berechtigt ist, sein Abonnement über das Dashboard zu kündigen.
</ResponseField>

<ResponseField name="payment_method" type="object | null">
  Die hinterlegte Zahlungsmethode des Kontos, oder `null`, falls keine festgelegt ist (z. B. bei Free-Trial-/Enterprise-bereitgestellten Konten).
</ResponseField>

<ResponseField name="pricing" type="object | null">
  Der konkrete Preis-/Abrechnungszeitraum-Datensatz, unter dem dieser Plan erworben wurde (`{id, name, period}`, plus `amount`/`currency`, sofern aus dem Bestellverlauf ermittelbar), oder `null`, falls das Konto keine Abrechnungshistorie zu diesem Plan hat.
</ResponseField>

<ResponseField name="plan" type="object">
  Die Plandefinition selbst.

  <Expandable title="plan properties">
    <ResponseField name="id" type="integer" />

    <ResponseField name="slug" type="string" />

    <ResponseField name="name" type="string" />

    <ResponseField name="plan_type" type="string">Für Menschen lesbarer Plantyp, z. B. `Normal`, `Enterprise`.</ResponseField>

    <ResponseField name="description" type="string" />

    <ResponseField name="version" type="integer" />

    <ResponseField name="family" type="object">`{id, name}` — die Plan-Familie, zu der dieser Plan gehört (z. B. alle Stufen von "Pro").</ResponseField>
    <ResponseField name="quotas" type="array">Jede Quota, die dieser Plan gewährt, jeweils als `{quota_id, codename, name, value, ...}`. `codename` ist der stabile Bezeichner, auf den sich die Quota-Sperr-Fehlermeldungen anderer Endpunkte beziehen (z. B. `MANAGEMENT_API`, `FOLDER_MANAGEMENT`, `EXPORT_ANALYTICS_REPORT`).</ResponseField>

    <ResponseField name="is_enterprise_plan" type="boolean" />

    <ResponseField name="is_custom_plan" type="boolean" />
  </Expandable>
</ResponseField>

<ResponseField name="upcoming_plan" type="object | null">
  Dieselbe Form wie `plan`, falls das Konto eine geplante Planänderung hat (z. B. ein Downgrade, das am Ende des aktuellen Abrechnungszyklus wirksam wird) — sonst `null`.
</ResponseField>

<Note>
  Der kanonische Pro-Plan gewährt **keine** `MANAGEMENT_API`-Quota — nur Free Trial, Enterprise und Internal-Pläne tun dies in der verifizierten Testumgebung. Wenn Sie gegen diese API entwickeln und einen `401`-Fehler mit `"Your plan does not have management API quota."` erhalten, prüfen Sie `plan.quotas` hier auf `MANAGEMENT_API` (oder `MANAGEMENT_API_SANDBOX`) und kontaktieren Sie den Support, falls Sie glauben, dass Ihr Plan dies enthalten sollte — für diese spezielle Quota gibt es derzeit keinen Self-Service-Upgrade-Pfad.
</Note>

## Verwandte Themen

* [Management-API-Übersicht](/de/api-reference/management-api/overview) — die `environment`-zu-Quota-Zuordnung (`MANAGEMENT_API`, `INTEGRATION_ZAPIER`, `INTEGRATION_MCP`), der die `plan.quotas`-Codenames dieses Endpunkts entsprechen.
* [Ein API-Token erstellen](/de/api-reference/management-api/tokens/create) — wo das `environment` eines Schlüssels bestimmt, welche dieser Quoten geprüft wird.
* [Analysen exportieren](/de/api-reference/management-api/analytics/export) — ein durch den `EXPORT_ANALYTICS_REPORT`-Codenamen gesperrter Endpunkt, den Sie hier prüfen können.
* [Ordnerverwaltung](/de/api-reference/management-api/folders/create) — ein durch den `FOLDER_MANAGEMENT`-Codenamen gesperrter Endpunkt, den Sie hier prüfen können.


## OpenAPI

````yaml api-reference/openapi/management-api.json GET /plans/current/
openapi: 3.1.0
info:
  title: Scanova Management API (v2)
  description: >-
    The complete Scanova Management API — every endpoint available at
    management.scanova.io (QR codes, folders, tags, leads, forms, analytics,
    plans, shared users & roles), plus the token-creation and usage-stats
    endpoints used to authenticate against it. Every path and request/response
    shape below was verified live against a real API key and the actual running
    backend (Phase 7, 2026-08-16) — not guessed from reading urls.py alone.
  version: 2.0.0
servers:
  - url: https://management.scanova.io
    description: Management API — QR/folder/tag/lead/form/analytics/plans endpoints
security:
  - apiKeyAuth: []
paths:
  /plans/current/:
    get:
      summary: Get current plan
      operationId: getManagedCurrentPlan
      responses:
        '200':
          description: >-
            Current plan detail — expiry, billing state, and the full
            quota/permission set the plan grants.
          content:
            application/json:
              example:
                is_active: true
                is_free: false
                expire: '2027-08-16'
                is_expired: false
                days_left: 365
                recurring_enabled: false
                can_cancel_subscription: false
                payment_method: null
                pricing: null
                plan:
                  id: 275
                  slug: pro-scanova-io
                  name: Pro - scanova.io
                  plan_type: Normal
                  version: 1
                  family:
                    id: 12
                    name: Pro
                  quotas:
                    - quota_id: 401
                      codename: QR_CODE_LIMIT
                      name: QR Code Limit
                      value: 100
                  is_enterprise_plan: false
                  is_custom_plan: false
                upcoming_plan: null
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Send your Management API key as the raw value of the Authorization
        header — no "Bearer " or "Token " prefix, and no other characters.
        Example: `Authorization: 401f7ac837da42b97f613d789819ff93537bee6a`. A
        header containing more than one space-separated part is rejected
        outright. Requests also require the request's Host header to be the
        management API host (e.g. management.scanova.io) — the same key sent to
        the regular API host will not authenticate.

````