agentkit

Open Source ab v0.1 · entwickelt in der Schweiz

Das Billing-Framework für Schweizer Software

Abos, Rechnungen, Shop und Mitglieder – als Library, die in deiner App läuft. QR-Rechnung, TWINT, MWST und vier Sprachen sind eingebaut, die Daten bleiben in deiner Datenbank. Vom Vereinsprojekt bis zum SaaS, in TypeScript und PHP.

npx agentkit init

Rechnung

subkit

ReferenzZahlbar durchZahlungsanbieterBetrag CHF
2026-0142FC SeebachTWINT228.00
2026-0141Chor Bern-NordQR-Rechnung1'240.00
2026-0140Turnverein WilPostFinance96.50
2026-0139Club alpin SionQR-Rechnung1'900.00
2026-0138Società ginnastica LuganoVisa340.00

Nimm, was dein Produkt braucht.

Jedes Kit funktioniert für sich, und alle teilen sich denselben Adapter, dieselben Kundendaten und denselben Zahlungsanbieter. Gleiches Kit, gleiches Verhalten – in jeder Programmiersprache, die wir anbieten.

subkit

Preview

Abos & Rechnungen

  • Pläne, Testphasen, Pro-rata-Abrechnung
  • Karte, TWINT oder QR-Rechnung
  • Zahlungserinnerungen & Wiederholungen
  • MWST auf jeder Rechnung
  • Berechtigungen & Limiten
  • UI für das Abrechnungsportal
npm i @agentkit/subkit

membershipkit

In Arbeit

Mitglieder & Erneuerungen

  • Mitgliedschaftsarten & Saisons
  • Haushalte & Familien
  • Erneuerungskampagnen
  • Anmeldeformulare & eigene Felder
  • Beitragsrechnungen über subkit
  • Mitgliederausweise & Export
npm i @agentkit/membershipkit

shopkit

geplant

E-Commerce

  • Produkte & Varianten
  • Warenkorb & Checkout mit TWINT
  • Bestellungen & Rückerstattungen
  • Lager & Versand mit der Post
  • Rabattcodes
  • Geschenkgutscheine
npm i @agentkit/shopkit

eventkit

Anlässe, Anmeldungen, Tickets, Wartelisten

bookingkit

Termine, Ressourcen, Reservationen

invoicekit

Einzelrechnungen mit QR-Rechnung, ohne Abo

mailkit

Newsletter, Listen, Double-Opt-in

Standardmässig Schweiz

Nicht nachträglich lokalisiert. Schweizerisch ab der ersten Zeile

Generische Billing-Libraries denken in Stripe, Cents und einer Sprache. Schweizer Kundinnen und Kunden zahlen per QR-Rechnung und TWINT, erwarten die MWST auf jeder Rechnung und lesen sie auf Deutsch, Französisch, Italienisch oder Rätoromanisch. Genau dort setzt agentkit an.

Rechnung deFacture frFattura itQuint rmInvoice en

Zahlteil

Währung

CHF

Betrag

228.00

Konto / Zahlbar an

CH44 3199 9123 0008 8901 2
Acme AG
Bahnhofstrasse 1
8001 Zürich

Referenz

21 00000 00003 13947 14300 09017

Zusätzliche Informationen

Rechnung 2026-0142 · Verein Pro, Jahresabo
inkl. 8.1 % MWST CHF 17.08 · CHE-123.456.789 MWST

Zahlbar durch

FC Seebach
Dorfstrasse 12
8052 Zürich
Erzeugt von subkit: QR-IBAN mit QR-Referenz, MWST-Zeile, zahlungspflichtige Partei aus deiner Kundentabelle. Beispieldaten.

Schweizer QR-Rechnung

live

Zahlteil nach den Richtlinien von SIX, QR-IBAN mit QR-Referenz oder IBAN mit Creditor Reference (RF). CHF und EUR. Scannen und zahlen in jeder Schweizer Banking-App.

TWINT & Schweizer Zahlungsanbieter

live

zahls.ch (Payrexx) mit TWINT, PostFinance Card und Kreditkarten. Datatrans und PostFinance Checkout folgen als Nächstes. Kartendaten berühren deinen Server nie.

