Closed beta opens September 1, 2026
Non-custodial · API-first

Crypto payments that never touch our hands.

No custody, no money-transmitter license, no counterparty risk — the payment lands straight in your wallet.

Klappay is a non-custodial crypto payments API. You create a charge, we compute a deterministic on-chain split address, your customer pays directly into it — we just detect and route it. We never hold a single cent.

See the integrationRead the docs →
checkout.ts
import { createClient } from '@klappay/node'
// reads KLAP_BASE_URL and KLAP_API_KEY from process.env
const klap = createClient()
const charge = await klap.charges.create({
amount: 49.9,
expiresIn: 900,
acceptedPayments: [{ token: 'USDC', network: 'base' }],
})
const paid = await charge.waitForConfirmation()
console.log('Paid:', paid.amountReceived)

How it works

Four steps, and the money never touches a Klappay vault.

01

You create a charge

One API call with an amount and accepted tokens. A deterministic id is born with it.

02

Klappay computes the address

A split address (0xSplits v2) is derived for that exact charge — recipients frozen and immutable since creation.

03

The payer sends directly

Your customer sends funds straight to that on-chain address. It never passes through a Klappay-controlled account.

04

Klappay detects and distributes

We watch the chain, confirm the transfer, and trigger the payout to the merchant wallet — no custody at any step.

Not built like the rest of the market

Most crypto payment processors still behave like a bank: they hold your money before passing it on. Klappay holds nothing.

Custody
Klappay —Never. Funds go straight to the on-chain split address.
Others —Funds pass through the provider’s account before reaching you.
Integration
Klappay —Pure API. Your checkout, your design, your UX.
Others —Hosted widget/iframe — you adapt your product to it.
Split payments
Klappay —Native: a multi-recipient address ships with every charge.
Others —Bolted-on feature, usually gated or priced separately.
Real-time status
Klappay —SSE + webhooks + charge.waitForConfirmation() in the SDK.
Others —Manual polling or a single webhook, no native stream.
Sandbox
Klappay —Simulate any charge event without touching a real chain.
Others —Testnet-only when it exists — slow, brittle setup.
Types
Klappay —API and SDK share the same Zod schema. Never drifts.
Others —Types maintained by hand, tend to drift from the real API.
Refunds
Klappay —No automatic reversal — it settles on-chain and the payer is never a split recipient. You decide the remedy: partial delivery, manual refund, or credit.
Others —A chargeback exists, but only because your funds sat in the processor’s custody first.

No on-chain chargebacks — but also no processor standing between you and your funds. They're yours the moment they land.

Audit it yourself: the Node SDK and the shared types package are open source (MIT) on GitHub — read exactly what runs in your backend before you trust it with a single charge.

One API, a growing suite of products

The Core API is the foundation — everything above it ships as a standalone product.

LIVE

Klappay Core

The non-custodial payments API — charges, distributions, and webhooks for any crypto checkout.

  • Swap-to-paydone
  • Escrowdone
  • Fiat Off-ramp-
  • Sanctions Screening-
  • White-label-
BUILDING

Klappay Link

Shareable payment links and product pages — create one from a dashboard, get paid non-custodially, no API integration required.

COMING SOON

Klappay Fund

Pooled fundraising with on-chain, non-custodial escrow.

COMING SOON

Klappay Give

Tipping and donations, split and settled non-custodially.

COMING SOON

Klappay Recurring

Subscription and recurring billing on crypto rails.

COMING SOON

Klappay One

One button, one wallet for every payment address you own — approve from a push notification, wherever you are.

And much more

A few examples of what's next:

  • Klappay CommerceEmbeddable checkout widget for your site or app.
  • Klappay PayrollPay your team globally in USDC, on a schedule.
  • Klappay StreamsPay by the second — continuous money flow.

Zero to first payment in 5 steps

Real example, straight from the official Node SDK.

STEP 01 / 05

Install the SDK

One package, zero blockchain plumbing on your side.

terminal
npm install @klappay/node

Before you ask: the edge cases

The questions that actually decide whether an integration ships. Full detail in the docs.

Sent more? The charge still confirms — charge.isOverpaid and amountReceived tell you exactly how much extra arrived, no separate status to branch on. Sent less? It sits partially_paid until the rest arrives or the charge expires.

The charge moves to expired, but the address keeps working — a late transfer is still credited and the charge resolves to underpaid with the real amountReceived, never silently dropped.

Yes. A charge paid in installments sits in partially_paid, summing every transfer against the total, until it either clears (confirmed) or the deadline passes.

No — and it's structural, not a missing feature. The on-chain split address is frozen to [merchant, treasury] at creation; the payer is never one of its recipients, so there's no contract call that can send funds back to them. You decide the remedy from your own side: partial delivery, manual refund, or credit toward a future charge.

Every webhook and SSE event carries the exact (token, network) pair that paid — acceptedPayments lists what the charge was configured to accept, paidWith lists what actually arrived. Your handler never has to guess which chain to reconcile against.

Built for developers

Everything you'd expect from a modern payments API.

Non-custodial by design

Every charge gets its own deterministic split address. Funds never sit in a Klappay-controlled wallet.

Type-safe SDK

The Node SDK and the API share the same Zod schemas — no hand-written types drifting out of sync.

Webhooks + realtime SSE

Get notified the moment a charge is confirmed, partially paid, or settled — push, not poll.

Sandbox testing

Simulate any charge event end-to-end, no real on-chain activity or testnet faucet required.

Multi-network, multi-token

A live capability matrix tells you which (token, network) pairs are accepted — build the picker, don’t hardcode it.

Precise settlement

Overpay, underpay, partial payments — handled as an exact decimal state machine, never floating-point guesswork.

Ship your first non-custodial charge today.

No custody, no hosted checkout lock-in, no dashboard required to get started.

Read the docs

Free during the closed beta. Pricing will be simple and per-transaction, announced before general availability.