Meeza QR APIs

You can now customize the checkout flow to enable your customers to pay using QR codes.

You can do it in the following ways

Payment TypeDescriptionAPI
Presenting QR code in the checkout flowDuring the checkout process, you can call this API to generate a QR code and present to the customer. The customer then scans the QR code using his Meeza mobile app and completes the paymentCreate QR Code API
Initiating a request to payment notification to customer mobileDuring the checkout process, you can call this API to initiate a payment request notification directly to the mobile app of the customer. The customer then uses the Meeza mobile app on his/her mobile and completes the payment.Request for Payment API

Create QR Code API

You can initiate a QR based payment using the Create QR Code API. The outcome of this API call is to generate a QR code that you can present to the customer during the checkout process.

πŸ“˜

You must have a valid session ID to initiate this API call.

You can get a session ID using the Create Session API.

API Request

To perform an Initiate authentication API call, you will need to provide the following required fields.

ParameterDatatypeDescriptionMandatory
sessionIdstringA session ID is a unique identifier that a server generates as part of the create session API call and assigns to a merchant transaction for the duration of the session (15 min). This is the Id parameter in the session object, in the response of the Create Session API call.Yes
merchantPublicKeystringThe unique identifier for the session given added by the merchant. Must be a valid UUID.Yes

You can find a complete list of parameters which can be used with the Create QR Code API here.

Below is an example of executing an Create QR Code API call for a payment with the mandatory parameters.

