3-D Secure 1.0
При проведении онлайн операции картой с использованием проверки 3-D Secure 1.0 покупатель торговца всегда переходит на форму Access Control Server банка-эмитента карты (ACS форма). На этой форме требуется ввести пароль для аутентификации платежа, который покупатель получает от банка-эмитента.
Обработка транзакции с 3-D Secure проверкой содержит следующие шаги:

| Шаг | Описание | 
|---|---|
| 1 | Клиент отправляет запрос на покупку в магазине торговца. | 
| 2 | Торговец отправляет запрос на оплату или авторизацию Overpay | 
| 3 | Overpay проверяет использует ли клиент 3-D Secure | 
| 4 | Если клиент не использует, то запрос идет в банк-эквайер, который возвращает статус транзакции торговцу. Переход к Шагу 10. | 
| 5 | Overpay вернет ответ со статусом incompleteи параметрами:redirect_urlв блокеtransactionответа.acs_url,pa_req,mdиpa_res_urlв блокеthree_d_secure_verificationответа. | 
| 6 | Существует два варианта развития событий: Базовый Система торговца перенаправляет клиента на redirect_urlС расширенным контролем Перед реализацией продвинутого сценария работы с 3-D Secure уточните у вашего менеджера, будет ли он доступен для вас. Предназначено для торговцев, которые хотят больше контроля над процессом оплаты. В этом случае приложение торговца создает форму для отправки клиента банку-эмитенту на проверку, ожидает клиента обратно на TermUrl, взятый из параметров формы, и затем отправляет POST запрос с полученнымиPaResиMDнаpa_res_urlOverpay. Overpay вышлет данные транзакции вместе с данными 3-D Secure в сеть обработки платежей и вернет ответ с результатом. | 
| 7 | Клиент авторизуется с 3-D Secure и возвращается на Overpay. | 
| 8 | Overpay отправляет запрос на оплату или авторизацию c настоящими ECI, CAVV и XID 3-D Secure параметрами банку-эквайеру. Если торговец выбрал в Шаге 6 способ С расширенным контролем, то вместе с ответом от Overpay, который содержит результат транзакции и 3-D Secure проверки, переходим к Шагу 11. | 
| 9 | Overpay отправляет клиента на return_url(полученный Overpay при оплате или авторизации) с параметромuidтранзакции в URL.Например, если return_url-http://www.example.com/return_here, клиент перенаправляется наhttp://www.example.com/return_here?uid=TRANSACTION_UID | 
| 10 | Торговец делает запрос статуса, чтобы получить информацию о транзакции со статусом. | 
| 11 | Торговец продолжает процесс обработки заказа, завершает транзакцию и показывает клиенту страницу подтверждения заказа. | 
Пример формы для перенаправления клиента на ACS форму
Приложение торговца получает и сохраняет значения acs_url, pa_req, md и pa_res_url. Затем создает форму, используя сохраненные значения:
<form id="ACSRedirect" action="value_of_acs_url" method="POST">
      <input type="hidden" name="MD" value="value_of_md">
      <input type="hidden" name="TermUrl" value="merchant_application_endpoint">
      <input type="hidden" name="PaReq" value="value_of_pa_req">
      <input type="submit" value="Submit">
</form>
Пример формы
<html>
<head>
    <META http-equiv="Content-Language" content="en-US">
    <style>
    .content {
        width: 50%;
        margin: 0 auto;
        text-align: center;
    }
    input[type="submit"] {
        background-color: rgb(92, 184, 92);
        border-bottom-color: rgb(76, 174, 76);
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        border-bottom-style: solid;
        border-bottom-width: 1px;
        border-left-color: rgb(76, 174, 76);
        border-left-style: solid;
        border-left-width: 1px;
        border-right-color: rgb(76, 174, 76);
        border-right-style: solid;
        border-right-width: 1px;
        border-top-color: rgb(76, 174, 76);
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        border-top-style: solid;
        border-top-width: 1px;
        color: rgb(255, 255, 255);
        cursor: pointer;
        display: inline-block;
        font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
        font-size: 14px;
        height: 34px;
        line-height: 20px;
        padding-bottom: 6px;
        padding-left: 12px;
        padding-right: 12px;
        padding-top: 6px;
        text-align: center;
        touch-action: manipulation;
        vertical-align: middle;
        white-space: nowrap;
        width: 80px;
        word-spacing: 0px;
        margin-top: 40px;
    }
    img { height: 70px; }
    </style>
</head>
<body>
<div class='content'>
    <p><img src="/images/visa.png"></p>
    <h3>Your card is enrolled in 3-D Secure program</h3>
    <p>You will be redirected to your bank's secure page for 3-D Secure check. Then your transaction will be finished.
