Turkish Bank Virtual POS Modules
Configure Turkish bank virtual POS modules and check their account, installment, test and refund requirements.
Reaching the Screen
Open Settings → Financial → Payment Gateways → All Modules and select your bank. {admin}/modules/payment?module=Garanti
What Is on the Screen
Each bank has its own form. Akbank and AkbankPayten use different credentials. Card storage, automatic payments and subscriptions are unavailable.
Before You Configure It
Obtain a virtual POS agreement, merchant approval, API user and 3D access from your bank. Request distinct test credentials and confirm the module’s protocol and endpoints. Saved values are not usable test credentials.
Fields
Bank-specific labels remain Turkish in both panel languages. Unless marked optional, enter your bank-issued values; there are no ready-to-use account credentials.
Garanti
Akbank
AkbankPayten
İş Bankası
Yapı Kredi
Finansbank
Ziraat
Kuveyt Türk
Shared Options
Ziraat defaults: https://sanalpos.ziraatbank.com.tr/v4/v3/Vposreq.aspx; https://mpi.ziraatbank.com.tr/Enrollment.aspx. Only HTTPS addresses under ziraatbank.com.tr are accepted.
Status, fees and amount/country limits follow Payment Modules.
Tasks
Connect and Enable a Bank
- Obtain the credentials above from your bank’s merchant portal. For Garanti, request the appropriate provisioning user and 3D Store Key.
- Select the matching POS mode. Enter the credentials, enable Status and click Save Changes.
- Under Payment Gateways → Initial → Enabled Module Selection, select the bank and click Save Changes.
- Use an invoice in the bank-supported currency. Shared conversion is not applied consistently; Yapı Kredi’s return flow uses TRY.
Test the Payment and Return
- Use bank-approved test credentials. Confirm QNB’s test arrangement and Ziraat’s two test URLs with the bank before submitting any card.
- As the invoice’s client, select the bank and click Pay Now. Test successful, rejected and cancelled 3D payments.
- Keep the same browser session through the return. Compare bank approval, reference, amount and installments with the invoice payment.
- Resolve missing or uncertain results with the bank before retrying. After acceptance, save live credentials and the correct environment settings.
Refund a Payment
Only AkbankPayten, İş Bankası and Finansbank provide invoice gateway refunds. Other banks require a bank-side refund.
Open {admin}/invoices/detail?id={invoice}. Under Summary → Change Status, choose Refunded and Refund via payment gateway, then Update Status.
The request uses the invoice’s recorded payment share. Verify the bank result. For external or custom partial refunds, record the outcome without requesting a second gateway refund.
Things to Watch
Garanti and Kuveyt Türk contain older endpoint/protocol choices. QNB’s Test Modu does not select an isolated endpoint. Confirm compatibility before enabling live payments.
3D return addresses are generated automatically. Do not invent a webhook field. Some returns depend on the browser session; returning to a page alone does not prove payment.
Required Privileges
Settings: Modules → Payment Gateways (MODULES_PAYMENT_SETTINGS). Refunds: Billing → Edit (INVOICES_OPERATION).
Related Articles
Thanks for your feedback!
Our support team is here around the clock for anything you can't find above.