MintOffice¶
MintOffice ist das Brand-Partner-Portal von mintbot.ai. Damit verkaufst du mintbot unter deiner eigenen Marke weiter: deine Domain, dein Bot, deine Kundenliste — während mintbot unter der Haube Deployment, Zahlungsabwicklung und die Infrastruktur pro Agent übernimmt.
Das Live-Partnerportal findest du unter mint.mintbot.ai.
Diese Anleitung führt dich von „Ich habe gerade zum ersten Mal von MintOffice gehört“ bis zu „Mein erster White-Label-Agent läuft auf meiner eigenen Domain“. Die technischen Teile (DNS-Einträge, GitHub-Repo, Bot-Token) erledigt am besten ein mintbot-Agent für dich — lies dazu Lass dich von einem Agenten einrichten, bevor du beginnst.
Baust du die Integration selbst?
Die Entwicklerperspektive — welche Repositories dir gehören, wie der Deploy-Ablauf von Anfang bis Ende läuft und wie Agent-Customization-Repo und Storefront zusammenspielen — findest du unter 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-Verkehr oder leihe dir mintbots Bot, solange du noch testest. - Lege deine Endkundenpreise selbst fest und behalte die Differenz zwischen dem, was du deinen Kunden berechnest, und dem, was mintbot dir berechnet (dem MintOffice-Einkaufspreis).
- Eine Brand Partner API zum programmatischen Anlegen von Bestellungen, für Lifecycle-Status und für Webhooks zurück in deine eigenen Systeme.
- Ein Dashboard mit aktiven Kundenbestellungen, Status der Bot-Anbindung, Preisen, Auszahlungen und Webhook-Zustellung.
Preise — Einrichtungsgebühr für Brand Partner¶
Ein kostenloses Testportal-Konto anzulegen ist — nun ja — kostenlos. Die
Brand-Partner-Anmeldung dagegen ist die eine Zahlung, die daraus ein
echtes Brand-Partner-Konto macht. Du zahlst die einmalige Einrichtungsgebühr
unter reception.mintbot.ai/mintoffice
(oder reception.mintbot.dev/mintoffice für die Dev-/Testumgebung), und
dieselbe Zahlung schaltet beide Portale frei:
| Tier | Preis | Enthalten |
|---|---|---|
| Kostenlose Testversion (Standard für jeden neuen Partner) | 0 € | 10 Wegwerf-DEV-Deploys zum Testen von Portal + Template |
| Brand Partner — Launch-Aktion | 49 € einmalig + 10 €/Monat | 20 DEV-Deploys (je 1 € Agenten-Guthaben), erster Monat Kontoverwaltung inklusive, Brand-Partner-Status auf mint.mintbot.ai und mint.mintbot.dev, ausführliche Einrichtungsanleitung (ein Agent kann den gesamten Assistenten für dich durchlaufen) |
| Brand Partner — Standard | 99 € einmalig + 10 €/Monat | Wie Launch — ohne Aktionsrabatt |
Anmeldung ist in der Beta-Phase
Der Brand-Partner-Checkout ist derzeit auf der Dev-/Testumgebung
geöffnet (reception.mintbot.dev/mintoffice).
Der Live-Checkout auf .ai öffnet in Kürze.
Was die Einrichtungsgebühr abdeckt:
- 20 DEV-Deploys, jeder ein 24-Stunden-Wegwerf-Test-VPS mit 1 € Agenten-Guthaben — genug, um Portal und Customization-Template von Anfang bis Ende durchzuspielen.
- Deinen ersten Monat Kontoverwaltung (die Gebühr von 10 €/Monat, siehe unten) — Monat eins ist also schon bezahlt.
- Brand-Partner-Status auf
mint.mintbot.aiundmint.mintbot.dev.
Die Kontoverwaltungsgebühr von 10 €/Monat:
Ab dem zweiten Monat fällt für das Brand-Partner-Konto eine Kontoverwaltungsgebühr von 10 €/Monat an. Am reibungslosesten zahlst du sie per Stripe- oder PayPal-Abo (empfohlen — es verlängert sich von selbst); die einmalige Einrichtungsgebühr kannst du auch per Karte oder Krypto (BTC, XMR und viele weitere Coins über CCPayment) bezahlen.
Bleibt die Monatsgebühr aus, wechselt dein MintOffice-Konto in den Status pausiert: Du kannst keine neuen Agenten deployen, aber deine bestehenden Kundenagenten laufen weiter. Wir melden uns, bevor irgendetwas stoppt, damit du das Konto wieder aktivieren kannst.
Was nach der Zahlung passiert:
- Reception verarbeitet die Einrichtungszahlung auf
reception.mintbot.ai/mintoffice(oder.dev, wenn du in der Testumgebung bist) — Karte / Apple Pay / Google Pay oder Krypto. - Reception schickt sofort einen signierten Grant an
mint.mintbot.aiundmint.mintbot.devund schaltet dein Konto auf beiden Portalen auf Brand-Partner-Status. - Du bekommst eine Willkommens-E-Mail von
pigeon@mintbot.ai(oderpigeon@mintbot.dev, wenn du in der Testumgebung gekauft hast) mit beiden Anmeldelinks und einem Verweis auf diese Anleitung. - Melde dich auf dem Portal an, mit dem du starten willst. Sollte der Cross-Env-Push eines der Portale aus irgendeinem Grund verfehlt haben, fragt die erste Anmeldung dort bei Reception nach („Hat diese E-Mail-Adresse bezahlt?“) und wendet den Grant sofort an.
Die Launch-Aktion ist standardmäßig aktiv, solange wir MintOffice ausrollen;
gesteuert wird sie über das Server-Flag MINTOFFICE_SETUP_PROMO. Der Preis,
den du im Checkout siehst, ist also der Preis, den du zahlst.
Rückerstattungen
14 Tage Rückerstattungsfrist, ohne Nachfragen — wenn sich das Tier für
deinen Anwendungsfall nicht lohnt, schreib an support@mintbot.ai, und wir
erstatten die Gebühr.
Die Einkaufspreise pro Agent (der Satz, den mintbot dir für jede Kundenbestellung berechnet) sind unabhängig von der Einrichtungsgebühr und stehen unten in Schritt 5 — Preise.
Lass dich von einem Agenten einrichten¶
Der Großteil der technischen Arbeit — Domain kaufen, DNS konfigurieren, Telegram-Bot erstellen, Template-Repo forken — ist reine Mechanik. Du kannst das von Hand machen, aber am reibungslosesten geht es, wenn du es an einen mintbot-Agenten delegierst.
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-Assistenten und fülle alles aus, was du
in meinem Namen ausfüllen kannst.“
Der Agent hat ein Terminal, einen Browser, eine DNS-API, GitHub-Zugang und kennt diese Anleitung. Er sagt dir genau, bei welchem Schritt er dich braucht (z. B. um die Bestätigung von BotFather in Telegram anzuklicken), und erledigt den Rest.
Dein eigenes Hermes, eine OpenCode- / OpenClaw-Installation, der Agentenmodus von Cursor oder jeder andere Coding-Agent funktioniert genauso gut — gib ihm diese Seite als Kontext und nenne ihm das Ziel.
Wenn du den Assistenten lieber selbst durchgehst: Die Schritte unten sind genau das, was der Agent tun würde.
Schritt 0 — Konto erstellen¶
- Öffne mint.mintbot.ai.
- Gib die E-Mail-Adresse ein, die du als Betreiber-Login verwenden willst.
- Klicke auf Send me a sign-in link.
- Öffne die E-Mail von
pigeon@mintbot.aiund klicke auf den Magic Link (24 h gültig, einmal verwendbar).
Es gibt kein Passwort — jede weitere Anmeldung läuft über einen neuen Magic Link. Das ist Absicht: Passwörter können leaken, Magic Links nicht, und ein Agent kann sie später leicht automatisieren, wenn du ihm E-Mail-Zugriff gibst.
Schritt 1 — Domain¶
Die erste Frage des Assistenten lautet, wo deine Agenten leben sollen. 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, nackte Domain (kein
https://, keine Subdomain):yourbrand.com. - DNS-Provider — derzeit hat nur Zone.ee ein funktionierendes Backend. Cloudflare und ein manueller Modus stehen auf der Roadmap.
- Zone.ee-API-Key + Benutzername — erstellst du unter my.zone.eu → Account settings → API keys → Create new key. Damit legt der Agent automatisch A-Einträge an, wenn du einen Agenten provisionierst.
Nummerierung der Subdomains
- Textpräfix + Nummer (Standard) —
agent1.yourbrand.com,agent2.yourbrand.com, … Am besten lesbar. - Nur Ziffern —
1.yourbrand.com,2.yourbrand.com, … Kurz. - Ziffern mit führenden Nullen —
001.yourbrand.com, … Feste Breite.
Die Wahl ist rein kosmetisch — der Deploy-Worker kommt mit allen drei Varianten zurecht.
Agenten leben auf *.mintbot.ai — keine Einrichtung, kein DNS, aber die
URL trägt nicht deine Marke. Praktisch zum Ausprobieren; wechsle vor dem
Start für Kunden zu deiner eigenen Domain.
Schritt 2 — Bot¶
Jeder Agent bekommt eine Chat-Oberfläche. Die Voreinstellungen gehen von Telegram aus — Discord und Slack sind vorbereitet, aber noch nicht angebunden.
Deine Kunden chatten mit @yourbrand_bot — die Marke bleibt intakt.
- Öffne @BotFather in Telegram.
- Sende
/newbot. Gib dem Bot einen Anzeigenamen und einen Benutzernamen (muss aufbotenden). - BotFather antwortet mit einem Token der Form
123456789:AA…(mindestens 40 Zeichen). - Füge dieses Token in den Assistenten ein.
Die ausführliche Version findest du in Telegrams Bot-Tutorial.
Kunden chatten mit @mintbot_dev_bot. Schnell für eine Demo, aber ohne
Branding. Wechsle vor dem Start zu deinem eigenen Bot.
Überspringe Telegram komplett. Kunden erreichen ihre Agenten nur über das Web-Panel. Einen Bot kannst du später in den Einstellungen hinzufügen.
Schritt 3 — Agent-Customization-Repo¶
Jeder Agent wird von mintbot selbst auf einer standardmäßigen, ungebrandeten Basis deployt. Um deine Marke darüberzulegen — Persona, Panel-Theme, Texte, zusätzliches Tooling —, zeigst du im Assistenten auf ein Agent-Customization-Repo: ein GitHub-Repository, das der eigene VPS des Agenten nach dem Standard-Deploy klont und ausführt. Du bestimmst das Aussehen; der Code gehört dir.
So funktioniert das Agent-Customization-Repo
Im Wurzelverzeichnis des Repos liegen zwei Skripte:
install.sh— läuft einmal auf dem VPS des Agenten, nachdem der Standard-Deploy abgeschlossen und der Agent gesund ist. Hier wendest du deine Anpassungen an: Theme, Persona-Feinschliff, zusätzliche Tools, kundenspezifische Einrichtung.update.sh— optional; läuft nach jedem Update des Basispakets, damit du deine Schicht auf die frisch aktualisierte Basis neu auftragen kannst.
mintbot führt dein Repo nie aus — nur der eigene VPS des Agenten tut das, auf der Maschine des Kunden. Füge die GitHub-HTTPS-URL deines Repos in den Assistenten ein; lässt du das Feld leer, bekommst du die schlichte, ungebrandete Basis.
Erstelle ein Repo mit einer install.sh (und optional einer update.sh) im
Wurzelverzeichnis, die dein CSS, deine Texte und deine Persona anwenden, 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 über die Basis zu
legen.
Ein defektes Skript kann den Agenten deines Kunden nicht beschädigen
Deine Skripte sind fehlerisoliert. Wenn install.sh oder update.sh
fehlt, mit einem Fehler abbricht oder langsam läuft, gelingt der Deploy
trotzdem, das Update des Basispakets wird nie blockiert oder
zurückgerollt, und der Agent bleibt gesund. Der Fehler wird auf dem VPS
protokolliert und dir gemeldet — nie dem Endkunden. Der einzige Nachteil
eines defekten Skripts: Der Agent bleibt auf der schlichten Basis statt
auf deiner gebrandeten Schicht. Teste dein Repo also zuerst auf einem
DEV-Deploy.
Schlichte, ungebrandete Basis-Gestaltung und -Persona — kein Agent-Customization-Repo. Eine Repo-URL kannst du später in den Einstellungen hinzufügen.
Schritt 4 — API¶
Mit der Brand Partner API steuerst du das Anlegen von Agenten aus deinem eigenen Backend heraus, statt das Dashboard zu nutzen. Der Assistent überspringt die API-Einrichtung standardmäßig — heb sie dir für später auf, es sei denn, du willst jetzt gleich integrieren.
Wenn es so weit ist:
- Öffne im Dashboard Settings → API access.
- Klicke auf Generate key. Der Klartext wird nur einmal angezeigt — lege ihn in deinem Secret-Manager ab.
- (Optional) Hinterlege eine Webhook-URL, um Lifecycle-Ereignisse zu empfangen.
- (Optional) Erzeuge ein Webhook-Signaturgeheimnis, sobald dein Empfänger Signaturen prüfen kann.
Die vollständige Endpoint-Liste und die Webhook-Payloads findest du in der Brand-Partner-API-Referenz.
Webhook-URL und Signaturgeheimnis sind optional
Keines von beiden ist nötig, um mit dem Verkaufen anzufangen — Dashboard und
API funktionieren auch ohne. Das Feld für die Webhook-URL bleibt leer, bis du
einen Empfänger unter https://<your-host>/... hast; das Signaturgeheimnis
ist erst sinnvoll, wenn diese URL gesetzt ist und du den
X-Mintbot-Signature-Header prüfen willst. Beides kannst du jederzeit unter
Settings → API access hinzufügen (oder rotieren).
Lass einen Integrations-Agenten die Einrichtung auslesen
Sobald du einen API-Key hast, kann ein Agent
GET /api/v1/settings aufrufen und deine
vollständige nicht geheime Konfiguration auf einmal 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), du kannst den Key also bedenkenlos dem
Agenten geben, der dein White-Label-Setup auf einem frischen Server
installiert.
Spar dir den Boilerplate — forke das Referenz-Portal
Ein vollständiger, lauffähiger Beispiel-Storefront liegt unter mintbot-ai/partner-portal-example. Die komplette Anleitung steht unten unter Referenz-Portal.
Schritt 5 — Preise¶
Der letzte Schritt des Assistenten legt fest, was deine Kunden pro Paket zahlen. MintOffice kennt zwei Preismodi — du kannst später unter Settings → Pricing wechseln:
Kunden sehen mintbots empfohlenen Preis pro Tier (Trial, Starter, Pro, Max). Deine Partnermarge ist die Differenz zwischen diesem empfohlenen Preis und dem Einkaufspreis — ohne jede Einrichtung. Wähle das, wenn du einfach loslegen willst.
Du legst für jedes Tier fest, was der Kunde zahlt, und behältst jeden Cent über dem Einkaufspreis. Wähle das, wenn du eine bewusste Aufschlagsstrategie hast.
Der Einkaufspreis (wholesale floor) ist, was mintbot dir pro Bestellung
berechnet — das absolute Minimum, das du verlangen kannst. Dein Partneranteil
ist pro Bestellung customer_price − wholesale_floor. Der Assistent zeigt dir
die berechneten Margen pro Tier als Vorschau, bevor du absendest.
Eigene Preise können teilweise sein
Auch im Custom-Modus musst du nicht jedes Tier überschreiben — lässt du ein Tier auf Standard, übernimmt es mintbots empfohlenen Preis. Bearbeite nur die, die dir wichtig sind.
Live gehen¶
Nach dem Assistenten zeigt das Dashboard ein Banner mit allen noch fehlenden Pflichtangaben. Die drei Pflichtfelder sind:
- Telegram-Bot-Token (oder ein anderer Bot-Provider)
- DNS-API-Key (z. B. Zone.ee-Key + Benutzername)
- Apex-Domain
Die URL des Agent-Customization-Repos ist optional — lässt du sie leer, deployen deine Agenten auf der schlichten, ungebrandeten Basis.
Sobald die Pflichtfelder ausgefüllt sind und die Prüfung des DNS-Providers
besteht, wird der Button Go Live aktiv. Ein Klick darauf schaltet deinen
Partnerstatus von onboarding auf live, und die Brand Partner API nimmt
Anfragen zum Anlegen von Bestellungen an.
Die Aktivierung ist eine Einbahnstraße
Dein Konto bleibt in onboarding, bis du auf Go Live klickst. Während
des Onboardings lehnt die API Schreibvorgänge mit 403 ab (Lesezugriffe
bleiben offen, damit du den Zustand prüfen kannst). Aktiviere erst, wenn das
DNS deiner Domain in Zone.ee verifiziert ist und du (falls du eines nutzt)
dein Customization-Repo auf einem DEV-Deploy getestet hast.
Nach dem Go-Live sind Domain- und Telegram-Bot-Einstellungen gesperrt
Sobald dein Partnerstatus live ist, sind die Abschnitte Domain und
Telegram bot in den Einstellungen schreibgeschützt. Bestehende
Kundenagenten zeigen bereits auf deine Apex-Domain und chatten über deinen
Bot — eine stille Änderung würde sie mitten im Betrieb verwaisen lassen. Die
übrigen Abschnitte bleiben bearbeitbar:
| Abschnitt | Bearbeitbar im Status live? |
|---|---|
| Domain / DNS / Subdomain-Muster | Nein — wende dich an den Support, wenn du migrieren musst |
| Telegram-Bot | Nein — wende dich an den Support, wenn du migrieren musst |
| Agent-Customization-Repo | Ja — neue Agenten klonen die neue Repo-URL; bestehende Agenten führen es beim nächsten Basis-Update über update.sh erneut aus |
| API-Key / Webhook | Ja — jederzeit rotierbar |
| Preise | Ja — gilt für künftige Bestellungen |
Die Sperre greift sowohl in der Oberfläche (Fieldset deaktiviert, Banner mit
Erklärung) als auch auf dem Server (POSTs an /settings mit
section=domain oder section=bot liefern 403).
Webhooks + Auszahlungen¶
- Webhook-Zustellungen — jedes Lifecycle-Ereignis (Bestellung angelegt, aktiviert, abgelaufen) wird per POST an die Webhook-URL gesendet, die du in den Einstellungen hinterlegst. Der Chip Webhook health im Dashboard zeigt pro Partner die Zustellquote der letzten 24 h.
- Umsatz-Ledger — jede bezahlte Bestellung schreibt eine Zeile mit deinem Bruttoumsatz, deinem Anteil und mintbots Anteil. Das Dashboard zeigt die Gesamtsummen seit Beginn und den nicht ausgezahlten Saldo.
- Auszahlungen — sammeln sich an. Das mintbot-Team zahlt sie manuell gemäß Partnervereinbarung aus; das Dashboard verfolgt den Status (ausgezahlt / offen).
Referenz-Portal¶
Wenn du keinen Storefront von Grund auf bauen willst, forke das offizielle Beispiel: mintbot-ai/partner-portal-example. Es ist MIT-lizenziert, basiert auf FastAPI + SQLite + Docker, kommt mit einem fiktiven „AcmeAI“-Branding zum Austauschen und deckt den kompletten Ablauf ab:
- Landing-Page mit Plan-Karten,
/buy-Formular →POST /api/v1/orders→ Weiterleitung zum Stripe-Checkout,- Danke- und Abbruch-Rücksprungseiten,
POST /webhooks/mintofficemit dem HMAC-Signaturprüfer,/admin-Ereignisbrowser hinter HTTP-Basic-Auth,/healthz-Liveness-Probe.
Einrichtung Schritt für Schritt¶
-
Forke das Repo, damit deine Branding-Änderungen in Git bleiben:
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 Bezeichnung der Stripe-Position). 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 im selben Dashboard beim Erzeugen einmalig angezeigt wird. PUBLIC_BASE_URLDie HTTPS-URL, unter der dein Portal laufen wird (daraus werden die Stripe- success_url/cancel_urlgebaut).ADMIN_USERNAME/ADMIN_PASSWORDBasic-Auth-Schutz für /admin. Verwende ein langes, zufälliges Passwort. -
Starte es — Docker ist der einfachste Weg, direkt auf dem Host geht auch:
docker compose up --buildpip install -e . uvicorn app.main:app --reload -
Mach es per HTTPS erreichbar — MintOffice lehnt
http://sowohl für die Stripe-Rücksprung-URLs als auch für die Webhook-URL ab (private IPs undlocalhostblockiert der SSRF-Schutz). Für die lokale Entwicklung nimm Cloudflare Tunnel, Tailscale Funnel oder ngrok. Für die Produktion deployst du auf deinen eigenen Host. -
Verbinde deinen Partnereintrag mit dem Portal — zurück im Dashboard:
- Setze die Webhook URL auf
https://<your-host>/webhooks/mintoffice. - Das war’s. Gib über
/buyeine Testbestellung auf und sieh zu, wie die Ereignisse in/admineintreffen.
- Setze die Webhook URL auf
Rebranding¶
Die Standard-Templates geben sich als AcmeAI aus. Drei Stellen sind anzupassen:
PARTNER_BRANDin.env— fließt in Stripe, Kopf- und Fußzeilen ein.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.
Schnell-Deploy auf demselben VPS wie deine Agenten
Das Beispiel-Portal ist klein genug, um neben deinem MintOffice-Deploy-Agenten
zu laufen. Wenn du schon 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 an meinem Partnereintrag.“ Der Agent hat die Docs und den
Zugriff auf den API-Key, um das komplett zu erledigen.
Brand Partner API¶
Für das programmatische Anlegen von Agenten, Status-Polling und Webhook-Ereignisse siehe die Brand-Partner-API-Referenz. Die übergeordnete Architektur (wie dein Storefront, die API, der Deploy-Worker und der Agenten-VPS jedes Kunden zusammenspielen) beschreibt MintOffice — Technisch.