MWST, aber richtig

live

Preise inkl. oder exkl. MWST, MWST-Zeile und CHE-Nummer auf jeder Rechnung, ganze Rappen statt Gleitkommazahlen. Sätze pro Position (8.1 / 2.6 / 3.8 %) und Rundung auf 5 Rappen folgen als Nächstes.

de · fr · it · en

live

UI, E-Mails und Rechnungen auf Deutsch, Französisch, Italienisch und Englisch, mit Schweizer Formaten: 15.10.2026, CHF 1’900.00, «Guillemets», ss statt ß. Rätoromanisch auf Anfrage.

Bankabgleich

als Nächstes

Importiere camt.054 und camt.053 von deiner Bank, ordne QR-Referenzen offenen Rechnungen zu und markiere sie als bezahlt. Kein manuelles Abgleichen von Kontoauszügen mehr.

Mahnwesen auf Schweizer Art

als Nächstes

Heute: Zahlungsfristen, automatische Wiederholungen und Erinnerungs-E-Mails. Als Nächstes: 1., 2. und 3. Mahnung mit Gebühren, Mahn-PDFs mit neuer QR-Rechnung, Export fürs Inkasso.

revDSG-freundlich

by Design

Die Kits laufen in deiner App und schreiben in deine Datenbank. Kein zusätzlicher Auftragsbearbeiter für die Daten deiner Kundinnen und Kunden – hoste sie auf Wunsch in einem Schweizer Rechenzentrum.

eBill

geplant

Stelle Rechnungen über das Schweizer eBill-Netzwerk direkt ins E-Banking deiner Kundinnen und Kunden zu – mit der QR-Rechnung als Fallback.

Eine Library in deiner App. Kein Service davor.

Deine App

  • Next.js · Laravel · Symfony · Hono
  • <BillingPortal /> · <ak-cart>
  • deine Auth → authorize()

agentkit · in deinem Prozess · TS oder PHP

  • subkit · membershipkit · shopkit
  • core · schema · events · i18n
  • Datenbank-Adapter · Zahlungsanbieter

Deins

  • Dein Postgres · MySQL · SQLite
  • zahls.ch · TWINT · PostFinance
  • Deine Bank · camt.054
  • Dein Mailer

Eine Spezifikation. Nativ in jedem Stack.

Jedes Kit ist einmal definiert – Schema, Regeln, HTTP-API, E-Mails, Übersetzungen – und pro Programmiersprache nativ implementiert. Eine gemeinsame Konformitäts-Testsuite spielt dieselben Abrechnungsszenarien gegen jede Implementierung durch. So erzeugt eine Erneuerung in PHP genau dieselben Zeilen wie eine Erneuerung in TypeScript. Die React-UI spricht mit beiden.

TypeScript

Next.js · Hono · SvelteKit · Nuxt · Express · Workers

Drizzle · Prisma · Kysely

Referenz

PHP

Laravel · Symfony · PHP 8.3+

Eloquent · Doctrine · PDO

als Nächstes

Python

Django · FastAPI · Flask

Django ORM · SQLAlchemy

später

Alles rund ums Geld, einmal sauber gelöst.

Deine Datenbank

Die Daten verlassen deine App nie.

Kits schreiben über Adapter in Tabellen deiner Datenbank. Verknüpfe sie per JOIN, sichere sie, zieh weiter – ohne Sync, ohne Silo.

DrizzlePrismaEloquentDoctrinePDO

Jeder Stack

TypeScript und PHP, eine HTTP-API.

Native Libraries pro Sprache, als Route in deinem Framework eingebunden. Jede Implementierung spricht dieselbe API, deshalb funktioniert darauf dieselbe UI.

Next.jsHonoLaravelSymfonyOpenAPI

Überall hostbar

Deine Server, dein Rechenzentrum.

Vercel, eine Schweizer Cloud oder der Server im Keller: Die Kits laufen dort, wo deine App läuft. Es gibt kein agentkit-Backend, das nach Hause telefoniert.

InfomaniakExoscaleSwisscomVercelon-prem

UI inklusive

Self-Service ab Werk.

Fertige Komponenten für die langweiligen Screens – React oder eine Web Component für Blade und Twig. Headless Hooks, wenn du deine eigene UI willst.

