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

# Schnellstart

> Vom ersten Plan bis zum ersten Tarifwechsel in wenigen Aufrufen.

Dieser Schnellstart führt dich einmal durch den gesamten Ablauf: einen Plan anlegen, ihn aktivieren, einen Checkout-Link erstellen und im Kundenbereich einen Tarifwechsel ausführen. Alle Beispiele nutzen die Sandbox unter `https://preview.coreapi.io`. Die vollständigen Parameter und Antwortfelder findest du jeweils auf der verlinkten Referenzseite.

<Steps>
  <Step title="Plan anlegen">
    Lege einen Plan mit drei Stufen an. Die Stufe Starter ist die niedrigste, Business die höchste. Der Plan startet als `draft`.

    ```bash theme={null}
    curl -X POST https://preview.coreapi.io/api/plans \
      -H "Authorization: Bearer api_DEIN_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "code": "pro-plan",
        "name": "Pro Plan",
        "tiers": [
          {
            "position": 0,
            "name": "Starter",
            "upgradeable": true,
            "downgradeable": false,
            "changeTiming": "immediately",
            "creditType": "pro_rata",
            "items": [
              { "productId": "PRODUCT_STARTER", "pricePlanId": "PRICEPLAN_STARTER", "defaultQuantity": 1 }
            ]
          },
          {
            "position": 1,
            "name": "Pro",
            "upgradeable": true,
            "downgradeable": true,
            "changeTiming": "immediately",
            "creditType": "pro_rata",
            "items": [
              { "productId": "PRODUCT_PRO", "pricePlanId": "PRICEPLAN_PRO", "defaultQuantity": 1 },
              { "productId": "PRODUCT_ADDON", "pricePlanId": "PRICEPLAN_ADDON", "defaultQuantity": 1, "minQuantity": 0, "maxQuantity": 50 }
            ]
          },
          {
            "position": 2,
            "name": "Business",
            "upgradeable": false,
            "downgradeable": true,
            "changeTiming": "end_of_period",
            "creditType": "none",
            "items": [
              { "productId": "PRODUCT_BUSINESS", "pricePlanId": "PRICEPLAN_BUSINESS", "defaultQuantity": 1 }
            ]
          }
        ]
      }'
    ```

    Die Antwort enthält den Plan mit generierten IDs. Notiere dir die `id` des Plans und die `id` der Tarifstufe Pro, beides brauchst du gleich.

    Alle Felder und Antworten: [Plan anlegen](/v2-plans-api/plans/create-plan).
  </Step>

  <Step title="Plan aktivieren">
    Ein Plan muss aktiv sein, bevor du ihn verkaufen kannst.

    ```bash theme={null}
    curl -X POST https://preview.coreapi.io/api/plans/PLAN_ID/activate \
      -H "Authorization: Bearer api_DEIN_TOKEN"
    ```

    Die Antwort zeigt den Plan mit `"status": "active"`.

    Referenz: [Plan aktivieren](/v2-plans-api/plans/activate-plan).
  </Step>

  <Step title="Checkout-Link erstellen">
    Erstelle einen Checkout-Link für die Tarifstufe, mit der neue Kunden starten sollen, hier die Stufe Pro.

    ```bash theme={null}
    curl -X POST https://preview.coreapi.io/api/plans/PLAN_ID/checkout-links \
      -H "Authorization: Bearer api_DEIN_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "planTierId": "TIER_PRO_ID",
        "couponsAllowed": false,
        "isEnabled": true,
        "salesChannel": "default"
      }'
    ```

    In der Antwort steht eine `url`. Über diese URL schließt ein Kunde sein Abonnement ab. Nach der Zahlung entsteht ein Abonnement, das fest an die gewählte Tarifstufe gebunden ist.

    Alle Felder und Antworten: [Checkout-Link erstellen](/v2-plans-api/checkout-links/create-checkout-link).
  </Step>

  <Step title="Tarifoptionen im Kundenbereich abrufen">
    Ab jetzt arbeitest du im Kundenkontext mit einem Kunden-Token. Ein solches Token erzeugst du serverseitig über `POST /customers/{id}/authenticate`, siehe [Authentifizierung](/v2-plans-api/authentication). Frage damit die erreichbaren Stufen für das Abonnement des Kunden ab.

    ```bash theme={null}
    curl https://preview.coreapi.io/api/customer/subscriptions/SUBSCRIPTION_ID/plan-options \
      -H "Authorization: Bearer CUSTOMER_TOKEN"
    ```

    Die Antwort enthält die aktuelle Stufe und alle erreichbaren Optionen, jeweils mit einer Kostenvorschau.

    Referenz: [Tarifoptionen abrufen](/v2-plans-api/customer/plan-options).
  </Step>

  <Step title="Wechsel vorab prüfen">
    Zeige dem Kunden, was ein Wechsel kostet, bevor er ihn bestätigt. Die Vorschau ändert nichts.

    ```bash theme={null}
    curl -X POST https://preview.coreapi.io/api/customer/subscriptions/SUBSCRIPTION_ID/plan-tier-preview \
      -H "Authorization: Bearer CUSTOMER_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{ "planTierId": "TIER_BUSINESS_ID" }'
    ```

    Referenz: [Wechsel-Vorschau](/v2-plans-api/customer/preview-plan-tier-switch).
  </Step>

  <Step title="Wechsel ausführen">
    Bestätigt der Kunde, führst du den Wechsel aus.

    ```bash theme={null}
    curl -X POST https://preview.coreapi.io/api/customer/subscriptions/SUBSCRIPTION_ID/switch-plan-tier \
      -H "Authorization: Bearer CUSTOMER_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{ "planTierId": "TIER_BUSINESS_ID" }'
    ```

    Die Antwort bestätigt die neue Tarifstufe. Eine eventuelle Gutschrift oder Nachberechnung landet in der nächsten Rechnung, siehe [Abrechnung](/v2-plans-api/billing).

    Referenz: [Tarif wechseln](/v2-plans-api/customer/switch-plan-tier).
  </Step>
</Steps>

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Up- und Downgrades" icon="arrow-up-arrow-down" href="/v2-plans-api/upgrades-downgrades">
    Erreichbarkeit, Vorschau und die anteilige Berechnung im Detail.
  </Card>

  <Card title="API-Referenz" icon="code" href="/v2-plans-api/plans/create-plan">
    Alle Felder und Antworten der einzelnen Endpunkte.
  </Card>
</CardGroup>
