Skip to content

3-D Secure 2.0

In 3-D Secure 2.0 (3DS 2.0) the customer authentication is based on collecting browser and device data while customers pay online. This speeds up the payment processing flow and makes it more mobile app-friendly.

However, sometimes browser and device data are not enough for authentication. The card-issuing bank may apply the challenge flow, so the customer should be redirected to the bank's Access Control Server form (ACS form) to enter a password received from the bank.


3DS 2.0 for Demo PSP hosted payment page and widget integration

If you use the Demo PSP widget or payment page, it is the system that collects the browser and device data for the 3-D Secure verification. Besides, if needed, it redirects your customer to the ACS form of the card-issuing bank. You get the result of the 3-D Secure verification in the automatic notification on the transaction status.

3-D Secure Workflow

Stage Description
1 The customer places an order and submits a purchase request to the merchant.
2 When the customer is ready to pay, the merchant initiates the widget.
3 The Demo PSP system returns a response with token and redirect_url of the Demo PSP payment page.
4 The merchant forwards the customer to redirect_url to complete a payment or opens the widget in iframe or as a pop-up window.
5 The customer provides card details to complete a payment operation.
6 Demo PSP checks if the card is enrolled in the 3-D Secure 2.0 program.

If the card is enrolled, the system collects the browser data and, if needed, redirects the customer to the ACS form to enter a password. Otherwise, the flow goes to Step 3 of the 3-D Secure 1.0 check.
7 The system gets the 3-D Secure verification result.

Depending on the verification result and the anti-fraud management rules either the system goes to Stage 8 to process a transaction, or it cancels the payment processing flow and notifies the merchant at Stage 10.
8 If the customer passes the 3-D Secure verification check, Demo PSP submits the order and card data as well as the 3-D Secure authentication result to the acquirer to finalize a transaction.
9 The acquirer notifies Demo PSP of the payment processing result.
10 Demo PSP sends an automatic notification to notification_url set in the back office or the request to create a token. The 3-D Secure verification result appears in the three_d_secure_verification parameter section.
11 The customer is notified of the payment result. Demo PSP redirects the customer to return_url or to success_url, decline_url and fail_url set in the request to create a token. The customer's browser will request the mentioned URLs using the GET method and the request query string will have the uid, token, and status parameters. See accept customer back for more details.

If you need to get the transaction status, send a status query request by the transaction uid or your tracking_id. The system returns a response with the actual transaction status.

