Skip to content

own-pay/OwnPay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
OwnPay

Your Gateway. Your Server. Your Rules.

The self-hosted, open-source payment gateway automation platform.

Typing SVG


Release License PHP PRs Welcome

Stars  Forks  Issues  Last Commit


🌐 Website  ·  📖 Docs  ·  🎓 Learn  ·  🧩 Plugins  ·  📰 Blog  ·  ▶️ Demo


Download v0.1.0 Beta   Deploy Guide   Star this repo


ELITE SPONSOR   Namepart   Namepart — Powering open-source fintech infrastructure.   Become a Sponsor →


Note

OwnPay is in Public Beta (v0.1.0). It's stable, hardened (PHPStan level 9 + automated test suite), and ready to self-host today. We're gathering real-world feedback on the road to 1.0tell us what you find.


📑 Table of Contents


💎 What is OwnPay?

OwnPay is an enterprise-grade, self-hosted payment gateway automation platform. It is built for developers, entrepreneurs, and businesses who want absolute sovereignty over their payment infrastructure, customer data, and transaction flows without paying middleman fees or relying on third-party SaaS platforms.

With native support for over 120+ payment gateways, a secure double-entry ledger database, white-labeled multi-brand management, and a sandboxed plugin engine, OwnPay gives you the power of a commercial payment gateway on your own private server.


💎 Why OwnPay?

Most payment platforms make you a tenant on their infrastructure — your data, your customers, and your money flow through a third party you don't control. OwnPay flips that. You run it on your own server, own every record, and answer to no middleman.

Your payment gateway. Your server. Your data. Your rules — forever.

🛡️

Complete Ownership

Your financial infrastructure lives on your server. No middlemen, no third-party access, no vendor lock-in. Ever.

Built for Builders

A clean custom core, a sandboxed plugin system, and a full REST API — engineered for developers who demand control.

🌍

Open & Community-Driven

AGPL-3.0 licensed and free forever. Transparent, auditable, and shaped by the community that runs it.


✨ Features

💳 Payments & Checkout

  • 120+ payment gateway integrations (plugin-based)
  • Manual & API gateways + express checkout
  • Hosted checkout, payment links, invoices & payment intents
  • Refunds with atomic, balance-validated reversals
  • Multi-currency with automatic conversion

🏢 Multi-Brand by Design

  • One owner, many brands (stores) — fully isolated
  • Per-brand domains, gateways, customers & ledgers
  • White-label custom-domain checkout
  • Per-brand theming — logo, colors, custom CSS/JS

🔐 Security & Accounting

  • Double-entry ledger engine (bcmath precision)
  • AES-256-GCM PII encryption · Argon2id passwords
  • CSRF, strict CSP, rate limiting, SSRF guards
  • Staff RBAC — granular roles & permissions

🧩 Platform & Operations

  • Sandboxed plugin/addon system + domain hook engine
  • Mobile companion app — device pairing, JWT, SMS verification
  • Full i18n — admin panel and customer checkout
  • REST API (merchant / mobile / admin) + webhooks
  • Signed, atomic, rollback-safe self-update engine
Browse the full gateway & add-on catalog at plugin.ownpay.org.

⚡ How It Works

flowchart LR
    M["🏪 Merchant / Store"] -->|Create payment| O["⚙️ OwnPay Core"]
    O -->|White-label checkout| C["👤 Customer"]
    C -->|Pays via| G["💳 Gateway / MFS"]
    G -->|Callback + webhook| O
    O -->|Verified result + ledger entry| M
Loading

OwnPay sits on your server between your store and the world's payment providers. It renders a branded checkout, routes the payment through the gateway the customer chose, verifies the result (checksum + signature + webhook), books a double-entry ledger record, and notifies your store — all without a third party ever touching your data.

Want the deep dive? Read the Architecture Guide →


🚀 Deploy to Your Server

OwnPay ships as a self-contained release archive — the same zip works on shared hosting, a VPS, or a dedicated server, and doubles as the installer. No build step required.

Requirements: PHP 8.3+ (bcmath, json, mbstring, openssl, pdo_mysql, curl) · MySQL 8 / MariaDB 10.4+ · HTTPS strongly recommended.

🌐 Shared Hosting (cPanel / DirectAdmin — no SSH needed)
  1. Download the latest ownpay-x.y.z.zip release.
  2. In your hosting File Manager, upload and extract it into your site directory.
  3. Create a MySQL database + user and note the credentials.
  4. Point your domain's document root to the public/ folder (or extract so public/ maps to your web root).
  5. Visit your domain — the /install wizard checks requirements, writes .env, imports the schema, and creates your admin account.

That's it. Dependencies (vendor/) are bundled in the release, so Composer is not required on the server.

🖥️ VPS / Dedicated Server (Nginx or Apache + PHP-FPM)
# 1. Get the release (or git clone for source installs)
cd /var/www
curl -L -o ownpay.zip https://github.com/own-pay/OwnPay/releases/latest/download/ownpay.zip
unzip ownpay.zip -d ownpay && cd ownpay

# 2. (Source installs only — release zips already bundle vendor/)
# composer install --no-dev --optimize-autoloader

# 3. Make runtime dirs writable by the web server
chown -R www-data:www-data storage public/assets/uploads

Point your web server's root at public/ and route all requests to public/index.php. An Apache .htaccess is included; an nginx.conf.example ships in the repo root. Then open your domain and complete the /install wizard.

📖 Full production deployment, hardening & scaling docs → docs.ownpay.org

🧑‍💻 Run Locally / Contribute

Testing OwnPay or contributing? Get a local instance running in ~2 minutes on Windows, macOS, or Linux:

git clone https://github.com/own-pay/OwnPay.git
cd OwnPay
composer install
mysql -u root -p -e "CREATE DATABASE ownpay CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
php -S localhost:8000 -t public      # then open http://localhost:8000 → /install wizard

🛠️ Full local guide (Laragon · Herd · native · tunnels · troubleshooting): docs/LOCAL_SETUP.md 🤝 Ready to contribute? Start with CONTRIBUTING.md — coding standards, workflow & PR process.

Run the same checks CI does before opening a PR:

composer test       # PHPUnit
composer analyse    # PHPStan (level 9)
composer lint       # Twig + JS + CSS

🏗️ Tech Stack

Tech Stack

⚙️ Backend

Component Technology
Language PHP 8.3+  ·  Strict Types
Database MySQL 8.x / MariaDB 10.4+
Package Manager Composer v2
Migrations Custom SQL migrations
DI Container PSR-11  ·  Custom  ·  Auto-wiring
API REST (JSON)  ·  Webhook callbacks

🔐 Security & Quality

Feature Details
Field Encryption AES-256-GCM
Password Hashing Argon2id
Templating Twig 3.x  ·  Server-rendered
Frontend Vanilla CSS + JS  ·  No build step
Static Analysis PHPStan Level 9
Deployment Shared  ·  VPS  ·  Dedicated
No heavyweight framework — a small, readable, first-party core. Why? See the FAQ.

📚 Documentation & Ecosystem

Resource Where What you'll find
🌐 Website ownpay.org Product overview & download
📖 Developer Docs / API docs.ownpay.org REST API reference
🎓 Learn / Guides learn.ownpay.org Step-by-step tutorials, how-tos, deployment & integration
🧩 Plugins plugin.ownpay.org Gateway & plugins catalog
📰 Blog & Updates blog.ownpay.org Releases, changelog & announcements
▶️ Live Demo demo.ownpay.org Try it without installing

In this repository: Architecture · Local Setup · Translations · Contributing · Roadmap · Security · Support · Governance · Code of Conduct


❓ FAQ

What's the current project status?

OwnPay is available as Public Beta v0.1.0 — feature-complete, security-hardened, and ready to self-host. We're collecting real-world feedback on the path to a 1.0 stable release. Grab the latest release to get started.

What does "Public Beta" mean for production use?

It's stable and usable today. For production, pin to a tagged release, test in staging first, keep backups, and follow the hardening notes in the docs. OwnPay handles real money — correctness and security are the top priorities on the road to 1.0, and your issue reports directly shape it.

Why a custom framework instead of Laravel or Symfony?

OwnPay is built around requirements off-the-shelf frameworks don't solve cleanly — multi-brand domain isolation, a sandboxed plugin execution model, and a domain-specific hook engine. A full framework would mean fighting its conventions rather than leveraging them. The custom core gives us full control of the boot pipeline, zero dead code, and a security surface we own end-to-end.

Can I run it on cheap shared hosting?

Yes. The release archive bundles all dependencies, so no SSH or Composer is needed on the server — upload, point your domain at public/, and run the installer. You just need PHP 8.3+ and a MySQL/MariaDB database.

How do I add a new payment gateway?

Gateways are plugins. Add a directory under modules/gateways/<slug>/ with a manifest.json and an adapter implementing GatewayAdapterInterface. See the gateway guide on plugin.ownpay.org and the architecture overview in docs/ARCHITECTURE.md.

Do you accept sponsors and donations?

Yes — and they keep the project alive. Sponsorships fund infrastructure, developer time, and security tooling. Visit ownpay.org/donate or email ping@ownpay.org.


🗺️ Roadmap

OwnPay is shipping toward a stable 1.0. Highlights on the horizon: a public live demo, an expanded plugin marketplace, mobile companion app GA, and deeper deployment tooling.

➡️ See the full ROADMAP.md for what's planned, in progress, and shipped.


💛 Sponsors

OwnPay is made possible by the generous support of our sponsors.


⚡ Elite Sponsor


Namepart



🤝 Community Sponsors


Hostever      FlexoHost      Hostazy      Bangla Hoster      HostSite24      Rayan Hoster

Want your logo here?  →  Become a Sponsor


👥 Contributors

Core Team & Key Roles

Contributor Role Profile / Website
Fattain Naime Lead Developer & Maintainer iamnaime.info.bd
Tahira Akter Hira Logo & Brand Design LinkedIn
M Azmain Israq UI/UX Designer azmain.pp.ua
Hamidullah Ismail Features and Reviewer Facebook

Code Contributors

OwnPay Contributors



Contributions of every kind are welcome — see CONTRIBUTING.md.


💬 Community & Support

Website  Docs  Learn  Blog

Facebook Page  Community Group  Email  Donate

Need help? Read SUPPORT.md for the best place to ask. Please don't use the issue tracker for support questions.

📈 Star History

Star History Chart

⭐ Star OwnPay to follow the road to 1.0 — and be notified of every release.


🛡️ Security

Security is foundational to OwnPay. If you discover a vulnerability, please do not open a public issue.

Report it privately to security@ownpay.org — full policy in SECURITY.md. We're grateful to everyone who helps keep the community safe.


⚖️ License

OwnPay is distributed under the GNU Affero General Public License v3.0 (AGPL-3.0). The core platform is, and will always remain, free and open source.


ownpay.org  ·  docs  ·  learn  ·  plugins  ·  blog  ·  demo  ·  ping@ownpay.org



Built by the community, for the community. ❤️


#OwnPay   #OpenSource   #SelfHosted   #PaymentGateway   #Fintech   #DataSovereignty

About

Self-hosted, open-source payment gateway automation platform. Manage brands, gateways, and transactions on your own infrastructure.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors