agentkit

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.

npx agentkit init

Facture

subkit

RéférencePayable parprestataire de paiementMontant CHF
2026-0142FC SeebachTWINT228.00
2026-0141Chor Bern-NordFacture QR1'240.00
2026-0140Turnverein WilMastercard96.50
2026-0139Club alpin SionFacture QR1'900.00
2026-0138Società ginnastica LuganoVisa340.00

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éversion

Abonnements 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/subkit

membershipkit

En cours

Membres et renouvellements

  • Types d’adhésion et saisons
  • Ménages et familles
  • Campagnes de renouvellement
  • Formulaires d’inscription et champs personnalisés
  • Factures de cotisation via subkit
  • Cartes de membre et export
npm i @agentkit/membershipkit

shopkit

prévu

Commerce

  • Produits et variantes
  • Panier et paiement avec TWINT
  • Commandes et remboursements
  • Stock et expédition par La Poste
  • Codes promo
  • Bons cadeaux
npm i @agentkit/shopkit

eventkit

É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

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 ou en italien. agentkit part de là.

Rechnung deFacture frFattura itInvoice en

Section paiement

Monnaie

CHF

Montant

228.00

Compte / Payable à

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

Référence

21 00000 00003 13947 14300 09017

Informations supplémentaires

Facture 2026-0142 · Club Pro, abonnement annuel
TVA 8,1 % incl. CHF 17.08 · CHE-123.456.789 TVA

Payable par

FC Seebach
Dorfstrasse 12
8052 Zürich
Générée par subkit : QR-IBAN avec référence QR, ligne TVA, payeur issu de votre table clients. Données d’exemple.

Facture QR suisse

disponible

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 via zahls.ch

disponible

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.

La TVA, correctement

disponible

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

disponible

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 ß.

Rapprochement bancaire

prochainement

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.

Rappels à la suisse

prochainement

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.

Adapté à la LPD révisée (revDSG)

par conception

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.

eBill

prévu

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.

Une bibliothèque dans votre application. Pas un service devant elle.

Votre application

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

agentkit · dans votre processus · TS ou PHP

  • subkit · membershipkit · shopkit
  • core · schema · events · i18n
  • adaptateur de base de données · prestataire de paiement

À vous

  • Votre Postgres · MySQL · SQLite
  • zahls.ch · TWINT
  • Votre banque · camt.054
  • Votre service d’e-mail

Une spécification. Native dans chaque stack.

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érence

PHP

Laravel · Symfony · PHP 8.3+

Eloquent · Doctrine · PDO

prochainement

Python

Django · FastAPI · Flask

Django ORM · SQLAlchemy

plus tard

Tout ce qui touche à l’argent, fait une fois pour toutes.

Votre base de données

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.

DrizzlePrismaEloquentDoctrinePDO

Toute stack

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.

Next.jsHonoLaravelSymfonyOpenAPI

Hébergement libre

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.

InfomaniakExoscaleSwisscomVercelon-prem

Interface incluse

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.

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

E-mails et documents

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.

ResendSMTPPostmarkPDF

Pensé pour les agents

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.

llms.txtMCPSkillsAGENTS.md

Correct par conception

Les flux d’argent sont ennuyeux, exprès.

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.

CASIdempotencyTransactions

Composable

Des kits qui se connaissent.

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.

Shared customerTyped eventsPlugins

Open source

MIT. Chaque ligne lisible – dès la v0.1.

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.

MITTypeScriptPHPTested

Déclaré dans le code. Relu dans les pull requests.

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));

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.

  1. Q4 2026 · maintenant

    core + subkit

    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.

  2. Q1 2027

    subkit pour PHP

    Suite de conformité sous forme de fixtures indépendantes du langage, portage PHP avec adaptateurs Eloquent, Doctrine et PDO, intégration Laravel et Symfony.

  3. Q1 2027

    membershipkit

    Factures de cotisation via subkit. Rapprochement bancaire camt.054.

  4. 2027

    shopkit et plus

    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.