Авторизация

Получение доступа от клиента

Для получения доступа отправьте на электронную почту (public-api@tochka.com) письмо, в котором вы укажете:

  • ИНН;
  • E-mail;
  • redirect_URL (URL, на который OAuth-сервер будет передавать результат авторизации);
  • название приложения.

В ответ мы отправим вам client_id и secret_id вашего приложения, client_id нужно будет подставить в ссылку:

GET api/v1/authorize/?response_type={response_type}&client_id={client_id}

Где, {response_type} = code.

После ввода учетных данных, вас перенаправит на redirect_uri?code=<код авторизации>

Получение access_token

  • authorization_code — используется для первоначального получения access_token и refresh_token, одноразовый. Время жизни — 2 минуты.
  • refresh_token — используется для получения новой пары access_token и refresh_token, не прибегая к получению нового authorization_code. Время жизни — 30 дней.
  • access_token — используется для создания запросов. Время жизни — 24 часа.

Обмен кода авторизации на access_token и refresh_token

Запрос:

POST /api/v1/oauth2/token HTTP/1.1
Host: enter.tochka.com
Accept: application/json
Content-Type: application/json

{
        "client_id": "<client_id>",
        "client_secret": "<client_secret>",
        "grant_type": "authorization_code",
        "code": "<Код авторизации>"
 }

Параметры:

  • client_id — получен при регистрации приложения.
  • client_secret — получен при регистрации приложения.
  • code — код авторизации получен на шаге «Получение доступа от клиента».

Ответ:

HTTP/1.1 200 OK
Content-Type: application/json

{
        "refresh_token": "D0OdoY5v2SUyHMyXgyseqAj9mPqoFKrz",
        "token_type": "bearer",
        "access_token": "yVB6gKWmmjBfDka5DPDkl4quitWdsT02",
        "expires_in": 7200
}

Обмен refresh_token на новые access_token и refresh_token

Запрос:

POST /api/v1/oauth2/token HTTP/1.1
Host: enter.tochka.com
Accept: application/json
Content-Type: application/json

{
        "client_id": "<client_id>",
        "client_secret": "<client_secret>",
        "grant_type": "refresh_token",
        "refresh_token": "<refresh_token>"
}

Параметры:

  • client_id — получен при регистрации приложения.
  • client_secret — получен при регистрации приложения.
  • refresh_token — получен после авторизации по коду, на шаге «Обмен кода авторизации на access_token и refresh_token»

Ответ:

HTTP/1.1 200 OK
Content-Type: application/json

{
        "refresh_token": "D0OdoY5v2SUyHMyXgyseqAj9mPqoFKrz",
        "token_type": "bearer",
        "access_token": "yVB6gKWmmjBfDka5DPDkl4quitWdsT02",
        "expires_in": 7200
}

Предупреждение

При смене/восстановлении пароля к ИБ любые выданные токены аннулируются.

Веб-токен (JWT)

Если вам не подходит метод авторизации через OAuth 2.0 (через redirect_uri), то вы можете сгенерировать ключ авторизации (веб-токен) в разделе «Интеграции» на вкладке «Разработчикам». В дальнейшем этот токен нужно подставлять в заголовок Authorization.

Предупреждение

Полученный веб-токен привязан к вашей учетной записи в интернет банке и не должен передаваться третьим лицам.

Предупреждение

При смене/восстановлении пароля к ИБ любые выданные токены аннулируются.