Receipt
Account / Payable to
agentkit
Siebenberge GmbH
CH
Reference
npx agentkit init
Payable by
Your app
Currency
CHF
Amount
0.00
MIT, open source
Payment part
Additional information
Subscriptions, invoices, shop and members – as a library that runs inside your app. QR-bill, TWINT, VAT and four languages are built in, and the data stays in your database. From club projects to SaaS, in TypeScript and PHP.
npx agentkit initThe kits
Each kit works on its own, and they all share one adapter, one customer and one payment provider. Same kit, same behaviour, in every programming language we ship.
subkit
Subscriptions & invoices
npm i @agentkit/subkit / composer require agentkit/subkit
membershipkit
Members & renewals
npm i @agentkit/membershipkit / composer require agentkit/membershipkit
shopkit
Commerce
npm i @agentkit/shopkit / composer require agentkit/shopkit
later: eventkit (Events, registrations, tickets, waitlists), bookingkit (Appointments, resources, reservations), invoicekit (One-off invoices with QR-bill, no subscription), mailkit (Newsletters, lists, double opt-in)
Swiss by default
Generic billing libraries think in Stripe, cents and one language. Swiss customers pay by QR-bill and TWINT, expect VAT on every invoice and read it in German, French or Italian. agentkit starts there.
Receipt
Account / Payable to
Reference
Payable by
Currency
Amount
Payment part
Currency
Amount
Account / Payable to
Reference
Additional information
Payable by
How it works
Your app
agentkit · in your process · TS or PHP
Yours
Your programming language
Every kit is defined once – schema, rules, HTTP API, emails, translations – and implemented natively per programming language. A shared conformance suite runs the same billing scenarios against each implementation, so a renewal in PHP produces exactly the rows a renewal in TypeScript does. The React UI talks to both.
| Frameworks | Databases | |
|---|---|---|
| TypeScript reference | Next.js · Hono · SvelteKit · Nuxt · Express · Workers | Drizzle · Prisma · Kysely |
| PHP next | Laravel · Symfony · PHP 8.3+ | Eloquent · Doctrine · PDO |
| Python later | Django · FastAPI · Flask | Django ORM · SQLAlchemy |
Features
Your database
The data never leaves your app.
Kits write to tables in your database through adapters. Join them, back them up, migrate away – no sync, no silo.
Drizzle, Prisma, Eloquent, Doctrine, PDO
Any stack
TypeScript and PHP, one HTTP API.
Native libraries per language, mounted as a route in your framework. Every implementation speaks the same API, so the same UI works on top.
Next.js, Hono, Laravel, Symfony, OpenAPI
Host it anywhere
Your servers, your data centre.
Vercel, a Swiss cloud or the server in the basement: the kits go wherever your app goes. There is no agentkit backend to call home to.
Infomaniak, Exoscale, Swisscom, Vercel, on-prem
UI included
Self-service out of the box.
Drop-in components for the boring screens – React, or a web component for Blade and Twig. Headless hooks when you want your own.
<BillingPortal />, useBilling(), <ak-cart>
Emails & documents
Every lifecycle email, ready.
Receipts, failed payments, reminders, renewals, order confirmations – in four languages, HTML and text, any mailer. Printable invoices with QR-bill.
Resend, SMTP, Postmark, PDF
Agent-native
Your coding agent can wire it in.
llms.txt, skills, an MCP server per kit and errors that link to the fix. One prompt from zero to a working checkout.
llms.txt, MCP, Skills, AGENTS.md
Correct by design
Money paths are boring on purpose.
Compare-and-set updates, idempotent webhooks, transactions where it matters. One conformance suite for every language and database.
CAS, Idempotency, Transactions
Composable
Kits that know each other.
One customer, one payment provider, one invoice system across kits. Membership fees and shop orders end up on the same QR-bill.
Shared customer, Typed events, Plugins
Open source
MIT. Every line readable – from v0.1.
The code goes public on GitHub with version 0.1. No per-transaction fee to us, no lock-in. A hosted dashboard and webhook relay will be optional, not required.
MIT, TypeScript, PHP, Tested
One config
Kits describe their tables declaratively. The CLI turns that into a schema or migration for the ORM you already use – Drizzle, Prisma, Eloquent, Doctrine – and every adapter passes the same conformance suite.
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));Roadmap
Every kit comes from code that already runs in production and is pulled out once it has proven itself.
core + subkit
Q4 2026 – now
Adapter contract and test suite, Drizzle adapter, subkit 0.1 with QR-bill, VAT and zahls.ch/TWINT on npm. Docs in German and English.
subkit for PHP
Q1 2027
Conformance suite as language-neutral fixtures, PHP port with Eloquent, Doctrine and PDO adapters, Laravel and Symfony integration.
membershipkit
Q1 2027
Fee invoices through subkit. camt.054 bank reconciliation.
shopkit & more
2027
Catalogue, cart, TWINT checkout, Swiss Post shipping, vouchers. eBill, then eventkit and bookingkit.
Payment part
Ship the product. Let the kits handle subscriptions, orders and members – Swiss-ready, in your database, under your control.