Авторизация с помощью API Приват24 для юр.лиц


Для доступа к API Приват24 для бизнеса, необходимо пройти стандартную авторизацию, а также авторизацию с использованием учетных данных Приват24.

Contents


Описание API

Для получения доступа к сервисам Вам необходимо выполнить следующие шаги:

Шаг 1. Получение ID сессии

Для получения ID сессии необходимо авторизоваться на странице https://link.privatbank.ua/console/auth/p24business/start добавить новое приложение, и пройти стандартную авторизацию с помощью полученных clientId и clientSecret.

Шаг 2. Авторизация с помощью пары логин/пароль

Используя полученный sessionId выполнить HTTPS POST запрос:

POST /api/p24BusinessAuth/createSession 
Host: link.privatbank.ua:443
Content-Type: application/json
Accept: application/json
Connection: close

{"sessionId":"your-session-id","login":"your-p24-login","password":"your-p24-password"}

! В ответ Вы должны получить в случае успешной авторизации:

HTTP/1.1 200 OK
Server: Privatlink/2.0 (Jetty)
Content-Type: application/json
Transfer-Encoding: chunked

{"id":"session-id","clientId":"client-id","expiresIn":1415243089,"message":"Authentication successful","roles":["ROLE_P24_BUSINESS","ROLE_CLIENT"]}


! В ответ Вы должны получить в случае необходимости подтверждения с помощью OTP пароля:

HTTP/1.1 200 OK
Server: Privatlink/2.0 (Jetty)
Content-Type: application/json
Transfer-Encoding: chunked

{"id":"session-id","clientId":"client-id","expiresIn":1415243089,"Confirm authorization with OTP","roles":["ROLE_CLIENT"]}
  • В данном случае статус ответа - 200 ОК, но роль ROLE_P24_BUSINESS у сессии отсутствует, message содержит текстовое сообщение о необходимости отправить OTP


! В ответ Вы должны получить в случае необходимости подтверждения с помощью OTP пароля, при наличии нескольких номеров:

HTTP/1.1 200 OK
Server: Privatlink/2.0 (Jetty)
Content-Type: application/json
Transfer-Encoding: chunked

{"id":"session-id","clientId":"client-id","expiresIn":1418703284,"message":[{"id":"1111111","number":"050...111"},{"id":"1111112","number":"068...112"},{"id":"1111112","number":"095...113"}],"roles":["ROLE_CLIENT"]}
  • В данном случае статус ответа - 200 ОК, роль ROLE_P24_BUSINESS у сессии отсутствует, message содержит массив обьектов с масками номеров телефона, и соответствующих им ID. В данном случае Вам необходимо выполнить Шаг 3

Или одну из стандартных ошибок авторизации

Шаг 3. Отправка ОТП с выбором номера

В случае если в ответе в шаге два Вы получили несколько номеров телефона (иначе опустите Шаг 3 и перейдите сразу к Шаг 4), Вам необходимо выполнить HTTPS POST запрос с указанием выбранного Вами номера:

POST /api/p24BusinessAuth/sendOtp 
Host: link.privatbank.ua:443
Content-Type: application/json
Accept: application/json
Connection: close

{"sessionId": "session-id", "otpDev" : "1111112"}

В ответ Вы получите:

HTTP/1.1 200 OK
Server: Privatlink/2.0 (Jetty)
Content-Type: application/json
Transfer-Encoding: chunked

{"id":"session-id","clientId":"client-id","expiresIn":1418703284,"message":"Otp send to 068...112","roles":["ROLE_CLIENT"]}

Шаг 4. Проверка ОТП

Для проверки отп пароля необходимо выполнить HTTPS POST запрос:

POST /api/p24BusinessAuth/checkOtp 
Host: link.privatbank.ua:443
Content-Type: application/json
Accept: application/json
Connection: close

{"sessionId":"your-session-id","otp":"otp-from-sms"}

В случае успешной авторизации Вы получите следующий ответ:

HTTP/1.1 200 OK
Server: Privatlink/2.0 (Jetty)
Content-Type: application/json
Transfer-Encoding: chunked

{"id":"session-id","clientId":"client-id","expiresIn":1415243089,"message":"Authentication successful","roles":["ROLE_P24_BUSINESS","ROLE_CLIENT"]}

Или одну из стандартных ошибок авторизации

Возможные проблемы и способы их устранения

  • HTTP 400 Bad Request - в случае невалидного Content-Type или неправильной строки JSON
  • HTTP 403 Forbidden - в случае если клиент в данный момент неактивен, или передан неправильный пароль