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 79 apps in this directory
Abby
Developer Tools · Product Management
Statically typed feature flags, remote config, and A/B testing with framework-native SDKs for TypeScript teams.
Activepieces
Automation · AI Assistants
Open-source AI automation platform that converts 280+ workflow integrations into MCP servers for LLMs, with no-code builders and TypeScript extensibility.
AFFiNE
Productivity · Project Management · Note Taking
Write, draw, and plan in one infinite canvas — the open-source alternative to Notion and Miro that keeps your data yours.
Anarlog
Note Taking · AI Assistants · Productivity
Anarlog is an open-source, local-first AI meeting notetaker that records, transcribes, and summarizes meetings entirely on your device — no cloud lock-in, no mandatory account, and every note saved as a plain markdown file you own forever.
Bigcapital
Invoicing Finance
Self-hostable double-entry accounting platform with invoicing, inventory, multi-currency, and real-time financial reporting for small and medium businesses.
Botpress
AI Assistants · AI Development · Customer Support
The open-source hub for building and deploying LLM-powered AI agents with TypeScript-first tooling, 40+ integrations, and a revolutionary code-execution agent framework.
Bun
Developer Tools
An all-in-one JavaScript and TypeScript toolkit — one Rust-and-JavaScriptCore binary that replaces Node.js, npm, a bundler, and a test runner with faster equivalents.
Cal.diy
Scheduling
The 100% MIT-licensed, community-driven scheduling platform — self-host your own booking infrastructure with no enterprise strings attached.
Cap
Team Chat · Video Conferencing
Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.