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.
Four commitments we made when we started kepa. They're why the platform looks the way it does — and why it stays out of your way.
Route to any acquirer reachable via Visa Platform Connect. You own the merchant pricing, the settlement relationship, and the failover — not us.
Visa, Mastercard, Amex, Discover, JCB, UnionPay — turn them on independently. Add a network when a merchant asks; don't carry cost for the ones you don't.
Deploy kepa under your brand. The portal, the app, the support relationship — yours. We're infrastructure; we don't show up in your merchant's UI.
Modern, schema-pinned, type-safe SDKs. Idempotency keys, HMAC webhooks, sandbox parity, real semver. The surface is what your team would design themselves.
Card presentation through acquirer settlement, kicked off by a single call. Modern schemas, HMAC webhooks, replay-safe idempotency. 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", )
Every mutation is replay-safe. Network retries can't double-charge.
HMAC-signed, replay-protected, with explicit retry semantics. No silent drops.
Full kernel emulation locally. Test EMV flows without a physical card or terminal.
Hand-written, schema-pinned, semver'd. Not generated stubs.