curl --location 'https://api.gd-pprod-infra.net/payment-intent/api/v2/meezaPayment/image/base64' \
--header 'authority: api.merchant.geidea.net' \
--header 'accept: */*' \
--header 'accept-language: en-GB,en;q=0.9,ar-EG;q=0.8,ar;q=0.7,en-US;q=0.6' \
--header 'content-type: application/json;charset=UTF-8' \
--header 'origin: https://www.merchant.geidea.net' \
--header 'referer: https://www.merchant.geidea.net/' \
--header 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "Windows"' \
--header 'sec-fetch-dest: empty' \
--header 'sec-fetch-mode: cors' \
--header 'sec-fetch-site: same-site' \
--header 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36' \
--header 'x-language: en' \
--header 'Authorization: Basic MmE2YmZkZWYtM2E1MC00MGRhLTk3MTgtNDMwZDE1MjRmNjMyOjRlZTA0ODY5LWZkMzYtNDJlZS1iNmNkLTgyNTBhM2NkZTg5Yw==' \
--data '{
    "merchantPublicKey": "2a6bfdef-3a50-40da-9718-430d1524f632",    
    "sessionId": "d267e391-a553-4a5e-ba77-08dc5fa2efa2"
}'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.gd-pprod-infra.net/payment-intent/api/v2/meezaPayment/image/base64',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "merchantPublicKey": "2a6bfdef-3a50-40da-9718-430d1524f632",    
    "sessionId": "d267e391-a553-4a5e-ba77-08dc5fa2efa2"
}',
  CURLOPT_HTTPHEADER => array(
    'authority: api.merchant.geidea.net',
    'accept: */*',
    'accept-language: en-GB,en;q=0.9,ar-EG;q=0.8,ar;q=0.7,en-US;q=0.6',
    'content-type: application/json;charset=UTF-8',
    'origin: https://www.merchant.geidea.net',
    'referer: https://www.merchant.geidea.net/',
    'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
    'sec-ch-ua-mobile: ?0',
    'sec-ch-ua-platform: "Windows"',
    'sec-fetch-dest: empty',
    'sec-fetch-mode: cors',
    'sec-fetch-site: same-site',
    'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
    'x-language: en',
    'Authorization: Basic MmE2YmZkZWYtM2E1MC00MGRhLTk3MTgtNDMwZDE1MjRmNjMyOjRlZTA0ODY5LWZkMzYtNDJlZS1iNmNkLTgyNTBhM2NkZTg5Yw=='
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

API Response

The key parameters sent in the API response are as follows:

ParameterDescription
imageA base 64 string representation of the QR image to be presented to the customer
typeProposed type of image to be rendered using the base-64 string as input
message
paymentIntentIdPayment Request ID associated with the transaction.
responseMessageDetailed message associated with response from gateway
detailedResponseMessageMessage associated with response from gateway
languageLanguage used for API request
responseCodeCode associated with response message returned by the gateway
detailedResponseCodeDetailed Code associated with response message returned by the gateway

A sample response to the Create QR API call is as follows:

{
    "image": "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",
    "type": "image/png",
    "message": "00020101021226330016A000000732100001010967582629352044011530381854071850.005802EG5905ΩΨ§Ω„ΩŠΩˆ6013ARISH     21D623005220NBU-JRMl0G6_QjcX6Lvog060064150002ar0105ΩΨ§Ω„ΩŠΩˆ6304B9CB",
    "paymentIntentId": "f854d0d0-4c94-4197-bafd-08dc5fa2efa2",
    "responseMessage": "Success",
    "detailedResponseMessage": "The operation was successful",
    "language": "EN",
    "responseCode": "000",
    "detailedResponseCode": "000"
}

Request for Payment API

You can initiate a payment request directly to the Meeza mobile app of the customer using the Request for Payment API. The outcome of this API call is to initiate a payment request notification directly to the Meeza mobile app of the customer during the checkout process.

πŸ“˜

You must have a valid session ID and Payment Intent ID to initiate this API call.

You can get the session ID using the Create Session API call and the Payment Intent ID using the Create QR Code API call.

API Request

To perform an Request to Pay API call, you will need to provide the following required fields.

ParameterDatatypeDescriptionMandatory
receiverIdstringMobile number of the customer to whose mobile the request for payment notification must be sent. Number must begin with zero (0).Yes
merchantPublicKeystringThe unique identifier for the session given added by the merchant. Must be a valid UUID.Yes
paymentIntentIdstringPayment Intent ID generated for the QR payment request as part of the Create QR code API call. Must be a valid UUID.Yes
sessionIdstringUnique ID for the payment session. Generated using the Create Session API call. Must be a valid UUIDYes

You can find a complete list of parameters which can be used with the Create QR Code API here.

Below is an example of executing an Request to Pay API call for a payment with the mandatory parameters.

curl --location 'https://api-test.gd-azure-dev.net/meeza/api/v2/direct/transaction/requestToPay' \
--header 'authority: api.merchant.geidea.net' \
--header 'accept: */*' \
--header 'accept-language: en-GB,en;q=0.9,ar-EG;q=0.8,ar;q=0.7,en-US;q=0.6' \
--header 'content-type: application/json;charset=UTF-8' \
--header 'origin: https://www.merchant.geidea.net' \
--header 'referer: https://www.merchant.geidea.net/' \
--header 'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "Windows"' \
--header 'sec-fetch-dest: empty' \
--header 'sec-fetch-mode: cors' \
--header 'sec-fetch-site: same-site' \
--header 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36' \
--header 'x-language: en' \
--header 'Authorization: Basic MjE5MDVhOTEtNDgxZS00YWExLThlNjktODYxYTU1ZTRhYzc0OjI2NWFjYWVjLWY0OWItNDU5MC05MDVmLWZhOTk0OTgyZGVhNA==' \
--data '{
    "receiverId": "01115725100",
    "merchantPublicKey": "21905a91-481e-4aa1-8e69-861a55e4ac74",
    "paymentIntentId": "0688a8cc-d73e-4218-1247-08dc48bd35b5",
    "sessionId": "f53f2cb0-1664-4451-f58b-08dc69147fdd"
}'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api-test.gd-azure-dev.net/meeza/api/v2/direct/transaction/requestToPay',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "receiverId": "01115725100",
    "merchantPublicKey": "21905a91-481e-4aa1-8e69-861a55e4ac74",
    "paymentIntentId": "0688a8cc-d73e-4218-1247-08dc48bd35b5",
    "sessionId": "f53f2cb0-1664-4451-f58b-08dc69147fdd"
}',
  CURLOPT_HTTPHEADER => array(
    'authority: api.merchant.geidea.net',
    'accept: */*',
    'accept-language: en-GB,en;q=0.9,ar-EG;q=0.8,ar;q=0.7,en-US;q=0.6',
    'content-type: application/json;charset=UTF-8',
    'origin: https://www.merchant.geidea.net',
    'referer: https://www.merchant.geidea.net/',
    'sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
    'sec-ch-ua-mobile: ?0',
    'sec-ch-ua-platform: "Windows"',
    'sec-fetch-dest: empty',
    'sec-fetch-mode: cors',
    'sec-fetch-site: same-site',
    'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
    'x-language: en',
    'Authorization: Basic MjE5MDVhOTEtNDgxZS00YWExLThlNjktODYxYTU1ZTRhYzc0OjI2NWFjYWVjLWY0OWItNDU5MC05MDVmLWZhOTk0OTgyZGVhNA=='
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

API Response

The key parameters sent in the API response are as follows:

ParameterDescription
responseCodeCode associated with response message returned by the gateway
responseDescriptionDetailed Code associated with response message returned by the gateway
receiverNameName of the customer
receiverAddressAddress of the receiver

A sample response to the Create QR API call is as follows:

{
    "responseCode": "00000",
    "responseDescription": "Approved Or Completed Successfully",
    "receiverName": "",
    "receiverAddress": ""
}

Polling for transaction status

Once the transaction has been initiated you must poll for the transaction status. This is done in the following steps

#StepDescriptionAPI
1Retrieve Order IDThis step is used to retrieve the order ID that is generated when the customer initiates a paymentGet Order ID
2Retrieve Order DetailsThis step is used to retrieve the details of the order ID that is generated when the customer initiates a payment. The Order Details contain the final status of the transactionGet Order Details

Retrieve Order ID API

This is a GET API call and does not have a body in the request.

To perform a Retrieve Order ID API call, you will need to provide the following required field as a path parameter.

ParameterDatatypeDescriptionMandatory
paymentintentidStringPayment Intent ID generated for the QR payment request as part of the Create QR code API call. Must be a valid UUID.Yes

Below is an example of executing a Retrieve Order ID API call for a payment with the mandatory parameters.

API Request

https://api.merchant.geidea.net/payment-intent/api/v1/paymentIntent/{Payment Intent ID}

API Response

The key parameters sent in the API response are as follows:

ParameterDescription
paymentIntentIdPayment Intent ID generated for the QR payment request as part of the Create QR code API call. This is a valid UUID.
orderidUnique ID associated with the Order. This is a valid UUID
createdDateDatetime stamp of order creation
orderStatusStatus of order creation

If the customer initiated a payment, an order ID is generated in the Geidea platform. The details of the Payment Intent along with the Order ID are retrieved.

If the customer does not initiate a payment, order ID is not generated in the Geidea platform. A null order Object is retrieved in this case

A sample response to the Retrieve Order ID API call is as follows:

{
    "paymentIntent": {
        "paymentIntentId": "c81d576e-bfe7-4377-1428-08dc69da66ec",
        "parentPaymentIntentId": null,
        "number": "602061367920",
        "urlSlug": null,
        "type": "MeezaPayment",
        "amount": 123.00,
        "currency": "EGP",
        "merchantId": "6876f6bc-f8eb-4253-f160-08d973705ffb",
        "merchantPublicKey": "6620c3e2-5088-41a8-8be6-98c003153932",
        "expiryDate": "2024-05-10T12:56:14.354239Z",
        "activationDate": null,
        "status": "Paid",
        "customerId": null,
        "eInvoiceUploadId": null,
        "staticPaylinkId": null,
        "subscriptionId": null,
        "subscriptionOccurrenceId": null,
        "orders": [
            {
                "paymentIntentId": "c81d576e-bfe7-4377-1428-08dc69da66ec",
                "orderId": "72bde1e7-22cf-42d4-3bc4-08dc69da0e58",
                "createdDate": "2024-05-10T12:41:24.981062Z",
                "orderStatus": "Success"
            }
        ],
        "isPending": false,
        "createdDate": "2024-05-10T12:41:14.3823822Z",
        "createdBy": "6876f6bc-f8eb-4253-f160-08d973705ffb",
        "updatedDate": "2024-05-10T12:41:24.981062Z",
        "updatedBy": "6876f6bc-f8eb-4253-f160-08d973705ffb"
    },
    "responseCode": "000",
    "detailedResponseCode": "000"
}

Retrieve Order Details API

This is a GET API call and does not have a body in the request.

To perform a Get Order Details API call, you will need to provide the following required fields as a path parameter.

ParameterDatatypeDescriptionMandatory
paymentintentidStringPayment Intent ID generated for the QR payment request as part of the Create QR code API call. Must be a valid UUID.Yes
orderIDStringUnique ID associated with the Order. Must be a valid UUIDYes

Below is an example of executing a Retrieve Order Details API call for a payment with the mandatory parameters.

API Request

https://api.merchant.geidea.net/pgw/api/v1/order/{Payment Intent ID}/{Order ID}

API Response

The key parameters sent in the API response are as follows:

ParameterDescription
order.transactions.codes.responseCodeCode associated with response message returned by the gateway
order.transactions.codes.detailedResponseCodeDetailed Code associated with response message returned by the gateway

If the customer initiated a payment, an order ID is generated in the Geidea platform. The details of the Payment Intent along with the Order ID are retrieved along with the final status of the transaction. If the final value of order.transactions.codes.responseCode is '000', then the transaction is successful. For other response codes, transaction may be considered a failure.

A sample response to the Retrieve Order ID API call is as follows:

{
    "order": {
        "orderId": "72bde1e7-22cf-42d4-3bc4-08dc69da0e58",
        "amount": 123.00,
        "tipAmount": 0.00,
        "convenienceFeeAmount": 0.00,
        "totalAmount": 123.00,
        "settleAmount": 123.00,
        "currency": "EGP",
        "settleCurrency": "EGP",
        "language": "en",
        "detailedStatus": "Paid",
        "status": "Success",
        "threeDSecureId": null,
        "merchantId": "6876f6bc-f8eb-4253-f160-08d973705ffb",
        "merchantPublicKey": "6620c3e2-5088-41a8-8be6-98c003153932",
        "parentOrderId": null,
        "merchantReferenceId": null,
        "mcc": "5085",
        "callbackUrl": "https://webhook.site/ed5ff8d8-5b2c-457c-b003-8659cbc1e6ed",
        "billingAddress": {
            "countryCode": null,
            "street": null,
            "city": null,
            "postCode": null
        },
        "shippingAddress": {
            "countryCode": null,
            "street": null,
            "city": null,
            "postCode": null
        },
        "returnUrl": null,
        "cardOnFile": false,
        "tokenId": null,
        "initiatedBy": null,
        "agreementId": null,
        "agreementType": null,
        "amountVariability": null,
        "paymentOperation": "Pay",
        "custom": null,
        "paymentIntent": {
            "id": "c81d576e-bfe7-4377-1428-08dc69da66ec",
            "parentPaymentIntentId": null,
            "type": "MeezaPayment",
            "number": "602061367920"
        },
        "restrictPaymentMethods": false,
        "paymentMethods": null,
        "platform": null,
        "statementDescriptor": null,
        "description": null,
        "setDefaultPaymentMethod": false,
        "recurrence": null,
        "transactions": [
            {
                "transactionId": "17cb2a05-55af-4086-dbad-08dc69da0e5a",
                "type": "Pay",
                "status": "Success",
                "amount": 123.00,
                "currency": "EGP",
                "source": "HPP",
                "authorizationCode": null,
                "rrn": "996bc4c1-d8a8-4c36-a335-74429bb3b2d9",
                "stan": null,
                "paymentMethod": {
                    "type": "QR",
                    "brand": "MeezaDigital",
                    "cardholderName": "",
                    "maskedCardNumber": "",
                    "wallet": "MeezaDigital",
                    "expiryDate": null,
                    "sameBank": false,
                    "issuingCountry": null,
                    "fundingType": null,
                    "issuingBank": null,
                    "cardCategory": null
                },
                "codes": {
                    "acquirerCode": null,
                    "acquirerMessage": null,
                    "responseCode": "000",
                    "responseMessage": "Success",
                    "detailedResponseCode": "000",
                    "detailedResponseMessage": "The operation was successful"
                },
                "authenticationDetails": null,
                "postilionDetails": null,
                "terminalDetails": null,
                "meezaDetails": {
                    "transactionId": "17cb2a05-55af-4086-dbad-08dc69da0e5a",
                    "meezaTransactionId": "996bc4c1-d8a8-4c36-a335-74429bb3b2d9",
                    "type": "P2M",
                    "transactionTimeStamp": "2024-05-10T12:41:24.7304291",
                    "adviceId": "aeb94d02-ac1e-4d89-a00b-deab0c06152d",
                    "senderId": "00201004353401",
                    "senderName": "Test sender",
                    "senderAddress": "Test address",
                    "receiverId": "156503411",
                    "receiverName": null,
                    "receiverScheme": null,
                    "receiverAddress": null,
                    "amount": 123.00,
                    "currency": "EGP",
                    "description": "",
                    "responseCode": "00000",
                    "responseDescription": "Approved Or Completed Successfully",
                    "interchange": 0.00,
                    "interchangeAction": "",
                    "reference1": "#0522blcdyOe_d0MUKAjcadpm7A0600",
                    "reference2": "",
                    "tips": 0.00,
                    "convenienceFee": 0.00
                },
                "bnplDetails": null,
                "bankInstallmentDetails": null,
                "correlationId": "4f9bf790-f841-44f3-af22-8a57c85db60f",
                "parentTransactionId": null,
                "paymentAttemptId": null,
                "acquirer": null,
                "authorizationResponse": null,
                "madaDetails": null,
                "refundType": null,
                "refundStatus": null,
                "isExtensionComplete": null,
                "extensionDate": null,
                "deviceId": null,
                "fingerPrintJson": null,
                "fingerPrintRequestId": null,
                "fingerPrintProviderName": null,
                "geideaCodeDetails": null,
                "visaInstallmentDetails": null,
                "geideaCodeRefundDetails": null,
                "createdDate": "2024-05-10T12:41:24.9359474",
                "createdBy": "MeezaIntegrationApi",
                "updatedDate": "2024-05-10T12:41:24.9359474",
                "updatedBy": null
            }
        ],
        "orderItems": [],
        "isTokenPayment": false,
        "paymentMethod": {
            "type": "QR",
            "brand": "MeezaDigital",
            "cardholderName": "",
            "maskedCardNumber": "",
            "wallet": "MeezaDigital",
            "expiryDate": null,
            "sameBank": false,
            "issuingCountry": null,
            "fundingType": null,
            "issuingBank": null,
            "cardCategory": null
        },
        "totalAuthorizedAmount": 123.00,
        "totalCapturedAmount": 123.00,
        "totalRefundedAmount": 0,
        "orderSource": "GeideaGateway",
        "paymentBrands": [
            "meezadigital"
        ],
        "multiCurrency": {
            "authCurrency": "EGP",
            "authAmount": 123.00,
            "settleCurrency": "EGP",
            "settleAmount": 123.00,
            "exchangeRate": null,
            "exchangeFeePercentage": null,
            "exchangeFeeAmount": null
        },
        "isTest": true,
        "cashOnDelivery": false,
        "amountToCollect": null,
        "isDownPayment": false,
        "exchangeRate": null,
        "exchangeFeePercentage": null,
        "exchangeFeeAmount": null,
        "deviceId": "14b90417-2522-4479-4b5b-08da6a10e762",
        "gatewayDecision": "ContinueToPayer",
        "subscriptionId": null,
        "subscriptionOccurrenceId": null,
        "refundType": null,
        "refundStatus": null,
        "bankId": null,
        "isPayWithToken": false,
        "customerName": null,
        "customerEmail": null,
        "createCustomer": false,
        "customerReferenceId": null,
        "customerId": null,
        "customerPhoneNumber": null,
        "customerPhoneCountryCode": null,
        "customerCustomValue": null,
        "airLine": null,
        "geideaCodePRN": null,
        "geideaCodeExpiryDate": null,
        "createdDate": "2024-05-10T12:41:24.9359474",
        "createdBy": "MeezaIntegrationApi",
        "updatedDate": "2024-05-10T12:41:24.9359474",
        "updatedBy": null
    },
    "paymentProviderSetting": null,
    "tokenCryptogram": null,
    "responseCode": "000",
    "detailedResponseCode": "000"
}

Payment notification API

You can use this API to trigger a payment notification to your customers after a payment has been successful. The API initiates a mail to the customer.

To initiate a mail to the customer, you will need to provide the following required field.

ParameterDatatypeDescriptionMandatory
orderIDStringUnique ID associated with the Order. Must be a valid UUIDYes

Below is an example of executing a Payment notification API call for a payment with the mandatory parameters.

API Request

{
    "orderId": "72bde1e7-22cf-42d4-3bc4-08dc69da0e58"
}

API Response

A 200 code will be returned with no body. This indicates that the notification has been sent.