Your Checkout Speaks Visa. Indonesia Speaks QR Code.
GoPay. ShopeePay. QRIS. Bank transfers. Cash at the corner store. Midtrans puts every one of them on your Joomla ecommerce checkout — so Indonesian shoppers stop bouncing off a wall built for someone else's country.
How Indonesia Actually Pays — Built Into Your Checkout
Every method your shoppers already trust. Every action you need, right from the order screen.
E-Wallets and QR, Handled
GoPay, ShopeePay, and QRIS at checkout — the payment apps already open on your shopper's phone become a real way to buy from you.
Bank Transfer, Their Way
Virtual accounts across BCA, BNI, BRI, CIMB, Permata, and more — the shopper who trusts their banking app gets a number and transfers, no card required.
Pay Cash at the Corner Store
Alfamart and Indomaret codes let the shopper with no bank account walk in and pay cash against a barcode. Sale saved, no bank required.
Card Numbers Never Touch Your Server
The on-site card form tokenizes in the shopper's browser before anything reaches your store. Your liability doesn't grow just because you take cards.
Authorize Now, Capture When You Ship
Reserve the money at checkout and take it for real only when the order actually goes out the door — perfect for made-to-order and pre-order goods.
The Full Order Lifecycle, One Screen
Capture, void, expire, approve, deny, refund, and refresh status — every payment action lives right on your order, not in someone else's dashboard.
Refunds That Check Their Own Math
Every refund is checked against the real remaining balance first — never more than what's left, never sent twice, even if the button gets clicked again.
Saved Cards for Repeat Shoppers
Signed-in customers store a card once and never re-type it again — faster checkout every single time they come back.
Subscriptions That Bill Themselves
Recurring orders charge automatically on whichever schedule you choose — your store's calendar or the gateway's, never both at once.
Pick Your Checkout: Hosted, or Built Into Your Page
Two ways to take payment, and the choice decides which features unlock. Hand the whole screen to Midtrans for the fastest setup, or build the card form directly into your own checkout for tighter control and repeat-customer conveniences.
- Hosted screen covers every activated method automatically
- On-site card form unlocks saved cards and subscriptions
- Popup, redirect, or embedded — you choose how the screen opens
Manage Every Payment Without Leaving Your Order Screen
Capture an authorized payment when you're ready to ship. Void it before it settles. Expire a virtual account nobody ever paid. Approve or deny a transaction flagged for fraud review. Refund in full or in part — with every action checking the live status first, so a stale button can never push through a change the gateway would reject.
- Seven actions, one screen, zero dashboard logins
- Refund math checked against the real balance every time
- Status refresh pulls the current answer on demand
Real-World Use Cases
Stop Losing Indonesian Shoppers to a Checkout That Only Speaks Visa
GoPay, QRIS, virtual accounts, and cash at the corner store — all in one plugin. Yeah. We do that.
Translated In The Following Languages
Arabic Unitag (ar-AA), Chinese, Traditional (zh-TW), Danish (da-DK), Dutch (nl-NL), English (en-GB), English, USA (en-US), Finnish (fi-FI), French (fr-FR), German (de-DE), Greek (el-GR), Hebrew (he-IL), Italian (it-IT), Japanese (ja-JP), Norwegian Bokmål (nb-NO), Persian Farsi (fa-IR), Polish (pl-PL), Portuguese, Brazil (pt-BR), Portuguese, Portugal (pt-PT), Russian (ru-RU), Spanish (es-ES), Swedish (sv-SE), Turkish (tr-TR)
License Information
An active license entitles you to updates, downloads, and support for the duration of the license period. You may continue using this plugin indefinitely without an active license; however, support, updates, and downloads will not be available while your license is inactive.
- Developer J2Commerce
- Extension Type Apps
- J2Commerce Version 6.x
- Joomla Version 6.x
Arabic Unitag
Chinese, Traditional
Danish
Dutch
English
English, USA
Finnish
French
German
Greek
Hebrew
Italian
Japanese
Norwegian Bokmål
Persian Farsi
Polish
Portuguese, Brazil
Portuguese, Portugal
Russian
Spanish
Swedish
TurkishDeletion Remove the unused webhook event subscription and the handler it pointed at
Fix Only a gateway verdict that proves a refund did not happen now retires its refund key; a 5xx, a timeout or a replayed key leaves the key reusable so the next attempt cannot pay the customer a second time
Fix An unconfirmed refund attempt is reused only for the SAME amount; asking for a different one is refused with an explanation instead of silently substituting the earlier figure
Fix A partial refund no longer moves the order to the refunded end status from either the admin action or the webhook; only a refund that clears the balance does
Fix Each refund leg is capped to the amount Midtrans actually charged, so whole-rupiah rounding on a split refund can no longer make the final leg be rejected outright
Fix A refund the gateway accepted but the order ledger did not record now says so and tells the operator not to retry, instead of reporting a plain success
Fix Admin and checkout responses are now read with a balanced-brace JSON extractor, so stray PHP output either before OR after the payload no longer reports a completed refund or charge as a network error
New Feature Initial J2Commerce 6 release for the Midtrans gateway (Indonesia, IDR)
New Feature Snap hosted checkout in popup, redirect and embedded display modes
New Feature Core API on-site card form with browser-side tokenization and 3-D Secure
New Feature Saved cards, one-click reuse and merchant-initiated subscription renewals
New Feature Order-view actions: capture, void, expire, full and partial refund
New Feature HTTP notification webhook with SHA-512 signature verification
New Feature Fraud-hold review with approve and deny actions
New Feature Payment-method update surface: vault a card without charging it
New Feature Admin credential probe and gateway status refresh
New Feature Bank transfer, GoPay, ShopeePay, QRIS and over-the-counter methods
Improvement Order status only ever moves forward; a late notification cannot undo a paid order
Improvement Every money value is re-resolved server-side; no client-supplied amount is trusted
Improvement Refunds are clamped to the amount still refundable and carry a stable refund key
Improvement Card details are tokenized in the browser; no card number reaches the store
Improvement Bootstrap 5 and UIkit template variants for every shopper-facing layout
Update Requires Joomla 6.x, J2Commerce 6.x and a Midtrans merchant account
Update Refunds become available once Midtrans settles a card payment, usually the next day
Fix Only a gateway verdict that proves a refund did not happen now retires its refund key; a 5xx, a timeout or a replayed key leaves the key reusable so the next attempt cannot pay the customer a second time
Fix An unconfirmed refund attempt is reused only for the SAME amount; asking for a different one is refused with an explanation instead of silently substituting the earlier figure
Fix A partial refund no longer moves the order to the refunded end status from either the admin action or the webhook; only a refund that clears the balance does
Fix Each refund leg is capped to the amount Midtrans actually charged, so whole-rupiah rounding on a split refund can no longer make the final leg be rejected outright
Fix A refund the gateway accepted but the order ledger did not record now says so and tells the operator not to retry, instead of reporting a plain success
Fix Admin and checkout responses are now read with a balanced-brace JSON extractor, so stray PHP output either before OR after the payload no longer reports a completed refund or charge as a network error
New Feature Initial J2Commerce 6 release for the Midtrans gateway (Indonesia, IDR)
New Feature Snap hosted checkout in popup, redirect and embedded display modes
New Feature Core API on-site card form with browser-side tokenization and 3-D Secure
New Feature Saved cards, one-click reuse and merchant-initiated subscription renewals
New Feature Order-view actions: capture, void, expire, full and partial refund
New Feature HTTP notification webhook with SHA-512 signature verification
New Feature Fraud-hold review with approve and deny actions
New Feature Payment-method update surface: vault a card without charging it
New Feature Admin credential probe and gateway status refresh
New Feature Bank transfer, GoPay, ShopeePay, QRIS and over-the-counter methods
Improvement Order status only ever moves forward; a late notification cannot undo a paid order
Improvement Every money value is re-resolved server-side; no client-supplied amount is trusted
Improvement Refunds are clamped to the amount still refundable and carry a stable refund key
Improvement Card details are tokenized in the browser; no card number reaches the store
Improvement Bootstrap 5 and UIkit template variants for every shopper-facing layout
Update Requires Joomla 6.x, J2Commerce 6.x and a Midtrans merchant account
Update Refunds become available once Midtrans settles a card payment, usually the next day
You may also be interested in these products
Stay Updated
Subscribe for free and be the first to know about the latest features, updates, and new additions.