Follow us on:

🏖️ SUMMER SALES 2026 20% TO ALL!
 USE CODE SUMMER26

00 Days
00 Hours
00 Minutes
00 Seconds

PireosPay Documentation Prestashop Module

Version 1.1.0 Last updated 23/08/2026
View product: PireosPay – Piraeus Bank Payments for PrestaShop

PireosPay — User Guide

PireosPay lets your customers pay by **card** or **IRIS** (instant bank transfer) through Piraeus Bank / epay eCommerce. When a customer checks out, they are sent to a secure payment page hosted by the bank, then brought back to your shop once the payment is done.

This guide assumes no technical background. If a step needs your web host or a developer, it says so.

Instrunctions

  • Your shop must be reachable over **HTTPS** (the little padlock in the browser). Card payment providers require this.
  • Your hosting must have the **PHP SOAP extension** enabled — this is what lets the module talk to the bank. Most hosting providers already have it on, but if the module reports a connection error later, ask your host to confirm it's enabled.
  • You need a business agreement with **Euronet Merchant Services / Piraeus Bank** to accept payments. If you don't have one yet, contact them to start the process.

Installing the module

  1. In your PrestaShop admin, go to **Modules → Module Manager**.
  2. Click **Upload a module** and select the `vX.X.X-pireospay.zip` file (or drop the `pireospay` folder into your shop's `modules` folder if you're installing manually).
  3. Search for **PireosPay** in the module list and click **Install**.
  4. Click **Configure** to open the settings page — you'll come back here a few more times as you go through this guide.

Getting your account details from the bank

You cannot go live (or even test) until the bank gives you a set of connection details: an **AcquirerID**, **MerchantID**, **PosID**, **Username** and **Password**. Here's the back-and-forth:

  1. The bank will email you asking for technical information about your shop (URLs, etc.).
  2. In the module's **Configure** page, scroll to **"PireosPay Data and CSS File"** and click **Generate Form Information**. This prints out everything the bank needs, with a few blanks (shown in blue) for you to fill in yourself — your name, phone, company name, etc.
  3. Copy that information and email it to the bank's technical department, along with whether you want to offer **installments** or not.
  4. The bank replies with a **test account** (test AcquirerID/MerchantID/PosID/Username/Password). Enter these into the **"Piraeus Paycenter: information for system connection"** section of the Configure page and click **Save Settings**.
  5. Once everything is tested and working (see Section 6), the bank issues your **live account**. Replace the test values with the live ones on the same page — that's the only change needed to switch from test to live.

If you sell in more than one **language**, you'll see a separate **PosID** field for each language — the bank issues one per language, so fill them all in.

If you sell in more than one **currency**, see Section 5 below — you'll need an extra account per currency, not just per language.

Basic settings, step by step

All of these are on the module's **Configure** page.

### Connection information

AcquirerID, MerchantID, PosID(s), Username, Password — given to you by the bank (Section 3 above).

### Auto Redirect

If turned on, the customer is sent to the bank's payment page automatically after choosing PireosPay at checkout, without needing to click a confirm button first. Most shops leave this on.

### Request type

