OneProvider

Reseller-API: So funktioniert es

So funktioniert die OneProvider-Reseller-Plattform: Reseller-Guthaben, Reserve, Kundenschlüssel, Codes, Tarife, Dashboard pro Schlüssel und die Geldregel.

So funktioniert die Reseller-Plattform: Reseller-Guthaben, Reserve, Kundenschlüssel, Codes, Tarife und alles, was das Konto per REST-API für Ihre eigene Website oder Ihren Bot kann.

Alle Modelle, Funktionen und Preise Dokumentationsindex für KI-Agenten: https://oneprovider.dev/docs/llms.txt Wer die API nutzen kann API-Tokens erstellen Reseller mit aktiviertem Reseller-Konto; den Zugang vergibt ein OneProvider-Administrator.

So funktioniert es

Ein Reseller lädt sein eigenes Guthaben zum Großhandelspreis auf und verkauft Tokens als Schlüssel und Codes an seine Kunden. Alles, was Sie im Konto tun können (Reiter „Reseller“ auf app.oneprovider.dev), steht auch über die API zur Verfügung, sodass Sie eine eigene Website, einen eigenen Bot oder Checkout bauen können.

  • Reseller-Guthaben. Ein USD-Guthaben, getrennt von Ihrem persönlichen Geld. Sie laden es zum Großhandelspreis auf; GET /pricing liefert den Preis pro 1 USD und den Rabatt.
  • Kundenschlüssel. Jeder Schlüssel hat ein USD-Ausgabenlimit und eine Laufzeit (ein Schlüssel aus einem Tarif oder einer Code-Charge kann auch unbefristet sein: Dann ist expires_at gleich null, und das Limit gilt weiter). Ihr Kunde verwendet ihn wie jeden OneProvider-Schlüssel.
  • Codes. Chargen von Einmal-Codes, die Sie überall verkaufen können. Ein aktivierter Code wird zu einem Schlüssel, dessen Limit dem Betrag des Codes entspricht.
  • Tarife. Ihre Preise für Kunden: Schlüsselbetrag, Preis, Währung und Laufzeit. Daraus werden Schlüssel über POST /orders ausgestellt.
  • Neutrales Dashboard pro Schlüssel. Jeder Schlüssel hat einen Link dashboard_url: Ihr Kunde sieht Verbrauch und Restguthaben, ohne dass Ihr Branding oder das Secret des Schlüssels offengelegt wird.

Die Geldregel: reservieren und abbuchen

Das Reseller-Guthaben besteht aus drei Zahlen:

text
Reseller balance (balance_usd) = your money on the platform
Reserved (reserved_usd) = unredeemed codes + remaining limits of live keys
Free (available_usd) = Reseller balance - Reserved

Geld wird nicht beim Erstellen abgebucht, sondern erst, wenn der Kunde den Wert erhält und verbraucht. Bis dahin ist es nur reserviert:

  • Eine Code-Charge reserviert nur den Betrag. Das Widerrufen nicht aktivierter Codes gibt die Reserve frei.
  • Ein aktivierter Code wird zu einem Schlüssel, dessen Limit reserviert bleibt.
  • Das Ausstellen eines Schlüssels reserviert sein Limit; Ausgaben mit dem Schlüssel werden vom Reseller-Guthaben abgebucht.
  • Das Löschen eines Schlüssels oder das Senken seines Limits gibt den nicht verbrauchten Rest sofort an „Verfügbar“ (Free) zurück.
  • Beim Pausieren eines Schlüssels bleibt seine Reserve bestehen.

Jeder neue Schlüssel, jede Schlüssel-Aufladung und jede Code-Charge muss in „Verfügbar“ (Free) passen; sonst lautet die Antwort 409 insufficient_balance. Alle drei Zahlen liefert GET /balance: balance_usd, reserved_usd, available_usd.

Formulierung für Ihre eigenen Formulare Zeigen Sie „500 $ werden reserviert (100 × 5 $)“ statt „wird vom Guthaben abgebucht“: Das Geld wird erst abgebucht, wenn der Code aktiviert wird und der Kunde zu verbrauchen beginnt.

Erste Anfrage

  1. Öffnen Sie im Konto den Reiter „Reseller“, dann „API & Einstellungen“, und erstellen Sie einen Token. Der Wert wird nur einmal angezeigt.
  2. Legen Sie den Token auf Ihrem Server in einer Umgebungsvariable ab und rufen Sie /balance auf:
bash
export OP_PARTNER_TOKEN="rsk_..."
curl -s https://app.oneprovider.dev/partner/v1/balance \
-H "Authorization: Bearer $OP_PARTNER_TOKEN"
json
{
"balance_usd": "120.00",
"reserved_usd": "35.50",
"available_usd": "84.50"
}

