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

# Checkout-Sitzung verifizieren

> Eine abgeschlossene Checkout-Sitzung prüfen und sicherstellen, dass Credits gutgeschrieben wurden.

## Überblick

Nach erfolgreichem Checkout können Sie mit diesem Endpunkt prüfen, ob die Zahlung verarbeitet und Credits dem Konto gutgeschrieben wurden. Nützlich als Fallback, wenn der Webhook nicht verarbeitet wurde.

<Note>
  Credits werden üblicherweise automatisch per Stripe-Webhooks gutgeschrieben. Dieser Endpunkt ermöglicht eine manuelle Verifikation für Sonderfälle oder eine clientseitige Bestätigung.
</Note>

<Note>
  **Für Drittanbieter-Integrationen:** Verwenden Sie `GET /credits/verify-session/{sessionId}/api` mit API-Schlüssel-Authentifizierung.
</Note>

## Authentifizierung

<ParamField header="Authorization" type="string" required>
  JWT-Access-Token (Sitzungsauth). Format: `Bearer YOUR_ACCESS_TOKEN`
</ParamField>

## Pfadparameter

<ParamField path="sessionId" type="string" required>
  Stripe-Checkout-Sitzungs-ID aus der Antwort von `/credits/checkout`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.llmgenerator.com/api/v1/credits/verify-session/cs_test_a1b2c3d4e5f6 \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const sessionId = 'cs_test_a1b2c3d4e5f6';
  const response = await fetch(
    `https://api.llmgenerator.com/api/v1/credits/verify-session/${sessionId}`,
    {
      headers: {
        'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
      }
    }
  );

  const data = await response.json();
  if (data.success) {
    console.log(`Added ${data.credits} credits`);
  }
  ```

  ```python Python theme={null}
  import requests

  session_id = 'cs_test_a1b2c3d4e5f6'
  response = requests.get(
      f'https://api.llmgenerator.com/api/v1/credits/verify-session/{session_id}',
      headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}
  )
  data = response.json()
  print(f"Verified: {data['credits']} credits")
  ```
</RequestExample>

<ResponseExample>
  ```json Erfolg theme={null}
  {
    "success": true,
    "credits": 500,
    "sessionId": "cs_test_a1b2c3d4e5f6"
  }
  ```

  ```json Zahlung nicht abgeschlossen theme={null}
  {
    "success": false,
    "message": "Payment not completed"
  }
  ```
</ResponseExample>

## Antwortfelder

<ResponseField name="success" type="boolean">
  Ob die Sitzungsverifikation erfolgreich war.
</ResponseField>

<ResponseField name="credits" type="integer">
  Anzahl der Credits aus dem Kauf.
</ResponseField>

<ResponseField name="sessionId" type="string">
  Die verifizierte Sitzungs-ID.
</ResponseField>

## Fehlerantworten

<ResponseField name="400">
  Ungültige Anfrage – Zahlung nicht abgeschlossen oder ungültige Sitzungs-Metadaten.
</ResponseField>

<ResponseField name="401">
  Nicht autorisiert – Ungültiges oder fehlendes Token.
</ResponseField>

<ResponseField name="403">
  Verboten – Sitzung gehört nicht zum authentifizierten Nutzer.
</ResponseField>

## Idempotenz

Der Aufruf ist idempotent. Wurden Credits bereits per Webhook gutgeschrieben, erfolgt keine erneute Gutschrift. Es wird weiterhin Erfolg mit dem Credit-Betrag zurückgegeben.

## Typischer Ablauf

1. Nutzer schließt den Checkout bei Stripe ab
2. Stripe leitet zu Ihrer `successUrl` weiter
3. Rufen Sie diesen Endpunkt auf, um Credits zu bestätigen
4. Zeigen Sie dem Nutzer eine Bestätigung
5. Aktualisieren Sie den Credit-Saldo in der Oberfläche

<Tip>
  Empfohlen bleibt, Stripe-Webhooks zu nutzen und die Oberfläche basierend auf `/credits/balance` zu aktualisieren. Dieser Endpunkt ergänzt diesen Ablauf.
</Tip>

***

## GET /credits/verify-session/{sessionId}/api

Verifiziert eine Checkout-Sitzung mit API-Schlüssel-Authentifizierung. Geeignet für Drittanbieter-Integrationen.

### Authentifizierung

API-Schlüssel erforderlich. Übergeben Sie ihn im Header `Authorization`:

```
Authorization: Bearer llmgen_your_api_key_here
```

### Pfadparameter

Wie oben.

### Antwort

Wie oben.

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.llmgenerator.com/api/v1/credits/verify-session/cs_test_a1b2c3d4e5f6/api \
    -H "Authorization: Bearer llmgen_your_api_key_here"
  ```

  ```javascript JavaScript theme={null}
  const sessionId = 'cs_test_a1b2c3d4e5f6';
  const response = await fetch(
    `https://api.llmgenerator.com/api/v1/credits/verify-session/${sessionId}/api`,
    {
      headers: {
        'Authorization': 'Bearer llmgen_your_api_key_here'
      }
    }
  );

  const data = await response.json();
  if (data.success) {
    console.log(`Added ${data.credits} credits`);
  }
  ```

  ```python Python theme={null}
  import requests

  session_id = 'cs_test_a1b2c3d4e5f6'
  response = requests.get(
      f'https://api.llmgenerator.com/api/v1/credits/verify-session/{session_id}/api',
      headers={'Authorization': 'Bearer llmgen_your_api_key_here'}
  )
  data = response.json()
  print(f"Verified: {data['credits']} credits")
  ```
</RequestExample>