If nothing happens, please click Submit button.
</p>
    <form id="ACSRedirect" action="https://dropit.3dsecure.net:9443/PIT/ACS" method="POST">
    <input type="hidden" name="MD" value="454645">
    <input type="hidden" name="TermUrl" value="http://merchantsite.example.com/process/454645">
    <input type="hidden" name="PaReq" value="eJxVUtFy2jAQ/BVP3mPJsrAd5tCMwZkx04lLihsmfTPyBRyKDbIIpF/fE4Gkfds9re5uV4JybRCzOeqDQQUP2PfVCr2mHt0Uk1nE8ySQ0bd0kd+JKJ0kNwpm6Q/cK3hD0zddqwKf+wLYlVIHo9dVaxVUej+eFkomIY9JcaGwRTPNVBAIEYZSxjGwjwq01RZVib31+sYisDMH3R1aa96VFAmwK4GD+a3W1u6GjB2PRx91t6WpZoU+IWDuGNjXKrODQz21OzW1KjfFY/E6nn7P7nmxseMnvho8vP4aP/5ZjYA5BdSVRSV4MOAJj7xADIUcyjtg5zpUW7cHeZB+JLyf84zcfZRg5yaln+cRGf+3BBSzwVa/q0Ry8nNlgKdd1yIp6MInhhp7rcLbbO69dMaz5uTJgYxkfLvUL0GYiOXS7eREwL48TnIXvrYUavy0fI7L+zLPN/Vi/ZzsTbGw6YhsXgRucEOJCs6D82RHgLkW7PLSlOP5UxD677P8BW2Nudo=">
    <input type="submit" value="Submit">
    </form>
    <script type="text/javascript">
    setTimeout(function(){ document.forms["ACSRedirect"].submit(); }, 3000);
    </script>