Example of the notification with a successful 3DS 2.0 verification result
{
"transaction": {
    "uid": "20906-e0cb376a8e",
    "status": "successful",
    "amount": 299,
    "currency": "GBP",
    "description": "Order description",
    "type": "payment",
    "payment_method_type": "credit_card",
    "tracking_id": null,
    "message": "Successfully processed",
    "test": true,
    "created_at": "2021-12-09T06:37:33.207Z",
    "updated_at": "2021-12-09T06:37:47.919Z",
    "paid_at": "2021-12-09T06:37:47.877Z",
    "expired_at": null,
    "recurring_type": null,
    "closed_at": null,
    "settled_at": null,
    "manually_corrected_at": null,
    "language": "en",
    "redirect_url": "https://https://demo-gateway.begateway.com/process/20906-e0cb376a8e",
    "credit_card": {
    "holder": "RICK ASTLEY",
    "stamp": "5f854c844e3007f2eccf2aa614f6a4cc6b8a2c241aab3e5776fe7912dc7b9d92",
    "brand": "mir",
    "last_4": "0013",
    "first_1": "2",
    "bin": "220138",
    "issuer_country": "RU",
    "issuer_name": null,
    "product": null,
    "exp_month": 12,
    "exp_year": 2026,
    "token_provider": null,
    "token": null
    },
    "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/20906-e0cb376a8e/41848e78dc92cfee3bd5654d3b04c8b316d37a455e544004a7e5f8c73cbca026?language=en",
    "status_code": null,
    "id": "20906-e0cb376a8e",
    "additional_data": {
    "request_id": "e88c81f8-83f5-449d-8ac6-6364ab8a1ea6",
    "browser": {
        "screen_width": 1920,
        "screen_height": 1080,
        "screen_color_depth": 24,
        "language": "en",
        "java_enabled": false,
        "user_agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0",
        "time_zone": -180,
        "time_zone_name": "Europe/Moscow",
        "window_height": 726,
        "window_width": 600,
        "accept_header": "application/json"
    },
    "vendor": {
        "name": "CTP",
        "token": "7244323ecfd8a3dded41ef8a64f5fd939f9520697bb0779819952314389d6ae5"
    }
    },
    "three_d_secure_verification": {
    "status": "successful",
    "message": "Authentication Successful",
    "ve_status": "Y",
    "acs_url": null,
    "pa_req": null,
    "md": null,
    "pa_res_url": "https://https://demo-gateway.begateway.com/process/20906-e0cb376a8e",
    "eci": "02",
    "pa_status": "Y",
    "xid": "378d19a2-68dd-4332-b0c8-bce6f775b65c",
    "cavv": "AAABCVQXAQAAAAAIZhcBARphtD6=",
    "cavv_algorithm": null,
    "fail_reason": null,
    "method_process_url": null,
    "creq": null
    },
    "payment": {
    "auth_code": "654321",
    "bank_code": "05",
    "rrn": "999",
    "ref_id": "777888",
    "message": "Payment was approved",
    "amount": 299,
    "currency": "GBP",
    "billing_descriptor": "test descriptor",
    "gateway_id": 645,
    "status": "successful"
    },
    "avs_cvc_verification": {
    "avs_verification": {
        "result_code": "1"
    },
    "cvc_verification": {
        "result_code": "1"
    }
    },
    "customer": {
    "ip": "38.214.36.218",
    "email": "jake@example.com",
    "device_id": "4d3445f7a5b597558b7751bf3763625d",
    "birth_date": null
    },
    "billing_address": {
    "first_name": "Rick",
    "last_name": "Astley",
    "address": "Baker street 221b",
    "country": "GB",
    "city": "London",
    "zip": null,
    "state": null,
    "phone": null
    }
}
}
Example of the notification with a failed 3DS 2.0 verification result
{
"transaction": {
    "uid": "21324-1544a58bfe",
    "status": "failed",
    "amount": 199,
    "currency": "GBP",
    "description": "Order description",
    "type": "payment",
    "payment_method_type": "credit_card",
    "tracking_id": null,
    "message": "Card authentication failed",
    "test": true,
    "created_at": "2021-02-22T15:25:03.252Z",
    "updated_at": "2021-02-22T15:25:11.074Z",
    "paid_at": null,
    "expired_at": null,
    "closed_at": null,
    "settled_at": null,
    "manually_corrected_at": null,
    "language": "en",
    "redirect_url": "https://https://demo-gateway.begateway.com/process/21324-1544a58bfe",
    "credit_card": {
    "holder": "RICK ASTLEY",
    "stamp": "d70457267debbf26b527711651e766a7157590c4d1c3a1cce29dcbde54630bca",
    "brand": "mir",
    "last_4": "0021",
    "first_1": "2",
    "bin": "220138",
    "issuer_country": "RU",
    "issuer_name": null,
    "product": null,
    "exp_month": 12,
    "exp_year": 2026,
    "token_provider": null,
    "token": null
    },
    "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/21324-1544a58bfe/c3204e3e0df0bc30d140916b36e061091e19cb5c6e889d8e7ab1508666ff6ff5?language=en",
    "status_code": null,
    "id": "21324-1544a58bfe",
    "additional_data": {
    "request_id": "9d27d6bc-8880-486c-b73d-bf4917de35fb",
    "browser": {
        "screen_width": 1920,
        "screen_height": 1080,
        "screen_color_depth": 24,
        "language": "en",
        "java_enabled": false,
        "user_agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0",
        "time_zone": -180,
        "time_zone_name": "Europe/Moscow",
        "window_height": 726,
        "window_width": 600,
        "accept_header": "application/json"
    },
    "vendor": {
        "name": "CTP",
        "token": "2c31e33b4e040a9ff69a5db8a2f5cffb32fde95e1c7c070d38b375914211f611"
    }
    },
    "three_d_secure_verification": {
    "status": "failed",
    "message": "Card authentication failed",
    "ve_status": "Y",
    "acs_url": null,
    "pa_req": null,
    "md": null,
    "pa_res_url": "https://https://demo-gateway.begateway.com/process/21324-1544a58bfe",
    "eci": "",
    "pa_status": "N",
    "xid": "aa43e942-37a1-4f6d-b7b7-eab3ca9a4c26",
    "cavv": "",
    "cavv_algorithm": null,
    "fail_reason": "Card authentication failed",
    "method_process_url": null
    },
    "payment": {
    "auth_code": null,
    "bank_code": null,
    "rrn": null,
    "ref_id": null,
    "message": null,
    "amount": 199,
    "currency": "GBP",
    "billing_descriptor": null,
    "gateway_id": 645,
    "status": "incomplete"
    },
    "avs_cvc_verification": {
    "avs_verification": {
        "result_code": null
    },
    "cvc_verification": {
        "result_code": null
    }
    },
    "customer": {
    "ip": "37.214.26.144",
    "email": "rick@example.com",
    "device_id": "16a57cf4e329e8cb4854a3d7b30cda57",
    "birth_date": null
    },
    "billing_address": {
    "first_name": "Rick",
    "last_name": "Astley",
    "address": "Baker street 221b",
    "country": "GB",
    "city": "London",
    "zip": null,
    "state": null,
    "phone": null
    }
}
}