<BillingPortal />useBilling()<ak-cart>

E-Mails & Dokumente

Alle Lifecycle-E-Mails, fixfertig.

Quittungen, fehlgeschlagene Zahlungen, Erinnerungen, Erneuerungen, Bestellbestätigungen – in vier Sprachen, als HTML und Text, mit jedem Mailer. Druckbare Rechnungen mit QR-Rechnung.

ResendSMTPPostmarkPDF

Agent-native

Dein Coding-Agent baut es ein.

llms.txt, Skills, ein MCP-Server pro Kit und Fehlermeldungen, die auf die Lösung verlinken. Ein Prompt von null bis zum funktionierenden Checkout.

llms.txtMCPSkillsAGENTS.md

Korrekt by Design

Geldflüsse sind absichtlich langweilig.

Compare-and-Set-Updates, idempotente Webhooks, Transaktionen, wo es darauf ankommt. Eine Konformitäts-Testsuite für jede Sprache und jede Datenbank.

CASIdempotencyTransactions

Kombinierbar

Kits, die sich kennen.

Dieselben Kundendaten, ein Zahlungsanbieter, ein Rechnungssystem für alle Kits. Mitgliederbeiträge und Shop-Bestellungen landen auf derselben QR-Rechnung.

Shared customerTyped eventsPlugins

Open Source

MIT. Jede Zeile lesbar – ab v0.1.

Der Code erscheint mit Version 0.1 auf GitHub. Keine Transaktionsgebühr an uns, kein Lock-in. Ein gehostetes Dashboard und ein Webhook-Relay werden optional sein, nicht Pflicht.

MITTypeScriptPHPTested

Im Code deklariert. Im Pull Request geprüft.

Kits beschreiben ihre Tabellen deklarativ. Das CLI macht daraus ein Schema oder eine Migration für das ORM, das du schon nutzt – Drizzle, Prisma, Eloquent, Doctrine –, und jeder Adapter besteht dieselbe Konformitäts-Testsuite.

import { agentkit } from '@agentkit/core';
import { drizzleAdapter } from '@agentkit/drizzle';
import { subkit } from '@agentkit/subkit';
import { shopkit } from '@agentkit/shopkit';
import { membershipkit } from '@agentkit/membershipkit';
import { zahls } from '@agentkit/zahls';

export const kit = agentkit({
  database: drizzleAdapter(db, { tablePrefix: 'ak_' }),
  payments: zahls({ instance: 'acme', apiKey: env.ZAHLS_KEY }),
  kits: [
    subkit({ plans, defaultPlanId: 'free' }),
    shopkit({ currency: 'CHF', vat: { rateBps: 810 } }),
    membershipkit({ seasons: 'yearly', invoiceWith: 'subkit' }),
  ],
});

kit.on('shop.order.paid', async ({ order }) => fulfil(order));

Aus der Produktion herausgelöst, ein Kit nach dem anderen.

Jedes Kit entsteht aus Code, der bereits produktiv läuft, und wird erst herausgelöst, wenn er sich bewährt hat.

  1. Q4 2026 · jetzt

    core + subkit

    Adapter-Schnittstelle und Testsuite, Drizzle-Adapter, subkit 0.1 mit QR-Rechnung, MWST und zahls.ch mit TWINT auf npm. Doku auf Deutsch und Englisch.

  2. Q1 2027

    subkit für PHP

    Konformitäts-Testsuite als sprachneutrale Fixtures, PHP-Port mit Adaptern für Eloquent, Doctrine und PDO, Integration für Laravel und Symfony.

  3. Q1 2027

    membershipkit

    Beitragsrechnungen über subkit. Bankabgleich mit camt.054, Datatrans und PostFinance Checkout.

  4. 2027

    shopkit & mehr

    Katalog, Warenkorb, TWINT-Checkout, Versand mit der Post, Gutscheine. eBill, danach eventkit und bookingkit.

Bau deine eigene Abrechnung – in Minuten statt Monaten

Bau dein Produkt. Abos, Bestellungen und Mitglieder übernehmen die Kits – bereit für die Schweiz, in deiner Datenbank, unter deiner Kontrolle.