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
Firecrawl
AI Development · Developer Tools
Turn any website into clean, LLM-ready data with a single API call — no proxy headaches, no scraping complexity.
Flowise
AI Development · Automation · Developer Tools
Drag-and-drop visual builder for AI agents, RAG pipelines, and multi-agent systems—deploy anywhere in minutes.
flue
AI Agents · Developer Tools
Build autonomous AI agents and powerful workflows with a programmable TypeScript harness that gives any model sessions, tools, sandboxes, and durable execution.
FormBee
Forms Surveys
A self-hostable form backend that accepts HTML form submissions and routes them to email, Telegram, Discord, webhooks, and automation platforms — without writing any server-side code.
Formbricks
Analytics · Design Tools · Forms Surveys
Open-source experience management platform for in-app, website, email, and link surveys — privacy-first and fully self-hostable.
Formizee
Forms Surveys
An open-source form backend and builder platform — design forms, collect submissions, and get analytics without hosting your own server, positioned as an alternative to Formspree and Typeform.
Ghost
Blogging · CMS
Open source headless Node.js CMS for professional publishing, paid memberships, and newsletters with a fully owned audience.
Ghostfolio
Invoicing Finance
Track your stocks, ETFs, and crypto with a privacy-first, self-hostable wealth management platform built for data-driven investors.
GrowthBook
Ab Testing Experimentation · Analytics · Developer Tools
Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.