3DS 2.0 for API integration

If you use your own checkout page, select either of the two scenarios of payment processing with the 3-D Secure verification:

  • basic - it is the Demo PSP system that interacts with the 3-D Secure server and the card-issuing bank to authenticate the customer;

  • advanced - the 3-D Secure authentication flow goes under the full control of the merchant who interacts with the card-issuing bank.

Basic scenario of payment processing with the 3DS 2.0 verification



3-D Secure Workflow

Stage Description
1 The customer places an order and submits a purchase request to the merchant.
2 The merchant sends a payment, authorization or tokenization request with the additional_data.browser and return_url parameters to the Demo PSP system.
3 Demo PSP checks if the card is enrolled in the 3DS 2.0 program.
4 The system gets the 3DS 2.0 verification result.
5 Provided that the card is 3DS 2.0-enrolled, the merchant receives a response with the following parameters:
uid - transaction identifier;
status - transaction status;
redirect_url - Demo PSP URL to which you should forward the customer for additional check.

If the transaction status is incomplete, go to Stage 6. Otherwise, go to Stage 9.

In case the card is not 3DS 2.0-enrolled, the flow goes to Step 3 of the 3-D Secure 1.0 check.
6 The merchant forwards the customer to redirect_url received at Stage 5 for additional check.
7 The customer goes to redirect_url for further verification.
8 The system collects the customer's browser and device data, and the card-issuing bank carries out an additional verification.
If the browser and device data are not enough to authorize the payment, the system forwards the customer to the ACS form to enter a 3-D Secure password.
9 The Demo PSP system gets the 3DS verification result.

Depending on the verification result and the anti-fraud management rules, either the system goes to Stage 10 to process a transaction, or it cancels the payment processing flow and notifies the merchant at Stage 12.
10 After the 3-D Secure verification is finished, the Demo PSP system sends a transaction request with the 3-D Secure verification result to the acquirer to complete a payment operation.
11 The acquirer processes a transaction and notifies Demo PSP of the transaction processing result.
12 The system sends an automatic notification on the transaction result to notification_url set in the back office or the merchant's transaction request.
13 The system redirects the customer to the return_url set in the request at Step 2.

