Ga naar inhoud

MintOffice

MintOffice is het Brand Partner-portaal voor mintbot.ai. Het stelt je in staat om mintbot onder je eigen merk te verkopen: je eigen domein, je eigen bot, je eigen klantenlijst — terwijl mintbot de deployment, de betaalinfrastructuur en de infrastructuur per agent onder de motorkap verzorgt.

Het live partnerportaal staat op mint.mintbot.ai.

Deze gids neemt je mee van "ik heb net over MintOffice gehoord" tot "mijn eerste white-label agent draait live op mijn eigen domein". De technische onderdelen (DNS-records, GitHub-repo, bottoken) kun je het beste door een mintbot-agent voor je laten afhandelen — zie Laat een agent je instellen voordat je begint.

Bouw je de integratie zelf?

Voor de developer-kant — welke repositories je bezit, hoe de deploy-flow van begin tot eind verloopt, en hoe de Agent customization repo + storefront samenwerken — zie MintOffice — Technisch.


Wat je krijgt

  • Verkoop elk mintbot-pakket (Trial, Starter, Pro, Max) onder je eigen domein door — je klanten zien agent1.yourbrand.com, niet *.mintbot.ai.
  • Gebruik je eigen Telegram-bot (@yourbrand_bot) voor chatverkeer, of leen de bot van mintbot terwijl je nog aan het testen bent.
  • Kies je klantgerichte prijzen en steek het verschil op zak tussen wat jij hen rekent en wat mintbot jou rekent (de MintOffice-groothandelsbodem).
  • Een Brand Partner API voor programmatische ordercreatie, lifecyclestatus en webhooks terug naar je eigen systemen.
  • Een dashboard dat actieve klantorders, de gezondheid van de botkoppeling, prijzen, uitbetalingen en webhook-bezorging toont.

Prijzen — Brand Partner-instelkosten

Aanmelden voor een gratis proefaccount op het portaal is, nou ja, gratis — maar de Brand Partner-aanmelding is de enige betaling die er een echt brand-partneraccount van maakt. Je betaalt de eenmalige instelfee op reception.mintbot.ai/mintoffice (of reception.mintbot.dev/mintoffice voor de dev/test-omgeving) en dezelfde betaling ontgrendelt beide portalen:

Tier Prijs Wat is inbegrepen
Gratis proefperiode (standaard voor elke nieuwe partner) €0 10 wegwerpbare DEV-deploys om je portaal + template te testen
Brand Partner — lanceringsactie €49 eenmalig + €10/maand 20 DEV-deploys (elk €1 aan agent-tegoed), eerste maand accountbeheer inbegrepen, Brand Partner-status op zowel mint.mintbot.ai als mint.mintbot.dev, uitgebreide instelgids (een agent kan de hele wizard voor je doorlopen)
Brand Partner — standaard €99 eenmalig + €10/maand Hetzelfde als lancering — zonder de actie

Aanmelding is in bèta

Brand Partner-checkout staat momenteel open op de dev/test-omgeving (reception.mintbot.dev/mintoffice). De live .ai-checkout gaat binnenkort open.

Wat de instelfee dekt:

  • 20 DEV-deploys, elk een wegwerpbare test-VPS van 24 uur met €1 aan agent-tegoed — genoeg om je portaal en customization-template van begin tot eind uit te proberen.
  • Je eerste maand accountbeheer (de €10/maand-fee hieronder) — zo is maand één al betaald.
  • Brand Partner-status op zowel mint.mintbot.ai als mint.mintbot.dev.

De €10/maand-accountbeheerfee:

Vanaf de tweede maand draagt het Brand Partner-account een €10/maand- accountbeheerfee. De soepelste manier om die te betalen is een Stripe- of PayPal-abonnement (aanbevolen — het verlengt zichzelf); de eenmalige instelfee kun je ook met kaart of crypto betalen (BTC, XMR en vele coins via CCPayment).

Als de maandelijkse fee vervalt, gaat je MintOffice-account naar gepauzeerd: je kunt geen nieuwe agents deployen, maar je bestaande klantagents blijven draaien. We nemen contact met je op voordat er iets stopt, zodat je kunt hervatten.

