MintOffice¶
MintOffice ist das Brand Partner-Portal für mintbot.ai. Es lässt dich mintbot unter deiner eigenen Marke weiterverkaufen: deine Domain, dein Bot, deine Kundenliste — wobei mintbot das Deployment, die Abrechnungsschienen und die Infrastruktur pro Agent unter der Haube übernimmt.
Das Live-Partnerportal liegt unter mint.mintbot.ai.
Diese Anleitung führt dich von "Ich habe gerade von MintOffice gehört" bis zu "mein erster White-Label-Agent ist live auf meiner eigenen Domain". Die technischen Teile (DNS-Einträge, GitHub-Repo, Bot-Token) werden am besten von einem mintbot-Agenten in deinem Namen erledigt — siehe Lass dich von einem Agenten einrichten, bevor du beginnst.
Baust du die Integration selbst?
Für die entwicklerseitige Sicht — welche Repositories dir gehören, wie der Deploy-Flow Ende-zu-Ende läuft und wie die agent customization repo + der Storefront zusammenpassen — siehe MintOffice — Technisch.
Was du bekommst¶
- Verkaufe jedes mintbot-Paket (Trial, Starter, Pro, Max) unter deiner eigenen
Domain weiter — deine Kunden sehen
agent1.yourbrand.com, nicht*.mintbot.ai. - Nutze deinen eigenen Telegram-Bot (
@yourbrand_bot) für den Chat-Traffic oder leihe dir mintbots Bot, solange du noch testest. - Wähle deine kundenseitigen Preise und stecke die Differenz zwischen dem, was du ihnen berechnest, und dem, was mintbot dir berechnet, ein (die MintOffice-Großhandelsuntergrenze).
- Eine Brand Partner API für programmatische Auftragserstellung, Lifecycle-Status und Webhooks zurück in deine eigenen Systeme.
- Ein Dashboard, das aktive Kundenaufträge, die Gesundheit der Bot-Anbindung, Preise, Auszahlungen und die Webhook-Zustellung anzeigt.
Preise — Brand Partner-Einrichtungsgebühr¶
Die Anmeldung für einen kostenlosen Testportal-Account ist, nun ja, kostenlos —
aber die Brand Partner-Anmeldung ist die eine Zahlung, die daraus einen
echten Brand-Partner-Account macht. Du zahlst die einmalige Einrichtungsgebühr
auf reception.mintbot.ai/mintoffice
(oder reception.mintbot.dev/mintoffice für die Dev-/Test-Umgebung), und
dieselbe Zahlung schaltet beide Portale frei:
| Tier | Preis | Was enthalten ist |
|---|---|---|
| Kostenlose Testversion (Standard für jeden neuen Partner) | €0 | 10 wegwerfbare DEV-Deploys zum Testen deines Portals + Templates |
| Brand Partner — Launch-Promo | €49 einmalig + €10/Monat | 20 DEV-Deploys (je €1 Agent-Guthaben), erster Monat der Account-Verwaltung inklusive, Brand Partner-Status auf beiden mint.mintbot.ai + mint.mintbot.dev, gründliche Setup-Anleitung (ein Agent kann den gesamten Wizard für dich steuern) |
| Brand Partner — Standard | €99 einmalig + €10/Monat | Wie Launch — ohne die Promo |
Anmeldung ist in der Beta-Phase
Der Brand Partner-Checkout ist derzeit auf der Dev-/Test-Umgebung
geöffnet (reception.mintbot.dev/mintoffice).
Der Live-.ai-Checkout öffnet in Kürze.
Was die Einrichtungsgebühr abdeckt:
- 20 DEV-Deploys, jeder ein 24-Stunden-Wegwerf-Test-VPS, ausgestattet mit €1 Agent-Guthaben — genug, um dein Portal und dein Customization-Template von Anfang bis Ende durchzuspielen.
- Deinen ersten Monat der Account-Verwaltung (die €10/Monat-Gebühr unten) — Monat eins ist also bereits bezahlt.
- Brand Partner-Status auf beiden
mint.mintbot.aiundmint.mintbot.dev.
Die €10/Monat-Account-Verwaltungsgebühr:
Ab dem zweiten Monat trägt der Brand Partner-Account eine €10/Monat-Account- Verwaltungsgebühr. Am reibungslosesten zahlst du sie per Stripe- oder PayPal-Abonnement (empfohlen — es erneuert sich von selbst); die einmalige Einrichtungsgebühr kann auch per Karte oder Krypto (BTC, XMR und viele weitere Coins über CCPayment) bezahlt werden.
Wenn die monatliche Gebühr ausbleibt, wechselt dein MintOffice-Account in den Status pausiert: Du kannst keine neuen Agenten deployen, aber deine bestehenden Kunden-Agenten laufen weiter. Wir melden uns, bevor irgendetwas stoppt, damit du fortsetzen kannst.
Was nach der Zahlung passiert:
- Reception verarbeitet die Einrichtungszahlung auf
reception.mintbot.ai/mintoffice(oder.dev, wenn du in der Test-Umgebung bist) — Karte / Apple Pay / Google Pay oder Krypto. - Reception sendet sofort einen signierten Grant an beide
mint.mintbot.aiundmint.mintbot.devund schaltet deinen Account auf beiden Portalen auf Brand Partner-Status um. - Du erhältst eine Willkommens-E-Mail von
pigeon@mintbot.ai(oderpigeon@mintbot.dev, wenn du in der Test-Umgebung gekauft hast), die beide Anmelde-Links und einen Verweis auf diese Anleitung enthält. - Melde dich auf dem Portal an, mit dem du starten möchtest. Falls der Cross-Env-Push aus irgendeinem Grund eines der Portale verfehlt hat, fragt die erste Anmeldung auf jenem Portal bei Reception nach "hat diese E-Mail bezahlt?" und wendet den Grant auf der Stelle an.
Die Launch-Promo ist standardmäßig aktiv, solange wir MintOffice ausrollen; sie
wird vom Server-Flag MINTOFFICE_SETUP_PROMO gesteuert, sodass der Preis, den
du beim Checkout siehst, der Preis ist, den du zahlst.
Rückerstattungen
14-Tage-Rückerstattungsfenster, ohne Fragen — wenn das Tier für deinen
Anwendungsfall nicht lohnt, schreibe an support@mintbot.ai und wir senden
die Gebühr zurück.
Die Großhandelspreise pro Agent (der Satz, den mintbot dir für jede von dir gemintete Kundenbestellung berechnet) sind unabhängig von der Einrichtungsgebühr und stehen in Schritt 5 — Preise weiter unten.
Lass dich von einem Agenten einrichten¶
Der Großteil der technischen Arbeit — eine Domain kaufen, DNS konfigurieren, einen Telegram-Bot erstellen, das Template-Repo forken — ist mechanisch. Du kannst es von Hand machen, aber der reibungsloseste Weg ist, es an einen mintbot-Agenten zu delegieren.
Empfohlener Weg
Starte einen mintbot-Agenten und bitte ihn:
"Richte mich als MintOffice-Brand-Partner unter der Domain yourbrand.com
ein — führe mich durch den Onboarding-Wizard und fülle alles aus, was du in
meinem Namen ausfüllen kannst."
Der Agent hat Zugriff auf ein Terminal, einen Browser, eine DNS-API, GitHub-Auth und Kenntnis dieser Anleitung. Er sagt dir genau, welcher Schritt dein Eingreifen erfordert (z. B. das Klicken der Bestätigung von BotFather in Telegram) und erledigt den Rest.
Dein eigenes Hermes, eine OpenCode- / OpenClaw-Installation, der Cursor-Agentenmodus oder jeder andere Coding-Agent funktioniert genauso gut — gib ihm diese Seite als Kontext und nenne ihm das Ziel.
Wenn du den Wizard lieber selbst steuerst, sind die Schritte unten genau das, was der Agent tun würde.
Schritt 0 — Konto erstellen¶
- Öffne mint.mintbot.ai.
- Tippe die E-Mail-Adresse ein, die du als deinen Betreiber-Login verwenden möchtest.
- Klicke auf Send me a sign-in link.
- Öffne die E-Mail von
pigeon@mintbot.aiund klicke auf den Magic Link (gültig für 24 h, einmalig verwendbar).
Es gibt kein Passwort — jede weitere Anmeldung ist ein weiterer Magic Link. Das ist Absicht: Passwörter lecken, Magic Links nicht, und sie sind später leicht von einem Agenten zu automatisieren, wenn du E-Mail-Zugriff einrichtest.
Schritt 1 — Domain¶
Die erste Frage des Wizards lautet, wo deine Agenten leben werden. Du hast zwei Möglichkeiten:
Agenten leben auf Subdomains einer Domain, die dir gehört — z. B.
agent1.yourbrand.com, agent2.yourbrand.com, … Das ist das gebrandete
Erlebnis, das deine Kunden sehen.
Du brauchst:
- Apex-Domain — eine registrierte, blanke Domain (kein
https://, keine Subdomain):yourbrand.com. - DNS-Provider — derzeit hat nur Zone.ee ein funktionierendes Backend. Cloudflare und manuelle Modi stehen auf der Roadmap.
- Zone.ee API key + Benutzername — ausgestellt über my.zone.eu → Account settings → API keys → Create new key. Der Agent nutzt dies, um A-Einträge automatisch zu erstellen, wenn du einen Agenten provisionierst.
Stil der Subdomain-Nummerierung
- Text-Präfix + Nummer (Standard) —
agent1.yourbrand.com,agent2.yourbrand.com, … Am besten lesbar. - Nur numerisch —
1.yourbrand.com,2.yourbrand.com, … Kurz. - Numerisch, mit Nullen aufgefüllt —
001.yourbrand.com, … Stabile Breite.
Die Wahl ist rein kosmetisch — der Deploy-Worker kommt mit allen dreien zurecht.
Agenten leben auf *.mintbot.ai — kein Setup, kein DNS, aber die URL trägt
nicht deine Marke. Nützlich zum Ausprobieren; wechsle vor dem
kundenseitigen Launch zu deiner eigenen Domain.
Schritt 2 — Bot¶
Jeder Agent bekommt eine Chat-Oberfläche. Die Standardwerte gehen von Telegram aus — Discord und Slack sind vorbereitet, aber noch nicht angebunden.
Deine Kunden chatten mit @yourbrand_bot, was die Marke intakt hält.
- Öffne @BotFather in Telegram.
- Sende
/newbot. Gib dem Bot einen Anzeigenamen und einen Benutzernamen (muss aufbotenden). - BotFather gibt einen Token in der Form
123456789:AA…zurück (mindestens 40 Zeichen). - Füge diesen Token in den Wizard ein.
Siehe Telegrams Bot-Tutorial, wenn du die längere Version möchtest.
Kunden chatten mit @mintbot_dev_bot. Schnell für eine Demo, aber ohne
Branding. Wechsle vor dem Launch zu deinem eigenen Bot.
Überspringe Telegram komplett. Kunden greifen nur über das Web-Panel auf Agenten zu. Du kannst später aus den Einstellungen einen Bot hinzufügen.
Schritt 3 — Agent customization repo¶
Jeder Agent wird von mintbot selbst auf einer standardmäßigen, ungebrandeten Basis deployt. Um deine Marke darauf zu setzen — Persona, Panel-Theme, Texte, jegliches zusätzliche Tooling — verweist du den Wizard auf eine agent customization repo: ein GitHub-Repository, das der eigene VPS des Agenten nach dem Standard-Deploy klont und ausführt. Du entscheidest über das Aussehen; dir gehört der Code.
Wie die agent customization repo funktioniert
Die Repo-Wurzel enthält zwei Skripte:
install.sh— läuft einmal auf dem VPS des Agenten, nachdem der Standard-Deploy abgeschlossen ist und der Agent gesund ist. Hier wendest du deine Anpassung an: Theme, Persona-Anpassungen, zusätzliche Tools, jegliches kundenspezifische Setup.update.sh— optional; läuft nach jedem Basis-Paket-Update, sodass du deine Schicht erneut auf der frisch aktualisierten Basis anwenden kannst.
Mintbot führt dein Repo niemals aus — nur der eigene VPS des Agenten tut das, auf der eigenen Maschine des Kunden. Füge die GitHub-HTTPS-URL deines Repos in den Wizard ein; lass sie leer und du bekommst die schlichte ungebrandete Basis.
Erstelle ein Repo mit einer install.sh (und optional update.sh) in
seiner Wurzel, das dein CSS / deine Strings / deine Persona anwendet, und
füge dann die GitHub-HTTPS-URL des Repos ein. Der VPS des Agenten klont es
nach dem Deploy und führt deine Skripte aus, um deine Marke auf der Basis
aufzulegen.
Ein defektes Skript kann den Agenten deines Kunden nicht kaputtmachen
Deine Skripte sind fehlerisoliert. Wenn install.sh oder update.sh
fehlt, einen Fehler wirft oder langsam läuft, gelingt der Deploy
trotzdem, das Basis-Paket-Update wird nie blockiert oder zurückgerollt
und der Agent bleibt gesund. Der Fehler wird auf dem VPS geloggt und dir
gemeldet — niemals dem Endkunden. Der einzige Nachteil eines defekten
Skripts ist, dass der Agent auf der schlichten Basis bleibt statt auf
deiner gebrandeten Schicht, also teste dein Repo zuerst auf einem
DEV-Deploy.
Schlichte ungebrandete Basis-Gestaltung und -Persona — keine agent customization repo. Du kannst später aus den Einstellungen eine Repo-URL hinzufügen.
Schritt 4 — API¶
Die Brand Partner API lässt dich die Agentenerstellung von deinem eigenen Backend aus orchestrieren, statt das Dashboard zu nutzen. Der Wizard überspringt das API-Setup standardmäßig — lass es für später, es sei denn, du bist bereit, jetzt zu integrieren.
Wenn du bereit bist:
- Öffne im Dashboard Settings → API access.
- Klicke auf Generate key. Der Klartext wird einmal angezeigt — speichere ihn in deinem Secret Manager.
- (Optional) Konfiguriere eine Webhook-URL, um Lifecycle-Ereignisse zu empfangen.
- (Optional) Generiere ein Webhook-Signaturgeheimnis, sobald dein Empfänger bereit ist, Signaturen zu verifizieren.
Siehe die Brand Partner API-Referenz für die vollständige Endpoint-Liste und die Webhook-Payload-Strukturen.
Webhook-URL und Signaturgeheimnis sind optional
Keines davon ist erforderlich, um mit dem Verkaufen zu beginnen — das
Dashboard und die API funktionieren auch ohne sie. Das Webhook-URL-Feld
bleibt leer, bis du einen Empfänger hast, der auf https://<your-host>/...
zeigt; das Signaturgeheimnis ist nur nützlich, sobald du diese URL gesetzt
hast und den X-Mintbot-Signature header verifizieren möchtest. Beide
können jederzeit aus Settings → API access hinzugefügt (oder rotiert)
werden.
Lass einen Integrations-Agenten das Setup entdecken
Sobald du einen API key hast, kann ein Agent
GET /api/v1/settings aufrufen, um deine
vollständige nicht geheime Konfiguration in einem Zug zu lesen — Domain,
DNS-Provider, Bot, agent customization repo, Subdomain-Muster, Preise,
Readiness. Es wird nie ein Geheimnis zurückgegeben (Tokens und keys
erscheinen nur als *_set booleans), sodass der key sicher mit dem Agenten
geteilt werden kann, der dein White-Label-Setup auf einem frischen Server
installiert.
Überspring den Boilerplate — forke das Referenz-Portal
Ein vollständiges, lauffähiges Beispiel-Storefront liegt unter mintbot-ai/partner-portal-example. Siehe Referenz-Portal unten für die vollständige Durchführung.
Schritt 5 — Preise¶
Der letzte Wizard-Schritt ist, was deine Kunden pro Paket zahlen. MintOffice teilt die Preisgestaltung in zwei Modi auf — du kannst später unter Settings → Pricing wechseln:
Kunden sehen mintbots empfohlenen Preis pro Tier (Trial, Starter, Pro, Max). Du machst die Partnermarge zwischen diesem empfohlenen Preis und der Großhandelsuntergrenze — kein Setup. Wähle dies, wenn du einfach mit dem Verkaufen beginnen möchtest.
Du legst den Preis fest, den jeder Kunde für jedes Tier zahlt. Du steckst jeden Cent über der Großhandelsuntergrenze ein. Wähle dies, wenn du eine bewusste Aufschlagsstrategie hast.
Die Großhandelsuntergrenze ist, was mintbot dir pro Bestellung berechnet —
es ist das absolute Minimum, das du berechnen kannst. Dein Partneranteil ist
customer_price − wholesale_floor pro Bestellung. Der Wizard zeigt eine
Vorschau der berechneten Margen pro Tier, bevor du absendest.
Eigene Preise können teilweise sein
Selbst im Custom-Modus musst du nicht jedes Tier überschreiben — lass ein Tier auf dem Standard und es erbt mintbots empfohlenen Preis. Bearbeite nur die, die dir wichtig sind.
Live gehen¶
Nach dem Wizard zeigt das Dashboard ein Banner, das alle noch fehlenden Pflichtangaben auflistet. Die drei Pflichtfelder sind:
- Telegram-Bot-Token (oder ein anderer Bot-Provider)
- DNS API key (z. B. Zone.ee key + Benutzername)
- Apex-Domain
Die agent customization repo URL ist optional — lass sie leer und deine Agenten deployen auf der schlichten ungebrandeten Basis.
Sobald die Pflichtfelder ausgefüllt sind und die DNS-Provider-Prüfung besteht,
aktiviert sich der Go Live-Button. Ein Klick darauf schaltet deinen
Partnerstatus von onboarding → live, und die Brand Partner API beginnt,
Auftragserstellungs-Anfragen anzunehmen.
Die Aktivierung ist ein Einweg-Handshake
Dein Account bleibt in onboarding, bis du auf Go Live klickst. Während
des Onboardings lehnt die API Schreibvorgänge mit einem 403 ab (Lesevorgänge
bleiben offen, sodass du den Zustand inspizieren kannst). Aktiviere nicht,
bevor dein Domain-DNS in Zone.ee verifiziert ist und du (falls du eines
nutzt) deine Customization-Repo auf einem DEV-Deploy getestet hast.
Nach Go Live: Domain- + Telegram-Bot-Einstellungen sperren
Sobald dein Partnerstatus live ist, werden die Abschnitte Domain und
Telegram bot der Einstellungen schreibgeschützt. Bestehende
Kundenagenten zeigen bereits auf deine Apex-Domain und chatten über deinen
Bot — eine stille Änderung würde sie mitten im Leben verwaisen lassen. Die
anderen Abschnitte bleiben editierbar:
| Sektion | Editierbar während live? |
|---|---|
| Domain / DNS / Subdomain-Muster | Nein — kontaktiere den Support, wenn du migrieren musst |
| Telegram bot | Nein — kontaktiere den Support, wenn du migrieren musst |
| Agent customization repo | Ja — neue Agenten klonen die neue Repo-URL; bestehende Agenten führen es bei ihrem nächsten Basis-Update über update.sh erneut aus |
| API key / Webhook | Ja — jederzeit rotieren |
| Preise | Ja — gilt für zukünftige Bestellungen |
Die Sperre wird sowohl in der UI durchgesetzt (Fieldset deaktiviert, Banner
mit Erklärung) als auch auf dem Server (POSTs an /settings mit
section=domain oder section=bot geben 403 zurück).
Webhooks + Auszahlungen¶
- Webhook-Zustellungen — jedes Lifecycle-Ereignis (Bestellung erstellt, aktiviert, abgelaufen) wird per POST an die Webhook-URL gesendet, die du in den Einstellungen setzt. Der Webhook-Health-Chip des Dashboards pro Partner zeigt die Zustellungs-Erfolgsrate über die letzten 24 h.
- Umsatz-Ledger — jede bezahlte Bestellung schreibt eine Zeile mit deinem Brutto, deinem Anteil und mintbots Anteil. Das Dashboard zeigt Gesamtsummen über die Lebenszeit und den nicht ausgezahlten Saldo.
- Auszahlungen — sammeln sich an. Das mintbot-Team zahlt sie manuell pro Partnervereinbarung aus; das Dashboard verfolgt den Status bezahlt vs. nicht bezahlt.
Referenz-Portal¶
Wenn du kein Storefront von Grund auf bauen möchtest, forke das offizielle Beispiel: mintbot-ai/partner-portal-example. Es ist MIT-lizenziertes FastAPI + SQLite + Docker, kommt mit einem fiktiven "AcmeAI"-Branding, das du austauschen kannst, und deckt die vollständige Schleife Ende-zu-Ende ab:
- Landing-Page mit Plan-Karten,
/buy-Formular →POST /api/v1/orders→ Stripe-Checkout-Weiterleitung,- Danke- / Abbruch-Rückkehrseiten,
POST /webhooks/mintofficemit dem HMAC-Signaturverifizierer,- HTTP-Basic-Auth-
/admin-Ereignisbrowser, /healthz-Liveness-Probe.
Setup-Durchführung¶
-
Forke das Repo, damit du deine Branding-Änderungen in git behalten kannst:
git clone https://github.com/mintbot-ai/partner-portal-example.git cd partner-portal-example cp .env.example .env -
Fülle
.envmit Werten aus deinem MintOffice-Dashboard:Variable Was hier hineingehört PARTNER_BRANDFür Kunden sichtbarer Markenname (auch als Stripe-Posten-Label verwendet). MINTOFFICE_API_URLhttps://mint.mintbot.aifür live,https://mint.mintbot.devzum Testen.MINTOFFICE_API_KEYAPI key aus Settings → API access (Format mo_live_…).MINTOFFICE_WEBHOOK_SECRETWebhook-Signaturgeheimnis, das bei der Erstellung einmal im selben Dashboard angezeigt wird. PUBLIC_BASE_URLDie HTTPS-URL, auf der dein Portal leben wird (zum Bau von Stripe- success_url/cancel_url).ADMIN_USERNAME/ADMIN_PASSWORDBasic-Auth-Gate auf /admin. Verwende ein langes zufälliges Passwort. -
Lass es laufen — Docker ist der einfachste Weg; Bare-Metal funktioniert auch:
docker compose up --buildpip install -e . uvicorn app.main:app --reload -
Stelle es über HTTPS bereit — MintOffice lehnt
http://sowohl für Stripe-Weiterleitungs-URLs als auch für die Webhook-URL ab (private IPs undlocalhostwerden vom SSRF-Schutz blockiert). Für die lokale Entwicklung nutze Cloudflare Tunnel, Tailscale Funnel oder ngrok. Für die Produktion deploye auf deinen eigenen Host. -
Verweise deine Partner-Zeile auf das Portal — zurück im Dashboard:
- Setze die Webhook URL auf
https://<your-host>/webhooks/mintoffice. - Das war's. Platziere eine Testbestellung über
/buyund beobachte, wie die Ereignisse in/adminankommen.
- Setze die Webhook URL auf
Rebranding¶
Die Standard-Templates geben vor, AcmeAI zu sein. Drei Berührungspunkte:
PARTNER_BRANDin.env— fließt in Stripe, Header, Footer.app/templates/base.html— CSS-Variablen für Farben / Akzent.app/templates/*.html— Texte und Layout pro Seite. Übersetzungen (Estnisch, Spanisch, …) leben als Forks dieser Dateien.
Schnelles Deploy auf demselben VPS wie deine Agenten
Das Beispiel-Portal ist klein genug, um neben deinem MintOffice-Deploy-Agenten
zu laufen. Wenn du bereits einen mintbot-Agenten-VPS hast, bitte ihn:
"Deploye partner-portal-example als Webhook-Empfänger unter
https://portal.<my-domain>/, fülle MINTOFFICE_API_KEY und
MINTOFFICE_WEBHOOK_SECRET aus GET /api/v1/settings aus und setze die
Webhook-URL auf meiner Partner-Zeile." Der Agent hat die Docs und den
API-key-Pfad, um dies Ende-zu-Ende zu erledigen.
Brand Partner API¶
Für programmatische Agentenerstellung, Status-Polling und Webhook-Ereignisse siehe die Brand Partner API-Referenz. Für die breitere Architektur (wie dein Storefront, die API, der Deploy-Worker und der Agenten-VPS jedes Kunden zusammenpassen) siehe MintOffice — Technisch.