Das Beispiel zeigt nur einige Felder der Antwort; Geld ist immer ein String mit zwei Nachkommastellen. Den vollständigen Satz finden Sie in der Methodenreferenz und in der OpenAPI .

Das Reseller-Guthaben aufladen

Die verfügbaren Zahlungsanbieter und ihre Mindestbeträge stehen in topup_providers von GET /balance. Eine Zahlung wird mit POST /balance/topups erstellt (Scope billing; der Header Idempotency-Key ist erforderlich). Den zurückgegebenen Zahlungslink geben Sie an den Zahlenden weiter.

bash
curl -s -X POST https://app.oneprovider.dev/partner/v1/balance/topups \
-H "Authorization: Bearer $OP_PARTNER_TOKEN" \
-H "Idempotency-Key: topup-2026-10-08-001" \
-H "Content-Type: application/json" \
-d '{"balance_usd":"100.00","provider":"<id from topup_providers>"}'

Die Antwort enthält order_id und pay_url (201). Zahlungsstatus: GET /balance/topups/{order_id}; die Gutschrift meldet auch das Webhook-Ereignis balance.topped_up.

Audit-Log

GET /audit (Scope read) liefert das Protokoll aller Aktionen in Ihrem Konto: aus dem Konto selbst, über API-Tokens und durch das System. Die Zeilen sind unveränderlich (es gibt keine Route zum Bearbeiten oder Löschen) und enthalten nie Secrets: keine Schlüssel, Tokens, Codes oder Webhook-Secrets. Das Objekt wird kurz angezeigt: das Ende eines Schlüssels, die Bezeichnung einer Charge oder der Name eines Tarifs.

Audit-Parameter
ParameterBeschreibung
period24h, 7d, 30d, 90d, all (Standard 30d)
actorTeilstring der Bezeichnung des Akteurs.
actionGenaue Aktion (key.created) oder ein Präfix (key.).
qTeilstring der Bezeichnung des Objekts.
limit, cursorÜbliche Paginierung.
bash
curl -s "https://app.oneprovider.dev/partner/v1/audit?period=7d&action=key.&limit=50" \
-H "Authorization: Bearer $OP_PARTNER_TOKEN"
json
{
"items": [
{
"id": "<row id>",
"at": "2026-10-08T12:00:00Z",
"actor": { "kind": "token", "label": "shop backend" },
"action": "key.created",
"object": { "type": "key", "label": "anna-main (...4f2a)" },
"money": { "reserve_delta": "25.00", "debit_delta": "0.00", "available_after": "59.50" },
"ip": "203.0.113.7",
"request_id": "req_..."
}
],
"next": null,
"actions": ["key.created", "key.topped_up"]
}

actor.kind ist user (das Konto), token, system oder bot (der Verkaufs-Bot des Resellers). money (null, wenn die Aktion kein Geld betraf) zeigt die vorzeichenbehafteten Änderungen von Reserve und Abbuchung; available_after kann null sein. Die Antwort enthält außerdem die vollständige Liste der Aktionen in actions:

text
key.created key.topped_up key.limit_changed key.updated key.paused key.resumed key.exhausted key.rotated key.extended key.expiry_changed key.deleted
code_batch.created code_batch.revoked code_batch.expired code.redeemed
plan.created plan.updated plan.deleted
token.created token.revoked
webhook.created webhook.deleted webhook.tested webhook.retried
balance.topup order.completed
customer.created customer.updated customer.blocked customer.unblocked
settings.updated account.activated

Konventionen

  • Base URL: https://app.oneprovider.dev/partner/v1.
  • Überall JSON; Geld ist ein USD-String mit zwei Nachkommastellen ("12.50"); Zeitangaben sind ISO 8601 in UTC (2026-10-08T12:00:00Z).
  • Rufen Sie die API nur von Ihrem Server aus auf: Es gibt kein CORS, und der Token darf nie in einem Browser oder in einer mobilen App ausgeliefert werden.
  • Tokens, Scopes, Rate-Limit, Fehler, Idempotenz und Paginierung: Autorisierung & Limits .

Weiter

  • Schlüssel & Kunden : ausstellen, aufladen, pausieren, löschen.
  • Bestellungen : So bauen Sie Ihre eigene Website.
  • Codes & Tarife .
  • Webhooks : Ereignisse und Signaturprüfung.
  • Methodenreferenz und openapi.yaml .
Zuletzt aktualisiert: 2026-11-08 Fehler gefunden? @Oneproviderhelpbot