Wat er gebeurt nadat je hebt betaald:

  1. Reception verwerkt de instelbetaling op reception.mintbot.ai/mintoffice (of .dev als je op de testomgeving zit) — kaart / Apple Pay / Google Pay, of crypto.
  2. Reception stuurt onmiddellijk een ondertekende grant naar zowel mint.mintbot.ai als mint.mintbot.dev, waardoor je account op beide portalen naar Brand Partner-status wordt omgezet.
  3. Je ontvangt een welkomstmail van pigeon@mintbot.ai (of pigeon@mintbot.dev als je op de testomgeving hebt gekocht) met beide inloglinks en een verwijzing naar deze gids.
  4. Log in op het portaal waarmee je wilt beginnen. Als de cross-env-push om de een of andere reden een van beide portalen heeft gemist, vraagt de eerste login op dat portaal aan reception "heeft deze e-mail betaald?" en past de grant ter plekke toe.

De lanceringsactie staat standaard aan zolang we MintOffice uitrollen; deze wordt geregeld door de serverflag MINTOFFICE_SETUP_PROMO, dus de prijs die je bij het afrekenen ziet, is de prijs die je betaalt.

Terugbetalingen

Terugbetalingstermijn van 14 dagen, zonder vragen — als de tier het voor jouw use case niet waard is, mail support@mintbot.ai en we storten de fee terug.

De groothandelsprijs per agent (het tarief dat mintbot je rekent voor elke klantorder die je aanmaakt) staat los van de instelkosten en vind je in Stap 5 — Prijzen hieronder.


Laat een agent je instellen

Het meeste technische werk — een domein kopen, DNS configureren, een Telegram-bot aanmaken, de template-repo forken — is mechanisch. Je kunt het met de hand doen, maar de soepelste weg is om het aan een mintbot-agent te delegeren.

Aanbevolen aanpak

Start een mintbot-agent en vraag hem: "Stel me in als MintOffice brand partner onder domein yourbrand.com — loop met me door de onboardingwizard en vul namens mij alles in wat je kunt."

De agent heeft toegang tot een terminal, een browser, een DNS-API, GitHub- authenticatie en kennis van deze gids. Hij vertelt je precies welke stap jouw tussenkomst vereist (bijvoorbeeld het bevestigen bij BotFather in Telegram) en regelt de rest.

Je eigen Hermes, een OpenCode-/ OpenClaw-installatie, Cursor agent-modus of elke andere coding-agent werkt net zo goed — geef hem deze pagina als context en vertel hem het doel.

Als je de wizard liever zelf doorloopt, zijn de onderstaande stappen precies wat de agent zou doen.


Stap 0 — Maak je account aan

  1. Open mint.mintbot.ai.
  2. Typ het e-mailadres dat je als operator-login wilt gebruiken.
  3. Klik op Send me a sign-in link.
  4. Open de e-mail van pigeon@mintbot.ai en klik op de magic link (24 uur geldig, eenmalig te gebruiken).

Er is geen wachtwoord — elke volgende login is opnieuw een magic link. Dit is bewust: wachtwoorden lekken, magic links niet, en ze zijn voor een agent later makkelijk te automatiseren als je e-mailtoegang instelt.


Stap 1 — Domein

De eerste vraag van de wizard is waar je agents komen te wonen. Je hebt twee keuzes:

Agents wonen op subdomeinen van een domein dat jij bezit — bijv. agent1.yourbrand.com, agent2.yourbrand.com, … Dit is de gebrande ervaring die je klanten zien.

