Open source dès la v0.1 · développé en Suisse
Le framework de facturation pour les logiciels suisses.
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.
4 langues · 0 donnée client sur nos serveurs · MIT open source dès la v0.1
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 %
});Choisissez ce dont votre produit a besoin.
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.
subkit
PréversionAbonnements et factures
- Plans, périodes d’essai, prorata
- Carte, TWINT ou facture QR
- Rappels et nouvelles tentatives
- TVA sur chaque facture
membershipkit
En coursMembres et renouvellements
- Types d’adhésion et saisons
- Ménages et familles
- Campagnes de renouvellement
- Formulaires d’inscription et champs personnalisés
shopkit
prévuCommerce
- Produits et variantes
- Panier et paiement avec TWINT
- Commandes et remboursements
- Stock et expédition par La Poste
Pas localisé après coup. Suisse dès la première ligne.
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, en italien ou en romanche. agentkit part de là.
Récépissé
Compte / Payable à
Acme AG
Bahnhofstrasse 1
8001 Zürich
Référence
Payable par
Dorfstrasse 12
8052 Zürich
Monnaie
Montant
Section paiement
Monnaie
Montant
Compte / Payable à
Acme AG
Bahnhofstrasse 1
8001 Zürich
Référence
Informations supplémentaires
TVA 8,1 % incl. CHF 17.08 · CHE-123.456.789 TVA
Payable par
Dorfstrasse 12
8052 Zürich
Facture QR suisse
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.
TWINT et PSP suisses
zahls.ch (Payrexx) avec TWINT, PostFinance Card et cartes de crédit. Datatrans et PostFinance Checkout prochainement. Les données de carte ne touchent jamais votre serveur.
La TVA, correctement
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.
de · fr · it · en
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 ß. Romanche sur demande.
prochainement: Rapprochement bancaire, Rappels à la suisse, Adapté à la LPD révisée (revDSG), eBill
Tout ce qui touche à l’argent, fait une fois pour toutes.
Les données ne quittent jamais votre application.
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.
TypeScript et PHP, une seule API HTTP.
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.
Vos serveurs, votre centre de données.
Vercel, un cloud suisse ou le serveur au sous-sol : les kits vont partout où va votre application. Aucun backend agentkit à contacter.
Le libre-service, prêt à l’emploi.
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.
Chaque e-mail du cycle de vie, prêt.
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.
Votre agent de code peut l’intégrer.
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.
Open source dès la version 0.1.
Kits, adaptateurs, prestataires de paiement et CLI seront publiés sur GitHub sous licence MIT avec la version 0.1. Vous pourrez lire le code, l’adapter et l’exploiter vous-même – sans frais par transaction et sans dépendre de nous.
Licence MIT
Utilisable commercialement, y compris dans des logiciels propriétaires.
Aucun verrouillage
Le code tourne dans votre application, les données restent dans votre base. Un fork suffit pour continuer de manière indépendante.
Développé ouvertement
Feuille de route, issues et pull requests seront publiques – les contributions sont les bienvenues.
Extrait de la production, un kit après l’autre.
Chaque kit est extrait de code déjà en production, une fois qu’il a fait ses preuves.
core + subkit
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.
subkit pour PHP
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.
membershipkit
Q1 2027
Factures de cotisation via subkit. Rapprochement bancaire camt.054, Datatrans et PostFinance Checkout.
shopkit et plus
2027
Catalogue, panier, paiement TWINT, expédition par La Poste, bons cadeaux. eBill, puis eventkit et bookingkit.
Votre propre facturation – en quelques minutes, pas en quelques mois.
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.
npx agentkit init