Authorization only
Some merchants may use a third-party Authentication provider and perform the authorization with EVO Payment. In this case, you can submit a payment request to EVO Payment 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 Payment endpoint
/g2/v1/payment/mer/{sid}/payment,
and specify the parameters below.
| Parameter | Required | Description |
|---|---|---|
authentication.threeDS.mpiData | O | The 3D Secure authentication data, required if the user goes through 3D Secure authentication. |
authentication.securePlus.securePlusData | O | The SecurePlus authentication data, required if the user goes through SecurePlus authentication. |
Details about authentication.threeDS.mpiData Object
authentication.threeDS.mpiData.eci: The electronic commerce indicator, required.authentication.threeDS.mpiData.cavv: The CAVV value, required.authentication.threeDS.mpiData.dsTransID: The directory server transaction ID, required if the user goes through 3D Secure 2 authentication.authentication.threeDS.mpiData.threeDSVersion: The 3D Secure version, required if the user goes through 3D Secure 2 authentication. The current version that EVO Payment supports is 2.1.0.
Details about authentication.securePlus.securePlusData Object
authentication.securePlus.securePlusData.eci: The raw result of the authentication returned from UnionPay to indicate the security status of this transaction, required.authentication.securePlus.securePlusData.vcode: The verification code received from UnionPay, required.
Here is an example of sending a payment request to EVO Payment with 3D Secure 2 authentication data get from a third-party provider:
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.-d '{
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:
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 Payment API Specification for more details.
| Result Code | Description |
|---|---|
S0000 | Success |
For other possible result.code values and recommended messages that you can present to your user, see the Appendix in the EVO Payment 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.
| Status | Description |
|---|---|
| Authorised | Used for card transactions; means the transaction authorization is successfully completed and pending for capture (merchant can submit cancel). |
| Captured | If a card transaction, means transaction authorization and capture are successfully completed; if an e-wallet transaction, means the transaction is successfully completed. |
| Failed | Payment failed. |
For other possible payment.status values and their descriptions, see the payment.status section in the EVO Payment API Specification.

