Skip to content

Authorization only

Some merchants may use a third-party Authentication provider and perform the authorization with EVO Cloud. In this case, you can submit a payment request to EVO Cloud with authentication data from the third-party 3D Secure provider.

Step 1: Perform the authentication with 3rd-party Authentication provider

Follow your existing integration process with third-party Authentication provider to get the authentication data required in the next step.

Step 2: Make a payment

With the authentication data from the third-party Authentication provider collected, you can make an HTTP POST request from your server to EVO Cloud endpoint

/g2/v1/payment/mer/{sid}/payment,

and specify the parameters below.

ParameterRequiredDescription
authentication.threeDS.mpiDataOThe 3D Secure authentication data, required if the user goes through 3D Secure authentication.
authentication.securePlus.securePlusDataOThe SecurePlus authentication data, required if the user goes through SecurePlus authentication.

Details about authentication.threeDS.mpiData Object

  1. authentication.threeDS.mpiData.eci: The electronic commerce indicator, required.
  2. authentication.threeDS.mpiData.cavv: The CAVV value, required.
  3. authentication.threeDS.mpiData.dsTransID: The directory server transaction ID, required if the user goes through 3D Secure 2 authentication.
  4. authentication.threeDS.mpiData.threeDSVersion: The 3D Secure version, required if the user goes through 3D Secure 2 authentication. The current version that EVO Cloud supports is 2.1.0.

Details about authentication.securePlus.securePlusData Object

  1. authentication.securePlus.securePlusData.eci: The raw result of the authentication returned from UnionPay to indicate the security status of this transaction, required.
  2. authentication.securePlus.securePlusData.vcode: The verification code received from UnionPay, required.

Here is an example of sending a payment request to EVO Cloud with 3D Secure 2 authentication data get from a third-party provider:

js
1.curl -X POST https://{EVO_Cloud_DOMAIN_NAME.com}/g2/v1/payment/mer/{sid}/payment \  
2.-H "Content-Type: application/json" \  
3.-H "DateTime: 2021-12-31T08:30:59+0800" \  
4.-H "MsgID: 2d21a5715c034efb7e0aa383b885fc7a" \  
5.-H "SignType: SHA256" \  
6.-H "Authorization: YOUR_MESSAGE_SIGNATURE" \  
7.-'{  
8."merchantTransInfo": {  
9.        "merchantTransID": "288c550834d44b8bb57a0b79601faf28",  
10.        "merchantTransTime": "2021-12-31T08:30:59+08:00"  
11.    },  
12.    "transAmount": {  
13.        "currency": "USD",  
14.        "value": "10.00"  
15.    },  
16.    "paymentMethod": {  
17.        "type": "card",  
18.        "card": {  
19.            "cardInfo": {  
20.                "cardNumber": "4761340000000019",  
21.                "expiryDate": "2212",  
22.                "cvc": "946"  
23.            }  
24.        }  
25.    },  
26.    "authentication": {  
27.        "threeDS": {  
28.            "mpiData": {  
29.                   "cavv": "AAABASOSczZYYyUxVpJzAAAAAAA=",  
30.                "eci": "05",  
31.                "dsTransID": "7ED14086-D39C-45AB-80F1-A489CB3B0701",  
32.                "threeDSVersion": "2.1.0"  
33.            }  
34.        }  
35.    },  
36.    "webhook""https://YOUR_COMPANY.com/WEBHOOK",  
37.    "metadata""This is a metadata"  
38.}'

Your will receive the response containing result.code to indicate the result. Here is an example of a successful payment response:

js
1.{  
2.    "result": {  
3.        "code": "S0000",  
4.        "message": "Success",  
5.        "pspResponseCode": "00",  
6.        "pspMessage": "Approval and completed successfully; Accepted and processed"  
7.    },  
8.    "paymentMethod": {  
9.        "card": {  
10.            "first6No": "476134",  
11.            "last4No": "0019",  
12.            "paymentBrand": "Visa",  
13.            "fundingType": "credit"  
14.        }  
15.    },  
16.    "payment": {  
17.        "status": "Authorised",  
18.        "merchantTransInfo": {  
19.            "merchantTransID": "288c550834d44b8bb57a0b79601faf28",  
20.            "merchantTransTime": "2021-12-31T08:30:59+08:00"  
21.        },  
22.        "evoTransInfo": {  
23.            "evoTransID": "82600f4990e6499baa4e40fb90c60977",  
24.            "evoTransTime": "2021-12-31T00:30:59Z"  
25.        },  
26.        "pspTransInfo": {  
27.            "pspTransTime": "2021-12-31T08:30:59+08:00",  
28.            "authorizationCode": "091410"  
29.        },  
30.        "transAmount": {  
31.            "currency": "USD",  
32.            "value": "10.00"  
33.        }  
34.    },  
35.    "pspData": {  
36.        "name": "Visa"  
37.    },  
    "metadata""This is a metadata"

Step 3: Present the result

Use the result.code and payment.status to inform the user of the payment status. See the Appendix in the EVO Cloud API Specification for more details.

Result CodeDescription
S0000Success

For other possible result.code values and recommended messages that you can present to your user, see the Appendix in the EVO Cloud API Specification.

If the result.code is S0000, you need to check the payment.status to determine and inform your user of the payment status.

StatusDescription
AuthorisedUsed for card transactions; means the transaction authorization is successfully completed and pending for capture (merchant can submit cancel).
CapturedIf a card transaction, means transaction authorization and capture are successfully completed; if an e-wallet transaction, means the transaction is successfully completed.
FailedPayment failed.

For other possible payment.status values and their descriptions, see the payment.status section in the EVO Cloud API Specification.