Naar hoofdinhoud gaan
Gebruik de eindpunten voor gebruikersfacturering om het kredietsaldo van je team te bekijken en opwaarderingen te kopen met een opgeslagen betaalmethode. Beide eindpunten vereisen authenticatie met je API-sleutel. Ongeldige sleutels geven 402 terug.

Controleer kredietsaldo

GET /user/credits/info geeft het kredietsaldo van het geauthenticeerde team terug, een uitsplitsing per partij, details van het actieve abonnement en of gebruik is toegestaan. Gebruik dit eindpunt om factureringswidgets, gebruiksdashboards of pre-flight checks voor grote taken te ondersteunen. Voor API-details zie Krijg kredietinformatie.
import requests

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

Antwoord

{
  "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
}
VeldBeschrijving
creditsTotaal resterende credits over alle niet-verlopen partijen
breakdownDetail per partij: type, toegewezen en resterende eenheden, vervaldatum
active_subscriptionHuidig plan (valt terug op SUB_BASE als er geen actief is)
allow_usageOf het team nog credits kan gebruiken
Elke partij in breakdown heeft een purchase_kind van Subscription, Top-up, Manual, Setup of Pending.

Koop een opwaardering

POST /user/purchase-topup belast een opgeslagen kaart op Stripe en koopt credits in één stap. Er is geen Checkout-omleiding of ingebedde betalings-UI. Geef het kredietbedrag door in de request body:
{ "credits": 10000 }
VeldBeschrijving
creditsAantal te kopen credits
Ondersteunde waarden: 10,000, 20,000, 80,000, en 100,000. Voor API-details zie Koop opwaardering.
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())

Vereisten

  • Het team moet een Stripe-klant hebben met ten minste één opgeslagen kaart.
  • Slechts één aankooppoging is toegestaan elke 60 seconden per team. Als je de cooldown raakt, is het antwoord 429 met een Retry-After header.

Antwoorden

200 — betaling geslaagd:
{
  "success": true,
  "payment_intent_id": "pi_xxx",
  "credits": 10000
}
202 — betaling is nog in verwerking. Credits worden toegevoegd zodra Stripe de betaling bevestigt:
{
  "success": true,
  "status": "processing",
  "payment_intent_id": "pi_xxx",
  "message": "Betaling wordt verwerkt. Credits worden toegevoegd zodra de betaling is bevestigd.",
  "credits": 10000
}
Credits worden uitgegeven door de Stripe-webhook na betalingsbevestiging, niet direct vanuit het HTTP-antwoord. Behandel 200 als betalingssucces; poll GET /user/credits/info als je het bijgewerkte saldo moet bevestigen.

Veelvoorkomende fouten

StatusFoutWanneer
400missing_topup_selectorcredits was niet verzonden
400invalid_creditsKredietbedrag staat niet op de toegestane lijst
400no_stripe_customerTeam heeft geen Stripe-klant
400no_payment_methodGeen opgeslagen kaart in bestand
402payment_failedGeen opgeslagen kaart voltooide de betaling
429purchase_topup_cooldownEr is binnen 60 seconden een andere aankoop geprobeerd
503payment_status_unknownOnduidelijke Stripe-fout; wacht voordat je het opnieuw probeert