If you need to get the transaction status, send a status query request by the transaction uid or your tracking_id. The system returns a response with the actual transaction status.

Example of the notification on the card enrollment in the 3DS 2.0 program
{
    "transaction": {
        "uid": "21528-f9d3c90797",
        "status": "incomplete",
        "amount": 100,
        "currency": "USD",
        "description": "Test transaction ütf",
        "type": "payment",
        "payment_method_type": "credit_card",
        "tracking_id": "tracking_id_001",
        "message": null,
        "test": true,
        "created_at": "2022-03-02T06:44:03.593Z",
        "updated_at": "2022-03-02T06:44:05.450Z",
        "paid_at": null,
        "expired_at": null,
        "recurring_type": null,
        "closed_at": null,
        "settled_at": null,
        "manually_corrected_at": null,
        "language": "en",
        "credit_card": {
            "holder": "John Doe",
            "stamp": "5f854c844e3007f2ecff2aa614f6a4cc6b8a2c241aab3e5776fe7912dc7b9d92",
            "brand": "mir",
            "last_4": "0013",
            "first_1": "2",
            "bin": "220138",
            "issuer_country": "RU",
            "issuer_name": null,
            "product": null,
            "exp_month": 10,
            "exp_year": 2026,
            "token_provider": null,
            "token": null
        },
        "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/21528-f9d3c90797/23c66abe808d1c20a491bfbd5614f9400c8248113f195cf5e468a307628e7bff?language=en",
        "status_code": null,
        "id": "21528-f9d3c90797",
        "additional_data": {
            "browser": {
                "screen_width": 1920,
                "screen_height": 1080,
                "screen_color_depth": 24,
                "language": "en",
                "java_enabled": false,
                "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36",
                "time_zone": -180,
                "time_zone_name": "Europe/London",
                "accept_header": "*/*",
                "window_height": 667,
                "window_width": 600
            }
        },
        "redirect_url": "https://https://demo-gateway.begateway.com/process/21528-f9d3c90797",
        "three_d_secure_verification": {
            "status": "incomplete",
            "message": "Authentication Available",
            "ve_status": "Y",
            "acs_url": null,
            "pa_req": null,
            "md": null,
            "pa_res_url": "https://https://demo-gateway.begateway.com/process/21528-f9d3c90797",
            "eci": null,
            "pa_status": null,
            "xid": null,
            "cavv": null,
            "cavv_algorithm": null,
            "fail_reason": null,
            "method_process_url": null,
            "creq": null
        },
        "payment": {
            "auth_code": null,
            "bank_code": null,
            "rrn": null,
            "ref_id": null,
            "message": null,
            "amount": 100,
            "currency": "USD",
            "billing_descriptor": null,
            "gateway_id": 645,
            "status": "incomplete"
        },
        "avs_cvc_verification": {
            "avs_verification": {
                "result_code": null
            },
            "cvc_verification": {
                "result_code": null
            }
        },
        "customer": {
            "ip": "127.0.0.1",
            "email": "john@example.com",
            "device_id": "12312312321fff67",
            "birth_date": "1980-01-31"
        },
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe",
            "address": "1st Street",
            "country": "US",
            "city": "Denver",
            "zip": "96002",
            "state": "CO",
            "phone": null
        }
    }
}

Advanced scenario of payment processing with the 3DS 2.0 verification

The advanced 3DS 2.0 verification scenario is designed for those merchants who want more control over the payment processing flow. It is the merchant's application that forwards the customer to the ACS form for verification, gets the response, and then submits the received 3-D Secure verification results to the Demo PSP system to finalize a transaction.

Info

Before you implement the advanced 3DS 2.0 scenario, check with your account manager if it is available for you.