- **Authorize sale**: the money is only reserved on the customer's card; you (or your team) confirm the charge afterwards, from the bank's own admin tool. Use this if you want to review orders before charging the card (e.g. stock isn't guaranteed).

- **Instant Payment**: the customer is charged immediately when they pay. This is what most shops use.

If you use "Authorize sale", also set **"Maximum days while your authorization lasts"** (up to 30) — how long you have to confirm the charge before it expires.

### Installments

Turn this on only if the bank has confirmed you can offer installments. If enabled, set a maximum number of installments (or leave at 0 for no limit), and optionally add rules under **"Card Installment management"** further down the page — e.g. "orders between €100–200 can be split into up to 6 installments".

### Payment logo

Under **"PireosPay Extra Settings"**, you can upload an image that customers see next to the PireosPay option at checkout.

Selling in more than one currency

**Skip this section if your shop only uses one currency.**

The bank issues a **separate account** (AcquirerID/MerchantID/Username/Password/PosID) for every currency you accept — this is a bank requirement, not something the module can work around. If you've enabled PireosPay for more than one currency (under Modules → Payment, where you restrict which currencies a payment method accepts), you need to:

  1. Ask the bank for a second (or third...) account for the other currency.
  2. In the Configure page, find **"Additional Currency Accounts"** and click **Add currency account**, then fill in that currency's AcquirerID/MerchantID/Username/Password/PosID.

Your shop's **default currency** keeps using the main connection info from Section 4 — you only need to add entries here for the *other* currencies.

Required security logos

Piraeus Bank requires you to display certain logos on your site so customers recognize the secure payment process (Visa Secure, Mastercard Identity Check, and — if you accept American Express — SafeKey). You can download all the required images from:

https://www.epayworldwide.gr/wp-content/uploads/2022/10/Icons.zip

Add the card logos (Visa/Mastercard/Maestro, and Diners/Discover/Amex if applicable) to your homepage, and the "Visa Secure"/"Mastercard Identity Check" icons to your homepage and any security/trust page you have.

Testing

Once you have your **test** account details entered:

  1. The bank's documentation includes a list of **test cases** with fake card numbers to use (a handful are mandatory, covering a successful payment, a declined payment, and a duplicate-payment attempt; the rest are optional depending on what your shop needs — installments, specific card types, other currencies, etc.).
  2. 2. Place test orders on your shop using those card numbers and confirm each one behaves as expected (a successful order appears, a declined one shows an error, etc.).
  3. 3. Email the bank's technical department once testing is complete.

Going live

  1. The bank sends you your **live** AcquirerID/MerchantID/PosID/Username/Password.
  2. Replace the test values with the live ones on the Configure page (Section 3, step 5) and save.
  3. Make sure the module is **enabled** for the currencies and languages you actually sell in (Modules → Payment).

That's it — you're live.

Understanding what happens after a customer pays

When a payment succeeds, the order is created with the status **"PireosPay - Accepted!"**. If it's declined or fails, no order is created and the customer sees an explanation on screen (without any sensitive technical detail — that's kept for your records only).

**To see the technical details of a specific order's payment** (which card network was used, whether it was Card or IRIS, the bank's reference numbers, etc.), open that order in **Orders**, in your PrestaShop back office — a **"PireosPay Transaction Details"** panel appears on the order page if a payment was made through PireosPay.

"A customer says they paid, but I don't see the order" — orphaned transactions

Occasionally, a customer completes a payment on the bank's side but their browser never makes it back to your shop to confirm it — no order gets created even though the bank may have taken the money. This happens more often with **IRIS**, since the customer often confirms the payment on their phone's banking app while the browser tab that needs to bring them back to your shop is left open elsewhere (and sometimes gets closed).

The module includes a safety net for exactly this: an automatic hourly check that emails you whenever this happens, so you can look the order up directly with the bank instead of only finding out when the customer complains.

**To turn it on:**

  1. On the Configure page, find **"Unresolved Transaction Alerts"**.
  2. Set the email address that should receive alerts, and how long to wait before considering a transaction "unresolved" (60 minutes is a sensible default).
  3. Copy the **Scheduler URL** shown there.
  4. Ask your hosting provider to run that URL **once every hour**. Most hosts have a "Cron Jobs" section in their control panel (cPanel, Plesk, etc.) where you paste the URL and pick "every hour" — if you're not sure how, just forward this section to your host and ask them to set it up.

You'll then get an email listing any unresolved transactions, with the reference number to look up in the bank's own admin tool. This doesn't create the order automatically — it just makes sure you find out about it.

Getting help

- **For anything about the bank's connection, test cards, or your account status**: contact Euronet Merchant Services / Piraeus Bank support directly — quote your **Support Reference ID** if you have one from a failed transaction, it helps them find it instantly.

- **For anything about the module itself** (installation, configuration, a bug): open a support ticket, quoting your license/purchase details.

Back to Documentation
Loading...
Back to top