iyzico Payment for Magento 2

Accept cards through iyzico's hosted Checkout Form, with verified payment results, installments, payment recovery and online refunds.

  • Magento 2.4.7 – 2.4.9
  • PHP 8.2 – 8.5
  • Hyvä and Luma
  • Version 1.1.0

Free

No payment needed, with 12 months of updates.

Add it to your cart and complete the free checkout. Your ZIP downloads and Composer access will be in your account.

What is included

  • Install with Composer, or download a zip from your account
  • Licence for one production domain, staging and development copies included

No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details

Key features

  • iyzico Checkout Form by redirect or in a frame on your page
  • Card details never reach your store (PCI SAQ A)
  • Results fetched from iyzico's API and checked before capture
See all features

Composer package commercegears/module-iyzico-payment

iyzico Payment Free

Let customers complete card payment on iyzico's hosted form after placing an order. Choose a redirect or an embedded payment-page frame. Magento retrieves and validates the payment result from the API before recording a successful payment, and supports the provider's fraud-review workflow.

What you can do

  • Hosted card entry. Use a redirect or hosted frame rather than collecting card data.
  • Verified results. Validate identifiers, currency, amount and response signature.
  • Recovery controls. Use callbacks, webhooks and payment-status recovery.
  • Refund workflow. Submit online refunds from Magento credit memos.

How it works

  1. Place order. Reserve the order in Pending Payment.
  2. Pay securely. Open iyzico's hosted Checkout Form.
  3. Verify. Check the API result before invoicing and updating the order.

Getting started

Requires an iyzico merchant account and API/secret keys. Choose sandbox or live mode, payment-page layout and currency restrictions, then test success, decline, callback recovery and refunds. Luma and Hyvä payment-page templates are included; this is a hosted Checkout Form integration.

Install with Composer using composer require commercegears/module-iyzico-payment, then run bin/magento setup:upgrade. Composer installs the required CommerceGears dependencies: commercegears/module-core ^2.0.

Scope and compatibility

No direct card form, pre-authorisation/later capture, sub-merchant marketplace flow, multishipping or admin-created orders. Installment charges are not added to Magento totals, and installment availability depends on iyzico. If a multi-item refund partly fails, reconcile the completed refund using an offline credit memo.

Release 1.0.0; Magento ; PHP . Read the included user guide and test your own theme, checkout and integrations before production use.

  • Never trusts the browser

    The store asks iyzico's API for the result and registers a payment only when the status, order number, currency, amount and response signature all match the order.

  • Customers keep their basket

    When a card is declined, 3-D Secure fails or the customer comes back without paying, the order is cancelled, the basket restored and a clear message shown, so they can try again.

  • No order left behind

    Every 5 minutes a cron job asks iyzico about orders still waiting: paid ones are invoiced, unpaid ones cancelled, payments still under way kept.

All features

What is included

Checkout

  • Redirect to iyzico's payment page (any theme) or iyzico's form in a frame (Luma and Hyvä)
  • Payment page language from the store view, or fixed Turkish or English
  • Installment counts can be limited, for example 1, 3 and 6
  • Currencies TRY, USD, EUR, GBP, NOK and CHF
  • Reopening the payment page reuses the open form instead of starting a second payment

Payment safety

  • Result checked against order number, currency, amount and response signature
  • Per-order lock: callback, webhook, cron and admin never invoice an order twice
  • A second or late payment for a paid or cancelled order is given back automatically
  • A waiting order cannot be cancelled while iyzico has a payment for it
  • Merchant notifications (webhook) with X-IYZ-SIGNATURE-V3 check, used only to ask iyzico again

After the payment

  • Invoice captured with the iyzico payment ID, order e-mail sent after payment
  • Fraud reviews held in Payment Review and finished when iyzico decides
  • Online refunds per basket item, installment charge refunded in proportion
  • Optional installment table on product pages for TRY prices

Admin and developers

  • Test Connection button and the notification URL in the settings
  • Keys stored encrypted, separate log file with personal data masked
  • CLI: bin/magento commercegears:iyzico:check
  • REST endpoints that return the payment page URL for headless stores
  • Own ACL permissions for transactions, status checks and settings

Live demo

Try it before you install it

A full Magento store with the module installed, on Luma and on Hyvä. The admin demo signs you in with one click.

Compatibility

Requirements and compatibility

Compatibility of iyzico Payment
Magento2.4.7 – 2.4.9
PlatformsMagento Open Source and Adobe Commerce
Storefront themes Luma Blank Hyvä
PHP8.2 – 8.5
Latest version 1.1.0
composer.json requires php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 ext-json * magento/framework ~103.0.7 commercegears/module-core ^2.0 free, installed by Composer with this module magento/module-backend * magento/module-catalog * magento/module-checkout * magento/module-config * magento/module-customer * magento/module-directory * magento/module-payment * magento/module-quote * magento/module-sales * magento/module-store * magento/module-ui *

Installation

Up and running in minutes

Get it free, create a Composer key in your account, then in the root of your Magento project:

  1. 01Add the repository and your key (once per project)

    composer config repositories.commercegears composer https://repo.commercegears.com
    composer config --auth http-basic.repo.commercegears.com PUBLIC_KEY PRIVATE_KEY
  2. 02Install the module

    composer require commercegears/module-iyzico-payment
  3. 03Enable it

    bin/magento setup:upgrade
    bin/magento setup:di:compile
    bin/magento setup:static-content:deploy
    bin/magento cache:flush

    The last three are only needed in production mode.

