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
Helicone
AI Development · Analytics · Monitoring
An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.
HeyForm
Forms Surveys · No Code Platforms
Open-source conversational form builder with AI generation, conditional logic, and 30+ integrations — self-host with full data ownership.
GraphQL Hive
Developer Tools · Devops · Monitoring
Open-source GraphQL schema registry and observability platform with breaking change detection, federation support, and CI/CD integration for teams of any size.
Huly Platform
Collaboration · Project Management · Team Chat
Open-source all-in-one workspace that replaces Linear, Jira, Slack, and Notion for product and engineering teams.
InsForge
Databases · Developer Tools
The all-in-one, open-source backend platform purpose-built for AI coding agents — giving your agent database, auth, storage, edge functions, a model gateway, and compute to ship full-stack apps end-to-end.
Joplin
Note Taking
The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.
Kan
Project Management
An open-source, self-hostable Kanban board built as a modern Trello alternative with team workspaces, board permissions, and Trello import.
Karakeep
Bookmarks Archiving
Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.
Laminar
AI Development · Monitoring
Open-source observability platform purpose-built for AI agents — trace, evaluate, debug, and monitor at scale with SQL access and real-time replay.