zBank API Docs

Machine-readable spec: GET /api/docs (for coding agents).

Auth: website login via POST /api/login {code} (code from ingame /bank code), then per-player key via header X-API-Key, ?key= or JSON key. Rate: 1 diamond = 100 coins. Account fee: 3200 coins.

MethodPathAuthParams
GET/api/statspublic–
GET/api/mekeykey
GET/api/accountskeykey, iban?
GET/api/historykeyiban, key, limit?
POST/api/transferkeyfrom, to, amount, reason?, key
POST/api/konto/nutzenmasteriban (aktiv setzen)
POST/api/konto/schliessenmasteriban (nur leer)
POST/api/gutschein/createkeyfrom, amount (Code kommt raus)
POST/api/gutschein/redeemmastercode, to (einlösen)
GET/api/gutschein/listmastereigene Gutscheine
POST/api/gutschein/cancelmastercode (Erstattung)
POST/api/iban/createkeyname, key
POST/api/abo/createkeyfrom, to, amount, reason?, mode=realtime|mcdays, interval (sec|MC-days), runs? (-1 endless), key
GET/api/abo/listkeykey
POST/api/abo/cancelkeyid oder Code, key
POST/api/login–code (aus /bank code)
GET/api/timepublic– (Tag, Uhr, gameTime)
POST/api/oauth/verify–code → name + Hauptkonto
GET/oauth–Zustimmung (app, redirect, state)
POST/api/kredit/createkeyKredit: from, amount, runs, mode, interval
GET/api/kredit/listkeykey (Restschuld)
POST/api/kredit/payoffkeyid|code, from?
POST/api/apikey/rotatemasterneuer Master-Key
POST/api/apikey/createmastername, account (10.000 Coins)
GET/api/apikey/listmastereigene Keys
POST/api/apikey/revokemasterid
GET/pay–Zahlen-Seite (to, amount, reason, redirect, state)

Anmelden mit zBank: Button zeigt auf /oauth?app=NAME&redirect=URL&state=RANDOM. Nach Zustimmung landet der User auf URL?zbank_code=ZB-...&state=RANDOM – Backend prüft state und ruft POST /api/oauth/verify {code} auf.

Abos run every ~20s. realtime = real seconds, mcdays = Minecraft days (1 day = 24000 ticks, see GET /api/time for current day/clock). Each abo has a unique code like ABO-7X2K9P (shown on create/list); cancel accepts id or code. runs=-1 = endless abo, runs=N = N installments. 3 missed payments auto-cancel. All errors: {"ok":false,"error":"..."}.