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
andTetra
.Payment method supported
: Indicates the list of the APM supported for the APM payment service. The available values are:Alipay
andPaypal
.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
, andREFUND
.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 andConsumer scans
for merchant presented mode.
APM use cases
After you configure the APM payment services, the merchant can perform the following APM use cases:
- Sale transaction with consumer scan
- Sale transaction with merchant scan
- Cancel transaction
- Refund transaction
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
/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
/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
/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
/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
/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
/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
/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
/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",
}
]
}