Stripe Node.js Library
The official Node.js and TypeScript library for the Stripe API, giving developers a fully typed client for payments, billing, and Connect.
Repository Health
Technical Analysis
stripe-node is the official server-side client library for the Stripe API, maintained by Stripe itself. It wraps every Stripe resource — customers, payment intents, subscriptions, Connect accounts, checkout sessions, and more — behind a consistent, fully typed interface generated directly from Stripe’s own API specification.
Beyond raw API access, the library handles the operational details that payment integrations need: automatic request retries, idempotency key support, async-iterable auto-pagination for list endpoints, and webhook signature verification. It ships as separate builds for Node.js, Deno, and edge/worker runtimes, with zero runtime dependencies, making it a drop-in choice for any JavaScript or TypeScript backend that needs to talk to Stripe.
What You Get
- A fully typed TypeScript client covering all Stripe resources (Customers, PaymentIntents, Subscriptions, Connect accounts, Checkout Sessions, and more) with types generated from Stripe’s own OpenAPI spec.
- Built-in request handling: automatic retries, configurable timeouts, idempotency key support, and async-iterable auto-pagination for list endpoints.
- Webhook signature verification utilities (Webhooks.constructEvent) for safely handling Stripe events in your own endpoints.
- Multi-runtime entry points (Node.js, Deno, and edge/worker environments) built from the same resource layer, distributed as both CJS and ESM.
- Zero runtime dependencies, keeping the install footprint small and the supply-chain surface minimal.
Common Use Cases
- Charging customers and managing subscriptions from a Node.js/TypeScript backend.
- Onboarding and paying out connected accounts via Stripe Connect.
- Verifying and processing Stripe webhook events in an Express, Next.js, or serverless handler.
- Building custom billing/invoicing flows on top of Stripe’s Invoices and Billing APIs.
Under The Hood
Architecture — The library is organized around a central Stripe class (src/stripe.core.ts, ~2,700 lines) that owns configuration, API-key/version negotiation, and request dispatch. Every one of the 101 resource modules under src/resources/ (Charges, Customers, PaymentIntents, Connect, Billing, and the newer V2 endpoints) extends the shared StripeResource base class, which builds path-templated REST calls and hands them to RequestSender (~780 lines) for retries, timeouts, and idempotency handling. autoPagination.ts layers async-iterable pagination helpers on top of any list method, and separate entry points (stripe.cjs.node.ts, stripe.esm.node.ts, stripe.cjs.worker.ts, stripe.esm.worker.ts) select platform-specific HTTP and crypto backends from src/net and src/platform, so the same resource layer runs unmodified in Node.js, Deno, and edge/worker runtimes.
Tech Stack — Written entirely in TypeScript (96% of the codebase), with dependencies: {} in package.json — the library ships with zero runtime dependencies and only a peer dependency on @types/node. Builds are dual CJS/ESM, orchestrated via a justfile/Makefile, and use native fetch/http per platform rather than pulling in axios or node-fetch (node-fetch appears only as a devDependency for the test suite).
Code Quality — 24 spec files under test/ exercise resources, the networking layer, crypto, telemetry, webhook signature verification, auto-pagination, and the newer V2 decimal/coercion paths. The test script runs a strict tsc typecheck against tsconfig.cjs.json before Mocha executes, and ESLint/Prettier configs enforce consistent style across the large generated resource surface.
API Design — The API is resource-oriented and highly consistent (stripeClient.customers.create/.retrieve/.list/.update/.del follow the same shape across all 101 resources), with types that track the latest Stripe API version and an idiomatic for await auto-pagination helper. The README documents lazy client instantiation to avoid build-time “missing API key” errors, and example projects cover webhook signature verification across Express, Next.js, NestJS, Koa, and Deno, keeping onboarding friction low despite the very large API surface.
Used by 80 apps in this directory
cmux
AI Development · Developer Tools
A native, Ghostty-based macOS terminal with vertical tabs, agent-aware notifications, and a scriptable browser built for running many parallel AI coding agent sessions instead of juggling tmux panes.
Codebuff
AI Code Assistants
An open-source AI coding assistant that coordinates specialized agents to edit your codebase from natural language — including Freebuff, a free, ad-supported version powered entirely by open-source models like DeepSeek and Kimi.
Convex Backend
Databases · Developer Tools
Open-source reactive database that lets developers build live-updating apps with pure TypeScript, strong consistency, and real-time subscriptions—no separate API layer required.
CourseLit
Blogging · Ecommerce
Open-source, self-hosted LMS for selling online courses, digital downloads, and building communities on your own branded website.
defuddle
Bookmarks Archiving · Developer Tools
Extract clean article content and rich metadata from any web page, delivered as HTML or Markdown with zero clutter.
Docmost
CMS · Collaboration · Note Taking
Self-hosted collaborative wiki and knowledge base with real-time editing, diagrams, AI assistance, and enterprise access controls — a modern alternative to Confluence and Notion.
Documenso
Digital Signiture
Self-hosted, open-source DocuSign alternative with legally binding PDF signatures, multi-party workflows, and a full REST and tRPC API.
Dokploy
Devops · Hosting Control Panel · Security
Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration
Dub
Analytics · Marketing
The open-source link attribution platform for short links, conversion tracking, and affiliate programs — powering 100M+ clicks monthly.