3-D Secure Workflow

Stage Description
1 The customer places an order and submits a purchase request to the merchant.
2 Тhe merchant sends a payment, authorization or tokenization request with the required additional_data.browser parameters, return_url, and the three_d_secure.advanced parameter set to true.
3 Demo PSP checks if the card is enrolled in the 3DS 2.0 program.
4 The system gets the 3-D Secure authentication result.
5 The merchant receives a response which contains, besides others, the following parameters:

uid - transaction identifier;
status - transaction status;
status_code - transaction 3DS authentication process status;
the three_d_secure_verification section with the acs_url, creq, method_process_url parameters.

Possible values:
"status":"successful" - The transaction is processed successfully, go to Stage 17;
"status":"incomplete" and "status_code":20 - The system is waiting for the verification result. Send a status query request to get the transaction status;
"status":"incomplete" and "status_code":21 - An additional check is required, go to Stage 6;
"status":"incomplete" and "status_code":22 - An additional check is required, go to Stage 11.
6 Invisible iframe
The merchant opens method_process_url received at Stage 5 in an invisible iframe for an additional check.
7 The system collects the customer's browser and device data, and the card-issuing bank carries out an additional verification.
8 The Demo PSP system gets the authorization result and the transaction status.
9 The merchant sends a status query request to Demo PSP to get the transaction status.
10 The merchant receives a response which contains, besides others, the following parameters:

uid - transaction identifier;
status - transaction status;
status_code - transaction 3-D Secure authentication process status;
the three_d_secure_verification section with the acs_url and creq parameters.

Possible values:
"status":"successful" - The transaction is processed successfully, go to Stage 15;
"status":"incomplete" and "status_code":22 - An additional check is required, go to Stage 11.
11 Challenge flow
The merchant builds a form to forward the customer to the issuing bank's ACS form for verification.
12 The customer enters a 3-D Secure password.
13 After the customer passes the authentication check, the issuing bank returns the customer to return_url set in the form at Stage 11. The merchant gets the result of the 3-D Secure verification.
14 The merchant sends a POST request with the cres parameter to https://https://demo-gateway.begateway.com/process/{transaction_uid}/return, where transaction_uid stands for the value of uid received in the response at Stage 5.
15 The Demo PSP system sends a transaction request with the 3-D Secure verification result to the acquirer to complete a payment operation.
16 The acquirer processes a transaction and sends a response with the transaction processing result to Demo PSP.
17 The system sends a response with the transaction result to the merchant to notification_url indicated in the payment request.
18 The merchant shows the payment confirmation page to the customer.

If you need to get the transaction status, send a status query request by the transaction uid or your tracking_id. The system returns a response with the actual transaction status.

Creating a form to redirect the customer to the ACS form of the issuing bank

Build a form using the values of the acs_url and creq parameters:

<form id="ACSRedirect" action="value_of_acs_url" method="POST">
      <input type="hidden" name="CReq" value="value_of_creq">
      <input type="submit" value="Submit">
</form>

3-D Secure response parameters

