Alternative Payment Methods

PPaaS Payment API allows you to accept Alternative Payment Methods (APM) from your payment application running on a payment device, the cloud, or from your payment gateway.

PPaaS supports several Alternative Payment Methods. New APMs are released according to the PPaaS roadmap.

Configuration parameters

To configure your APM payment service, use the PPaaS Configuration API. You can call the GET method to retrieve the current configuration of the service and identify the configurations that require an update. Now, update the configuration details and submit it to PPaaS using the POST method.

For APM payment services, configure the following service option parameters:

  • Device Supported: Indicates the type of device supported for the APM. You can choose from the current available values: Android and Tetra.
  • Payment method supported: Indicates the list of the APM supported for the APM payment service. The available values are: Alipay and Paypal.
  • Transaction Type supported: Indicates the types of the transactions supported for the APM payment service. You can choose from the current available values: SALE, CANCEL, and REFUND.
  • Payment scenario: Indicates the type of the payment scenario mode supported, if the payment method offers more than one. For Alipay, you can choose from the current available values: Merchant scans for user presented mode and Consumer scans for merchant presented mode.
If required, independently activate each value of the service option parameter.

APM use cases

After you configure the APM payment services, the merchant can perform the following APM use cases:

For reference, each use case is explained with APM payment service examples, Alipay and Paypal.

Sale transaction with consumer scan

The consumer scan is also called merchant presented mode. For a sale transaction, the payment interaction can happen through consumer scan. Here, the merchant displays the QR code and the consumer can scan the QR code.

Alipay consumer scan

For a sale transaction, when the payment scenario involves Alipay and consumer scan, the merchant displays the Alipay QR code and the consumer scans the code. In this scenario, call the method POST /payment/v1/transactions/process.

/payment/v1/transactions/process - json

POST

/payment/v1/transactions/process

json

{
    "clientDateTime": "2021-05-05T22:56:43",
    "channel": "instore",
    "clientNewTransactionId": "ssdsdd234219",
    "authorizationAmount": {
        "amount": 500,
        "currency": "SGD"
    },
    "instrument": {
        "instrumentType": "alipay",
        "paymentScenario": "ConsumerScan"
    }
}

On sending the request, the payment transaction is initialized with Alipay. The Alipay QR code image in base64 jpeg format is displayed in the response. The merchant can allow the consumer to scan the QR code and complete the transaction. Once the consumer scans the QR code, the PPaaS payment server gets the payment status from Alipay and the transaction status is updated in the PPaaS system.

Sample response - json

Sample response

json

{
    "transactionType": "Payment",
    "serverTransactionId": "EZP-229940bf-f7a1-4df0-a85f-7113edf233b0",
    "clientTransactionId": "ssdsdd234219",
    "transactionStatus": "Initialized",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "events": [
        {
            "eventType": "alipayRequest",
            "authorizationAmount": {
                "amount": 500,
                "currency": "SGD"
            },
            "source": {
                "sourceType": "instore",
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            },
        },
        {
            "eventType": "alipayConsumerScanResult",
            "result": "Accepted",
            "resultMessage": "Authorized Acquirer response code is APPROVED.",
            "resultData": {
                "paymentId": "20220117190741010007C0002300805",
                "paymentAmount": {
                    "value": "500",
                    "currency": "SGD"
                },
                "orderCodeForm": {
                    "paymentMethodType": "CONNECT_WALLET",
                    "expireTime": "01/17/2022 13:04:11",
                    "codeDetails": {
                        "codeValueType": "QRCODE",
                        "codeImage": "data:image/jpeg;base64,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",
                        "codeValue": "2816660400931cUZ1jA5n304Sq2r7uZ0cyhP",
                        "displayType": "SMALLIMAGE"
                    }
                },
                "acquirerId": "Z02TE1410000000A"
            },
            "source": {
                "sourceType": "acquirer",
                "acquirerName": "Alipay"
            },
        }
    ]
}

Paypal consumer scan

For a sale transaction, when the payment scenario involves Paypal and consumer scan, the merchant displays the Paypal QR code and the consumer scans the code. In this scenario, call the method POST /payment/v1/transactions/process.

/payment/v1/transactions/process - json

POST

/payment/v1/transactions/process

json

{
    "clientDateTime": "2021-06-22T22:56:43",
    "channel": "instore",
    "clientNewTransactionId": "A1213d9423423a6",
    "authorizationAmount": {
        "amount": 300,
        "currency": "EUR"
    },
    "instrument": {
        "instrumentType": "paypal",
        "paymentScenario": "ConsumerScan"
    }
}

On sending the request, the payment transaction is initialized in Paypal. The Paypal QR code image in base64 jpeg format is displayed in the response. The merchant can allow the consumer to scan the QR code and complete the transaction. Once the consumer scans the QR code, the PPaaS payment server gets the payment status from Paypal and the transaction status is updated in the PPaaS system.

Sample response - json

Sample response

json

{
    "transactionType": "Payment",
    "serverTransactionId": "EZP-7d6ab2f1-a6c4-4a91-b881-eeb11ba1495b",
    "clientTransactionId": "feb75418-2321-4e99-a5cf-4f03deadf2c5",
    "transactionStatus": "Initialized",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "events": [
        {
            "eventType": "paypalRequest",
            "serverProcessingDateTime": "01/17/2022 09:22:16",
            "clientDateTime": "06/22/2021 22:56:43",
            "authorizationAmount": {
                "amount": 300,
                "currency": "EUR"
            },
            "source": {
                "sourceType": "instore",
                "requestor": {},
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            }
        },
        {
            "eventType": "paypalConsumerScanResult",
            "serverProcessingDateTime": "01/17/2022 09:22:16",
            "requestor": {},
            "result": "Accepted",
            "resultMessage": "Authorized Acquirer response code is APPROVED.",
            "resultData": {
                "paymentAmount": {},
                "paymentTime": "01/01/0001 00:00:00",
                "pspCustomerInfo": {},
                "PayPalQRCodeData": {
                    "codeValue": "https://www.paypal.com/qrcodes/integrated?payer_id=N3G6UJN8XZD4U&merchant_ref_id=EZP-7d6ab2f1-a6c4-4a91-b881-eeb11ba1495b&time_stamp=1642411336"
                }
            },
            "source": {
                "sourceType": "acquirer",
                "requestor": {},
                "acquirerName": "PayPal"
            }
        }
    ]
}

Sale transaction with merchant scan

The merchant scan is also called consumer presented mode. For a sale transaction, the payment interaction can happen through merchant scan. Here, the consumer displays the QR code and the merchant can scan the QR code.

Alipay merchant scan

For a sale transaction, when the payment scenario involves Alipay and merchant scan, the consumer displays the Alipay QR code and the merchant scans the code. In this scenario, call the method POST /payment/v1/transactions/process.

/payment/v1/transactions/process - json

POST

/payment/v1/transactions/process

json

{
    "clientDateTime": "2021-06-22T22:56:43",
    "channel": "instore",
    "clientNewTransactionId": "sfdsds87f43534dfu",
    "authorizationAmount": {
        "amount": 300,
        "currency": "SGD"
    },
    "instrument": {
        "instrumentType": "alipay",
        "paymentScenario": "MerchantScan",
        "walletId": "281666023174370176317430"
    }
}

Sample response - json

Sample response

json

{
    "transactionType": "Payment",
    "serverTransactionId": "EZP-18fb0715-9409-4c43-aa8f-4f005c313a86",
    "clientTransactionId": "sfdsdsfsadsffffasdsdfdsafffdfu",
    "transactionStatus": "Accepted",
    ...
    "merchantAggregatorId": "8ea1e263-73b8-4c3e-938c-63191485f7a7",
    "merchantId": "f6dd8493-8312-4828-b44f-bfd243b4ed51",
    "events": [
        {
            "eventType": "alipayRequest",
            "authorizationAmount": {
                "amount": 300,
                "currency": "SGD"
            },
            "source": {...}
        },
        {
            "eventType": "alipayMerchantScanResult",
            "serverProcessingDateTime": "9/16/2021 11:20:34 AM",
            "result": "Accepted",
            "resultMessage": "Authorized Acquirer response code is APPROVED.",
            "resultData": {
                "paymentRequestId": "105130",
                "paymentId": "202109161940108001001880C0217806885",
                "paymentAmount": {
                    "value": "300",
                    "currency": "SGD"
                },
                ...
                "pspCustomerInfo": {
                    "pspName": "ALIPAY_CN",
                    "pspCustomerId": "20882027863621B1",
                    "displayCustomerId": "san***@mock.com"
                }
            },
            "source": {...}
        }
    ]
}

Paypal merchant scan

For a sale transaction, when the payment scenario involves Paypal+ and merchant scan, the consumer displays the Paypal QR code and the merchant scans the code. In this scenario, call the method POST /payment/v1/transactions/process.

/payment/v1/transactions/process - json

POST

/payment/v1/transactions/process

json

{
    "clientDateTime": "2021-05-05T22:56:43",
    "channel": "instore",
    "clientNewTransactionId": "A1213d9423a6",
    "authorizationAmount": {
        "amount": 200,
        "currency": "EUR"
    },
    "instrument": {
        "instrumentType": "paypal",
        "paymentScenario": "MerchantScan",
         "walletId": "792586015464515579"
    }
}

Sample response - json

Sample response

json

