self-hosted payment gateway software

Unify local wallets and card payments without hiding the seams

A multi-gateway checkout can offer local e-wallets and cards under one storefront, but provider coverage, payment states and settlement still need separate planning.

By Dietrich Rust·October 24, 2026·4 min read
What matters here
  1. DANA and Touch 'n Go support must be verified with the chosen provider and OwnPay plugin before promising either at checkout.
  2. OwnPay can connect gateway plugins in one self-hosted stack, but payment providers may still charge their own fees.
  3. Keep each provider's pending, failed and confirmed states distinct until its payment outcome is verified.

Offering a familiar local wallet alongside card payments is a checkout design problem, not just a plugin-installation task. A merchant serving Southeast Asia may want DANA or Touch 'n Go for local buyers, with Stripe or another card gateway for international orders. One web checkout can present those choices, but the providers behind them do not become interchangeable.

OwnPay is open-source, self-hosted payment gateway software for PHP servers. It connects payment providers through gateway plugins, exposes REST API endpoints and cryptographically signed webhooks, and includes a double-entry ledger. The OwnPay platform cut is 0%; that does not remove fees set by payment providers, banks or wallet operators.

Start with provider coverage, not the checkout mock-up

First, list the payment methods you intend to offer by market. For each one, identify the provider that will process it, the countries and currencies it supports, and the merchant eligibility and settlement terms. DANA and Touch 'n Go are not among the named integrations in OwnPay's homepage materials, so do not assume that either is available as an installed plugin. Check the current plugin catalog and documentation, and confirm coverage with the provider before advertising the method.

The same diligence applies when a gateway says it supports a wallet: check whether that means a direct integration, a wallet offered through an acquiring partner, or a different payment flow. Confirm that the merchant can receive the funds in the intended country and currency. A method appearing in a checkout is not proof that settlement works for your business.

Build a small compatibility matrix before coding: market, displayed method, gateway plugin, currency, provider account requirements and settlement destination. Stripe, PayPal, bKash and Nagad are among the examples named on OwnPay's homepage. Their presence there is not a promise that every method works in every country or under every merchant account.

Give the customer one clear choice

Design the checkout around customer-facing payment methods, then map each choice to a provider that can actually process it. Keep labels specific: a card option should not imply wallet support, and a local wallet should only appear when the order's market and the merchant's provider configuration allow it.

OwnPay supports white-label checkout with merchant branding and custom domains, and its multi-brand architecture can manage multiple storefronts. That can help a merchant keep separate storefront identities while operating from one installation. It does not remove the need to decide which gateway belongs to which storefront or market. The earlier guide on mapping storefront identities to domains and gateway lists is useful background before combining them.

Keep the payment choice and the eventual provider transaction linked in your own application logic. Record enough information to identify the order, selected method and provider reference. Do not treat a customer's return to the shop as conclusive evidence of payment; use the provider's verified result and reconcile it with the order.

Keep payment states separate

Different payment methods can have different timing and confirmation behavior. A card authorization, a wallet redirect and a delayed provider notification are not the same event. Model pending, confirmed, failed and reversed outcomes distinctly in the store's order flow. Avoid automatically sending a customer to a second provider after an uncertain result: the first attempt may still complete, creating a duplicate charge or an order with conflicting records.

OwnPay's REST API and signed webhooks provide integration points for custom applications. Treat webhook verification and duplicate-event handling as part of the integration, not optional cleanup. Test the full path for each provider: checkout selection, provider response, order update, webhook receipt and ledger entry. Include delayed and failed outcomes in the test plan, and compare the resulting records against provider reports.

Routing work also deserves explicit rules. A useful comparison is Autonix Lab's practical multi-acquirer routing stack, which gives context for thinking about how multiple acquirers fit together. For a wallet-and-card checkout, begin with a simpler rule: route only to a provider confirmed to support that method and market. Add fallback behavior only when you can determine whether the original attempt is still live.

Reconcile the stack before launch

Use the OwnPay ledger to review the recorded payment activity, but do not assume that a balanced ledger alone proves that provider settlement matches your bank deposits. Compare internal transactions with provider statements and settlement reports. The ledger's double-entry structure gives finance and engineering a consistent record to investigate; provider fees, refunds and settlement timing still need to be accounted for.

Finally, check the checkout's data flow and security scope. Self-hosting does not by itself settle what data reaches the PHP server or what obligations apply to the payment page. The guide on tokenization and the remaining PCI scope is relevant when assessing a card flow. Test each payment method in the provider's supported environment before launch, then monitor webhook delivery and reconcile transactions routinely.

A unified checkout is worthwhile when it reduces customer confusion without concealing operational differences. OwnPay can provide the self-hosted gateway layer and plugin connections; the merchant still has to verify wallet availability, provider terms, payment states and settlement for every market it serves.

More from OwnPay News