IRIS Payments
IRIS payments is Greece's national instant payment system, operated by DIAS Interbanking Systems, enabling fast, secure, account-to-account (A2A) transactions. It supports seamless payments where consumers pay directly from their bank accounts without using cards.
Through Mastercard Gateway's integration with IRIS payments with National Bank of Greece (NBG Pay), merchants accept IRIS payments online. The system completes the payment process within seconds, and you receive instant confirmation of the transaction.
IRIS allows customers to Pay online merchants by scanning an IRIS QR code.
For more information, see IRIS payments.
Prerequisites
To offer the IRIS payments method through the Mastercard Gateway:
- Register with your payment service provider.
- Register with IRIS payments as a merchant.
- Configure your merchant profile on the Mastercard Gateway using the details of your account provided by your payment service provider.
IRIS payments payer journey flow
To pay with IRIS, the consumer chooses IRIS at checkout and follows these steps:
- Selects desired products or services and completes the checkout process.
- Provides basic customer information such as first name, last name, email address, telephone number, and address details.
- Selects IRIS payments as a payment option from the payment provider list.
- When the consumer selects the offered payment method, the system redirects them to the corresponding payment method page where the consumer logs in with their credential or receive instructions to continue the payment.
- For IRIS payments, the consumer sees a page including a QR Code. The consumer can use their banking app to scan the QR Code, then review and confirm the payment.
- The system redirects the consumer back to the merchant page and displays the final payment status.
Figure: IRIS payment payer journey flow

