Merchant Initiated - Recurring/Unscheduled
Merchant Initiated Recurring Payments
Merchant-Initiated Transactions (MITs) refer to recurring/unscheduled payments that are authorized through an agreement between you and the cardholder. Once this agreement is established, you have the ability to initiate future payments from the card without requiring direct involvement from the cardholder. It's important to note that since the cardholder is not physically present during an MIT, a prior agrement between you and the cardholder is mandatory.
MITs are always associated with a customer who has made a payment previously and consented to save their card details securely. To ensure utmost security, it is crucial that the initial payment is processed using 3DS (strong customer authentication).
By leveraging MITs and implementing necessary security measures, you can streamline recurring/unscheduled payments for your customers, providing a convenient and seamless payment experience.
Merchant-Initiated Transaction Examples
Merchant-Initiated Transactions (MITs) encompass a wide range of payment scenarios beyond just subscriptions. They offer various benefits to merchants in different situations, which include:
-
Prepayments: In this scenario, a tenant authorizes their landlord to deduct rent payments in advance at regular intervals from their account. This ensures timely and hassle-free rental payments.
-
Installments: Installment plans are commonly used by customers who prefer "buy now, pay later" services. It allows them to make expensive purchases and pay off the balance in fixed amount payments over a specified period, offering flexibility and affordability.
-
Reauthorization: This refers to making additional purchases after completing the initial agreed-upon amount or time. For example, it could involve split or delayed shipments, extended car rentals, or prolonged hotel stays. This feature enables customers to seamlessly continue their transactions without the need for additional authorization steps.
By leveraging the flexibility of MITs in these different scenarios, merchants can provide enhanced convenience and options to their customers, facilitating smooth and tailored payment experiences.
Flow of Merchant-Initiated Recurring/Unscheduled Payments
When initializing the Hosted Payment Page and creating the SessionID, ensure that the "cardOnFile" parameter is set to true. Additionally, the merchant has to include the "agreementID" and "agreementType" in the request. This ensures that the initial payment is processed with strong customer authentication using 3DS and should result in a successful transaction. Also, for executing a MIT, the agreement parameters determine the kind of tokenized transaction.
Upon successful completion of the initial payment, you will receive a tokenldthrough the order callback URL.
The generation of the tokenld indicates that Geidea Gateway has securely stored the card details for future use, enabling you to make Merchant-Initiatedpayments conveniently.
To initiate a Session Creation API call for token creation you will need to provide the following fields. These are mandatory parameters to execute a MIT.
Parameter | Description |
---|---|
amount | The total amount value of the payment. This parameter is required, and the format is a double - a number with 2 digits after the decimal point. For example 19.99 |
currency | The currency of the payment. This is a 3-digit alphabetic code, following the ISO 4217 currency code standard. For example: EGP List of available currencies: EGP Egyptian PoundTo enable multicurrency for your account - contact our support team. |
cardOnFile | true |
signature | A parameter to ensure the security and authenticity of API communications. It involves generating a signature using the contents of the API request and secret keys, which is then sent along with the request. |
cofAgreement | The "cofAgreement" object includes the ID and type of the card-on-file (COF) agreement for storing customer card information. The agreementID , agreementType , and tokenId received after executing the 'Create session' request are required to execute a MIT. |
Id | This string value represents the unique identifier of the card-on-file agreement, which must be agreed upon between the merchant and the payment gateway. Using a unique value for each agreement is recommended to prevent confusion or conflicts. |
Type | This string value represents the type of card-on-file agreement to use. The available types include RECURRING and UNSCHEDULED , and they determine how the customer's card information is stored and processed. |
Usage of the API environment endpoints
Please make sure you use the correct endpoint based on your environment
- KSA Environment: https://api.ksamerchant.geidea.net/
- Egypt Environment: https://api.merchant.geidea.net/
- UAE Environment: https://api.geidea.ae/
Please refer to creating signature section here
Below is an example of creating a session for payment of 10.00 EGP with tokenization parameters.
curl --location 'https://api.merchant.geidea.net/payment-intent/api/v2/direct/session' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YTA4N2Y0Y2EtOTg5MC00MDdiLTljMmYtNzYzMDgzNmNjMDIwOmE2ODk5NTU3LTRjYjMtNDFhYi05ZGYzLWE2NTQwYjIzYWI2MA==' \
--data '{
"amount": 10,
"currency": "EGP",
"callbackUrl": "https://webhook.site/49bda391-8158-4bdc-a72b-ecd5607c7ad1",
"language": "en",
"merchantReferenceId": "test-site-5827a75dc9764568ac02457b1bd7b6",
"signature": "4Vgy1C4JSLm8o8uxz4Ewj1pv6KbLQ6dj/hu0ExpTWyI=",
"cardOnFile": true,
"cofAgreement": {
"id": "123456789",
"type": "UNSCHEDULED"
}
}'
<?php
$client = new Client();
$headers = [
'Content-Type' => 'application/json',
'Authorization' => 'Basic YTA4N2Y0Y2EtOTg5MC00MDdiLTljMmYtNzYzMDgzNmNjMDIwOmE2ODk5NTU3LTRjYjMtNDFhYi05ZGYzLWE2NTQwYjIzYWI2MA=='
];
$body = '{
"amount": 101,
"currency": "SAR",
"callbackUrl": "https://webhook.site/49bda391-8158-4bdc-a72b-ecd5607c7ad1",
"language": "en",
"merchantReferenceId": "test-site-5827a75dc9764568ac02457b1bd7b6",
"cardOnFile": true,
"cofAgreement": {
"id": "11222",
"type": "UNSCHEDULED"
}
}';
$request = new Request('POST', 'https://api.merchant.geidea.net/payment-intent/api/v1/direct/session', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
Below is an example of a successful response you can expect to receive for the request above.
{
"session": {
"id": "9c52785f-f092-4977-7816-08db602e2587",
"amount": 10,
"currency": "EGP",
"callbackUrl": "https://webhook.site/b64f56f2-9423-4368-9aa3-e2de7f7bae33",
"returnUrl": "https://someurl.com",
"expiryDate": "2023-05-31T21:17:00.8733674Z",
"status": "Initiated",
"merchantId": "6876f6bc-f8eb-4253-f160-08d973705ffb",
"merchantPublicKey": "6620c3e2-5088-41a8-8be6-98c003153932",
},
"responseMessage": "Success",
"detailedResponseMessage": "The operation was successful",
"language": "EN",
"responseCode": "000",
"detailedResponseCode": "000"
}
When the transaction is approved if the "cardOnFile: True" parameter is included in the request, the merchant will receive a Token ID in the response. This Token ID can be used by the merchant for Merchant-Initiated Recurring Payments.
Refer to the following instructions when the "detailedStatus" is "Paid." Upon receiving this status, you will obtain the tokenID in the response. You can store this token for future reference.
{
"order": {
"orderId": "9e238617-1ae9-469f-02f7-08db602e5619",
"amount": 101,
"tipAmount": 0,
"convenienceFeeAmount": 0,
"totalAmount": 101,
"settleAmount": 101,
"currency": "SAR",
"settleCurrency": "SAR",
"language": "en",
"detailedStatus": "Paid",
"status": "Success",
"threeDSecureId": "98905134-842c-4428-ca9f-08db602e564c",
"merchantId": "e80ece7e-fb2a-4c0b-de94-08d8a29a107b",
"merchantPublicKey": "a087f4ca-9890-407b-9c2f-7630836cc020",
"parentOrderId": null,
"merchantReferenceId": "test-site-5827a75dc9764568ac02457b1bd7b6",
"mcc": null,
"callbackUrl": "https://webhook.site/cd1f0358-4088-4d75-866e-5e5eba5e45fd",
"customerEmail": null,
"billingAddress": {
"countryCode": null,
"street": null,
"city": null,
"postCode": null
},
"shippingAddress": {
"countryCode": null,
"street": null,
"city": null,
"postCode": null
},
"returnUrl": null,
"cardOnFile": true,
"tokenId": "4c003fc3-7176-4f0a-6463-08db7cd2152f",
"initiatedBy": "Internet",
"agreementId"123456789,
"agreementType": Unscheduled,
"paymentOperation": "Pay",
"custom": null,
"paymentIntent": null,
"restrictPaymentMethods": false,
"paymentMethods": null,
"platform": null,
"statementDescriptor": null,
"description": null,
"createCustomer": false,
"setDefaultPaymentMethod": false,
"customerReferenceId": null,
"customerId": null,
"recurrence": null,
"transactions": [
{
"transactionId": "98905134-842c-4428-ca9f-08db602e564c",
"type": "Authentication",
"status": "Success",
"amount": 101,
"currency": "SAR",
"source": "HPP",
"authorizationCode": null,
"rrn": null,
"stan": "0",
"paymentMethod": {
"type": "Card",
"brand": "visa",
"cardholderName": "test",
"maskedCardNumber": "444000******0010",
"wallet": null,
"expiryDate": {
"month": 1,
"year": 39
},
"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": {
"acsEci": "05",
"authenticationToken": "kHyn+7YFi1EUAREAAAAvNUe6Hv8=",
"paResStatus": null,
"veResEnrolled": null,
"xid": "d5f94ec9-f30d-404d-9fb4-d909cc1dac32",
"accountAuthenticationValue": null,
"proofXml": null,
"threeDSecureServerTransactionId": null,
"acsTransactionId": "b806095e-1a86-45cc-bf66-720658b3e003",
"directoryServerId": "A999999999",
"dsTransactionId": "d5f94ec9-f30d-404d-9fb4-d909cc1dac32",
"methodCompleted": false,
"methodSupported": "NOT_SUPPORTED",
"protocolVersion": "2.1.0",
"requestorId": "10065253*MTTEST999999111_MPGS",
"requestorName": "KSA ECR",
"transactionStatus": "Y",
"statusReasonCode": null
},
"postilionDetails": null,
"terminalDetails": null,
"meezaDetails": null,
"bnplDetails": null,
"bankInstallmentDetails": null,
"correlationId": "30178b00-d9ef-418f-af97-674e16bc2ce2",
"parentTransactionId": null,
"paymentAttemptId": "194d374d-a264-44f0-98de-617bfb93b7d9",
"acquirer": {
"additionalResponseData": null,
"batch": null,
"customData": null,
"date": null,
"id": null,
"merchantId": "3000000023",
"settlementDate": null,
"time": null,
"timeZone": null,
"transactionId": null
},
"authorizationResponse": {
"autoExpiry": null,
"avsCode": null,
"cardLevelIndicator": null,
"cardSecurityCodeError": null,
"cardSecurityCodePresenceIndicator": null,
"commercialCard": null,
"commercialCardIndicator": null,
"financialNetworkCode": null,
"financialNetworkDate": null,
"marketSpecificData": null,
"merchantAdviceCode": null,
"paySvcData": null,
"posData": null,
"posEntryMode": null,
"posEntryModeChanged": null,
"processingCode": null,
"responseCode": null,
"date": null,
"responseMessage": null,
"returnAci": null,
"time": null,
"timeZone": null,
"trackQuality": null,
"transactionIdentifier": null,
"transactionIntegrityClass": null,
"validationCode": null,
"vpasResponse": null
},
"madaDetails": null,
"createdDate": "2023-05-31T05:26:46.544697",
"createdBy": "PGW",
"updatedDate": "2023-05-31T05:26:55.8477674",
"updatedBy": "PGW"
},
{
"transactionId": "96451299-d3a3-4717-7d64-08db602e760a",
"type": "Pay",
"status": "Success",
"amount": 101,
"currency": "SAR",
"source": "HPP",
"authorizationCode": "100086",
"rrn": "315105100086",
"stan": "100086",
"paymentMethod": {
"type": "Card",
"brand": "visa",
"cardholderName": "test",
"maskedCardNumber": "444000******0010",
"wallet": null,
"expiryDate": {
"month": 1,
"year": 39
},
"sameBank": false,
"issuingCountry": null,
"fundingType": null,
"issuingBank": null,
"cardCategory": null
},
"codes": {
"acquirerCode": "00",
"acquirerMessage": "Approved",
"responseCode": "000",
"responseMessage": "Success",
"detailedResponseCode": "000",
"detailedResponseMessage": "The operation was successful"
},
"authenticationDetails": null,
"postilionDetails": null,
"terminalDetails": null,
"meezaDetails": null,
"bnplDetails": null,
"bankInstallmentDetails": null,
"correlationId": "3268673d-f8a6-4163-8d89-c6ebb935f5d6",
"parentTransactionId": null,
"paymentAttemptId": "194d374d-a264-44f0-98de-617bfb93b7d9",
"acquirer": {
"additionalResponseData": null,
"batch": 20230531,
"customData": null,
"date": "0531",
"id": "RIYADBANK_S2I",
"merchantId": "3000000023",
"settlementDate": "2023-05-31T00:00:00",
"time": null,
"timeZone": "+0300",
"transactionId": "123456789012345"
},
"authorizationResponse": {
"autoExpiry": null,
"avsCode": null,
"cardLevelIndicator": "88",
"cardSecurityCodeError": null,
"cardSecurityCodePresenceIndicator": null,
"commercialCard": "888",
"commercialCardIndicator": "3",
"financialNetworkCode": null,
"financialNetworkDate": null,
"marketSpecificData": "8",
"merchantAdviceCode": null,
"paySvcData": null,
"posData": "1025100006600",
"posEntryMode": "812",
"posEntryModeChanged": null,
"processingCode": "003000",
"responseCode": "00",
"date": null,
"responseMessage": null,
"returnAci": "8",
"time": null,
"timeZone": null,
"trackQuality": null,
"transactionIdentifier": "123456789012345",
"transactionIntegrityClass": null,
"validationCode": "6789",
"vpasResponse": null
},
"madaDetails": null,
"createdDate": "2023-05-31T05:26:56.7291029",
"createdBy": "PGW",
"updatedDate": "2023-05-31T05:26:59.9908664Z",
"updatedBy": "PGW"
}
],
"orderItems": [],
"isTokenPayment": false,
"paymentMethod": {
"type": "Card",
"brand": "visa",
"cardholderName": "test",
"maskedCardNumber": "444000******0010",
"wallet": null,
"expiryDate": {
"month": 1,
"year": 39
},
"sameBank": false,
"issuingCountry": null,
"fundingType": null,
"issuingBank": null,
"cardCategory": null
},
"totalAuthorizedAmount": 101,
"totalCapturedAmount": 101,
"totalRefundedAmount": 0,
"orderSource": "GeideaGateway",
"paymentBrands": [
"visa"
],
"multiCurrency": {
"authCurrency": "SAR",
"authAmount": 101,
"settleCurrency": "SAR",
"settleAmount": 101,
"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": "ContinueToPay",
"subscriptionId": null,
"subscriptionOccurrenceId": null,
"customerPhoneNumber": null,
"customerPhoneCountryCode": null,
"createdDate": "2023-05-31T05:26:46.544697",
"createdBy": "PGW",
"updatedDate": "2023-05-31T05:26:50.8563999",
"updatedBy": "PGW"
},
"signature": "C3sjR0O+mcrORORMU4s/MgrvxgJW/2wmROWdoVAQosI="
}
MIT Transaction
Below is the list of all fields and an example of executing an MIT transaction for payment of 101.00 EGP with the token generated previously. We can carry out an unscheduled payment or set up a recurring payment for a defined frequency.
Parameter | Datatype | Description | Mandatory |
---|---|---|---|
sessionid | string | SessionId generated to complete the MIT transaction | Yes |
signature | string | A parameter to ensure the security and authenticity of API communications. It involves generating a signature using the contents of the API request and secret keys, which is then sent along with the request. | Yes |
orderid | string | orderid of the transaction that has been authenticated. This is only used for CIT payments | Conditional |
threeDSecureId | string | 3DS ID generated once the payer is authenticated. This is only used for CIT payments | Conditional |
CVV | string | The CVV of the cardholder. This is only used for CIT payments | Conditional |
initiatedBy | string | Channel through which the transaction has been initiated. Must be set to 'Merchant' for Merchant Initiated Transactions. | Yes |
agreementId | string | This is a string value that represents the unique identifier of the card-on-file agreement to use. This ID must be agreed upon between the merchant and the payment gateway before the COF service can be used. It is recommended to use a unique value for each card-on-file agreement to avoid confusion or conflicts. | Yes |
agreementType | string | This is a string value that represents the type of card-on-file agreement to use. There are different types of card-on-file agreements available, and the type of agreement used can affect how the customer's card information is stored and processed. The currently supported values are RECURRING and UNSCHEDULED. | Yes |
payWithToken | boolean | Flag used to indicate to pay with token | No |
callbackUrl | string | The URL where the payment gateway should send the callback after the transaction is completed. It must have a valid SSL certificate and start with 'https://' | No |
merchantReferenceId | string | A unique merchant identifier for the order. You can send your own reference ID using this field. | No |
isCreateCustomerEnabled | boolean | If this is set to true, a customer account is created on Geidea platform. This must be set to false, when customer ID is not null. When this is set to true, customerId must not be passed. | No |
isSetPaymentMethodEnabled | boolean | If this is set to true, then the customer is allowed to use the payment gateway | No |
paymentOperation | string | The type of payment operation to be performed. This is an optional parameter - if not submitted, the Geidea gateway will process a 'Pay' operation by default. | No |
Signature creation for token
We have a signature parameter in the Pay with Token API to have an additional layer of security during payment processing. To generate the signature, follow the steps below:
- Concatenate the string of {MerchantPublicKey, SessionId, TimeStamp)
- Hash (SHA-256) this Concatenated string by (Merchant_API_Password)
- Convert Hashed Value to Base64Str
curl --location 'https://api.merchant.geidea.net/pgw/api/v2/direct/pay/token' \
--header 'accept: text/plain' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YTA4N2Y0Y2EtOTg5MC00MDdiLTljMmYtNzYzMDgzNmNjMDIwOmE2ODk5NTU3LTRjYjMtNDFhYi05ZGYzLWE2NTQwYjIzYWI2MA==' \
--data '{
"orderId": "ad59546a-5a66-4116-d596-08dc4321cecf",
"threeDSecureId": "5e01ee11-a75b-4ba5-fc89-08dc431d2b42",
"cvv": "100",
"sessionid":"d3b4e303-cf9b-4374-f156-08dc4125bcdf",
"signature": "T0UaaJ2xjCt/hYr4hbvMZ8v07leQgm4SGSPUT5nzmSU=",
"payWithToken": true,
"callbackUrl": "https://webhook.site/49bda391-8158-4bdc-a72b-ecd5607c7ad1",
"signature": "kltZ/y7U9Q4Vifhuo6o9eQAuszvZ/I4WfKV5y7DhWH0=",
"merchantReferenceId": "MerchantReferenceId",
"isCreateCustomerEnabled": false,
"isSetPaymentMethodEnabled": false,
"paymentOperation": "pay",
"initiatedBy": "Merchant",
"agreementId": "123456789",
"agreementType": "Unscheduled"
}'
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.merchant.geidea.net/pgw/api/v1/direct/pay/token',
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 =>'{
"amount": 101,
"payWithToken": true,
"currency": "SAR",
"callbackUrl": "https://webhook.site/49bda391-8158-4bdc-a72b-ecd5607c7ad1",
"tokenId": "03ce28f7-5a53-46d8-822e-08db663a4c5b",
"merchantReferenceId": "MerchantReferenceId",
"isCreateCustomerEnabled": false,
"isSetPaymentMethodEnabled": false,
"paymentOperation": "pay",
"initiatedBy": "Merchant",
"agreementId": "123456789",
"agreementType": "Unscheduled"
}',
CURLOPT_HTTPHEADER => array(
'accept: text/plain',
'Content-Type: application/json',
'Authorization: Basic YTA4N2Y0Y2EtOTg5MC00MDdiLTljMmYtNzYzMDgzNmNjMDIwOmE2ODk5NTU3LTRjYjMtNDFhYi05ZGYzLWE2NTQwYjIzYWI2MA=='
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Find below the response after executing the MIT payment:
{
"order": {
"orderId": "ad59546a-5a66-4116-d596-08dc4321cecf",
"amount": 101,
"tipAmount": 0,
"convenienceFeeAmount": 0,
"totalAmount": 101,
"settleAmount": 101,
"currency": "EGP",
"settleCurrency": "EGP",
"language": "EN",
"detailedStatus": "Paid",
"status": "Success",
"threeDSecureId": null,
"merchantId": "21f3eeab-c3d3-4128-4350-08dad18797e2",
"merchantPublicKey": "665fae4b-5108-45de-9b86-a2c30a867d08",
"parentOrderId": "36f8dbba-9d3e-429c-eaeb-08db7dff6bb6",
"merchantReferenceId": "MerchantReferenceId",
"mcc": null,
"callbackUrl": "https://webhook.site/a2159a6d-52be-4352-b45d-a3d54e196fdd",
"customerEmail": null,
"billingAddress": null,
"shippingAddress": null,
"returnUrl": null,
"cardOnFile": false,
"tokenId": "4c003fc3-7176-4f0a-6463-08db7cd2152f",
"initiatedBy": "Merchant",
"agreementId": "123456789",
"agreementType": "Unscheduled",
"paymentOperation": "Pay",
"custom": null,
"paymentIntent": null,
"restrictPaymentMethods": false,
"paymentMethods": null,
"platform": null,
"statementDescriptor": null,
"description": null,
"createCustomer": false,
"setDefaultPaymentMethod": false,
"customerReferenceId": null,
"customerId": null,
"recurrence": null,
"transactions": [
{
"transactionId": "435adb5c-6a4d-4d72-e400-08db7dffae69",
"type": "Pay",
"status": "Success",
"amount": 101.00,
"currency": "EGP",
"source": "DirectAPI",
"authorizationCode": "177928",
"rrn": "213005177928",
"stan": "Stan",
"paymentMethod": {
"type": "Card",
"brand": "visa",
"cardholderName": "test",
"maskedCardNumber": "411111******1111",
"wallet": null,
"expiryDate": {
"month": 11,
"year": 24
},
"sameBank": false,
"issuingCountry": "USA",
"fundingType": "CREDIT",
"issuingBank": "JPMORGAN CHASE BANK, N.A.",
"cardCategory": ""
},
"codes": {
"acquirerCode": "00",
"acquirerMessage": "Approved",
"responseCode": "000",
"responseMessage": "Success",
"detailedResponseCode": "000",
"detailedResponseMessage": "The operation was successful"
},
"authenticationDetails": null,
"postilionDetails": null,
"terminalDetails": null,
"meezaDetails": null,
"bnplDetails": null,
"bankInstallmentDetails": null,
"correlationId": "e86c19a8-a6e3-4175-81f3-13ccffc415d8",
"parentTransactionId": null,
"paymentAttemptId": "474b503e-8240-41fb-a995-517ef34eb4f9",
"acquirer": {
"additionalResponseData": "AdditionalResponseData",
"batch": 145,
"customData": "CustomData",
"date": "0709",
"id": "Id",
"merchantId": "MerchantId",
"settlementDate": "2023-07-09T00:00:00",
"time": "Time",
"timeZone": "TimeZone",
"transactionId": "TransactionId"
},
"authorizationResponse": {
"autoExpiry": "2023-07-09T13:21:22.8627248Z",
"avsCode": "AvsCode",
"cardLevelIndicator": "CardLevelIndicator",
"cardSecurityCodeError": "6",
"cardSecurityCodePresenceIndicator": "CardSecurityCodePresenceIndicator",
"commercialCard": "CommercialCard",
"commercialCardIndicator": "d",
"financialNetworkCode": "FinancialNetworkCode",
"financialNetworkDate": "2023-07-06T13:21:22.8627254Z",
"marketSpecificData": "M",
"merchantAdviceCode": "MerchantAdviceCode",
"paySvcData": "PaySvcData",
"posData": "PosData",
"posEntryMode": "PosEntryMode",
"posEntryModeChanged": "d",
"processingCode": "ProcessingCode",
"responseCode": "ResponseCode",
"date": "0706",
"responseMessage": "ResponseMessage",
"returnAci": "R",
"time": "132122",
"timeZone": "TimeZone",
"trackQuality": "TrackQuality",
"transactionIdentifier": "TransactionIdentifier",
"transactionIntegrityClass": "TransactionIntegrityClass",
"validationCode": "ValidationCode",
"vpasResponse": "c"
},
"madaDetails": null,
"refundType": null,
"refundStatus": null,
"createdDate": "2023-07-06T13:21:22.7659511",
"createdBy": "PGW",
"updatedDate": "2023-07-06T13:21:22.9193671Z",
"updatedBy": "PGW"
}
],
"orderItems": [],
"isTokenPayment": true,
"paymentMethod": {
"type": "Card",
"brand": "visa",
"cardholderName": "test",
"maskedCardNumber": "411111******1111",
"wallet": null,
"expiryDate": {
"month": 11,
"year": 24
},
"sameBank": false,
"issuingCountry": "USA",
"fundingType": "CREDIT",
"issuingBank": "JPMORGAN CHASE BANK, N.A.",
"cardCategory": ""
},
"totalAuthorizedAmount": 101.00,
"totalCapturedAmount": 101.00,
"totalRefundedAmount": 0,
"orderSource": "GeideaGateway",
"paymentBrands": [
"visa"
],
"multiCurrency": {
"authCurrency": "EGP",
"authAmount": 101,
"settleCurrency": "EGP",
"settleAmount": 101,
"exchangeRate": null,
"exchangeFeePercentage": null,
"exchangeFeeAmount": null
},
"isTest": true,
"cashOnDelivery": false,
"amountToCollect": null,
"isDownPayment": false,
"exchangeRate": null,
"exchangeFeePercentage": null,
"exchangeFeeAmount": null,
"deviceId": null,
"gatewayDecision": "ContinueToPayer",
"subscriptionId": null,
"subscriptionOccurrenceId": null,
"customerPhoneNumber": null,
"customerPhoneCountryCode": null,
"refundType": null,
"refundStatus": null,
"bankId": null,
"isPayWithToken": true,
"createdDate": "2023-07-06T13:21:22.7138101Z",
"createdBy": "PGW",
"updatedDate": "2023-07-06T13:21:22.7138101Z",
"updatedBy": null
},
"responseMessage": "Success",
"detailedResponseMessage": "The operation was successful",
"language": "EN",
"responseCode": "000",
"detailedResponseCode": "000"
}
User Flow
Updated 2 months ago