works with stripe
Stripe is built for payments. Keyplar delivers what they pay for.
Stripe runs your checkout, tax, and payouts. Keyplar picks up the moment payment succeeds — issuing license keys, serving downloads, granting repository access, and giving every buyer a portal. No changes to your checkout, no code required.
a clean division of labour
You keep Stripe. You gain delivery.
Keyplar never touches the money. It complements Stripe rather than replacing any part of it.
stripe
Stripe handles
- Checkout, Payment Links & subscriptions
- Cards, wallets & local payment methods
- Tax calculation and merchant-of-record
- Payouts to your bank account
keyplar
Keyplar handles
- License keys issued per purchase, validated via API
- File downloads over signed, expiring URLs
- Repository invitations — and revocations
- A branded customer portal for every buyer
- Refund-aware access: refunded orders lose their grants
- Import of your existing Stripe orders and products
setup
Connected in an afternoon
Four steps. None of which involve changing how you sell.
- Step 01
Connect your Stripe account
Paste a restricted API key into your Keyplar settings. Credentials are encrypted per store, and a restricted key means Keyplar can only do what delivery requires.
- Step 02
Add one webhook endpoint
Point a Stripe webhook at your store's /webhooks URL. Keyplar verifies signatures, deduplicates retries, and normalizes events — checkout completions, refunds, subscription changes.
- Step 03
Map products, attach benefits
Match your Stripe Prices to Keyplar products, then attach license keys, files, repository access, or links to each. Unmapped Prices are created automatically so no order is ever lost.
- Step 04
Sell exactly as before
Nothing changes about your checkout. After payment, buyers are redirected to their order — every benefit granted, no account required to see what they bought.
POST /api/v1/licenses/activate
License keys for software sold on Stripe
Stripe doesn't issue license keys — Keyplar does, and your app talks to them server to server: validate on launch, activate per seat, deactivate when a machine is retired.
- Keys with your own prefix, expiry, and activation limits
- Per-instance activation tracking for seat-limited licenses
- Every response resolves the order, product, and customer
- Disable or revoke a key instantly — refunds do it for you
Send a key to see the response.
Sample keys only — nothing leaves your browser.
webhooks
Already on Lemon Squeezy or Polar too?
Every gateway feeds the same delivery path. Each one names its events differently and returns a different checkout parameter — adapters absorb that, so what happens after payment never changes.
Connect Stripe alone, or run all three side by side. Gateways are unlimited on every plan, and a customer who bought on two of them still sees one account.
- event
- checkout.session.completed
- checkout param
- session_id
- product mapping
- Price ID
↓ same delivery, every gateway
- License keyACME-7F2A-9D41-C8E3Granted
- File downloadacme-studio-2.4.1.zipGranted
- Repository accessacme/studio-proGranted
Same pipeline downstream — connect one gateway or all three.
built like infrastructure
Handled with the care payments deserve
Encrypted credentials
Your Stripe keys are encrypted at rest, per store, and only ever used server-side.
Signed URLs only
Files are never public. Every download link is signed and expires — no guessable paths.
Hashed API keys
License API keys are hashed at rest and compared in constant time. Rate-limited per key.
Verified webhooks
Every event is signature-verified and deduplicated, so retries never double-grant.
Idempotent by design
Webhooks, imports, and re-runs converge on the same state. Nothing duplicates.
Refund-aware access
Refunds revoke downloads, invalidate keys, and remove repository collaborators automatically.
Questions about the integration? Write to support@keyplar.com — or see everything Keyplar delivers.
straight answers
Stripe + Keyplar
Does this work with Stripe Payment Links?
Yes. Keyplar fulfills from webhooks, so it works with Payment Links, Stripe Checkout, and any integration that produces a completed checkout — no code on your side.
Stripe is becoming a merchant of record. Doesn't that cover this?
Merchant-of-record covers the money side: tax, compliance, invoicing. It doesn't issue license keys, host downloads, invite buyers to repositories, or give customers a portal. That delivery layer is what Keyplar adds on top of Stripe.
What Stripe permissions does Keyplar need?
A restricted API key with read access to products, checkout sessions, orders, and subscriptions — plus webhook events. Keyplar never initiates charges and never needs your full secret key.
What happens on refunds?
When a refund webhook arrives, the order is marked refunded and its grants are revoked: downloads stop, GitHub collaborator access is removed, and license keys are invalidated.
Can I import sales I made before connecting Keyplar?
Yes. The import tool backfills your Stripe catalog, order history, and subscriptions, so long-time customers get portal access to their past purchases too.
order.paid → delivered
Give your Stripe checkout a delivery layer.
Connect Stripe, attach benefits, and your next sale fulfills itself.
14-day trial · $29/mo after · cancel anytime