{
    "transactionType": "Payment",
    "serverTransactionId": "EZP-60638b14-cffc-4962-938e-f3c9004441ba",
    "clientTransactionId": "2815f4c3-2fca-4ec3-bfef-45ac95cfb766",
    "transactionStatus": "Initialized",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "events": [
        {
            "eventType": "paypalRequest",
            "authorizationAmount": {
                "amount": 200,
                "currency": "EUR"
            },
            "source": {
                "sourceType": "instore",
                "requestor": {},
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            },
            "WalletId": "792586015464515579"
        },
        {
            "eventType": "paypalMerchantScanResult",
            "serverProcessingDateTime": "01/17/2022 08:19:45",
            "requestor": {},
            "result": "Accepted",
            "resultMessage": "Authorized Acquirer response code is APPROVED.",
            "resultData": {
                "paymentId": "ad7e52e029aed8422588cb52d8e3ce5b56c272bf",
                "PayPalpaymentAmount": {}
            },
            "source": {
                "sourceType": "acquirer",
                "requestor": {},
                "acquirerName": "PayPal"
            }
        }
    ]
}

Cancel transaction

PPaaS Payment API allows you to cancel an APM transaction if it is supported by the corresponding APM service provider. The time period where the cancel is allowed depends on the APM service provider. After the stipulated time period, the transaction cannot be cancelled and refund should be used instead.

For example, APM service providers Alipay and Paypal allows to cancel a transaction as follows:

  • Alipay allows to cancel a transaction during the period from when the sale transaction was processed to 00:15 UTC+8, the following day.
  • Paypal allows to cancel a transaction during the first 24 hrs after the sale transaction was processed.

Cancel Alipay transaction

To cancel an Alipay transaction, call the method POST /payment/v1/transactions/{transactionId}/cancel.

/payment/v1/transactions/{transactionId}/cancel - json

POST

/payment/v1/transactions/{transactionId}/cancel

json

{
    "clientDateTime": "2021-05-05T22:56:43",
    "channel": "instore",
    "cancelReason": "Functional",
    "cancelAmount": {
        "amount": 300,
        "currency": "SGD"
    },
    "instrument": {
        "instrumentType": "alipay"
    }
}

Sample response - json

Sample response

json

{
    "transactionType": "Cancel",
    "serverTransactionId": "EZP-9f4ae8ea-3a4f-4c69-84b1-0f46f9e03cf5",
    "clientTransactionId": "ssdsdd234219",
    "transactionStatus": "cancelled",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "events": [
        {
            "eventType": "cancelRequest",
            "cancelAmount": {
                "amount": 300,
                "currency": "SGD"
            },
            "instrument": {
                "instrumentType": "alipay"
            },
            "source": {
                "sourceType": "instore",
                "requestor": {},
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            },
            "cancelReason": "Functional",
        },
        {
            "eventType": "alipayCancelResult",
            "serverProcessingDateTime": "01/17/2022 13:17:08",
            "result": "Accepted",
            "resultMessage": "Success",
            "paymentRequestId": "EZP-229940bf-f7a1-4df0-a85f-7113edf233b0",
        },
    ],
    "relatedServerTransactionId": "EZP-229940bf-f7a1-4df0-a85f-7113edf233b0"
}

Cancel Paypal transaction

To cancel a Paypal transaction, call the method POST /payment/v1/transactions/{transactionId}/cancel.

/payment/v1/transactions/{transactionId}/cancel - json

POST

/payment/v1/transactions/{transactionId}/cancel

json

{
    "clientDateTime": "2021-05-05T22:56:43",
    "channel": "instore",
    "cancelReason": "Functional",
    "cancelAmount": {
        "amount": 200,
        "currency": "EUR"
    },
    "instrument": {
         "instrumentType": "paypal"
    }
}

Sample response - json

Sample response

json

{
    "transactionType": "Cancel",
    "serverTransactionId": "EZP-8de3de6e-cdb6-40b4-810a-3d5d2794da4b",
    "clientTransactionId": "6731faa4-9360-4fc3-9102-0e63900d19eb",
    "transactionStatus": "cancelled",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "events": [
        {
            "eventType": "cancelRequest",
            "serverProcessingDateTime": "01/17/2022 10:01:37",
            "clientDateTime": "2021-05-05T22:56:43",
            "cancelAmount": {
                "amount": 300,
                "currency": "EUR"
            },
            "instrument": {
                "instrumentType": "paypal"
            },
            "source": {
                "sourceType": "instore",
                "requestor": {},
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            },
            "cancelReason": "Functional",
        },
        {
            "eventType": "paypalCancelResult",
            "serverProcessingDateTime": "01/17/2022 10:01:37",
            "result": "Accepted",
            "resultMessage": "cancel",
            "paymentRequestId": "EZP-0ec2d33d-77ab-45b3-b982-87beb9aa17fd",
        }
    ],
    "relatedServerTransactionId": "EZP-0ec2d33d-77ab-45b3-b982-87beb9aa17fd"
}

