You Own Your Money
No payment processor takes a percentage of your sales. Your revenue goes directly to your account.
OwnPay is a self-hosted payment gateway. Install it on your server, connect any payment provider, and keep every dollar of your revenue.
Open the OwnPay demo. Browse the dashboard, test the checkout flow, and verify it works - no signup needed.
OwnPay is not a payment processor. It is self-hosted payment infrastructure that puts you in control of every transaction.
No payment processor takes a percentage of your sales. Your revenue goes directly to your account.
Everything runs on your server. Your customers' data never leaves your control.
White-label it completely. Your domain, your logo, your colors. Customers never know OwnPay is behind it.
No vendor contracts. No approval process. Install, connect, collect.
Drop OwnPay onto any PHP server. Takes under 5 minutes.
Choose from the growing list of supported payment gateways. Configure with your credentials.
Share your payment links or embed the checkout. Money goes to your account.
Connect Stripe, PayPal, bKash, Nagad, SSLCommerz, and more. Add new gateways as plugins without touching core code.
Technical features that matter when you are processing real money for real customers.
Every transaction generates balanced ledger entries. Debits always match credits. Your financial records are always audit-ready and reconciliation takes seconds, not hours.
// Balanced ledger entries for every payment
$ledger->record([
'debit' => ['customer_receivable', $amount],
'credit' => ['merchant_revenue', $amount],
]);
Run multiple stores from a single installation. Each brand gets its own domain, gateways, customers, and team members. One server, unlimited storefronts.
// Resolve brand context from request domain
$brand = BrandContext::fromHost($request->host());
$gateway = $brand->gateway('stripe');
$checkout = $brand->checkoutTheme();
Your customers see your brand on the checkout page. Your domain, your logo, your color palette. The word OwnPay never appears in the customer experience.
// Custom domain checkout with merchant branding
https://pay.yourbrand.com/checkout/inv-2024-0042
Brand: Your Company Name
Theme: Your brand colors
Domain: Your SSL certificate
Extend OwnPay without modifying core code. The hook system follows WordPress-style action and filter patterns. If you have built a WordPress plugin, you already know how this works.
// Register a hook - familiar WordPress-style API
Hook::on('payment.completed', function ($trx) {
Notification::send($trx->merchant, $trx);
Analytics::track('conversion', $trx->amount);
});
Every feature has an API endpoint. Create invoices, pull transactions, and receive cryptographically signed webhook events. Build mobile apps, dashboards, or custom integrations.
// Retrieve a payment via REST API
GET /api/v1/payments/pay_7Xk9mN2q
// Webhook payload (HMAC-signed)
{
"event": "payment.completed",
"amount": 4999,
"currency": "USD"
}
Real businesses and developers running OwnPay on their own servers.
Running OwnPay on your server? Be the first to showcase your project.
Gateways connect payment providers. Addons add features. Themes customize checkout. Build your own or install community plugins.
The plugin system follows the same patterns as WordPress - if you know one, you already know the other.
123 available
1 available
Customize checkout
WordPress, WooCommerce
I started OwnPay because I believe payment infrastructure should be owned by the merchant, not rented from a corporation. Every business deserves control over where their money flows. Owning your payment stack should not be a privilege reserved for large enterprises with custom engineering teams.Fattain Naime, Creator of OwnPay
OwnPay is made possible by contributors who donate their time, knowledge, and skill.
Elite sponsors fund core maintenance and visibility. Community sponsors keep the project moving with steady support.