The billing engine your product deserves

Kwit is a payment-provider-agnostic billing platform. Connect your zahls.ch account, define your pricing, and let Kwit handle subscriptions, invoices, and dunning - while your payment processor just processes.

Built for the Swiss payment stack:

Billing built for Swiss teams

Kwit gives you the full billing lifecycle on top of the Swiss payment rails you already trust - without locking you into a single processor.

0 Per-transaction fees charged by Kwit on top of your processor.

Swiss QR-bill invoicing, TWINT and card payments via zahls.ch.

Minutes From connecting payments to your first live checkout.

Connect your payment stack

Kwit sits between your app and zahls.ch, and migrates the customers and pricing you already run on Stripe or Polar. Set up in minutes, not days.

Learn more

One billing engine, many payment rails

Everything you need to migrate, bill, and scale - while your payment processor just processes.

Get started

Point Kwit at your existing Stripe or Polar account - or your live pricing page - and we scrape your plans to automatically create matching products and prices. Bring your customers and subscriptions with you, no rebuild required.

How it works

Three steps to go from zero to receiving payments.

01

Connect zahls.ch

Add your zahls.ch API credentials. Kwit provisions webhooks and configures the payment gateway automatically.

02

Define your pricing

Create products with flat or per-unit pricing. Set billing intervals - monthly, yearly, or one-time.

03

Receive payments

Kwit handles checkout sessions, subscription renewals, invoice generation, and dunning. You focus on your product.

Why Kwit over Polar or Stripe Billing

Kwit is the billing layer that sits between your app and your payment processor. It handles the lifecycle - the processor handles the charge.

Not another Stripe wrapper

Stripe, Polar, and others couple billing logic to their payment rails. Kwit separates the two - you own the billing engine, the processor just moves money.

Swiss payment stack

Built for zahls.ch. Supports TWINT, card tokenization, and bank transfers out of the box. Swiss QR Bill invoicing included.

You keep control

Your customers, your subscriptions, your invoices. Switch payment providers without rewriting your billing logic.

No per-transaction fees from Kwit
Subscription lifecycle management
Automated invoice generation
Webhook delivery with HMAC signatures
Dunning and payment recovery
REST API with TypeScript SDK

Inside the dashboard

Manage subscriptions, track revenue, and monitor your billing - all in one place.

Subscriptions

Manage your active subscriptions.

Active

84+5.2%

Trialing

12

Past Due

3

Canceled

7

Est. MRR

CHF 6,636+12%
All (103)ActiveTrialingPast DueCanceled
CustomerStatus

Jane Doe

jane@acme.com

Active

Max Müller

max@startup.ch

Active

Lena Huber

lena@design.io

Trialing

Everything you need to bill

A complete billing platform. You build the product - Kwit handles the money.

Import & Migrate

Scrape pricing from Stripe, Polar or your site and auto-create matching products.

Products & Pricing

Flat-rate and per-unit pricing with flexible billing intervals.

Customer Management

Track customers, collection methods, and external identifiers.

Subscriptions

Full lifecycle - create, renew, cancel, with trial and proration support.

Invoices

Automated generation with line items, sequential numbering, and PDF delivery.

Payments

Card tokenization, TWINT, and bank transfers via zahls.ch.

Checkout Sessions

Hosted checkout with redirect URLs and session tracking.

API Keys

Programmatic access with scoped API keys for your integrations.

Webhooks

Real-time event delivery with HMAC signatures and retry logic.

Dashboard & Analytics

Revenue charts, subscription metrics, and recent activity at a glance.

Dunning & Recovery

Automated payment retries and customer recovery flows.

Developer-first API

Add billing to your app in minutes. The SDK runs on your server - create customers, start checkouts, and handle lifecycle events via webhooks.

src/billing.ts
import Kwit from "@kwit/sdk";

const kwit = new Kwit(process.env.KWIT_API_KEY!);

const customer = await kwit.customers.create({
  email: "jane@acme.com",
  name: "Jane Doe",
  currency: "CHF",
});

const { checkoutUrl } = await kwit.checkout.create({
  customerId: customer.id,
  productId: "product_pro_monthly",
  successUrl: "https://app.acme.com/welcome",
  cancelUrl: "https://app.acme.com/pricing",
});

// redirect user to checkoutUrl

Ready to own your billing?

Connect your zahls.ch account, set up your products, and start accepting payments in minutes.