Parameter Type Description
ve_status string Verification status of the card enrollment in 3-D Secure program.
pa_status string Payment authentication status (present only if authentication was performed).
eci string Electronic Commerce Indicator. Provides information regarding Merchant protection level against chargebacks requests by the Cardholders or their banks.
xid string 3-D Secure transaction unique identification code.
cavv string Cardholder Authentication Verification Value (present only if the Cardholder has been successfully authenticated).
cavv_algorithm string CAVV algorithm (present only if the authentication status is Y or A).
fail_reason string Human readable reason if 3-D Secure authentication failed.
status * required
string 3-D Secure authentication status.
Example of the response on the card enrollment in the 3DS 2.0 program (Stage 5)
{
    "transaction": {
        "uid": "21575-841c01d591",
        "status": "incomplete",
        "amount": 100,
        "currency": "USD",
        "description": "Test transaction ütf",
        "type": "payment",
        "payment_method_type": "credit_card",
        "tracking_id": "tracking_id_001",
        "message": null,
        "test": true,
        "created_at": "2022-03-03T20:50:18.271Z",
        "updated_at": "2022-03-03T20:50:18.731Z",
        "paid_at": null,
        "expired_at": null,
        "recurring_type": null,
        "closed_at": null,
        "settled_at": null,
        "manually_corrected_at": null,
        "language": "en",
        "credit_card": {
            "holder": "John Doe",
            "stamp": "5f854c844e3007f2ecff2aa614f6a4cc6b8a2c241aab3e5776fe7912dc7b9d92",
            "brand": "mir",
            "last_4": "0013",
            "first_1": "2",
            "bin": "220138",
            "issuer_country": "RU",
            "issuer_name": null,
            "product": null,
            "exp_month": 10,
            "exp_year": 2026,
            "token_provider": null,
            "token": null
        },
        "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/21575-841c01d591/a551ce9198be8f17366baa0da0bfb322eb4676e76363ce00a280427730975c27?language=en",
        "status_code": 21,
        "id": "21575-841c01d591",
        "additional_data": {
            "browser": {
                "screen_width": 1920,
                "screen_height": 1080,
                "screen_color_depth": 24,
                "language": "en",
                "java_enabled": false,
                "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36",
                "time_zone": -180,
                "time_zone_name": "Europe/Moscow",
                "accept_header": "*/*",
                "window_height": 667,
                "window_width": 600
            }
        },
        "three_d_secure_verification": {
            "status": "incomplete",
            "message": "Authentication Available",
            "ve_status": "Y",
            "acs_url": null,
            "pa_req": null,
            "md": null,
            "pa_res_url": "https://https://demo-gateway.begateway.com/process/21575-841c01d591",
            "eci": null,
            "pa_status": null,
            "xid": null,
            "cavv": null,
            "cavv_algorithm": null,
            "fail_reason": null,
            "method_process_url": "https://3ds-staging.begateway.com:4443/api/v1/transactions/b280945e-7a49-4056-a008-95f2a555f7b6/method-process",
            "creq": null
        },
        "payment": {
            "auth_code": null,
            "bank_code": null,
            "rrn": null,
            "ref_id": null,
            "message": null,
            "amount": 100,
            "currency": "USD",
            "billing_descriptor": null,
            "gateway_id": 645,
            "status": "incomplete"
        },
        "avs_cvc_verification": {
            "avs_verification": {
                "result_code": null
            },
            "cvc_verification": {
                "result_code": null
            }
        },
        "customer": {
            "ip": "127.0.0.1",
            "email": "john@example.com",
            "device_id": "12312312321fff67",
            "birth_date": "1980-01-31"
        },
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe",
            "address": "1st Street",
            "country": "US",
            "city": "Denver",
            "zip": "96002",
            "state": "CO",
            "phone": null
        }
    }
}

