Для проведення платежів з карти платника з підтвердженням за допомогою технології 3DS 2 потрібно обов'язково передавати інформацію про пристрій платника в метод оплати / створення платежу. Ця інформація збирається з браузера / пристрою / запиту в момент натискання платником кнопки "Оплатити" (у вас може бути інша назва) і відправляється в параметрі device в відповідний метод (залежить від реалізації). Приклад такого методу - Створення платежу по інвойсу (Invoices payments create), в разі реалізації оплати інвойсів за допомогою власної платіжної сторінки.

Параметри об'єкту device:

Ключ

Опис

Тип

Обов'язковість

Приклад

acceptHeader

вміст HTTP-заголовка Accept, відправленого з браузера
клієнта

string

так

"*/*"

ip

IP-адреса браузера

string

так

"91.137.205.117"

colorDepth

глибина кольору екрану

integer

так

24

javaEnabled

можливість виконання Java в браузері

boolean

так

false

language

мова браузера, зазначена в IETF BCP47

string

так

"en-US"

screenHeight

загальна висота екрану в пікселях

integer

так

864

screenWidth

загальна ширина екрану в пікселях

integer

так

1536

windowHeight

висота вікна браузера в пікселях, в якому відображається сторінка сайту клієнта, або висота області в якій, в разі чого, буде відображена ACS-сторінка емітента для підтвердження платежу

integer

так

734

windowWidth

ширина вікна браузера в пікселях, в якому відображається сторінка сайту клієнта, або ширина області в якій, в разі чого, буде відображена ACS сторінка емітента для підтвердження платежу

integer

так

1479

time

час збору інформації

string

так

"2021-10-07T14:55:52.832Z"

timezoneOffset

часовий пояс браузера в хвилинах (різниця між часом по UTC і місцевим часом браузера)

number

так

-180

userAgent

вміст HTTP-заголовка User-Agent, відправленого з браузера клієнта

string

так

"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"

Параметри acceptHeader, ip и userAgent клієнт бере із запиту зробленого з браузера / пристрою платника до свого вебсервера, а інші параметри бере в браузері платника за допомогою JavaScript, наприклад так:

{
    colorDepth: screen && screen.colorDepth,
    javaEnabled: navigator && navigator.javaEnabled(),
    language: navigator && navigator.language,
    screenHeight: screen && screen.height,
    screenWidth: screen && screen.width,
    windowHeight: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight,
    windowWidth: window.innerWidth  || document.documentElement.clientWidth  || document.body.clientWidth,
    time: new Date(),
    timezoneOffset: new Date().getTimezoneOffset()
}

Приклад об'єкту:

{
  "acceptHeader": "*/*",
  "ip": "91.137.205.117",
  "colorDepth": 24,
  "javaEnabled": false,
  "language": "en-US",
  "screenHeight": 864,
  "screenWidth": 1536,
  "windowHeight": 734,
  "windowWidth": 1479,
  "time": "2021-10-07T14:55:52.832Z",
  "timezoneOffset": -180,
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
}