IRIS payments integration
IRIS payments through Direct Payment
- Direct Payment integration allows you to offer IRIS payments Pay on your checkout page.
- WS-API supports IRIS payments from version 81 and later.
- Make an
Initiate Browser Paymentrequest wheresourceOfFunds.browserPayment.type = IRIS_PAYandbrowserPayment.operation = PAY.
IRIS payments transactions
This table shows the IRIS payments transactions.
| Transaction Details | Value |
|---|---|
| Payment type | Account to Account (A2A) |
| Supported countries | Greece |
| Supported currencies | EUR |
| Supported operations | Purchase (PAY) |
| Minimum transaction amount | Depends on the merchant configuration. |
| Maximum Transaction Amount | Depends on the merchant configuration. |
| Refund validity | Not applicable. Refunds are not available through Mastercard Gateway. |
| Chargeback | Not applicable. |
| Transaction validity period | The consumer has up to 5 minutes to confirm the payment on their banking app. |
Payment options inquiry
You can use the Payment options inquiry (POI) request to retrieve the available payment options and their attributes. POI response can contain information about mandatory or optional fields in addition to standard fields, limits, and general payment plan offering information for BNPL payment methods.
curl --request POST \
--url https://mtf.gateway.mastercard.com/api/rest/version/llaatteesstt/merchant/IRISPAY_MTF/paymentOptionsInquiry \
--header 'Authorization: Basic bWVyY2hhbnQuSVJJU1BBWV9NVEY6OGE4NTc1NDA1ZThiMDI4MjRiNjc5MmJmYTM5MjlkMDA=' \
--header 'Content-Type: application/json'
{
"merchant": "IRISPAY_MTF",
"paymentTypes": {
"browserPayment": [
{
"currencies": [
{
"currency": "EUR"
}
],
"description": "IRIS is a Bank Transfer provider. It operates in Greece.",
"displayName": "IRIS",
"logoUrl": "https://mtf.gateway.mastercard.com/bpui/bp/logo/55ea9754-c4ed-4a55-9b92-9e9aa2a50f10_IRIS_PAY.svg",
"maxAmount": 1000000000000,
"minAmount": 0,
"standardPayerData": [
{
"fieldName": "PHONE",
"presence": "OPTIONAL"
},
{
"fieldName": "EMAIL",
"presence": "OPTIONAL"
},
{
"fieldName": "BILLING_ADDRESS",
"presence": "OPTIONAL"
},
{
"fieldName": "SHIPPING_ADDRESS",
"presence": "OPTIONAL"
},
{
"fieldName": "FIRST_NAME",
"presence": "OPTIONAL"
},
{
"fieldName": "LAST_NAME",
"presence": "OPTIONAL"
}
],
"supportedCountries": [
{
"country": "GRC"
}
],
"type": "IRIS_PAY"
}
]
},
"result": "SUCCESS",
"supportedPaymentOperations": [
{
"supportedPaymentOperation": "PURCHASE"
}
]
}
Specific parameter fields
In addition to the standard fields that are required in a browser payment request, provide the following specific parameter fields in the Initiate Browser Payment request for IRIS payments.
| Parameters Name | Mandatory/Optional | Description |
|---|---|---|
|
Optional |
|
Sample Code to initiate IRIS payments request
curl --request PUT \
--url https://testpg.mpgs.axisbank.com/api/rest/version/llaatteesstt/merchant/IRISPAY_MTF/order/641266139/transaction/7781080678 \
--header 'Authorization: Basic bWVyY2hhbnQuSVJJU1BBWV9NVEY6OGE4NTc1NDA1ZThiMDI4MjRiNjc5MmJmYTM5MjlkMDA=' \
--header 'Content-Type: application/json' \
--data '{
"apiOperation": "INITIATE_BROWSER_PAYMENT",
"billing": {
"address": {
"city": "Edinburgh",
"company": "MPGS",
"country": "GRC",
"stateProvince": "Scotland",
"street": "OceanPoint",
"street2": "OceanDrive",
"postcodeZip": "00061"
}
},
"shipping": {
"address": {
"city": "Los Angeles",
"company": "mastercard",
"country": "GRC",
"postcodeZip": "90001",
"stateProvince": "CA",
"street": "2nd Main",
"street2": "lane 2"
}
},
"browserPayment": {
"operation": "PAY",
"returnUrl": "https://testpg.mpgs.axisbank.com/api.gateway.mastercard.com/api/documentation/integrationGuidelines/index.html"
},
"customer": {
"account": {
"id": "customerAccount"
},
"dateOfBirth": "1999-12-31",
"email": "akash.mali@mastercard.com",
"phone": "415-333-4568",
"firstName": "Akash",
"lastName": "Mali"
},
"order": {
"amount": "400",
"currency": "EUR"
},
"sourceOfFunds": {
"browserPayment": {
"type": "IRIS_PAY"
},
"type": "BROWSER_PAYMENT"
}
}'
Sample Code to initiate IRIS payments response
{
"billing": {
"address": {
"city": "Edinburgh",
"company": "MPGS",
"country": "GRC",
"postcodeZip": "00061",
"stateProvince": "Scotland",
"street": "OceanPoint",
"street2": "OceanDrive"
}
},
"browserPayment": {
"interaction": {
"status": "INITIATED",
"timeInitiated": "2025-11-14T08:00:02.358Z"
},
"operation": "PAY",
"redirectHtml": "<div id=\"initiateRedirect\" xmlns=\"http://www.w3.org/1999/html\"><iframe srcdoc=\"<script src='window.top.location.href='https://checkout-api.qa.optty.com/checkout-page/?session_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmRlclJlZmVyZW5jZSI6ImQ2Y2Y4YjljY2U0NjUyNjgyMDNiZjA3MDQyODUyNzBmIiwib3JkZXJBbW91bnQiOjQwMCwibWVyY2hhbnROYW1lIjoiTVBHUyBJcmlzIHBheSBNVEYgdGVzdGluZyBtZXJjaGFudCIsIm1lcmNoYW50SWQiOiJkYTE3YWMwZS0xZmIzLTRhOGEtYWE1My05YjE5ZGVhZjA2YjEiLCJ0YXhBbW91bnQiOjAsImVtYWlsIjoiYWthc2gubWFsaUBtYXN0ZXJjYXJkLmNvbSIsInBob25lTnVtYmVyIjoiNDE1LTMzMy00NTY4IiwiaXRlbXMiOltdLCJpYXQiOjE3NjMxMDcyMDUsImV4cCI6MTc2MzEwOTAwNX0.zA-SmAmcsZ2Eil5gfRjAuQm8WyzCB6Ikkd77lx_NuDA';\'>https://checkout-api.qa.optty.com/checkout-page/?session_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmRlclJlZmVyZW5jZSI6ImQ2Y2Y4YjljY2U0NjUyNjgyMDNiZjA3MDQyODUyNzBmIiwib3JkZXJBbW91bnQiOjQwMCwibWVyY2hhbnROYW1lIjoiTVBHUyBJcmlzIHBheSBNVEYgdGVzdGluZyBtZXJjaGFudCIsIm1lcmNoYW50SWQiOiJkYTE3YWMwZS0xZmIzLTRhOGEtYWE1My05YjE5ZGVhZjA2YjEiLCJ0YXhBbW91bnQiOjAsImVtYWlsIjoiYWthc2gubWFsaUBtYXN0ZXJjYXJkLmNvbSIsInBob25lTnVtYmVyIjoiNDE1LTMzMy00NTY4IiwiaXRlbXMiOltdLCJpYXQiOjE3NjMxMDcyMDUsImV4cCI6MTc2MzEwOTAwNX0.zA-SmAmcsZ2Eil5gfRjAuQm8WyzCB6Ikkd77lx_NuDA'>window.top.location.href='https://checkout-api.qa.optty.com/checkout-page/?session_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmRlclJlZmVyZW5jZSI6ImQ2Y2Y4YjljY2U0NjUyNjgyMDNiZjA3MDQyODUyNzBmIiwib3JkZXJBbW91bnQiOjQwMCwibWVyY2hhbnROYW1lIjoiTVBHUyBJcmlzIHBheSBNVEYgdGVzdGluZyBtZXJjaGFudCIsIm1lcmNoYW50SWQiOiJkYTE3YWMwZS0xZmIzLTRhOGEtYWE1My05YjE5ZGVhZjA2YjEiLCJ0YXhBbW91bnQiOjAsImVtYWlsIjoiYWthc2gubWFsaUBtYXN0ZXJjYXJkLmNvbSIsInBob25lTnVtYmVyIjoiNDE1LTMzMy00NTY4IiwiaXRlbXMiOltdLCJpYXQiOjE3NjMxMDcyMDUsImV4cCI6MTc2MzEwOTAwNX0.zA-SmAmcsZ2Eil5gfRjAuQm8WyzCB6Ikkd77lx_NuDA';</script>\" id=\"redirectFrame\" name=\"redirectFrame\" height=\"100%\" width=\"100%\"></iframe></div>",
"returnUrl": https://testpg.mpgs.axisbank.com/api.gateway.mastercard.com/api/documentation/integrationGuidelines/index.html"
},
"customer": {
"account": {
"id": "customerAccount"
},
"email": "emailaddress@mastercard.com",
"firstName": "Akash",
"lastName": "Mali",
"phone": "415-333-4568"
},
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "IRISPAY_MTF",
"order": {
"amount": 400.00,
"chargeback": {
"amount": 0,
"currency": "EUR"
},
"creationTime": "2025-11-14T08:00:02.299Z",
"currency": "EUR",
"id": "641266139",
"lastUpdatedTime": "2025-11-14T08:00:05.400Z",
"merchantAmount": 400.00,
"merchantCurrency": "EUR",
"status": "INITIATED",
"totalAuthorizedAmount": 0,
"totalCapturedAmount": 0,
"totalDisbursedAmount": 0,
"totalRefundedAmount": 0
},
"response": {
"acquirerCode": "ACCEPTED",
"gatewayCode": "SUBMITTED",
"gatewayRecommendation": "NO_ACTION"
},
"result": "SUCCESS",
"shipping": {
"address": {
"city": "Los Angeles",
"company": "mastercard",
"country": "GRC",
"postcodeZip": "90001",
"stateProvince": "CA",
"street": "2nd Main",
"street2": "lane 2"
}
},
"sourceOfFunds": {
"browserPayment": {
"type": "IRIS_PAY"
},
"type": "BROWSER_PAYMENT"
},
"timeOfLastUpdate": "2025-11-14T08:00:05.400Z",
"timeOfRecord": "2025-11-14T08:00:02.355Z",
"transaction": {
"acquirer": {
"id": "OPTTY_MTF_TESTACQ1",
"merchantId": "rCGyqKOXmxFDpAjZ"
},
"amount": 400.00,
"currency": "EUR",
"id": "7781080678",
"source": "INTERNET",
"stan": "0",
"type": "PAYMENT"
},
"version": "100"
}
How to interpret the transaction result
The following table shows the transaction response codes for the possible scenarios you may encounter after initiating a transaction.
| Initiate Browser Payment Response | What This Means... |
|---|---|
response.gatewayCode=SUBMITTEDresult=SUCCESS |
Redirect the payer using the URL provided in the response. |
| Retrieve Transaction/Retrieve Order Response | What This Means... |
response.gatewayCode=APPROVEDresult=SUCCESS |
The payment is successful. |
response.gatewayCode=PENDINGresult=PENDING |
Mastercard Gateway is waiting for a notification from the acquirer about the payment result. Try RETRIEVE_TRANSACTION later or listen to notifications from the Mastercard Gateway. |
response.gatewayCode=CANCELLEDresult=FAILURE |
The payer has canceled the interaction for this payment. Offer the payer the option to try another payment method. |
response.gatewayCode=DECLINED or ACQUIRER_SYSTEM_ERRORresult=FAILURE |
The payment was declined. Offer the payer the option to try another payment method. In case of an
ACQUIRER_SYSTEM_ERROR, you may want to inquire with the acquirer about the reason for the payment
failure, or you can try RETRIEVE_TRANSACTION again. |
response.gatewayCode=TIMED_OUTresult=FAILURE |
Treat this as a declined payment. The Mastercard Gateway will attempt to ensure that the transaction is not successful or reverts the transaction. |
IRIS payments through Hosted Checkout
Hosted Checkout integration allows you to collect payment details from your payer through an interaction that the gateway hosts and displays. From the API version 85 and later, IRIS payments is automatically available as a payment method once your payment service provider enables and configures you for this payment method. For more information, see Browser Payments through Hosted Checkout integration.
Webhook notifications
If you have subscribed to Mastercard Gateway webhook notifications, you receive additional notifications on the paymentStatus.