Refund transaction

Refund can either be partial or full. Depending on the APM wallet, there might be some constraints related to refund acceptance. For example, Paypal accepts refunds up to 180 days after the sale transaction.

Refund Alipay transaction

To refund an Alipay transaction, call the method POST /payment/v1/transactions/{transactionId}/refund.

/payment/v1/transactions/{transactionId}/refund - json

POST

/payment/v1/transactions/{transactionId}/refund

json

{
    "clientDateTime": "2021-06-21T10:10:10.589Z",
    "channel": "instore",
    "clientNewTransactionId": "eadsdsdsd8932",
    "refundAmount": {
    "amount": 100,
    "currency": "SGD"
  },
    "instrument": {
        "instrumentType": "alipay"        
    }
}

Sample response - json

Sample response

json

{
    "transactionType": "Refund",
    "serverTransactionId": "EZP-45941a03-8cab-4869-9114-7707d8ebad00",
    "clientTransactionId": "eadsdsdsd8932",
    "relatedServerTransactionId": "EZP-8d184f8a-9934-4152-943f-1eed6e529f2b",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "transactionStatus": "Accepted",
    "events": [
        {
            "eventType": "alipayRefundRequest",
            "serverProcessingDateTime": "01/17/2022 13:22:11",
            "clientDateTime": "06/21/2021 10:10:10",
            "requestor": {},
            "resultData": {},
            "refundAmount": {
                "amount": 100,
                "currency": "SGD"
            },
            "instrument": {
                "instrumentType": "alipay"
            },
            "source": {
                "sourceType": "instore",
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            },
        },
        {
            "eventType": "alipayRefundResult",
            "serverProcessingDateTime": "01/17/2022 13:22:11",
            "requestor": {},
            "result": "Accepted",
            "resultMessage": "Success",
            "resultData": {
                "acquirerId": "Z02TE1410000000A",
                "pspId": "102217100000000000A"
            },
            "refundAmount": {
                "value": "100",
                "currency": "SGD"
            },
            "refundId": "20220117190741020009B0000452810",
            "refundTime": "2022-01-17T13:22:11+00:00",
        }
    ]
}

Refund Paypal transaction

To refund a Paypal transaction, call the method POST /payment/v1/transactions/{transactionId}/refund.

/payment/v1/transactions/{transactionId}/refund - json

POST

/payment/v1/transactions/{transactionId}/refund

json

{
    "clientDateTime": "2021-06-22T22:56:43",
    "channel": "instore",
    "clientNewTransactionId": "A1213qwtrcd9423a6",
    "refundAmount": {
        "amount": 100,
        "currency": "EUR"
    },
    "instrument": {
         "instrumentType": "paypal"
    }
}

Sample Response - json

Sample Response

json

{
    "transactionType": "Refund",
    "serverTransactionId": "EZP-954ecd9c-b185-40da-8ba1-72e71ff0f241",
    "clientTransactionId": "fc46e28d-d58b-4a0d-afe1-07d7b93ae2eb",
    "relatedServerTransactionId": "EZP-7f008c55-9c70-4be5-8134-735819a33904",
    "tenantId": "6169406b-a371-45d5-909d-bf750694605d",
    "merchantAggregatorId": "e53ca427-11fb-4fc5-9c86-2a6bc6e06049",
    "merchantId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
    "transactionStatus": "Accepted",
    "events": [
        {
            "eventType": "paypalRefundRequest",
            "serverProcessingDateTime": "01/17/2022 10:25:16",
            "clientDateTime": "06/22/2021 22:56:43",
            "refundAmount": {
                "amount": 100,
                "currency": "EUR"
            },
            "instrument": {
                "instrumentType": "paypal"
            },
            "source": {
                "sourceType": "instore",
                "storeId": "f4be5a12-bb4a-46d4-b6ca-1ad8d6e4b5be",
                "logicalDeviceId": "381",
                "physicalDeviceId": "ingenico-DX8000-215MCD824319"
            },
            "fee_paypal": {
                "currency_code": "EUR",
                "value": "3"
            },
            "gross_paypal": {
                "currency_code": "EUR",
                "value": "100"
            },
            "partner_fee": {
                "currency_code": "EUR",
                "value": "4"
            },
            "net_amount": {
                "currency_code": "EUR",
                "value": "97"
            },
            "total_merchant": {
                "currency_code": "EUR",
                "value": "100"
            }
        },
        {
            "eventType": "paypalRefundResult",
            "serverProcessingDateTime": "01/17/2022 10:25:16",
            "requestor": {},
            "result": "Accepted",
            "resultMessage": "Success",
            "resultData": {
                "acquirerId": "0"
            },
            "refundAmount": {
                "amount": 100,
                "currency": "EUR"
            },
            "refundId": "7AE98719637582710",
        }
    ]
}