mrkeyoor.com_
Sat 17 Oct 13:34 UTC
Self-Hostedevaluationupdated 26 Aug 2026

hyperswitch review

Hyperswitch is a self-hosted payment switch that connects a merchant to many processors through one backend. It adds routing, retries, payment-method vaulting, reconciliation, and operational dashboards for companies that have outgrown a single payment provider.

+29stars / 7d
Verdict

Our run installed 138 npm packages in 22 seconds with 0 audit findings, but the repository exposed no npm build or test target, so we did not verify the 1.3-million-line Rust payment server. Hyperswitch is worth a serious pilot for a staffed payment team that needs multi-processor routing or direct acquirer control. A small product should stay with a managed provider, while larger merchants should test only the connectors and flows they will use before trusting it with money movement.

We ran it

Lab card: what happened when we ran hyperswitchScreenshot of hyperswitch (hyperswitch.io)
Install✓ · 22s138 packages · 62 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo13816 files~1,323,510 lines of source · 182.2 MB · 17 CI workflows · Dockerfile

Answers from our run

Does hyperswitch build from source?

Dependencies installed in 22 seconds (138 packages), and the project has no separate build step. We cloned commit 07df515 into a clean Debian container with 3 CPUs and no project-specific setup.

Does hyperswitch have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does hyperswitch have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use hyperswitch?

Small products happy with one processor: the README's common starting points are multi-processor routing and direct acquirer connections, which add little value to a simple Stripe setup.

What are the alternatives to hyperswitch?

Stripe, Primer, Kill Bill. Our run installed 138 npm packages in 22 seconds with 0 audit findings, but the repository exposed no npm build or test target, so we did not verify the 1.

Setup2/5Docker quickstart exists, but real payments need many services
Docs4/5Clear architecture, connector guides, and deployment routes
Community5/543,531 stars, current pushes, and frequent release work
Maturity4/5Wide payment scope and releases, with serious operator duties

Discussed on

  1. hnPayments 101 for a Developer284 points
  2. hnI won't pay on your website131 points
  3. hnAsk not what the compiler can do for you100 points
  4. hnHyperswitch – Connect to multiple payment processor with a single API36 points
  5. hnFaster Payments with In-Memory Cache25 points

Who it’s for

Payment teams routing transactions across several processors or direct acquirer connections.
Merchants that need to keep an existing vault while changing their orchestration layer.
Companies with payment, security, and infrastructure engineers available to own a critical service.
Teams that need connector-specific routing, retries, reconciliation, or cost analysis in one stack.

Who it’s NOT for

Small products happy with one processor: the README's common starting points are multi-processor routing and direct acquirer connections, which add little value to a simple Stripe setup.
Teams without payment operations and security staff: the full stack includes a card vault, encryption service, webhooks, schedulers, databases, and connector credentials.
Anyone expecting the dashboard and client SDKs to live in one repository: the README maps them to several separate projects and git submodules.
Operators who want a tiny source build: the local quickstart uses Docker or Podman profiles, while production deployment is documented through Helm on Kubernetes.
Buyers treating connector count as proof of identical coverage: the README says each connector has its own supported methods, credential setup, webhooks, and failure modes.

Setup reality

Our sandbox's npm surface installed 138 packages in 22 seconds and used 62 MB. It exposed no build script and no test script, so both steps were skipped; we did not compile or test the Rust payment server. npm audit reported 0 known vulnerabilities. The full checkout measured 13,816 files and about 1,323,510 lines of source.

The documented local route needs Docker or Podman, then connector credentials before a real payment can be tested. A full deployment adds databases, encryption and vault services, webhook endpoints, API keys, and payment-processor configuration; cloud instructions use Helm.

This is a multi-service payment system, not the 138-package Node install alone. The repository has a Dockerfile and Compose file, but its dashboard, mobile SDKs, web SDKs, vault, and deployment tooling span separate repositories. PCI scope and secret management remain operator responsibilities.

138 npm packages do not represent the payment server

Our sandbox installed 138 npm packages in 22 seconds and used 62 MB, but that convenient result covers only the Node package surface detected at the repository root. Hyperswitch's main server is written in Rust and sits inside a much larger payment system. The checkout contained 13,816 files, about 1,323,510 lines of source, a Dockerfile, and a Compose file. A buyer should judge the project by the services and payment flows they must operate, not by the speed of npm install.

The product solves a problem that appears after a merchant has several payment relationships. Hyperswitch can sit between checkout applications and processors, select a connector, handle retries, receive webhooks, and expose operations through its Control Center. The README's ecosystem map separates the core router from the card vault, encryption service, dashboard, browser SDKs, mobile SDKs, and deployment repositories. That modularity permits selective adoption, though it also expands the number of version and credential boundaries.

What happened when we ran it

