Iran's #1 Payment Gateway. Now Built to Last.
Your Iranian shoppers trust ZarinPal. The J2Commerce plugin hits the correct live endpoint, handles Rial and Toman, and ships with the official SDK — so your checkout actually works.
Everything Your Iranian Checkout Needs
Sixteen real features. One correctly wired ZarinPal integration. No dead hosts, no currency guesswork, no abandoned-plugin nightmares.
Official ZarinPal SDK — Live Host
Ships with the SDK that ZarinPal themselves maintain, pointed at the correct live payment endpoint. No dead hosts. No abandoned forks. Payments reach ZarinPal the first time, every time.
Sandbox Testing
One toggle switches the entire plugin to ZarinPal's sandbox environment. Separate credential fields for live and test — no risk of mixing them. Test your full checkout before your first real order ships.
Rial (IRR) and Toman (IRT)
You choose the currency unit — the plugin handles the conversion. The amount sent at checkout is the same amount confirmed on return. No silent math errors. No rejected payments.
Double-Finalize Guard
Browser back buttons, page reloads, retry requests — this plugin checks whether an order is already confirmed before processing again. One confirmation. Nothing fires twice. Quietly protecting every order.
Refund, Inquiry & Reverse
Process refunds through ZarinPal's API when you configure your Access Token. Look up any transaction by reference. Void an unpaid payment before capture. All from J2Commerce — no manual portal visits.
Gateway Surcharge
Pass ZarinPal's transaction fee to the customer as a named line item in the cart. Percentage, fixed, or a combination of both. Optional tax class assignment. Transparent at checkout — not a surprise on the receipt.
Geo-Zone Restrictions
Show ZarinPal only to customers with Iranian billing addresses — or any geo-zone you configure. International shoppers see appropriate payment methods. Iranian shoppers see ZarinPal. Nobody gets confused.
Order Total Limits
Set a minimum and/or maximum subtotal for ZarinPal availability. Apply it only within the order ranges that make business sense for your store — and let the right payment method handle everything else.
Persian + English Language Files
Full Farsi (fa-IR) translation shipped out of the box, alongside American and British English. Every customer-facing message — selection, confirmation, error, cancellation — is translatable. Your store speaks your customers' language.
The Correct Host. Not the Dead One.
Every ZarinPal plugin for Joomla that existed before this one used an outdated API endpoint — one that ZarinPal retired. Payments failed silently. Store owners found out when the orders stopped. This plugin ships with the official SDK that ZarinPal maintains, using the live endpoint that ZarinPal themselves update when the gateway changes.
- Official ZarinPal SDK — not a five-year-old fork
- Correct live payment endpoint — automatically
- Sandbox environment wired to ZarinPal's real sandbox
- Automatic updates keep you current with gateway changes
Rial vs Toman — This Time It's Configurable
The old plugin had a hard-coded divide-by-10 buried in its logic. If your store was in Rial, it sent Toman to ZarinPal. If it was in Toman, the amounts were off by a factor of ten — and ZarinPal's verify call rejected them. Now you set the currency once in the admin panel, and the plugin handles the conversion correctly in both directions.
- IRR (Rial) and IRT (Toman) — your choice
- Amount stored at request time — used exactly at verify time
- No silent math. No amount mismatches. No rejected payments.
Beyond Checkout — Refund, Inquire, Reverse
A payment plugin that can only take money is half a payment plugin. When you configure your ZarinPal Access Token, the plugin gains the ability to process refunds through the ZarinPal API — no portal login required for routine operations. Inquiry looks up any payment by its reference. Reverse voids an unpaid authorization before funds move.
- Refund with reason code — customer request, duplicate, or other
- Inquiry: look up any transaction's status by reference
- Reverse: void an unpaid payment before capture
- Transaction history query with filters (status, card, email, mobile)
Real-World Use Cases
Your Iranian Checkout Deserves Better Than a Dead Host.
The official SDK. The correct endpoint. Rial and Toman handled properly. Full Farsi translation. Refund support. Sandbox testing. Everything a real ZarinPal integration for Joomla ecommerce should have been all along. Yeah. We built that.
Translated In The Following Languages
English (en-GB), English, USA (en-US), Persian Farsi (fa-IR)
License Information
You can use this extension as long as you wish. Special license entitles you to downloads and updates for J2Store version 4.x.
- Developer J2Commerce
- Extension Type Payment
- J2Commerce Version 6.x
- Joomla Version 6.x
English
English, USA
Persian FarsiImprovement Patch version bump (no functional changes)
Update Requires Joomla 6.x + J2Commerce 6.x + a ZarinPal merchant account
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.