Made in Switzerland · subkit ist in der Preview – QR-Rechnung, TWINT und MWST, produktiv im Einsatz bei Membear

Gebaut in der Schweiz · für Schweizer Produkte

SchweizerGeschäftslogik,in deinem Code.

Abos, Shop und Mitgliedschaften mit QR-Rechnung, TWINT, MWST und vier Sprachen eingebaut – als Libraries für TypeScript und PHP. Die Logik kommt von uns und läuft in deiner App. Die Daten bleiben in deiner Datenbank, über Adapter für das ORM, das du schon nutzt.

npx agentkit init
import { subkit } from '@agentkit/subkit';
import { drizzleAdapter } from '@agentkit/drizzle';
import { zahls } from '@agentkit/zahls';
import { db, env } from './db';

export const billing = subkit({
  // your Postgres, your tables
  database: drizzleAdapter(db),
  provider: zahls({ instance: 'acme', apiKey: env.ZAHLS_KEY }),
  plans: [
    { id: 'free', name: 'Free', prices: {} },
    {
      id: 'pro',
      name: 'Pro',
      features: ['export'],
      prices: { month: { amount: 1900, currency: 'CHF' } },
    },
  ],
  defaultPlanId: 'free',
  tax: { rateBps: 810 }, // Swiss VAT 8.1 %
});

Die Kits

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.

subkitPreview

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/subkitcomposer require agentkit/subkit
membershipkitIn Arbeit

Mitglieder & Erneuerungen

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

E-Commerce

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

Anlässe, Anmeldungen, Tickets, Wartelisten

bookingkitspäter

Termine, Ressourcen, Reservationen

invoicekitspäter

Einzelrechnungen mit QR-Rechnung, ohne Abo

mailkitspäter

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 – herausgelöst aus Membear, wo es jeden Tag Rechnungen für Schweizer Vereine stellt.

Rechnungde
Facturefr
Fatturait
Quintrm
Invoiceen

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.

So funktioniert es

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 · money
Datenbank-Adapter
Zahlungsanbieter
Deins
Dein Postgres · MySQL · SQLite
zahls.ch · TWINT · PostFinance
Deine Bank · camt.054
Dein Mailer

Deine Programmiersprache

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.

TypeScriptReferenz
Frameworks
Next.js · Hono · SvelteKit · Nuxt · Express · Workers
Datenbanken
Drizzle · Prisma · Kysely
npm i @agentkit/subkit
PHPals Nächstes
Frameworks
Laravel · Symfony · PHP 8.3+
Datenbanken
Eloquent · Doctrine · PDO
composer require agentkit/subkit
Pythonspäter
Frameworks
Django · FastAPI · Flask
Datenbanken
Django ORM · SQLAlchemy
pip install agentkit-subkit

Funktionen

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.

Keine Transaktionsgebühr an uns, kein Lock-in. Ein gehostetes Dashboard und ein Webhook-Relay werden optional sein, nicht Pflicht.

MITTypeScriptPHPTested

Eine Konfiguration

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.

  • Deklaratives Schema
  • Eigene Datenbank mitbringen
  • Typisierte Events
  • Plugins pro Kit
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));
ProrationDunningTrialsCouponsMetered usageQR-billTWINTGift vouchersDiscount codesSeasonsHouseholdsRenewal campaignsCustom fieldsStockShippingRefundsVAT 8.1 / 2.6 / 3.8 %EntitlementsWebhooksAudit logMCP toolsi18n de/fr/it/enLaravelSymfonycamt.054eBillPostFinanceDatatrans5-Rappen roundingCHE number checkQR-IBANSwiss PostProrationDunningTrialsCouponsMetered usageQR-billTWINTGift vouchersDiscount codesSeasonsHouseholdsRenewal campaignsCustom fieldsStockShippingRefundsVAT 8.1 / 2.6 / 3.8 %EntitlementsWebhooksAudit logMCP toolsi18n de/fr/it/enLaravelSymfonycamt.054eBillPostFinanceDatatrans5-Rappen roundingCHE number checkQR-IBANSwiss Post
Swiss PostQR-IBANCHE number check5-Rappen roundingDatatransPostFinanceeBillcamt.054SymfonyLaraveli18n de/fr/it/enMCP toolsAudit logWebhooksEntitlementsVAT 8.1 / 2.6 / 3.8 %RefundsShippingStockCustom fieldsRenewal campaignsHouseholdsSeasonsDiscount codesGift vouchersTWINTQR-billMetered usageCouponsTrialsDunningProrationSwiss PostQR-IBANCHE number check5-Rappen roundingDatatransPostFinanceeBillcamt.054SymfonyLaraveli18n de/fr/it/enMCP toolsAudit logWebhooksEntitlementsVAT 8.1 / 2.6 / 3.8 %RefundsShippingStockCustom fieldsRenewal campaignsHouseholdsSeasonsDiscount codesGift vouchersTWINTQR-billMetered usageCouponsTrialsDunningProration

Roadmap

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

Jedes Kit entsteht in einem echten Produkt – Membear, der Schweizer Vereinssoftware – und wird herausgelöst, sobald es sich dort bewährt hat.

  1. 01 · jetztQ4 2026

    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. 02Q1 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. 03Q1 2027

    membershipkit

    Aus Membear herausgelöst, Beitragsrechnungen über subkit. Bankabgleich mit camt.054, Datatrans und PostFinance Checkout.

  4. 042027

    shopkit & mehr

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

Nie mehr QR-Rechnungen selbst bauen.

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

npx agentkit init
Auf GitHub folgen