MPG logo

Malaysia Payment Gateway (MPG)

Compare the fees of every Malaysian payment gateway: FPX, cards, e-wallets, DuitNow QR and BNPL.
Every number comes from the provider's official pricing page.

Live site 81 gateways Code: MIT Data: CC BY 4.0

MPG homepage with the Malaysian flag waving: every Malaysian payment gateway, compared

## What you get - **81 gateways** with fees taken from each provider's official pricing page, each with a source link and a `verified_date` - **Ranked by real cost**: estimated fee on a RM100 sale, blending FPX, card and e-wallet 50/30/20. Gateways that don't publish comparable rates are listed as "on request", never guessed - **Filters that matter to sellers**: channels, BNM register, API and MCP support, [sign-up without SSM](https://malaysiapg.com.my/best/payment-gateway-without-ssm/) and [same-day payout](https://malaysiapg.com.my/best/fastest-settlement/), each backed by a quote from the gateway's own page - **English and Bahasa Malaysia** on every page - **Free JSON API**: [`/api/gateways.json`](https://malaysiapg.com.my/api/gateways.json), plus `/api/gateways/.json` per gateway - **MCP server for AI agents**: `https://mcp.malaysiapg.com.my/mcp` (source in [`mcp/`](mcp/)) - Guides for merchants and developers at [/learn](https://malaysiapg.com.my/learn/) and [/blog](https://malaysiapg.com.my/blog/)

Gateway table with search, sort, fee columns and filters

## The one hard rule **Fees are never made up.** Every figure comes from an official source URL stored next to it. If a provider does not publish a rate, the entry says `"Contact sales"` (negotiated or unpublished) or `"—"` (not offered). Third-party figures carry a trailing `*` and are left out of rankings. Fees change and are often negotiable by volume, so confirm with the provider before you sign. ## Stack - [Astro 7](https://astro.build/) static output and Tailwind CSS v4. No server, no database - Gateway data is one Markdown file per provider in [`src/content/gateways/`](src/content/gateways/), validated by Zod against [`src/content.config.ts`](src/content.config.ts) - Auth for the contribute flow is Clerk via CDN, client-side only - Deployed on Cloudflare Pages straight from `master` - Standalone MCP server (Cloudflare Worker) in [`mcp/`](mcp/) ## Run it ```bash npm install npm run dev # dev server npm test # vitest (fee parsing, ranking, content rules) npx astro check # types + content schema npm run build # static build (EN + BM pages) npm run preview # preview the built site ``` ## Contributing The most useful contribution: **spot a wrong fee and fix it with an official source.** See [CONTRIBUTING.md](CONTRIBUTING.md): fork, edit the gateway's `.md` file, open a PR. Adding a missing Malaysian gateway is one new file in `src/content/gateways/`, no code needed. The table row, detail page and API entry appear at build. ## Integrating a gateway? The companion repo [afu-it/malaysia-payment-gateway](https://github.com/afu-it/malaysia-payment-gateway) has agent skills for 60+ Malaysian gateways, built from each one's official developer docs: ```bash npx skills@latest add afu-it/malaysia-payment-gateway ``` ## Licensing | What | License | |---|---| | Source code | [MIT](LICENSE) | | Gateway dataset (`src/content/gateways/`, JSON API) | [CC BY 4.0](LICENSE-DATA). Attribute "Malaysia Payment Gateway (malaysiapg.com.my)" | | Provider logos (`src/assets/logos/`) | Trademarks of their owners, used for identification only | ## Author Built by [Afu](https://github.com/afu-it) · [@afwzn on Threads](https://www.threads.net/@afwzn)