Hyperswitch is a composable open-source payments infrastructure built in Rust that provides a modular platform for processing payments through multiple connectors. The system handles the complete payment lifecycle including authorization, capture, refunds, and dispute management, while offering features like intelligent routing, 3DS authentication, revenue recovery, and analytics. Built with a microservices architecture using Actix-web, it features a plugin-based connector system, event-driven design with Redis/Kafka, and comprehensive SDK support for web and mobile platforms. The codebase demonstrates strong engineering practices with typesafe ID generation, robust encryption utilities, and well-abstracted interfaces that promote reusability and maintainability.
Polar is an open-source, full-stack monetization platform designed for AI-era software developers. It serves as a Merchant of Record, handling checkout flows, subscriptions, usage-based billing, seats, discounts, and global tax compliance. The system is built as a monorepo with a Python/FastAPI backend (async SQLAlchemy, Dramatiq workers, PostgreSQL, Redis, Tinybird for event analytics), a Next.js web dashboard and customer portal, a React Native mobile app (Expo), a design system (Orbit), and multiple SDKs (TypeScript, Python) with a CLI tool. Architecture follows a service-oriented pattern with versioned REST APIs (2026-04, 2026-10, 2027-01), a repository pattern for persistence, benefit fulfillment strategies for integrations (Discord, GitHub, Slack, license keys), and framework adapters (Next.js, Nuxt, TanStack Start, Better Auth) for easy integration. The platform also includes an internal backoffice (HTMX/tagflow), observability (SLOs, invariants, Prometheus metrics), and merchant migration tooling from Stripe.
Lightning Network Daemon (lnd) is a full-featured Lightning Network node implementation written in Go. It enables users to participate in the Lightning Network by opening and managing payment channels, sending/receiving payments, routing payments for others, and enforcing channel contracts via blockchain monitoring. The architecture is modular, separating concerns into distinct subsystems: peer-to-peer networking (brontide, lnpeer), channel state management (channeldb, chanstate, lnwallet), payment switching and routing (htlcswitch, routing), blockchain monitoring (chainntnfs), contract enforcement (contractcourt), RPC services (lnrpc), watchtower functionality, and autopilot for automated channel management. Key entry points include the daemon (cmd/lnd/main.go), CLI (cmd/lncli/main.go), and various RPC servers. Data flows involve processing peer messages to update channel state, persisting state to pluggable backends (BoltDB, PostgreSQL, SQLite, etcd), monitoring blockchain events affecting channels, and handling RPC commands for node control and queries. External dependencies include Bitcoin full nodes (bitcoind/btcd or Neutrino), database libraries, and various Go utilities (btcutil, btcec, gRPC).
stripe-node is the official Stripe API client library for Node.js and JavaScript runtimes. It provides a comprehensive, typed interface to the entire Stripe REST API (both V1 and V2), covering payments, billing, Connect, Treasury, Issuing, Terminal, and more. The library is auto-generated from Stripe's OpenAPI spec, ensuring tight alignment with the API surface. It supports multiple JavaScript runtimes (Node.js, Deno, Cloudflare Workers, browsers) via platform abstraction layers for HTTP, crypto, and event emission. Key architectural features include a pluggable HTTP client hierarchy (Node native, Fetch, custom endpoints), runtime type coercion for V2 decimal and int64 fields, robust error generation with typed error classes, automatic pagination with async iterators, and webhook signature verification. The codebase is well-tested with unit and integration tests across runtimes, and follows semantic versioning. While the vast majority of resource files are generated boilerplate, the core infrastructure (request sender, platform functions, crypto providers, auto-pagination) demonstrates solid engineering craftsmanship and is designed for extensibility.
Akaunting is a self-hosted accounting and invoicing platform for small businesses and freelancers. It manages invoices, bills, banking transactions, transfers, reconciliations, multi-currency, multi-tax, recurring documents, and financial reports. It includes a customer portal for invoice viewing and payment, and supports multi-company, multi-user with role-based permissions. The system is highly internationalized with 40+ language locales. The architecture is built on a custom PHP framework (Illuminate) that extends Laravel conventions. It uses an event-driven architecture with domain events, listeners, and a job queue for async processing. The frontend combines Blade templates, Vue.js components, and Livewire for interactivity. Multi-tenancy is achieved through company scoping via a global query scope. The system is extensible via a module system with an app store, and includes a CLI for maintenance tasks. Key entry points include the installation wizard (controllers under Install/), authentication flows, and core CRUD controllers for sales, purchases, banking, and settings. Data flows typically involve controllers dispatching jobs that emit events, which listeners handle to update related entities, send notifications, or trigger side effects. Reports use a filter/group/rows event system for extensibility. Import/export is handled via Excel with multi-sheet support. External dependencies include PHP 8.1+, Node 18-20, and a database (MariaDB, MySQL, PostgreSQL, SQLite). It uses Laravel Mix for asset compilation, integrates with payment gateways, email services, and error trackers (Sentry, Bugsnag), and relies on a module marketplace at api.akaunting.com.
This repository is the official Mollie API client for Node.js (TypeScript), providing a typed SDK for integrating with the Mollie payment platform. It exposes a factory function `createMollieClient()` that returns an object with resource binders (e.g., `payments`, `orders`, `customers`, `refunds`, `settlements`), each offering CRUD operations and additional actions like cancellation or refunding. The architecture follows a clean layered design: resource-specific binders delegate to a shared `TransformingNetworkClient` that handles HTTP requests, response transformation, pagination, idempotency keys, retries, and throttling. Data models are separated into raw API interfaces and sealed helper-enriched types, with embedded/linked resource access abstracted through helper classes. The SDK supports both API key and OAuth authentication, callback-style and Promise-based APIs, and includes extensive test suites (unit, integration, and cross-runtime compatibility for Node, Bun, and Deno). The codebase is well-structured, uses modern TypeScript features, and includes a custom iteration API for paginated resources. Notable internal patterns include a generic Binder base class, parameter default injection, a throttling utility, and a rich set of type utilities (Maybe, Nullable, Seal, Xor).
PayKit is an open-source, embedded billing framework for TypeScript applications. It provides a core library (`paykitjs`) that handles subscription management, metered usage tracking, feature entitlements, and webhook processing – all backed by PostgreSQL and currently integrated exclusively with Stripe as the payment provider. The monorepo includes a CLI for project scaffolding and migration, a client SDK, a dashboard plugin (`@paykitjs/dash`), a documentation website (Next.js + Fumadocs), a demo application, and a webhook tunnel worker (Cloudflare Workers + Durable Objects). The architecture is modular: a core `createPayKit()` instance orchestrates services for customers, subscriptions, entitlements, products, and invoices, each following a service pattern with Drizzle ORM models. A plugin system allows custom endpoints, and a provider abstraction (currently only Stripe) handles payment operations. The codebase is well-structured with TypeScript end-to-end, extensive E2E testing against Stripe test clocks, and a clean separation of concerns. However, it is in alpha stage, has duplicated UI component libraries across apps, and is tightly coupled to Stripe – factors that limit immediate reuse without adaptation.
svelte-stripe is a Svelte component library that wraps Stripe Elements and Stripe.js, providing drop-in Svelte components for building payment UIs. It exposes context-based components such as Elements, PaymentElement, CardNumber, CardExpiry, and CardCvc, and handles Stripe.js loading, element lifecycle, and SSR safety. The repository also includes a SvelteKit demo application with examples for credit card, SEPA, iDEAL, and express checkout, plus server-side payment intent creation and webhook signature verification. It is a library and example app, not a data pipeline.
Invoice Ninja is a full-featured open-source invoicing and billing platform designed for small to medium businesses. It handles the complete lifecycle of invoices, quotes, credits, purchase orders, payments, and expenses. The system supports multi-tenant SaaS and self-hosted deployments with per-company database isolation, and integrates with over 20 payment gateways (Stripe, PayPal, Mollie, GoCardless, etc.). It provides client and vendor portals for self-service, along with extensive reporting, CSV export, and e-invoicing capabilities (Peppol, Verifactu, France e-reporting). The application follows a monolithic MVC architecture built on a custom PHP framework (Illuminate) similar to Laravel. It uses an event-driven architecture with domain events and listeners for side effects (email, webhooks, activity logging). Background jobs are queued for async processing. The frontend uses Blade templates, Livewire components, and a separate React app for some admin panels. The API is RESTful with OpenAPI documentation. Key entry points are HTTP controllers under app/Http/Controllers, with request validation classes. Core data flows involve creating entities through factories, persisting via repositories, and triggering events that listeners handle. Payment flows go through abstract payment drivers that encapsulate gateway-specific logic. The system also includes extensive reporting, CSV export, and e-invoicing (Peppol, Verifactu, France e-reporting). External dependencies include a relational database (MySQL/PostgreSQL), Redis for caching and queues, Elasticsearch for search, and various third-party APIs for payment processing, tax calculation (ZipTax), bank integration (Nordigen, Yodlee), email delivery (Mailgun, Postmark, Brevo), and e-invoicing gateways (Storecove, Qvalia).
This repository is a React Native library that integrates Paystack payment processing into mobile applications using a WebView-based modal. It provides a `PaystackProvider` component that wraps the app and exposes a `usePaystack` hook for initiating transactions. The library handles parameter validation, generates an inline Paystack checkout page, and communicates payment events back to the app via WebView postMessage. It also supports deep linking for payment channels like Zap, intercepting specific URLs and opening them via the OS. The architecture follows a Provider pattern with context, making the payment functionality accessible throughout the app. The code is written in TypeScript with full type definitions and includes a test suite using Jest. However, the package.json contains unrealistic dependency versions (e.g., react@^17.0.1) indicating potential maintenance issues. The core utility functions for URL routing and external URL opening are well-designed and could be reused in other projects.