Zum Hauptinhalt springen
Verwende die Endpunkte der Benutzerabrechnung, um das Guthaben deines Teams abzulesen und Aufladungen mit einer gespeicherten Zahlungsmethode zu kaufen. Beide Endpunkte erfordern eine Authentifizierung mit deinem API-Schlüssel. Ungültige Schlüssel geben 402 zurück.

Guthaben überprüfen

GET /user/credits/info gibt das Guthaben des authentifizierten Teams, eine Aufschlüsselung pro Los, aktive Abonnementdetails und ob die Nutzung erlaubt ist, zurück. Verwende diesen Endpunkt, um Abrechnungs-Widgets, Nutzungs-Dashboards oder Vorabprüfungen vor großen Jobs zu betreiben. Für API-Details siehe Guthabeninformationen abrufen.
import requests

response = requests.get(
    "https://api.olostep.com/user/credits/info",
    headers={"Authorization": "Bearer <API-TOKEN>"},
)
print(response.json())

Antwort

{
  "credits": 12500,
  "breakdown": [
    {
      "purchase_kind": "Subscription",
      "allocated_units": 10000,
      "remaining_units": 8500,
      "expiry_date": 1735689600
    },
    {
      "purchase_kind": "Top-up",
      "allocated_units": 5000,
      "remaining_units": 4000,
      "expiry_date": 1743465600
    }
  ],
  "active_subscription": {
    "id": "SUB_PRO",
    "display_name": "Pro",
    "credits": 10000,
    "created_at": 1704067200
  },
  "allow_usage": true
}
FeldBeschreibung
creditsGesamt verbleibende Guthaben über alle nicht abgelaufenen Lose
breakdownDetail pro Los: Typ, zugewiesene und verbleibende Einheiten, Ablaufdatum
active_subscriptionAktueller Plan (fällt auf SUB_BASE zurück, wenn keiner aktiv ist)
allow_usageOb das Team weiterhin Guthaben verbrauchen kann
Jedes Los in breakdown hat eine purchase_kind von Subscription, Top-up, Manual, Setup oder Pending.

Eine Aufladung kaufen

POST /user/purchase-topup belastet eine gespeicherte Karte bei Stripe und kauft Guthaben in einem Schritt. Es gibt keine Checkout-Weiterleitung oder eingebettete Zahlungsoberfläche. Gib die Guthabenmenge im Anfragetext an:
{ "credits": 10000 }
FeldBeschreibung
creditsAnzahl der zu kaufenden Guthaben
Unterstützte Werte: 10.000, 20.000, 80.000 und 100.000. Für API-Details siehe Aufladung kaufen.
import requests

response = requests.post(
    "https://api.olostep.com/user/purchase-topup",
    headers={
        "Authorization": "Bearer <API-TOKEN>",
        "Content-Type": "application/json",
    },
    json={"credits": 10000},
)
print(response.status_code)
print(response.json())

Anforderungen

  • Das Team muss einen Stripe-Kunden mit mindestens einer gespeicherten Karte haben.
  • Pro Team ist nur ein Kaufversuch alle 60 Sekunden erlaubt. Wenn du die Abkühlzeit erreichst, ist die Antwort 429 mit einem Retry-After-Header.

Antworten

200 — Zahlung erfolgreich:
{
  "success": true,
  "payment_intent_id": "pi_xxx",
  "credits": 10000
}
202 — Zahlung wird noch verarbeitet. Guthaben wird hinzugefügt, sobald Stripe die Zahlung bestätigt:
{
  "success": true,
  "status": "processing",
  "payment_intent_id": "pi_xxx",
  "message": "Zahlung wird verarbeitet. Guthaben wird hinzugefügt, sobald die Zahlung bestätigt ist.",
  "credits": 10000
}
Guthaben wird durch den Stripe-Webhook nach Zahlungsbestätigung ausgegeben, nicht direkt aus der HTTP-Antwort. Behandle 200 als Zahlungserfolg; frage GET /user/credits/info ab, wenn du das aktualisierte Guthaben bestätigen musst.

Häufige Fehler

StatusFehlerWann
400missing_topup_selectorcredits wurde nicht gesendet
400invalid_creditsGuthabenmenge ist nicht in der erlaubten Liste
400no_stripe_customerTeam hat keinen Stripe-Kunden
400no_payment_methodKeine gespeicherte Karte vorhanden
402payment_failedKeine gespeicherte Karte hat die Belastung abgeschlossen
429purchase_topup_cooldownEin weiterer Kauf wurde innerhalb von 60 Sekunden versucht
503payment_status_unknownMehrdeutiger Stripe-Fehler; warte vor dem erneuten Versuch