Overview
Hyperswitch Prism
One integration. Any payment processor. Zero lock-in.
A high-performance payment abstraction library, and part of Juspay Hyperswitch β the open-source, composable payments platform with 40,000+ GitHub stars, trusted by leading brands worldwide.
GitHub Β· Website Β· Documentation
π― Why Prism?
Today, integrating multiple payment processors either makes developers running in circles with AI agents to recreate integrations from specs, or developers spending months of engineering effort.
Because every payment processor has diverse APIs, error codes, authentication methods, pdf documents to read, and above all - different behaviour in the actual environment when compared to documented specs. All this rests as tribal or undocumented knowledge making it harder AI agents which are very good at implementing clearly documented specification.
Prism is a stateless, unified connector library for AI agents and Developers to connect with any payment processor
Prism offers hardened transformation through testing on payment processor environment & iterative bug fixing
Prism can be embedded in you server application with its wide range of multi-language SDKs, or run as a rRPC microservice
ποΈ 100+ different API schemas
π Single unified schema
β³ Never ending agent loops/ months of integration work
β‘ Hours to integrate, Agent driven
π Brittle, provider-specific code
π Portable, provider-agnostic code
π« Hard to switch providers
π Change providers in 1 line
β¨ Features
π 100+ Connectors β Stripe, Adyen, Braintree, PayPal, Worldpay, and more
π Global Coverage β Cards, wallets, bank transfers, BNPL, and regional methods
π Zero Overhead β Rust core with native bindings, no overhead
π PCI-Compliant by Design β Stateless, no data storage
ποΈ Architecture
Payment & Capture Flow Sequence
{% @mermaid/diagram content="%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#B3D9F2', 'primaryTextColor': '#333333', 'primaryBorderColor': '#5B9BD5', 'lineColor': '#666666', 'secondaryColor': '#C5E8C0', 'tertiaryColor': '#F9B872'}}}%% sequenceDiagram autonumber participant App as Your App participant SDK as Prism participant PSP as Payment Service Provider (PSP)
Note over App,PSP: Payment Authorization App->>SDK: paymentservice.authorize(amount, currency, payment_method) activate SDK SDK->>PSP: Provider-specific Authorize API call activate PSP PSP-->>SDK: Provider-specific response deactivate PSP SDK-->>App: Unified authorize response deactivate SDK
Note over App,PSP: Payment Capture App->>SDK: paymentservice.capture(payment_id, amount) activate SDK SDK->>PSP: Provider-specific Capture API call activate PSP PSP-->>SDK: Provider-specific Capture response deactivate PSP SDK-->>App: Unified capture response deactivate SDK
Note over App,PSP: Event Service (Webhooks) PSP->>App: webhook(event_payload) activate App App->>SDK: eventservice.handle(unified_event) activate SDK SDK->>App: Unified event payload deactivate SDK deactivate App " %}
π Quick Start
Install the Prism Library
Node.js
Python
Java
Add to your pom.xml:
PHP
For detailed installation instructions, see Installation Guide.
Create a Payment Order
Node.js
Java
π Switching Providers
Once the basic plumbing is implemented you can leverage Prism's core benefit - switch payment providers by changing one line.
One integration pattern. Any service category.
No rewriting. No re-architecting. Just swap the connector. Each flow uses the same unified schema regardless of the underlying processor's API differences. No custom code per provider.
π οΈ Development
Prerequisites
Rust 1.70+
Protocol Buffers (protoc)
Building from Source
π Security
Stateless by design β No PII or PCI data stored
Memory-safe β Built in Rust, no buffer overflows
Encrypted credentials β API keys never logged or exposed
Reporting Vulnerabilities
Please report security issues to [email protected].
Built and maintained by Juspay hyperswitch
Last updated
Was this helpful?

