Поддержка
Чат для вопросов по API
Мгновенно ответим на ваши вопросы
api@ati.su
Электронная почта техподдержки
Тикетная система
Оставить заявку на отдел
«Консультанты по интеграции (API)»
api.ati.su - заказы, торги, площадки
Наш телеграм-канал
Код в ATI.SU:
Выход
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя

Авторизация по OAuth 2.0

Для выполнения запросов к API необходимо передавать access_token. Авторизация осуществляется по протоколу OAuth 2.0. Этот протокол позволяет интеграторам выполнять запросы к АПИ от имени конкретного пользователя ATI.SU.

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

Как получить access_token

Шаг 1

Напишите Тикет консультантам по интеграции. В нём укажите:

  • фио и email сотрудника, ответственного за интеграцию API;
  • название программного продукта;
  • для чего вам API.

Шаг 2

Мы пришлём вам client_id и client_secret. Для каждого вашего программного продукта они будут уникальными.

Внимание! Это ещё не токен, который нужно передавать в заголовках для доступа к API, см. далее.

Шаг 3

Внимание! Под клиентом в данном шаге подразумевается пользователь от имени которого будут выполняться запросы к АПИ. Это может быть пользователь вашей фирмы в этом случае просто откройте ссылку в браузере. Также это может быть любой участник ATI.SU, который пользуется вашим приложением.*

Чтобы начать процесс получения access_token направьте клиента по адресу https://id.ati.su/oauth2/ передав в query параметрах:

  • client_id — получен на шаге 2
  • scope — запрашиваемый уровень доступа для будущего access_token,
  • redirect_uri — адрес на который нужно направить пользователя после его согласия предоставить доступ к АПИ от его имени
  • response_type — укажите значение code

Например: https://id.ati.su/oauth2/?client_id=0A_00_kVClYUl7_0PIlsXEXA2km6IGSNALpCkjCH8G09ynFAw&scope=impact_scope&redirect_uri=https://yoursite.com/test&response_type=code

Шаг 4

Пользователю будет предложено предоставить доступ для работы с АПИ от его имени. В случае согласия мы перенаправим пользователя на redirect_uri с параметрами:

  • code — далее обменивается на access_token
  • client_id
  • scope
  • response_type

например: https://yoursite.com/test?code=0A_00_yddUOA8jX7x6qz2sL0O0Vm6C4bnEbxI6wjbjq_ZeJvQ&client_id=0A_00_DGZUQqNnLi4AqY-QsFIUac3KHmNaT2RXNdbGIiDowxM&scope=impact_scope&response_type=code

Внимание! Code имеет ограниченное время жизни, в случае если оно истекло, потребуется повторить шаги 3 и 4.

Шаг 5

C помощью метода ниже можно получить access_token, передав grant_type: "authorization_code"

 
post
/oauth2/token
Развернуть все Свернуть все
{...}
client_id: string
client_secret: string
code: string
grant_type: enum
[authorization_code, refresh_token]
refresh_token: string
}
CURL 1C
CURL
Копировать

                
1C
Копировать

                
Пример ответа Ответ
200 Success
Развернуть все Свернуть все
Пример Модель
{...}
"access_token":"string",
"client_id":"string",
"contact_id":0,
"expire_time":"1970-01-01T00:00:00.000Z",
"firm_id":0,
"o_auth_user_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"refresh_token":"string",
"scope":"string",
"token_type":"Bearer"
}
{...}
access_token: string
client_id: string
contact_id: int32
expire_time: date-time
expires_in: int32
read only
firm_id: int32
o_auth_user_id: uuid
refresh_token: string
scope: string
token_type: enum
[Bearer]
}
400 Bad Request
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
401 Unauthorized
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
402 Client Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
403 Forbidden
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
404 Not Found
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
500 Server Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
504 Server Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
Загрузка...
Развернуть все Свернуть все
Загрузка...

Внимание! Полученный access_token также имеет ограниченное время жизни - 2 часа.

Шаг 6

Для выполнения запроса от имени пользователя необходимо передать токен в заголовке Authorization: Bearer ...
Пример заголовка:
Authorization: Bearer 0A_00_buLX0dZnHQJ6vt24FFeO7pN1czn6qb8-c7evra1oeKgjR5St58Su3MwkwGokib3H4mtZ04jiKydKdpAYTEFIoYB2HRjRFjuVJ4Iks8Q-pexIfOPw_IPcNqKtpYtO7QGb

Пример запроса (получение id пользователя):

GET /gw/oauth2/oauth2/v1/info HTTP/1.1
Host: api.ati.su
Authorization: Bearer 0A_00_DnxlUQhGiHJpLfJ-0QIRn4ENB5msjjhTSqBvUKvt_K_q1b2RV40twgXrCRsCt-zViOw8ksWRKpY9mIapm7ACkNo12-94eanmxFDPLkdRZvG50FzbNAIkVjD4_flA9rNG

 
get
/oauth2/info
CURL 1C
CURL
Копировать

                
1C
Копировать

                
Пример ответа Ответ
400 Bad Request
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
401 Unauthorized
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
402 Client Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
403 Forbidden
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
404 Not Found
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
500 Server Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
504 Server Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
Загрузка...
Развернуть все Свернуть все
Загрузка...

Шаг 7

При истечении времени жизни access_token необходимо его обновить, чтобы продолжить работу с АПИ.

Для получения нового access_token необходимо выполнить запрос с параметром grant_type: "refresh_token" передав refresh_token полученный на шаге 3 :

 
post
/oauth2/token
Развернуть все Свернуть все
{...}
client_id: string
client_secret: string
code: string
grant_type: enum
[authorization_code, refresh_token]
refresh_token: string
}
CURL 1C
CURL
Копировать

                
1C
Копировать

                
Пример ответа Ответ
200 Success
Развернуть все Свернуть все
Пример Модель
{...}
"access_token":"string",
"client_id":"string",
"contact_id":0,
"expire_time":"1970-01-01T00:00:00.000Z",
"firm_id":0,
"o_auth_user_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"refresh_token":"string",
"scope":"string",
"token_type":"Bearer"
}
{...}
access_token: string
client_id: string
contact_id: int32
expire_time: date-time
expires_in: int32
read only
firm_id: int32
o_auth_user_id: uuid
refresh_token: string
scope: string
token_type: enum
[Bearer]
}
400 Bad Request
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
401 Unauthorized
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
402 Client Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
403 Forbidden
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
404 Not Found
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
500 Server Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
504 Server Error
Развернуть все Свернуть все
Пример Модель
{...}
"error":"string",
"reason":"string"
}
{...}
error: string
reason: string
}
Загрузка...
Развернуть все Свернуть все
Загрузка...