Every layer.
One platform.
Acquiring, terminals, ledger, settlement, reporting — one integration, one contract, one source of truth. Replace four vendors with infrastructure that ships as a single API.
Platform overviewBanks, ISVs, and enterprise merchants use kepa to power card payments, keep their merchant relationships, and launch in weeks — not quarters.
Most platforms hand you a percentage of the experience. kepa orchestrates every layer of card-present from acceptance through settlement — visibility, control, and economics, all the way down.
Acquiring, terminals, ledger, settlement, reporting — one integration, one contract, one source of truth. Replace four vendors with infrastructure that ships as a single API.
Platform overviewNegotiate interchange-plus directly with the acquirer of your choice. Every basis point itemized, every fee auditable, multi-acquirer routing built in. The math stays yours.
See the APIOnboard, support, and own the relationship end to end. Your brand on the merchant app and portal; ours nowhere your merchants can see. We're infrastructure — not a competitor sitting in your channel.
Token portability, smart routing, instant failover — table stakes for online checkout, all but absent in card-present. Most CP stacks pick one acquirer, write against their gateway, and pray the auth host stays up. kepa makes card-present route the way online does.
Vault tokenization that lives at the platform, not the processor. The same token works whether the transaction lands at acquirer A, acquirer B, or both — and stays portable when you renegotiate. Card data is yours, not someone else's asset to leverage at renewal.
Route by BIN, brand, ticket size, MCC, time of day — or by whichever acquirer wins on cost and approval rate for that exact transaction. Rules live in your dashboard, not a contract clause. Change them without a redeploy.
When acquirer A's auth host degrades, the next transaction lands at B in under a second. Your merchants never see a decline that wasn't a decline; you never sit on a Slack thread waiting for someone else's incident to clear.
Settlement, reporting, reconciliation — across every acquirer you route to, in one schema you can export. No CSV gymnastics. No PSP-shaped lock-in if you outgrow the relationship.
Card presentation through acquirer settlement, kicked off by a single call. Three connectivity models from the same surface — Local Connected (~8ms), Cloud (~90ms), Local Embedded (~2ms).
# Initiate a card-present sale on any device in your fleet. curl https://api.kepapay.co/v1/transaction/sale \ -H "Authorization: Bearer $KEPA_SECRET_KEY" \ -H "Idempotency-Key: a3f1...c2e9" \ -H "Content-Type: application/json" \ -d '{ "amount": 4250, "currency": "USD", "device_id": "dev_01HX9...", "acquirer": "primary", "capture_method": "automatic", "metadata": { "order_id": "ord_8821" } }'import Kepa from "@kepa/node"; const kepa = new Kepa(process.env.KEPA_SECRET_KEY); // Initiate a card-present sale on any device in your fleet. const sale = await kepa.transactions.sale({ amount: 4250, currency: "USD", device_id: "dev_01HX9...", acquirer: "primary", capture_method: "automatic", metadata: { order_id: "ord_8821" }, }, { idempotencyKey: "a3f1...c2e9" });import kepa kepa.api_key = os.environ["KEPA_SECRET_KEY"] # Initiate a card-present sale on any device in your fleet. sale = kepa.Transaction.sale( amount=4250, currency="USD", device_id="dev_01HX9...", acquirer="primary", capture_method="automatic", metadata={"order_id": "ord_8821"}, idempotency_key="a3f1...c2e9", )val kepa = Kepa(System.getenv("KEPA_SECRET_KEY")) // Initiate a card-present sale on any device in your fleet. val sale = kepa.transactions.sale( amount = 4250, deviceId = "dev_01HX9...", acquirer = "primary", captureMethod = CaptureMethod.AUTOMATIC, metadata = mapOf("order_id" to "ord_8821"), idempotencyKey = "a3f1...c2e9", )