subkit
PréversionAbonnements et factures
- Plans, périodes d’essai, prorata
- Carte, TWINT ou facture QR
- Rappels et nouvelles tentatives
- TVA sur chaque facture
- Droits d’accès et limites
- Portail de facturation
npm i @agentkit/subkitOpen source dès la v0.1 · développé en Suisse
Abonnements, factures, boutique et membres – sous forme de bibliothèque qui tourne dans votre application. Facture QR, TWINT, TVA et quatre langues sont inclus, les données restent dans votre base de données. Du projet associatif au SaaS, en TypeScript et en PHP.
npx agentkit initFacture
subkit
| Référence | Payable par | prestataire de paiement | Montant CHF |
|---|---|---|---|
| 2026-0142 | FC Seebach | TWINT | 228.00 |
| 2026-0141 | Chor Bern-Nord | Facture QR | 1'240.00 |
| 2026-0140 | Turnverein Wil | Mastercard | 96.50 |
| 2026-0139 | Club alpin Sion | Facture QR | 1'900.00 |
| 2026-0138 | Società ginnastica Lugano | Visa | 340.00 |
Chaque kit fonctionne seul, et tous partagent un même adaptateur, un même client et un même prestataire de paiement. Même kit, même comportement, dans chaque langage de programmation que nous livrons.
Abonnements et factures
npm i @agentkit/subkitMembres et renouvellements
npm i @agentkit/membershipkitCommerce
npm i @agentkit/shopkiteventkit
Événements, inscriptions, billets, listes d’attente
bookingkit
Rendez-vous, ressources, réservations
invoicekit
Factures ponctuelles avec facture QR, sans abonnement
mailkit
Newsletters, listes, double opt-in
Suisse par défaut
Les bibliothèques de facturation génériques pensent en Stripe, en centimes et en une seule langue. La clientèle suisse paie par facture QR et TWINT, attend la TVA sur chaque facture et la lit en allemand, en français ou en italien. agentkit part de là.
Récépissé
Compte / Payable à
Référence
Payable par
Monnaie
Montant
Section paiement
Monnaie
Montant
Compte / Payable à
Référence
Informations supplémentaires
Payable par
Section paiement conforme aux directives SIX, QR-IBAN avec référence QR ou IBAN avec référence créancier RF. CHF et EUR. Scanner et payer dans toutes les applications bancaires suisses.
Paiements via zahls.ch avec TWINT et cartes de crédit. Les données de carte ne touchent jamais votre serveur. D’autres prestataires se branchent via une seule interface.
Prix TVA incluse ou hors TVA, ligne TVA et numéro IDE sur chaque facture, des centimes entiers plutôt que des nombres à virgule flottante. Taux par ligne (8,1 / 2,6 / 3,8 %) et arrondi à 5 centimes prochainement.
Interface, e-mails et factures en allemand, français, italien et anglais, aux formats suisses : 15.10.2026, CHF 1’900.00, « guillemets », ss au lieu de ß.
Importez les fichiers camt.054 / camt.053 de votre banque, associez les références QR aux factures ouvertes et marquez-les comme payées. Fini le rapprochement manuel des relevés bancaires.
Aujourd’hui : délais de paiement, nouvelles tentatives automatiques et e-mails de rappel. Prochainement : 1er, 2e et 3e rappel avec frais, PDF de rappel avec une nouvelle facture QR, export pour les poursuites.
Les kits s’exécutent dans votre application et écrivent dans votre base de données. Aucun sous-traitant supplémentaire pour les données de vos clients – hébergez-les dans un centre de données suisse si vous le souhaitez.
Livrez les factures directement dans l’e-banking de vos clients via le réseau suisse eBill, avec la facture QR comme solution de repli.
Votre application
agentkit · dans votre processus · TS ou PHP
À vous
Chaque kit est défini une seule fois – schéma, règles, API HTTP, e-mails, traductions – puis implémenté nativement dans chaque langage de programmation. Une suite de conformité commune exécute les mêmes scénarios de facturation sur chaque implémentation : un renouvellement en PHP produit exactement les mêmes lignes qu’un renouvellement en TypeScript. L’interface React dialogue avec les deux.
TypeScript
Next.js · Hono · SvelteKit · Nuxt · Express · Workers
Drizzle · Prisma · Kysely
référencePHP
Laravel · Symfony · PHP 8.3+
Eloquent · Doctrine · PDO
prochainementPython
Django · FastAPI · Flask
Django ORM · SQLAlchemy
plus tardVotre base de données
Les kits écrivent dans des tables de votre base de données via des adaptateurs. Faites des jointures, sauvegardez-les, migrez ailleurs – pas de synchronisation, pas de silo.
Toute stack
Des bibliothèques natives par langage, montées comme route dans votre framework. Chaque implémentation parle la même API, la même interface fonctionne donc par-dessus.
Hébergement libre
Vercel, un cloud suisse ou le serveur au sous-sol : les kits vont partout où va votre application. Aucun backend agentkit à contacter.
Interface incluse
Des composants prêts à intégrer pour les écrans rébarbatifs – React, ou un web component pour Blade et Twig. Des hooks headless si vous préférez les vôtres.
E-mails et documents
Reçus, paiements échoués, rappels, renouvellements, confirmations de commande – en quatre langues, en HTML et en texte, avec n’importe quel service d’envoi. Factures imprimables avec facture QR.
Pensé pour les agents
llms.txt, skills, un serveur MCP par kit et des erreurs qui renvoient vers la solution. Un seul prompt pour passer de zéro à un paiement fonctionnel.
Correct par conception
Mises à jour compare-and-set, webhooks idempotents, transactions là où c’est important. Une seule suite de conformité pour chaque langage et chaque base de données.
Composable
Un client, un prestataire de paiement, un système de facturation pour tous les kits. Cotisations et commandes de la boutique finissent sur la même facture QR.
Open source
Le code sera publié sur GitHub avec la version 0.1. Aucune commission par transaction à nous verser, aucun verrouillage. Un tableau de bord hébergé et un relais de webhooks seront optionnels, pas obligatoires.
Les kits décrivent leurs tables de manière déclarative. La CLI en tire un schéma ou une migration pour l’ORM que vous utilisez déjà – Drizzle, Prisma, Eloquent, Doctrine – et chaque adaptateur passe la même suite de conformité.
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));Chaque kit est extrait de code déjà en production, une fois qu’il a fait ses preuves.
Q4 2026 · maintenant
Contrat d’adaptateur et suite de tests, adaptateur Drizzle, subkit 0.1 avec facture QR, TVA et zahls.ch/TWINT sur npm. Documentation en allemand et en anglais.
Q1 2027
Suite de conformité sous forme de fixtures indépendantes du langage, portage PHP avec adaptateurs Eloquent, Doctrine et PDO, intégration Laravel et Symfony.
Q1 2027
Factures de cotisation via subkit. Rapprochement bancaire camt.054.
2027
Catalogue, panier, paiement TWINT, expédition par La Poste, bons cadeaux. eBill, puis eventkit et bookingkit.
Livrez le produit. Laissez les kits gérer abonnements, commandes et membres – prêts pour la Suisse, dans votre base de données, sous votre contrôle.