In our 3 CPU, 8 GB container, the available npm install completed in 22 seconds. It added 138 packages, occupied 62 MB, and npm audit found 0 known vulnerabilities across all reported severities. The repository had 17 CI workflow files, a Dockerfile, and a Compose file. Our harness found no tests directory at the measured level. These are useful packaging and repository signals, but they are not evidence that a payment transaction completed.

There was no npm build script or target, so the build step was skipped. There was also no npm test script or target, so the test step was skipped. Our run therefore produced no Rust compile result, no connector test count, and no payment-flow result. We did not substitute a different command because the measurement rules use declared targets. The honest conclusion is narrow: the Node dependencies installed cleanly, while the 1,323,510-line source checkout was not built or tested by this run.

More than 100 connectors mean more cases to verify

Hyperswitch documents integrations with more than 100 processors, with examples including Stripe, Adyen, PayPal, Cybersource, and direct acquirer paths. Breadth is the reason to consider it. A merchant can change routing without rewriting every checkout client, keep an external vault, and introduce a second processor for regional coverage or failover. The latest v1.126.0 release continued adding connector-specific payment, mandate, wallet, webhook, and routing behavior, which shows how much of the product lives in the details.

Connector count should never be read as uniform feature support. The README sends users to a separate guide for each processor's credentials, payment methods, webhooks, and failure modes. Card authentication, recurring mandates, refunds, payouts, wallets, and dispute flows differ by connector and market. A competent evaluation starts with a matrix of the exact countries, currencies, payment methods, and lifecycle events the business uses. Test that matrix against sandbox accounts before discussing a production cutover.

Docker starts the stack, credentials make it useful

The local setup script detects Docker or Podman and offers 3 profiles: minimal, standard, and full. Standard adds the Control Center, while full adds monitoring and schedulers. That is a sensible evaluation route because it lets a payment engineer see the API and dashboard before designing Kubernetes infrastructure. It still needs at least one processor configuration before the advertised test payment can prove anything, and useful webhook tests require a reachable endpoint with verified secrets.

Production is a separate engineering project. The README points AWS, Google Cloud, and Azure users to Helm charts, while the ecosystem adds a vault, encryption service, dashboard, and client SDKs. Teams must own database backups, encryption keys, card-data boundaries, webhook delivery, network policy, upgrades, and incident response. The 62 MB npm environment says nothing about those duties. Payment infrastructure has a larger blast radius than a normal internal application, so a one-command local start is only the first review gate.

The repository is active and the queue is large

GitHub showed 43,531 stars, 2,103 open issues and pull requests combined, and a last push on August 25, 2026. Hyperswitch v1.126.0 was published on August 24. Those dates show current maintenance; the combined queue shows the scale of ongoing work, not 2,103 confirmed bugs. Recent work included connector behavior, routing, webhooks, analytics, and security fixes, which matches the wide responsibilities visible in the architecture. Teams should track the subset that touches their chosen connectors.

Release notes are unusually detailed, but their size is itself an operational signal. Version 1.126.0 spans many connector changes and fixes across core payment paths. A merchant should avoid unattended upgrades and broad regression assumptions. Pin router and companion-service images, rehearse database changes, replay representative webhooks, and run authorization, capture, void, refund, and recurring-payment tests for every active connector. Our run had 0 executed tests, so none of those flows received independent confirmation from MrKeyoor.

Hyperswitch fits a payment platform team

A company gets value from Hyperswitch when processor choice, routing control, or direct acquirer access is worth owning a 1.3-million-line system and its surrounding services. The Apache 2.0 license and open source code make inspection possible. The Control Center and hosted sandbox make product evaluation easier. Neither feature supplies the payment operations, security review, and connector certification that a live deployment needs. For a small team, Stripe or another managed provider is the saner default.

For a larger merchant, the right trial is deliberately small. Pick 1 region, 2 processors, and the payment methods that drive most revenue. Deploy the minimal required services, record every webhook and state transition, and compare reconciliation output with the existing system. Add routing or vault changes only after that slice behaves correctly. Hyperswitch deserves that trial because its connector and control surface is unusually broad. It does not deserve trust merely because 138 npm packages installed without an advisory.

Alternatives

ProjectWhat it isPick it when
StripeA managed payment platform with hosted infrastructure and broad product coverage.pick this instead when one provider meets your needs and reducing operational ownership matters most.
PrimerA managed payment orchestration platform for connecting and routing across providers.pick this instead when you want multi-provider control without running the orchestration backend yourself.
Kill BillAn open-source billing and payments platform centered on subscriptions and invoicing.pick this instead when subscription billing, invoices, and account balances are the core problem.

What people are saying

  1. [github-trending] juspay/hyperswitch

Sources

  1. Hyperswitch README and ecosystem map
  2. Hyperswitch v1.126.0 release
  3. Hyperswitch connector documentation

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →