Klovora

— Private beta · By invitation

All your payments, one total that adds up

Cards, buy-now-pay-later, scheduled payments — each provider with its own dashboard, its own fees, its own numbers. Reconciled by hand, every month.

Klovora puts everything in one place. Your providers stay yours, your rates stay yours — and your money never passes through us.

cardbnplscheduled— every way your customers pay
Provider A
ch_3PqR8xK2m…€ 47,30
ch_9RtY1eG3i…− € 63,40
net total € 409,91 · 6 rows
Provider B
TX-8802152.00 EUR
TX-881590.12 EUR
totale 583,87 EUR · 5 rows
Provider C
17830647004635
17831059203934
total 19117 · fee: separate file
Klovora · unified ledger
TimeMethodAmountNet
07:45bnpl€ 46,35€ 45,00
08:02scheduled€ 156,50€ 152,00
09:15card€ 47,30€ 45,88
09:58bnpl€ 63,35€ 61,50
10:41card€ 128,90€ 125,03
11:20scheduled€ 70,50€ 68,40
12:03card€ 12,00€ 11,34
12:47bnpl€ 23,59€ 22,90
13:22refund− € 63,40− € 63,40
net total · EUR€ 0,00

Three exports in — one ledger out. To the cent.

01 · The hidden cost

Every provider is another world.

Every way to pay wins you customers — and hands your back office another dashboard, another report, another format. Flip the switch and watch what changes. And what doesn't.

Provider A
  • Its own dashboard
  • Fees taken per transaction
  • Its own payout calendar
Provider B
  • Another dashboard
  • Fees in a monthly report
  • Another payout calendar
Provider C
  • A third dashboard
  • Fees in a separate file
  • Exports in yet another format
Your back office

Three worlds. One person making them agree — you.

  • Three dashboards to check, every morning.
  • Three exports in three formats, merged by hand.
  • Three fee reports — three versions of the truth.
  • Adding a payment method? A new project.
02 · A first taste

Your month, in one place.

A small preview of the Klovora dashboard — simulated in your browser, with the same numbers you've seen on this page. The real one comes with your invite.

Klovora · DashboardSimulation
Volume
€ 1.280,15
15 successful payments
Fees
€ 37,38
Itemised per payment
Refunded
€ 63,40
Customer reversals
Net to you
€ 1.179,37
To the cent
Volume by hour · 03 Jul
What disappears from your month
Providers you run:
Dashboards to log into3 1
Exports to download3 1
File formats to convert3 1
Fee reports to cross-check3 1
Totals that must agree3 1

How many hours that is depends on your month — we won't pretend to know. We just remove the steps. Get early access →

03 · How it works

You keep everything. We line it up.

1

Keep what you have

Your accounts, your contracts, the rates you negotiated — nothing moves. Klovora sits on top.

2

Every sale, one record

Cards, BNPL, scheduled payments: however the customer pays, the sale lands in the same place, in the same format.

3

One total that adds up

Sales, fees and refunds in one ledger — the number at the bottom matches reality, to the cent.

Klovora never holds your money.

Funds settle in your own accounts, with your own providers — exactly as they do today. We orchestrate the payments; we never touch them.

04 · Why Klovora

Never locked to one provider.

If a provider raises fees or changes terms, you're free to move. Your checkout doesn't change — we handle the difference.

Every payment method

Cards, BNPL, scheduled payments. Adding a new one is a switch to flip, not a project to plan.

Your contracts. Your rates.

Keep the accounts you already have. We orchestrate on top — we never touch your money.

05 · For your developers

One integration.

Forward this to whoever runs your checkout. You don't need to read the code — just compare the two columns. Left: what gets written and maintained for every single provider. Right: the whole thing, with Klovora.

What you write today

In plain words: one of these, per provider — each with its own rules, written and kept working by your developer.

import { ProviderA } from "@acquirer/a-sdk";
const providerA = new ProviderA({
api_key: process.env.PROVIDER_A_KEY,
api_version: "2026-01-01",
max_network_retries: 2,
});
const { CardError } = ProviderA.errors;
async function createPayment() {
try {
const charge =
await providerA.charges.create({
amount: 4730, // minor units (int)
currency: "eur",
capture_method: "automatic",
metadata: { order_id: "5583" },
});
return charge.id;
} catch (err) {
if (err instanceof CardError) {
return decline(err.decline_code);
}
throw err;
}
}
export function webhook(
payload: Buffer, sig: string) {
const event = providerA.webhooks
.constructEvent(payload, sig, secret);
if (event.type === "charge.succeeded") {
settle(event.data.object);
}
}
× 3 providers = 3 integrations, 3 webhook handlers, 3 error shapes.
— 17 fewer lines. Zero lock-in.
What you write with Klovora

In plain words: this is everything. And it stays exactly the same when you change provider.

import { Klovora, WebhooksUtil } from
"@klovora/node";
const klovora =
new Klovora(process.env.KLOVORA_API_KEY);
const payment = await klovora
.checkoutSessions.create({
amountCents: 4730,
currency: "EUR",
method: "card",
returnUrl: "https://shop.example/return",
});
export function webhook(
payload: string, sig: string) {
const event = WebhooksUtil
.constructEvent(payload, sig, secret);
if (event.type === "payment.succeeded")
settle(event.data);
}
→ returns
{
"id": "pay_klv_8803",
"amountCents": 4730,
"currency": "EUR",
"method": "card",
"status": "succeeded",
"createdAt": "2026-07-03T09:15:22Z"
}

One integration. Any provider.

06 · Developers · Try it

Request. Response. Webhook.

A payment, end to end — simulated in your browser. No network. You don't need to read code: pick an amount, press Run, and watch a sale happen. The shapes and the validation rules are the SDK's real ones.

Compose
Method
4730 cents

Runs locally. Nothing is sent anywhere.

The flowSimulation
01 · Request — what your developer's code sends
const payment = await klovora
.checkoutSessions.create({
amountCents: 4730,
currency: "EUR",
method: "card",
returnUrl: "https://shop.example/return",
});

→ Press Run to see the response, the status transitions and the webhook your server would receive.

— Join the waitlist

Next month can add itself up

We're opening access to a small group of European merchants. Leave your details — we'll reach out when it's your turn.

Your data is processed under GDPR. See the Privacy Policy.