Prefer a zip? Every version you are entitled to can be downloaded from My modules. More about Composer access

User guide

Setting up iyzico Payment

The user guide has its own page: how to install iyzico Payment, what each option does and how to use it in your store. Written for version 1.1.0; a copy ships with the module.

In the guide

Read the user guide

Changelog

Release notes

1.1.0

Latest

New: German translation of the checkout and payment texts.

1.0.1

  • Fix: valid API keys were refused by iyzico, so Test Connection and payments failed.
  • Fix: orders whose customer left the 3-D Secure page are cancelled after 3 hours instead of waiting.
  • Improvement: a failed 3-D Secure check now tells the customer so, instead of a general bank message.
  • Improvement: the transactions grid marks payment forms of unpaid, cancelled orders as failed.

1.0.0

  • New: first release with iyzico Checkout Form payments by redirect or in a frame (Luma and Hyvä).
  • New: payments verified before capture; declined and abandoned orders cancelled, basket restored.
  • New: fraud reviews, lost callbacks and duplicate payments handled automatically.
  • New: online full and partial refunds from credit memos, and a transactions grid with CSV export.
  • New: optional installment table, REST endpoints for headless stores, English and Turkish.

FAQ

Questions, answered

Something else on your mind? The developers who wrote the module answer before and after you buy.

Ask a question →

Already installed it? Open a support ticket

What kind of iyzico account do I need?

A standard iyzico merchant account (not a marketplace or sub-merchant account). You need its API key and secret key from the iyzico merchant panel (Settings > Merchant Settings). Sandbox keys start with "sandbox-"; live and sandbox keys are different. The module does not create iyzico accounts.

Do card details pass through my store?

No. The customer types the card on iyzico's own Checkout Form, either on iyzico's payment page or in a frame on your page. The store only receives a token and then reads the result from iyzico's API, so no card number ever reaches Magento (PCI SAQ A).

Redirect or "On this store's page": which should I use?

Both show iyzico's own form. Redirect (the default) sends the customer to iyzico's payment page and works with every theme. "On this store's page" shows the same form in a frame between your header and footer (Luma and Hyvä templates); only iyzico's payment page domain is added to the Content Security Policy and no iyzico script runs on your pages.

Which currencies are supported?

TRY, USD, EUR, GBP, NOK and CHF. The method is only offered when the basket currency is one of these. Note iyzico's rule for currencies other than TRY: they are only accepted from cards issued outside Türkiye (Turkish cards are refused by iyzico's form), and your iyzico account must be allowed to take foreign cards and that currency.

How do I know a payment is genuine?

The store never trusts the browser. After the customer returns, it fetches the result from iyzico's API and registers the payment only when iyzico reports success and the order number, currency, amount and response signature all match. Only then is the invoice captured (transaction ID = iyzico payment ID), the order moved to Processing and the order e-mail sent.

What happens when a card is declined or the customer gives up?

The order is cancelled (stock released), the basket is restored and the customer sees a clear message, for example "Your card does not have enough limit or balance for this payment" or "The 3-D Secure verification was not completed". The raw iyzico code is kept in the transactions grid and the log for you. The customer can pay again with any payment method.

What if the customer closes the tab after paying?

A cron job runs every 5 minutes and asks iyzico about orders still waiting after "Cancel Unpaid Orders After" (default 60 minutes). Paid orders are invoiced, unpaid ones cancelled. Payments still under way (bank transfer, shopping credit) are kept. A card payment left in 3-D Secure is treated as unpaid once the order is 3 hours old. You can also press "Check Status at iyzico" on the order, or run bin/magento commercegears:iyzico:check <order number>.

Can I refund from Magento?

Yes. Create a credit memo from the invoice and press Refund: full, partial and several partial refunds, including shipping and adjustments, are refunded online at iyzico. A full refund on the day of the payment uses iyzico's cancel, so nothing appears on the card statement. Nothing is recorded as refunded unless iyzico confirmed it.

Are installments supported?

Yes, through iyzico's form: the customer picks an installment option there. You can limit the counts offered (for example 1, 3 and 6); rates are managed in the iyzico panel. Installments are generally available for TRY payments only. An optional "Installment Options" table on product pages is shown for TRY prices. An installment charge paid by the customer is shown in the iyzico panel and noted on the order; it is not added to Magento's order totals.

Why does iyzico need an identity number?

iyzico requires the buyer's T.C. Kimlik No. Map the customer or address attribute that holds it in "T.C. Kimlik No Attribute"; only a valid number (11 digits with checksum) is sent. Without a mapping, the number set in "Identity Number When None Is Given" (default 11111111111) is sent, and the admin is told so on each order.

Do I need to set up iyzico's merchant notifications?

It is recommended. Register the Merchant Notification URL shown in the settings in the iyzico panel and ask iyzico to switch on signed notifications (X-IYZ-SIGNATURE-V3). A notification only makes the store ask iyzico again; nothing in it is trusted. Without notifications the callback and the cron job still finish every order.

Does it work with Hyvä and headless stores?

Yes. On Hyvä the checkout is the Luma checkout fallback; the payment and result pages have Hyvä templates. Headless stores can place the order and then get a signed payment page URL from the REST API.

Can I try it?

Yes, on the demo store: add a product to the basket and choose "Credit / Debit Card (iyzico)" at checkout. The demo uses the iyzico sandbox and GBP, so pay with the sandbox card 4054 1800 0000 0007 (any future expiry date, any CVC) and enter the code the sandbox 3-D Secure page shows. Nothing is charged.

Support

Help from the developers who wrote it

From the blog

Guides and articles