Self-hosted, open-source payment infrastructure.
Process payments, manage subscriptions, detect fraud — on your own servers, with zero vendor lock-in.
| File | Description |
|---|---|
| README.md | Project overview, quick start, architecture |
| LICENSE | MIT License — free to use, modify, and distribute |
| CODE_OF_CONDUCT.md | Community guidelines for contributors |
| SECURITY.md | Security policy and vulnerability reporting |
| CONTRIBUTING.md | Contribution workflow, code style, PR process |
| Makefile | Development shortcuts (make up, make logs, etc.) |
| docker-compose.yml | Service orchestration for all 10+ microservices |
| docs/ | Full documentation site (Next.js app) |
OpenPay is the open-source payments platform that lets you own your payment infrastructure while remaining free to choose or switch payment processors. It gives you everything a commercial platform offers — payments, subscriptions, invoicing, fraud detection, webhooks — self-hosted on your own servers, with zero platform fees.
To be clear about cost: OpenPay charges no platform fees, but payments still cost money. You will always pay your payment processor (Stripe, Adyen, Paystack, etc.) its processing fees, plus the infrastructure and operational costs of running the platform yourself. OpenPay simply never takes a cut and never charges for features.
| Instead of paying the platform layer... | You pay with OpenPay |
|---|---|
| 2.9% + $0.30 per transaction | $0 platform fee — only your processor's fee |
| $0.40 per invoice | $0 — unlimited invoicing |
| $0.05 per transaction (Radar) | $0 — built-in fraud detection |
| 1% currency conversion | $0 markup — your processor's exchange rate |
| Vendor lock-in | $0 — swap processors anytime |
# 1. Clone the repository
git clone https://github.com/OpenPay-App/OpenPay.git
cd OpenPay
# 2. Copy environment files
cp .env.example .env
cp payment-system/hyperswitch/.env.example payment-system/hyperswitch/.env
cp payment-system/killbill/.env.example payment-system/killbill/.env
# 3. Start everything (10+ services)
make up
# 4. Initialize event streams
./event-bus/nats/scripts/init-streams.sh
# 5. Open the dashboard
open http://localhost:3000Prerequisites: Docker & Docker Compose (v2.0+), Git, 4GB+ RAM
OpenPay is built on battle-tested open-source components connected via NATS JetStream:
| Component | Technology | Purpose |
|---|---|---|
| Payment Engine | Hyperswitch (Rust) | Routes payments to 100+ processors |
| Subscription Billing | Kill Bill (Java) | Plans, invoicing, dunning |
| Event Bus | NATS JetStream (Go) | Async service communication |
| Fraud Detection | Tazama (Go/TS) | Rule evaluation, case management |
| Reverse Proxy | Traefik v2.10 | TLS, rate limiting, routing |
| Database | PostgreSQL 15 | Persistent storage |
| Cache | Redis 7 | Sessions, rate limiting |
| Dashboard | Next.js 15 + TypeScript | Merchant UI, docs, landing page |
| Service | Port | Description |
|---|---|---|
| Merchant Dashboard | 3000 (dev) / 3002 (avoid conflict) |
Merchant UI (Next.js) |
| Hyperswitch API | 8081 |
Payment processing |
| Kill Bill API | 8082 |
Subscription billing |
| Tazama Rule Exec | 8084 |
Fraud rules engine |
| NATS Monitoring | 8222 |
Event bus dashboard |
| Traefik Dashboard | 8080 |
Reverse proxy UI |
| Tazama Rule Studio | 3000 |
Rule authoring |
| Case Management | 3001 |
Alert review |
Internal services (PostgreSQL 5432, Redis 6379, NATS 4222) must never be exposed to the internet.
- SaaS companies tired of platform fees eating margins
- Developers wanting full control over their payment stack
- Businesses needing multi-provider payment routing
- Fintech teams building on open-source infrastructure
- Enterprise requiring data sovereignty and self-hosting
Full documentation is available at /docs or at https://openpay.dev/docs:
| Section | Description |
|---|---|
| Quickstart | Get running in 10 minutes |
| First Payment | Process your first test transaction |
| Architecture | System design, event flow, service matrix |
| API Reference | REST endpoints, request/response formats |
| Self-Hosting | Docker setup, env vars, production deploy |
| Security | Key management, encryption, PCI compliance |
| Troubleshooting | Common issues and solutions |
| Webhooks | Event types, retry policy, signature verification |
| Contributing | How to contribute code, docs, or ideas |
- GitHub Discussions — Ask questions, share ideas, get help
- GitHub Issues — Report bugs, request features
- Contributing Guide — Learn how to contribute
- Code of Conduct — Our community standards
MIT — Free to use, modify, and distribute. OpenPay is built for the community, by the community.
Built with ❤️ for the open-source community · MIT Licensed · 100% Free
OpenPay is not affiliated with Stripe, Paystack, Hyperswitch, or Kill Bill.