Je hebt nodig:

  • Apex-domein — een geregistreerd, kaal domein (geen https://, geen subdomein): yourbrand.com.
  • DNS-provider — momenteel heeft alleen Zone.ee een werkende backend. Cloudflare en handmatige modi staan op de roadmap.
  • Zone.ee API-sleutel + gebruikersnaam — aangevraagd via my.zone.euAccount settings → API keys → Create new key. De agent gebruikt dit om automatisch A-records aan te maken wanneer je een agent provisiont.

Stijl voor subdomeinnummering

  • Tekstprefix + nummer (standaard) — agent1.yourbrand.com, agent2.yourbrand.com, … Best leesbaar.
  • Alleen numeriek1.yourbrand.com, 2.yourbrand.com, … Kort.
  • Numeriek, met voorloopnullen001.yourbrand.com, … Vaste breedte.

De keuze is puur cosmetisch — de deploy-worker kan met alle drie overweg.

Agents wonen op *.mintbot.ai — geen setup, geen DNS, maar de URL draagt je merk niet. Handig om even uit te proberen; schakel over naar je eigen domein vóór een klantgerichte lancering.


Stap 2 — Bot

Elke agent krijgt een chatoppervlak. De standaardinstellingen gaan uit van Telegram — Discord en Slack zijn voorbereid maar nog niet aangesloten.

Je klanten chatten met @yourbrand_bot, waardoor het merk intact blijft.

  1. Open @BotFather in Telegram.
  2. Stuur /newbot. Geef de bot een weergavenaam en een gebruikersnaam (moet eindigen op bot).
  3. BotFather retourneert een token in de vorm 123456789:AA… (minstens 40 tekens).
  4. Plak dat token in de wizard.

Zie Telegram's bot-tutorial als je de uitgebreidere versie wilt.

Klanten chatten met @mintbot_dev_bot. Snel voor een demo, maar zonder merk. Schakel vóór de lancering over naar je eigen bot.

Sla Telegram helemaal over. Klanten benaderen agents alleen via het webpaneel. Je kunt later een bot toevoegen via Settings.


Stap 3 — Agent customization repo

Elke agent wordt door mintbot zelf gedeployd op een standaard, merkloze basis. Om jouw merk erbovenop te zetten — persona, paneelthema, teksten, extra tooling — wijs je de wizard naar een agent customization repo: een GitHub-repository die de eigen VPS van de agent na de standaard deploy kloont en uitvoert. Jij bepaalt de look; jij bezit de code.

Hoe de agent customization repo werkt

De root van de repo bevat twee scripts:

  • install.sh — draait één keer op de VPS van de agent, nadat de standaard deploy is voltooid en de agent gezond is. Hier pas je je maatwerk toe: thema, persona-aanpassingen, extra tools, elke klantspecifieke setup.
  • update.sh — optioneel; draait na elke update van het basispakket, zodat je je laag opnieuw bovenop de zojuist bijgewerkte basis kunt toepassen.

Mintbot voert je repo nooit uit — alleen de eigen VPS van de agent doet dat, op de eigen machine van de klant. Plak de GitHub HTTPS-URL van je repo in de wizard; laat het leeg en je krijgt de kale, merkloze basis.

Maak een repo met een install.sh (en optioneel update.sh) in de root die je CSS / strings / persona toepast, en plak vervolgens de GitHub HTTPS-URL van de repo. De VPS van de agent kloont deze na de deploy en draait je scripts om je merk bovenop de basis te leggen.

Een kapot script kan de agent van je klant niet breken

Je scripts zijn fail-geïsoleerd. Als install.sh of update.sh ontbreekt, een fout geeft of traag draait, slaagt de deploy alsnog, wordt de update van het basispakket nooit geblokkeerd of teruggedraaid, en blijft de agent gezond. De fout wordt op de VPS gelogd en aan jou getoond — nooit aan de eindklant. Het enige nadeel van een kapot script is dat de agent op de kale basis blijft in plaats van op je gebrande laag, dus test je repo eerst op een DEV-deploy.

Kale, merkloze basisstyling en -persona — geen agent customization repo. Je kunt later een repo-URL toevoegen via Settings.


Stap 4 — API

Met de Brand Partner API kun je het aanmaken van agents vanuit je eigen backend orkestreren in plaats van via het dashboard. De wizard slaat de API-setup standaard over — laat het voor later, tenzij je nu klaar bent om te integreren.

Wanneer je er klaar voor bent:

  1. Open in het dashboard Settings → API access.
  2. Klik op Generate key. De plaintext wordt één keer getoond — bewaar deze in je secret manager.
  3. (Optioneel) Configureer een webhook-URL om lifecycle-events te ontvangen.
  4. (Optioneel) Genereer een webhook signing secret zodra je ontvanger klaar is om handtekeningen te verifiëren.

Zie de Brand Partner API-referentie voor de volledige lijst met endpoints en de vormen van de webhook-payloads.

Webhook-URL en signing secret zijn optioneel

Geen van beide is vereist om te beginnen met verkopen — het dashboard en de API werken prima zonder. Het veld voor de webhook-URL blijft leeg totdat je een ontvanger hebt die naar https://<your-host>/... wijst; de signing secret is pas nuttig zodra je die URL hebt ingesteld en de X-Mintbot-Signature header wilt verifiëren. Beide kunnen op elk moment worden toegevoegd (of geroteerd) via Settings → API access.

Laat een integratie-agent de setup ontdekken

Zodra je een API-sleutel hebt, kan een agent GET /api/v1/settings aanroepen om in één keer je volledige niet-geheime configuratie te lezen — domein, DNS-provider, bot, agent customization repo, subdomeinpatroon, prijzen, gereedheid. Er wordt nooit een secret geretourneerd (tokens en sleutels verschijnen alleen als *_set-booleans), dus de sleutel is veilig te delen met de agent die je white-label setup op een verse server installeert.

Sla het boilerplate over — fork het referentieportaal

Een compleet, uitvoerbaar voorbeeld-storefront staat op mintbot-ai/partner-portal-example. Zie Referentieportaal hieronder voor de volledige walkthrough.


Stap 5 — Prijzen

De laatste wizardstap is wat je klanten per pakket betalen. MintOffice splitst de prijsstelling in twee modi — je kunt later wisselen onder Settings → Pricing:

Klanten zien de door mintbot aanbevolen prijs per tier (Trial, Starter, Pro, Max). Jij verdient de partnermarge tussen die aanbevolen prijs en de groothandelsbodem — geen setup nodig. Kies dit als je gewoon wilt beginnen met verkopen.

Jij stelt de prijs in die elke klant voor elke tier betaalt. Je houdt elke cent boven de groothandelsbodem. Kies dit wanneer je een doelbewuste opslagstrategie hebt.

De groothandelsbodem is wat mintbot jou per order rekent — het absolute minimum dat je kunt vragen. Jouw partneraandeel is customer_price − wholesale_floor per order. De wizard toont een voorbeeld van de berekende marges per tier voordat je indient.

Aangepaste prijzen kunnen gedeeltelijk zijn

Zelfs in de custom-modus hoef je niet elke tier te overschrijven — laat een tier op de standaard staan en deze erft de door mintbot aanbevolen prijs. Bewerk alleen de tiers waar je om geeft.


Live gaan

Na de wizard toont het dashboard een banner met de nog ontbrekende verplichte informatie. De drie verplichte velden zijn:

  1. Telegram-bottoken (of een andere botprovider)
  2. DNS-API-sleutel (bijv. Zone.ee-sleutel + gebruikersnaam)
  3. Apex-domein

De agent customization repo-URL is optioneel — laat het leeg en je agents worden gedeployd op de kale, merkloze basis.

Zodra de verplichte velden zijn ingevuld en de DNS-providercontrole slaagt, wordt de knop Go Live geactiveerd. Erop klikken zet je partnerstatus van onboardinglive, en de Brand Partner API begint ordercreatie-requests te accepteren.

Activering is een eenrichtingshandshake

Je account blijft in onboarding totdat je op Go Live klikt. Tijdens onboarding weigert de API writes met een 403 (reads blijven open zodat je de status kunt inspecteren). Activeer niet voordat je domein-DNS is geverifieerd in Zone.ee en (als je er een gebruikt) je je customization repo hebt getest op een DEV-deploy.

Na Go Live: domein- + Telegram-botinstellingen vergrendelen

Zodra je partnerstatus live is, worden de secties Domain en Telegram bot van Settings alleen-lezen. Bestaande klantagents wijzen al naar je apex-domein en chatten via je bot — een stille wijziging zou ze midden in hun leven verweesd achterlaten. De andere secties blijven bewerkbaar:

Sectie Bewerkbaar terwijl live?
Domain / DNS / subdomeinpatroon Nee — neem contact op met support als je moet migreren
Telegram bot Nee — neem contact op met support als je moet migreren
Agent customization repo Ja — nieuwe agents klonen de nieuwe repo-URL; bestaande agents draaien deze opnieuw via update.sh bij hun volgende basisupdate
API key / webhook Ja — roteer wanneer je wilt
Pricing Ja — geldt voor toekomstige orders

De vergrendeling wordt afgedwongen in zowel de UI (fieldset uitgeschakeld, banner die uitlegt waarom) als op de server (POST's naar /settings met section=domain of section=bot retourneren 403).


Webhooks + uitbetalingen

  • Webhook-bezorgingen — elk lifecycle-event (order aangemaakt, geactiveerd, verlopen) post naar de webhook-URL die je in Settings hebt ingesteld. De Webhook health-chip per partner in het dashboard toont het bezorgingssuccespercentage over de laatste 24 uur.
  • Omzetgrootboek — elke betaalde order schrijft een rij met je bruto, jouw aandeel en het aandeel van mintbot. Het dashboard toont de totalen over de gehele looptijd en het onbetaalde saldo.
  • Uitbetalingen — stapelen zich op. Het mintbot-team betaalt ze handmatig uit per partnerovereenkomst; het dashboard houdt de betaald-versus-onbetaald-status bij.

Referentieportaal

Als je geen storefront vanaf nul wilt bouwen, fork dan het officiële voorbeeld: mintbot-ai/partner-portal-example. Het is MIT-gelicenseerde FastAPI + SQLite + Docker, wordt geleverd met een fictieve "AcmeAI"-branding die je kunt vervangen, en dekt de volledige loop van begin tot eind:

  • landingspagina met plankaarten,
  • /buy-formulier → POST /api/v1/orders → Stripe checkout-redirect,
  • bedank- / annuleer-retourpagina's,
  • POST /webhooks/mintoffice met de HMAC-handtekeningverifier,
  • /admin-eventbrowser met HTTP-Basic-auth,
  • /healthz liveness-probe.

Setup-walkthrough

  1. Fork de repo zodat je je brandingwijzigingen in git kunt bijhouden:

    git clone https://github.com/mintbot-ai/partner-portal-example.git
    cd partner-portal-example
    cp .env.example .env
    
  2. Vul .env in met waarden uit je MintOffice-dashboard:

    Variabele Wat hier komt
    PARTNER_BRAND Voor de klant zichtbare merknaam (ook gebruikt als label van het Stripe-regelitem).
    MINTOFFICE_API_URL https://mint.mintbot.ai voor live, https://mint.mintbot.dev voor testen.
    MINTOFFICE_API_KEY API-sleutel uit Settings → API access (formaat mo_live_…).
    MINTOFFICE_WEBHOOK_SECRET Webhook signing secret die bij het aanmaken één keer in hetzelfde dashboard wordt getoond.
    PUBLIC_BASE_URL De HTTPS-URL waarop je portaal komt te staan (gebruikt om Stripe success_url / cancel_url op te bouwen).
    ADMIN_USERNAME / ADMIN_PASSWORD Basic-auth-poort op /admin. Gebruik een lang willekeurig wachtwoord.
  3. Draai het — Docker is de makkelijkste weg; bare-metal werkt ook:

    docker compose up --build
    
    pip install -e .
    uvicorn app.main:app --reload
    
  4. Stel het beschikbaar via HTTPS — MintOffice weigert http:// voor zowel Stripe-redirect-URL's als de webhook-URL (privé-IP's en localhost worden geblokkeerd door de SSRF-guard). Gebruik voor lokale ontwikkeling Cloudflare Tunnel, Tailscale Funnel of ngrok. Deploy voor productie naar je eigen host.

  5. Wijs je partnerrij naar het portaal — terug in het dashboard:

    • Stel Webhook URL in op https://<your-host>/webhooks/mintoffice.
    • Dat is alles. Plaats een testorder via /buy en kijk hoe de events binnenkomen in /admin.

Rebranding

De standaardtemplates doen alsof ze AcmeAI zijn. Drie aanknopingspunten:

  • PARTNER_BRAND in .env — stroomt door naar Stripe, headers, footers.
  • app/templates/base.html — CSS-variabelen voor kleuren / accent.
  • app/templates/*.html — teksten en lay-out per pagina. Vertalingen (Ests, Spaans, …) bestaan als forks van deze bestanden.

Snelle deploy op dezelfde VPS als je agents

Het voorbeeldportaal is klein genoeg om naast je MintOffice-deploy-agent te draaien. Als je al een mintbot-agent-VPS hebt, vraag hem dan: "Deploy partner-portal-example als webhook-ontvanger onder https://portal.<my-domain>/, vul MINTOFFICE_API_KEY en MINTOFFICE_WEBHOOK_SECRET in vanuit GET /api/v1/settings, en stel de webhook-URL in op mijn partnerrij." De agent heeft de documentatie en het API-sleutelpad om dit van begin tot eind te doen.


Brand Partner API

Voor programmatische agentcreatie, statuspolling en webhook-events, zie de Brand Partner API-referentie. Voor de bredere architectuur (hoe je storefront, de API, de deploy-worker en de agent-VPS van elke klant samenwerken), zie MintOffice — Technisch.