</div>
</body>
</html>
Запрос в систему Overpay с результатом 3-D Secure проверки
Отправьте POST запрос с полученными значениями PaRes and MDна pa_res_url:
{
    "md": "value_of_MD",
    "pa_res": "value_of_PaRes"
}
Параметры ответа 3-D Secure
| Параметр | Тип | Описание | 
|---|---|---|
| ve_status | string | статус проверки регистрации | 
| pa_status | string | статус аутентификации оплаты (только если аутентификация выполнена) | 
| eci | string | Electronic Commerce Indicator. Предоставляет информацию об уровне защиты от запросов на возврат платежей владельцев карт или их банков. | 
| xid | string | Уникальный идентификационный код 3-D Secure | 
| cavv | string | Cardholder Authentication Verification Value ( только если владелец карты был успешно аутентифицирован) | 
| cavv_algorithm | string | CAVV алгоритм (только если статус аутентификации YилиA) | 
| fail_reason | string | Понятное человеку причина (только если аутентификация 3-D Secure не прошла) | 
| status * обязательный | string | Статус аутентификации 3-D Secure | 
Шаг 3. Пример ответа проверки регистрации
{
    "transaction": {
        "amount": 9906,           
        "billing_address": {
            "address": "1st Street",
            "city": "Denver",
            "country": "US",
            "first_name": "Test",
            "last_name": "Test",
            "phone": null,
            "state": "CO",
            "zip": "96002"
        },
        "created_at": "2015-08-06T15:24:48Z",
        "credit_card": {
            "brand": "visa",
            "exp_month": 1,
            "exp_year": 2027,
            "first_1": "4",
            "holder": "John Doe",
            "last_4": "0000",
            "stamp": "b3839d334ba40e89168d60cd9f9d1390aee3fe67dd4d5c41adbf3998043eaef8",
            "token": "17192917abfc48d9b3ee3fa2c9c29d7aa64b7ab40040d6eedd48b4557ac4079c"
        },
        "currency": "USD",
        "customer": {
            "device_id": null,
            "email": "john@example.com",
            "ip": "127.0.0.1"
        },
        "description": "Test transaction",
        "id": "454744-32f929708d",
        "language": "en",
        "message": null,
        "redirect_url": "https://gw_domain/process/454744-32f929708d",
        "status": "incomplete",
        "test": true,
        "three_d_secure_verification": {
            "acs_url": "https://dropit.3dsecure.net:9443/PIT/ACS",
            "md": "74652",
            "message": "Authentication Available",
            "pa_req": "eJxVUl1vm0AQ/Cso7+E+OAy21ieFQGRXrR0Hmip9o7CJkWxwjqM4/fXdc+ykfZvZHc3uzh0UW4OY5lgNBjV8w74vX9Br6vlVmKfx12WyCRfJZL1Wt3n2JK403N884KuG32j6pmu18LkvgV0oOZhqW7ZWQ1m9JsuVVnHAI1KcKezRLFMthJRBoFQUAXuvQFvuURfYW69vLAI7cai6obXmTSsZA7sQGMxOb609zBgbx9HHqtvTVPOCPiFgrg3sc5X7waGe7I5NrVePq2ydHb9sdpnIs6UseMw3YnX3o8jmwJwC6tKillyE1Jp4IpxJNQs5sFMdyr3bQ0+nPjW/5ykd916Bgxt0c2nzCbB/K0AhG2yrNx0rMvtggMdD1yIpKKcPDDX2lQ6u09x77oxnzdFToYqUug4kTuU04nFNGzkRsM8Lbxcu+spSpNHjr6eoyIrFYlcPf8r04WcyJuOcjjwL3OCG8pSci9NkR4A5C3Z+Z0rx9CUI/fdV/gLLBLic",
            "pa_res_url": "https://gw_domain/process/454744-32f929708d",
            "status": "incomplete",
            "ve_status": "Y"
        },
        "tracking_id": null,
        "type": "payment",
        "uid": "454744-32e929708d",
        "updated_at": "2015-08-06T15:24:51+00:00"
    }
}
Пример ответа
{
"transaction":{
    "customer":{
        "ip":"127.0.0.1",
        "email":"john@example.com"
    },
    "credit_card":{
        "holder":"John Doe",
        "stamp":"f873e6516da9f61678d918e86c2835e4b4f6ed47506ec9be8abd4967fe4be2d4",
        "brand":"visa",
        "last_4":"1112",
        "first_1":"4",
        "exp_month":1,
        "exp_year":2027
    },
    "billing_address":{
        "first_name":"John",
        "last_name":"Doe",
        "address":"1st Street",
        "country":"US",
        "city":"Denver",
        "zip":"96002",
        "state":"CO",
        "phone":null
    },
    "three_d_secure_verification":{
        "eci":"05",
        "ve_status":"Y",
        "pa_status":"Y",
        "xid":"2DIMDD08RRE6WVC140GW",
        "cavv":"AAACCEmXU2FoNWGZI5dTAAAAAAA=",
        "cavv_algorithm":"2",
        "message":"Authentication Successful",
        "fail_reason":null,
        "status":"successful"
    },
    "payment":{
        "auth_code":"654321",
        "bank_code":"05",
        "rrn":"999",
        "ref_id":"777888",
        "message":"Authorization was approved (with 3-D Secure)",
        "gateway_id":327,
        "billing_descriptor":"TEST GATEWAY BILLING DESCRIPTOR",
        "status":"successful"
    },
    "uid":"1-310b0da80b",
    "status":"successful",
    "message":"Successfully processed",
    "amount":100,
    "currency":"USD",
    "description":"Test order",
    "type":"payment"
}
}
Статус проверки регистрации
| Статус | Описание | 3-D Secure доступен? | Оплата завершена? | 
|---|---|---|---|
| Y | Карта зарегистрирована. | Да | Нет | 
| N | Карта не зарегистрирована. | Нет | Да | 
| U | Не удалось аутентифицировать. | Нет | Да | 
| E | Ошибка проверки регистрации. Смотрите fail_reason. | Нет | Да | 
Статус аутентификации оплаты
| Status | Description | VISA ECI | MC ECI | 
|---|---|---|---|
| Y | Владелец карты был успешно аутентифицирован. | 05 | 02 | 
| A | Процесс аутентификации не был выполнен, но попытка аутентификации была совершена. | 06 | 01 | 
| N | Владелец карты не был аутентифицирован. Процесс авторизации не должен быть совершен. | - | - | 
| U | Аутентификация не может быть выполнена из-за технической ошибки или других проблем. Операция будет рассматриваться как электронная коммерция. Карта оплаты, используемая для этой операции, признана непригодной для обработки 3-D Secure. Торговец примет решение, обработать неавторизованный запрос на оплату или попросить клиента воспользоваться другой формой оплаты | 05 | 02 | 
| E | Ошибка произошла во время аутентификации. Процесс авторизации не должен быть совершен. | - | - | 
CAVV алгоритм
Алгоритм используется для генерации свойства аутентификации CAVV. Это свойство определяет ACS (сервер управления доступом) после получения PAReq (Payer Authentication Request), если статус аутентификации Y или A. Это свойство содержит одну цифру, указывающую алгоритм генерации CAVV (Cardholder Authentication Verification Value). Допустимые алгоритмы:
| Значение CAVV | Описание | 
|---|---|
| 0 | HMAC (в соответствии с SET TranStain) | 
| 1 | CVV | 
| 2 | CVV с ATN |