Example of the response with the transaction status
{
    "transaction": {
        "uid": "21575-841c01d591",
        "status": "successful",
        "amount": 100,
        "currency": "USD",
        "description": "Test transaction ütf",
        "type": "payment",
        "payment_method_type": "credit_card",
        "tracking_id": "tracking_id_001",
        "message": "Successfully processed",
        "test": true,
        "created_at": "2022-03-03T20:50:18.271Z",
        "updated_at": "2022-03-03T21:10:55.219Z",
        "paid_at": "2022-03-03T21:10:55.196Z",
        "expired_at": null,
        "recurring_type": null,
        "closed_at": null,
        "settled_at": null,
        "manually_corrected_at": null,
        "language": "en",
        "credit_card": {
            "holder": "John Doe",
            "stamp": "5f854c844e3007f2ecff2aa614f6a4cc6b8a2c241aab3e5776fe7912dc7b9d92",
            "brand": "mir",
            "last_4": "0013",
            "first_1": "2",
            "bin": "220138",
            "issuer_country": "RU",
            "issuer_name": null,
            "product": null,
            "exp_month": 10,
            "exp_year": 2026,
            "token_provider": null,
            "token": null
        },
        "receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/21575-841c01d591/a551ce9198be8f17366baa0da0bfb322eb4676e76363ce00a280427730975c27?language=en",
        "status_code": null,
        "id": "21575-841c01d591",
        "additional_data": {
            "browser": {
                "screen_width": 1920,
                "screen_height": 1080,
                "screen_color_depth": 24,
                "language": "en",
                "java_enabled": false,
                "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36",
                "time_zone": -180,
                "time_zone_name": "Europe/Moscow",
                "accept_header": "*/*",
                "window_height": 667,
                "window_width": 600
            }
        },
        "redirect_url": "https://https://demo-gateway.begateway.com/process/21575-841c01d591",
        "three_d_secure_verification": {
            "status": "successful",
            "message": "Authentication Successful",
            "ve_status": "Y",
            "acs_url": null,
            "pa_req": null,
            "md": null,
            "pa_res_url": "https://https://demo-gateway.begateway.com/process/21575-841c01d591",
            "eci": "02",
            "pa_status": "Y",
            "xid": "b280945e-7a49-4056-a008-95f2a555f7b6",
            "cavv": "AAABASVzkQAAAAAJKHORAfLuSAo=",
            "cavv_algorithm": null,
            "fail_reason": null,
            "method_process_url": "https://3ds-staging.begateway.com:4443/api/v1/transactions/b280945e-7a49-4056-a008-95f2a555f7b6/method-process",
            "creq": null
        },
        "payment": {
            "auth_code": "654321",
            "bank_code": "05",
            "rrn": "999",
            "ref_id": "777888",
            "message": "Payment was approved",
            "amount": 100,
            "currency": "USD",
            "billing_descriptor": "test descriptor",
            "gateway_id": 645,
            "status": "successful"
        },
        "avs_cvc_verification": {
            "avs_verification": {
                "result_code": "1"
            },
            "cvc_verification": {
                "result_code": "1"
            }
        },
        "customer": {
            "ip": "127.0.0.1",
            "email": "john@example.com",
            "device_id": "12312312321fff67",
            "birth_date": "1980-01-31"
        },
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe",
            "address": "1st Street",
            "country": "US",
            "city": "Denver",
            "zip": "96002",
            "state": "CO",
            "phone": null
        }
    }
}

Verification status of the card enrollment

Status Description 3-D Secure Available? Payment completed?
Y Card is enrolled. Yes No
N Card is not enrolled. No Yes
U Unable to authenticate. No Yes
E Enrollment verification error. See fail_reason for details No Yes

Payment authentication status

Status Description VISA ECI MC ECI
Y Cardholder was successfully authenticated. 05 02
A Authentication could not be performed, but a proof of authentication attempt was provided. 06 01
N Cardholder authentication failed. Authorization request shouldn't be submitted. - -
U Authentication could not be performed due to a technical error or other problem. The transaction will be treated as eCommerce. The payment card used for this transaction is deemed ineligible for 3-D Secure processing. The merchant will have to decide if he wants to proceed with an unauthorized payment request or if he should ask the customer for another form of payment. 05 02
E An error occurred during the authentication process. Authorization request shouldn't be submitted. - -

CAVV Algorithm

It indicates the algorithm used to generate the authentication CAVV value. This property is determined by the Access Control Server (ACS), and is filled after receiving a response to a Payer Authentication Request (PAReq) and if the authentication status is Y or A. This property contains the one-digit value which indicates the algorithm used by the ACS to generate the Cardholder Authentication Verification Value (CAVV). Valid algorithms include:

CAVV Value Description
0 HMAC (as per SET TranStain)
1 CVV
2 CVV with ATN