Promotions are infrastructure.Treat them like it.

Run vouchers, gift cards, loyalty, and referrals behind one typed API. OfferKit is MIT-licensed, agent-ready, and yours to deploy.

Promotion graphLive checkout
Operational
Incoming checkoutSUMMER10$129.00 order
OKOfferKitevaluate()
Discount− $12.90
Gift cardBalance checked
Loyalty+116 points
ReferralReward queued
redemption.accepted42 ms · order_1042200 OK

REST API

OpenAPI 3.1 from the live contract

TypeScript SDK

Types without a codegen step

CLI

Back-office actions from the terminal

MCP server

Agent tools with explicit risk metadata

One model for every incentive.

Replace scattered checkout conditionals and one-off admin tools with a system your team can inspect, test, and operate.

Discounts

Fixed or percentage offers, eligibility rules, limits, stacking, and atomic redemption.

Gift cards

Stored balances with partial spend, an immutable ledger, expiration, and rollback safety.

Loyalty

Programs, tiers, earning rules, rewards, member ledgers, and points expiration.

Referrals

Stable referral codes, idempotent conversion, and configurable rewards for both sides.

Own the hot path.

Checkout logic needs clear outcomes under retries, concurrency, and partial failure. OfferKit makes those constraints part of the contract.

Read the API conventions
Live contract Ready
POST/api/v1/vouchers/SUMMER10/validate
const preview = await offerkit.vouchers.validate({
  code: "SUMMER10",
  order: { amount: 9999, currency: "USD" },
});
voucher.eligible200 OK
  • Rules evaluated
  • No state changed
  • Reason included

Your promotions. Your data. Your infrastructure.

Start locally, keep the contract stable, and deploy OfferKit wherever your stack runs.