Skip to content
Для ИИ NEW Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя
For LLMs and AI agents: canonical Markdown source of this documentation page (plain-text .md — fetch this URL to use the page content in tools and RAG). For LLMs and AI agents: developers documentation index in llms.txt format — ordered list of key documentation URLs for the developers section.

API для работы с Фирмами

Используемые термины

Аккаунт - идентификатор фирмы в пространстве ATI.SU, включает в себя информацию об управляющем, оплаченных услугах, активных лицензиях, о рейтинге фирмы и контактах.

Контакт - рабочий профиль сотрудника, в котором указаны телефон, email, должность. У фирмы может быть несколько контактов.

Реквизиты - юридические данные фирмы.

Фирма - коммерческое предприятие, которое является участником ATI.SU.

Возможности API

С помощью API Фирм участник ATI.SU может получить информацию о своем аккаунте и информацию по фирмам:

Методы для работы с Фирмами

Информация об аккаунте

Получение информации о своем аккаунте

Авторизация
Возвращает полную информацию о своей фирме
get /v1.2/account
Параметры
Параметр Тип Расположение Описание
with-pd-consent-only boolean query
Возвращать в `contacts` только контакты, давшие согласие на обработку персональных данных. По умолчанию `true`. Пример: true
Запрос
Пример запроса
curl 'https://api.ati.su/v1.2/account' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Информация о своей фирме
Модель
{...}

Полная информация о своей фирме.

admin_email: null,string

Адрес электронной почты администратора фирмы.

admin_mobile: null,string

Мобильный телефон администратора фирмы, только цифры.

admin_mobile_not_formatted: null,string

Мобильный телефон администратора фирмы в сохранённом виде, без нормализации.

add_date: date-time

Дата создания аккаунта фирмы.

firm_type_id: int32

Идентификатор профиля деятельности.

payed_services_end_date: date-time

Дата окончания последнего оплаченного периода; 0001-01-01T00:00:00, если фирма ничего не оплачивала.

has_payed_services: boolean

Есть ли у фирмы оплаченные лицензии, кроме «Реальный перевозчик», «АТИ без рекламы» и базово доступных контактов.

read only
is_reset_similarity_point: boolean

Сброшен ли балл за соответствие из-за продолжительной неактивности фирмы.

read only
is_deleted: boolean

Удалена ли фирма.

max_contacts_count: int32

Сколько контактов может быть у фирмы с учётом оплаченных лицензий.

time_zone_id: null,string

Идентификатор часового пояса фирмы, например Russian Standard Time — Москва. Пустая строка, если часовой пояс не задан: тогда time_zone_minutes считается по Москве (-180).

has_documents: boolean

Есть ли у фирмы загруженные документы; false и тогда, когда данные о документах временно недоступны.

account_id: null,string

Код фирмы в АТИ.

persistent_user_id: int32

Внутренний идентификатор фирмы.

contact_id: int32

Идентификатор контакта, от имени которого выполнен запрос.

ati_docs_default_contact_id: int32

Идентификатор контакта внутри фирмы, выбранного по умолчанию для АТИ.Доков; 0, если контакт не выбран.

full_firm_name: null,string

Полное название фирмы: название и организационно-правовая форма через запятую; если бренд указан и отличается от названия, то «Бренд (Название, ОПФ)». Для ОПФ «(другая)», ПБОЮЛ, ЧП, ПБЮЛ, ФЛП и «физ.лицо» бренд не добавляется, а для «(другая)» не добавляется и ОПФ.

firm_name: null,string

Название фирмы.

brand: null,string

Бренд фирмы; пустая строка или null, если бренд не указан.

ownership: null,string

Организационно-правовая форма фирмы.

ownership_id: int32

Идентификатор организационно-правовой формы.

address: null,string

Адрес фирмы.

inn: null,string

ИНН фирмы.

ogrn: null,string

ОГРН фирмы; null, если по данным государственных реестров фирма недействующая.

time_zone_minutes: int32

Смещение часового пояса фирмы от UTC в минутах со знаком «минус» для поясов восточнее UTC: для Москвы (UTC+3) — -180.

claims_sum: double

Сумма активных претензий к фирме в рублях.

claims_count: int32

Количество активных претензий к фирме, включая претензии лайт.

city_id: int32

Идентификатор города фирмы. Информацию о городе возвращает метод POST /gw/gis-dict/v1/cities/by-ids справочника городов.

bad_partner_mentions_count: int32

Количество упоминаний фирмы на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

bad_partner_firms_count: int32

Количество фирм, которые написали о данной фирме на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

leveled_claims_count: int32

Количество активных претензий лайт к фирме.

leveled_claims_firms_count: int32

Количество фирм, которые написали о данной фирме претензии лайт.

recommendations_count: int32

Количество рекомендаций фирмы: как заказчику и как исполнителю.

ri_users_attributes: integer

Атрибуты фирмы.

ri_users_attributes2: int32

Дополнительные атрибуты фирмы (битовая маска).

firm_attributes: int32

Атрибуты фирмы.

is_rrd: boolean

Включён ли у фирмы режим раздельного доступа (РРД). Устаревшее поле: всегда true.

deprecated
loads_access: int32

Уровень доступа фирмы к грузам.

loads_access_reason: int32

Причина понижения доступа фирмы к грузам.

load_responses_access: int32

Уровень доступа фирмы к отзывам на грузы.

load_responses_access_reason: int32

Причина понижения доступа фирмы к отзывам на грузы.

unlimited_stealth_access: int32

Уровень доступа фирмы к безлимитному «Стелсу».

unlimited_stealth_access_reason: int32

Причина понижения доступа фирмы к безлимитному «Стелсу».

trucks_access: int32

Уровень доступа фирмы к транспорту.

trucks_access_reason: int32

Причина понижения доступа фирмы к транспорту.

truck_responses_access: int32

Уровень доступа фирмы к отзывам на транспорт.

truck_responses_access_reason: int32

Причина понижения доступа фирмы к отзывам на транспорт.

position_in_city: int32

Место фирмы в рейтинге по городу; null, если места в рейтинге нет.

position_in_country: int32

Место фирмы в рейтинге по стране; null, если места в рейтинге нет.

is_responses_for_black_list_enabled: boolean

Включено ли принятие встречных предложений от фирм из чёрного списка.

eds_expired_date: date-time

Дата окончания действия сертификата электронной подписи фирмы; null, если действующего сертификата нет.

tf_account_color: null,string

Цвет аккаунта в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_has_signals: boolean

Есть ли о фирме какая-либо информация в системе «Светофор».

currency_id: int32

Идентификатор валюты фирмы; null, если валюта не выбрана.

is_document_name_set: boolean

Совпадают ли название, город и организационно-правовая форма фирмы с данными, проверенными по документам фирмы.

name_eng: null,string

Международное название фирмы; если оно не задано, название фирмы латиницей.

language: null,string

Код языка фирмы; по умолчанию ru.

firm_note: null,string

Примечание фирмы.

firm_http: null,string

Сайт фирмы.

firm_taxation_type:

Система налогообложения фирмы; null, если система налогообложения не указана.

ANY-OF
integer

Система налогообложения фирмы — код, а не битовая маска: например, 65 — АУСН, а не 64 + 1.

null
firm_with_vat: boolean

Работает ли фирма с НДС.

}
Пример
{...}
"admin_email":"ivan.petrov@example.com",
"admin_mobile":"79991234567",
"admin_mobile_not_formatted":"79991234567",
"add_date":"2019-03-14T10:25:41",
"firm_type_id":5,
"payed_services_end_date":"2027-03-14T00:00:00",
"has_payed_services":true,
"is_reset_similarity_point":false,
"is_deleted":false,
"max_contacts_count":10,
"time_zone_id":"Russian Standard Time",
"has_documents":true,
"account_id":"2654179",
"persistent_user_id":2654179,
"contact_id":2,
"ati_docs_default_contact_id":2,
"full_firm_name":"Волга Логистик, ООО",
"firm_name":"Волга Логистик",
"brand":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"address":"603005, Нижний Новгород, ул. Минина, д. 12",
"inn":"5260417382",
"ogrn":"1155260008421",
"time_zone_minutes":-180,
"claims_sum":150000,
"claims_count":3,
"city_id":135,
"bad_partner_mentions_count":0,
"bad_partner_firms_count":0,
"leveled_claims_count":2,
"leveled_claims_firms_count":1,
"recommendations_count":12,
"ri_users_attributes2":512,
"firm_attributes":3584,
"is_rrd":true,
"loads_access":3,
"loads_access_reason":0,
"load_responses_access":3,
"load_responses_access_reason":0,
"unlimited_stealth_access":3,
"unlimited_stealth_access_reason":0,
"trucks_access":3,
"trucks_access_reason":0,
"truck_responses_access":3,
"truck_responses_access_reason":0,
"position_in_city":125,
"position_in_country":3412,
"is_responses_for_black_list_enabled":false,
"eds_expired_date":"2027-05-20T12:00:00",
"tf_account_color":"Green",
"tf_has_signals":true,
"currency_id":1,
"is_document_name_set":true,
"name_eng":"Volga Logistic",
"language":"ru",
"firm_note":"Работаем без выходных",
"firm_http":"www.volga-logistic.ru",
"firm_with_vat":true,
"ri_users_attributes":2052,
"firm_taxation_type":1,
"payed_services":[...],
{...}
"ati_id":"2654179",
"service_id":19,
"service_name":"Экспедитор",
"service_amount":1,
"dependencies":[...]
2,
3,
5,
6,
7,
76
]
}
],
"firm_active_services":[...],
{...}
"ati_id":"2654179",
"service_id":19,
"service_name":"Экспедитор",
"service_amount":1,
"dependencies":[...]
2,
3,
5,
6,
7,
76
]
}
],
"location":{...},
"city_id":135,
"region_id":78,
"country_id":1,
"full_name":"Нижний Новгород, Нижегородская область, Россия",
"short_name":"Нижний Новгород",
"is_regional_center":true,
"city_size":6,
"fias_id":"555e7d61-d9a7-4ba6-9770-6caa8198c483",
"city_name":"Нижний Новгород",
"region_name":"Нижегородская область",
"country_name":"Россия",
"country_code_name":"RUS",
"attributes":4
},
"passport":{...},
"ati_id":"2654179",
"firm_id":2654179,
"total_score":8,
"total_point":8,
"ati_data_match_point":1,
"account_verification_point":1,
"is_reset_account_verification_point":false,
"account_life_time_point":1,
"business_activity_point":1,
"economic_activity_point":1,
"round_table_point":1,
"claim_point":0,
"claims_point":0,
"prof_activity_point":1,
"ati_administration_point":1,
"clones_point":0,
"egr_point":1,
"mass_registration_point":0,
"mass_founder_point":0,
"firm_lifetime_point":1,
"late_guaranteed_payment_point":0,
"guaranteed_payment_point":0,
"virtual_account_debt_point":0,
"virtual_account_debts_point":0,
"bad_partner_mentions_point":0,
"recommendations_count":12,
"status_description":"Нет красных баллов, количество рекомендаций больше 2-х и есть балл за соответствие названия",
"ri_users_attributes":2052,
"status":1
},
"contacts":[...]
{...}
"id":2,
"name":"Иван Петров",
"telephone":"78312345678",
"telephone_brand":"Ростелеком",
"telephone_region":"Нижегородская область",
"email":"ivan.petrov@example.com",
"messenger_phone":"79991234567",
"mobile":"79991234567",
"mobile_brand":"МТС",
"mobile_region":"Нижегородская область",
"skype_name":"ivan.petrov",
"fax":"78312345679",
"mobile_operator":"Мобильные ТелеСистемы ПАО",
"region_id":"78",
"city_id":135,
"is_visibled":true,
"is_email_visibled":true,
"access_rights":161792,
"note":"Звонить с 9 до 18",
"language":"ru",
"department_id":420202,
"position":"Логист",
"has_personal_password":true,
"has_personal_data_consent":true,
"messenger_phone_messengers":3,
"mobile_messengers":3,
"user_rights":129,
"contact_right_nesting_type_id":1,
"location":{...}
"city_id":135,
"region_id":78,
"country_id":1,
"full_name":"Нижний Новгород, Нижегородская область, Россия",
"short_name":"Нижний Новгород",
"is_regional_center":true,
"city_size":6,
"fias_id":"555e7d61-d9a7-4ba6-9770-6caa8198c483",
"city_name":"Нижний Новгород",
"region_name":"Нижегородская область",
"country_name":"Россия",
"country_code_name":"RUS",
"attributes":4
}
}
]
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Контакты фирмы

Получение текущего контакта своей фирмы

Если текущий контакт не дал согласие на обработку персональных данных, метод возвращает 404.

Возвращает контакт, от имени которого выполнен запрос
get /v1.0/firms/contact
Параметры
Параметров нет
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/contact' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Текущий контакт
Модель
{...}

Контакт фирмы с названием и организационно-правовой формой фирмы.

firm_name: null,string

Название фирмы контакта.

ownership: null,string

Организационно-правовая форма фирмы контакта.

ownership_id: int32

Идентификатор организационно-правовой формы.

id: int32

Идентификатор контакта внутри фирмы.

contact_id: int32

Идентификатор контакта — то же значение, что id. Оставлено для совместимости.

read only
ati_id: null,string

Код фирмы в АТИ. В запросе PUT /v1.0/firms/contacts должен совпадать с кодом своей фирмы.

firm_deletion_date: date-time

Дата удаления аккаунта фирмы; null, если фирма не удалена.

name: null,string

Имя контакта.

phone: null,string

Основной номер телефона; может содержать добавочный номер через запятую.

e_mail: null,string

Адрес электронной почты контакта.

email_for_link: null,string

Адрес, на который метод PUT /v1.0/firms/contacts отправляет письмо со ссылкой для самостоятельной установки логина и пароля, если в том же запросе не задаются новые логин или пароль; в ответе не заполняется. Передаётся, только если у контакта ещё нет личного пароля (has_personal_password = false в ответе GET /v1.0/firms/contacts), иначе 400 login_and_password_already_set.

messenger_phone: null,string

Телефон для мессенджеров.

messenger_phone_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

mobile: null,string

Номер мобильного телефона контакта; при изменении контакта (PUT /v1.0/firms/contacts) обязателен.

mobile_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

fax: null,string

Номер факса контакта.

note: null,string

Примечание к контакту, до 50 символов.

is_visible: boolean

Виден ли контакт (true) или скрыт (false); скрыть уже видимый контакт при изменении нельзя.

is_email_visible: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

mobile_id: int32

Идентификатор диапазона номеров, к которому относится мобильный телефон; сервис определяет его по номеру.

phone_id: int32

Идентификатор диапазона номеров, к которому относится основной телефон; сервис определяет его по номеру.

fax_id: int32

Идентификатор диапазона номеров, к которому относится факс; сервис определяет его по номеру.

skype_name: null,string

Логин контакта в Skype.

city_id: int32

Идентификатор города контакта. Информацию о городе возвращает метод POST /gw/gis-dict/v1/cities/by-ids справочника городов; подставляйте значение в поле ids запроса.

attributes: int32

Атрибуты контакта (битовая маска).

access_rights: int32

Права контакта в прежнем формате (битовая маска); сервис выводит их из user_rights, в запросе значение игнорируется.

gsm_operator_id: int32

Устаревшее поле: то же значение, что mobile_id.

is_deleted: boolean

Удалён ли контакт.

read only
deletion_date: date-time

Дата удаления контакта. Публичные методы возвращают только неудалённые контакты, поэтому в их ответе значение null.

is_photo_exists: boolean

Загружено ли фото контакта; в запросе игнорируется.

login: null,string

Логин контакта для входа.

has_personal_password: boolean

Задан ли у контакта личный пароль для входа; в запросе игнорируется.

language: null,string

Язык сайта, выбранный контактом. В запросе игнорируется.

department_id: int32

Идентификатор основного подразделения контакта.

position: null,string

Должность контакта — свободный текст.

user_rights: integer

Права контакта — битовая маска значений UserRights; например, 129 = 1 + 128.

contact_right_nesting_type_id: enum
[0, 1, 2]

Уровень доступа контакта к данным подразделений фирмы.

has_personal_data_consent: boolean

Дал ли контакт согласие на обработку персональных данных; в запросе игнорируется.

}
Пример
{...}
"firm_name":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"id":2,
"contact_id":2,
"ati_id":"2654179",
"firm_deletion_date":"2019-03-14T10:25:41",
"name":"Иван Петров",
"phone":"78312345678",
"e_mail":"ivan.petrov@example.com",
"email_for_link":"ivan.petrov@example.com",
"messenger_phone":"79991234567",
"mobile":"79991234567",
"fax":"78312345679",
"note":"Звонить с 9 до 18",
"is_visible":true,
"is_email_visible":true,
"mobile_id":36512345,
"phone_id":18512345,
"fax_id":18512346,
"skype_name":"ivan.petrov",
"city_id":135,
"attributes":0,
"access_rights":161792,
"gsm_operator_id":36512345,
"is_deleted":false,
"deletion_date":"2019-03-14T10:25:41",
"is_photo_exists":false,
"login":"ivanpetrov",
"has_personal_password":true,
"language":"ru",
"department_id":420202,
"position":"Логист",
"has_personal_data_consent":true,
"messenger_phone_messengers":3,
"mobile_messengers":3,
"user_rights":129,
"contact_right_nesting_type_id":1
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение всех контактов своей фирмы

Авторизация
Возвращает все контакты своей фирмы
get /v1.0/firms/contacts
Параметры
Параметр Тип Расположение Описание
with-pd-consent-only boolean query
Возвращать только контакты, давшие согласие на обработку персональных данных. По умолчанию `true`. Пример: true
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/contacts' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Контакты своей фирмы
Модель
[{...}]

Контакт фирмы с названием и организационно-правовой формой фирмы.

firm_name: null,string

Название фирмы контакта.

ownership: null,string

Организационно-правовая форма фирмы контакта.

ownership_id: int32

Идентификатор организационно-правовой формы.

id: int32

Идентификатор контакта внутри фирмы.

contact_id: int32

Идентификатор контакта — то же значение, что id. Оставлено для совместимости.

read only
ati_id: null,string

Код фирмы в АТИ. В запросе PUT /v1.0/firms/contacts должен совпадать с кодом своей фирмы.

firm_deletion_date: date-time

Дата удаления аккаунта фирмы; null, если фирма не удалена.

name: null,string

Имя контакта.

phone: null,string

Основной номер телефона; может содержать добавочный номер через запятую.

e_mail: null,string

Адрес электронной почты контакта.

email_for_link: null,string

Адрес, на который метод PUT /v1.0/firms/contacts отправляет письмо со ссылкой для самостоятельной установки логина и пароля, если в том же запросе не задаются новые логин или пароль; в ответе не заполняется. Передаётся, только если у контакта ещё нет личного пароля (has_personal_password = false в ответе GET /v1.0/firms/contacts), иначе 400 login_and_password_already_set.

messenger_phone: null,string

Телефон для мессенджеров.

messenger_phone_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

mobile: null,string

Номер мобильного телефона контакта; при изменении контакта (PUT /v1.0/firms/contacts) обязателен.

mobile_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

fax: null,string

Номер факса контакта.

note: null,string

Примечание к контакту, до 50 символов.

is_visible: boolean

Виден ли контакт (true) или скрыт (false); скрыть уже видимый контакт при изменении нельзя.

is_email_visible: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

mobile_id: int32

Идентификатор диапазона номеров, к которому относится мобильный телефон; сервис определяет его по номеру.

phone_id: int32

Идентификатор диапазона номеров, к которому относится основной телефон; сервис определяет его по номеру.

fax_id: int32

Идентификатор диапазона номеров, к которому относится факс; сервис определяет его по номеру.

skype_name: null,string

Логин контакта в Skype.

city_id: int32

Идентификатор города контакта. Информацию о городе возвращает метод POST /gw/gis-dict/v1/cities/by-ids справочника городов; подставляйте значение в поле ids запроса.

attributes: int32

Атрибуты контакта (битовая маска).

access_rights: int32

Права контакта в прежнем формате (битовая маска); сервис выводит их из user_rights, в запросе значение игнорируется.

gsm_operator_id: int32

Устаревшее поле: то же значение, что mobile_id.

is_deleted: boolean

Удалён ли контакт.

read only
deletion_date: date-time

Дата удаления контакта. Публичные методы возвращают только неудалённые контакты, поэтому в их ответе значение null.

is_photo_exists: boolean

Загружено ли фото контакта; в запросе игнорируется.

login: null,string

Логин контакта для входа.

has_personal_password: boolean

Задан ли у контакта личный пароль для входа; в запросе игнорируется.

language: null,string

Язык сайта, выбранный контактом. В запросе игнорируется.

department_id: int32

Идентификатор основного подразделения контакта.

position: null,string

Должность контакта — свободный текст.

user_rights: integer

Права контакта — битовая маска значений UserRights; например, 129 = 1 + 128.

contact_right_nesting_type_id: enum
[0, 1, 2]

Уровень доступа контакта к данным подразделений фирмы.

has_personal_data_consent: boolean

Дал ли контакт согласие на обработку персональных данных; в запросе игнорируется.

}]
Пример
[...]
{...}
"firm_name":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"id":2,
"contact_id":2,
"ati_id":"2654179",
"firm_deletion_date":"2019-03-14T10:25:41",
"name":"Иван Петров",
"phone":"78312345678",
"e_mail":"ivan.petrov@example.com",
"email_for_link":"ivan.petrov@example.com",
"messenger_phone":"79991234567",
"mobile":"79991234567",
"fax":"78312345679",
"note":"Звонить с 9 до 18",
"is_visible":true,
"is_email_visible":true,
"mobile_id":36512345,
"phone_id":18512345,
"fax_id":18512346,
"skype_name":"ivan.petrov",
"city_id":135,
"attributes":0,
"access_rights":161792,
"gsm_operator_id":36512345,
"is_deleted":false,
"deletion_date":"2019-03-14T10:25:41",
"is_photo_exists":false,
"login":"ivanpetrov",
"has_personal_password":true,
"language":"ru",
"department_id":420202,
"position":"Логист",
"has_personal_data_consent":true,
"messenger_phone_messengers":3,
"mobile_messengers":3,
"user_rights":129,
"contact_right_nesting_type_id":1
}
]
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение краткой информации о контакте другой фирмы по его идентификатору

Число запросов ограничено: при превышении лимита метод возвращает 429.

Авторизация
Возвращает краткую информацию о контакте фирмы
get /v1.0/firms/{atiId}/contacts/{contactId}/summary
Параметры
Параметр Тип Расположение Описание
atiId обязательный string path
Код в АТИ фирмы. Пример: 3518206
contactId обязательный integer (int32) path
Идентификатор контакта (поле `contact_id` из метода `GET /v1.0/firms/{atiId}/contacts/summary`). Пример: 2
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/{atiId}/contacts/{contactId}/summary' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Краткая информация о контакте
Модель
{...}

Краткая информация о контакте.

persistent_user_id: int32

Внутренний идентификатор фирмы контакта.

ati_id: null,string

Код в АТИ фирмы контакта.

contact_id: int32

Идентификатор контакта внутри фирмы.

name: null,string

Имя контакта.

phone: null,string

Рабочий телефон. Есть в ответе, только если контакты фирмы доступны запрашивающему: это своя фирма, у своей фирмы оплачен доступ или у фирмы контакта подключён тариф, открывающий её контакты.

mobile_phone: null,string

Мобильный телефон. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

mobile_phone_messengers: integer

Мессенджеры, привязанные к мобильному телефону, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

claims_count: int32

Количество претензий; 0, если данные о претензиях временно недоступны.

bad_partner_mentions_count: int32

Количество упоминаний фирмы на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

leveled_claims_count: int32

Количество претензий Лайт; 0, если данные о претензиях временно недоступны.

claims_pro_sum: double

Сумма выставленных на фирму претензий Про; 0, если данные о претензиях временно недоступны.

claims_lite_sum: double

Сумма выставленных на фирму претензий Лайт; 0, если данные о претензиях временно недоступны.

city: null,string

Город фирмы.

contact_city: null,string

Название города контакта.

firm_type: null,string

Профиль деятельности фирмы.

firm_type_id: int32

Идентификатор профиля деятельности фирмы.

firm_name: null,string

Название фирмы.

ownership: null,string

Организационно-правовая форма.

ownership_id: int32

Идентификатор организационно-правовой формы.

score: double

Количество звезд фирмы; отрицательное число означает красные звезды.

status: enum
[0, 1, 2, 3, 4, 5, 6, 7]

Статус, определяющий цвет подложки звезд.

messenger_phone: null,string

Телефон для мессенджеров; null, если не указан. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

messenger_phone_messengers: integer

Мессенджеры, привязанные к телефону для мессенджеров, — битовая маска значений MessengerType.

fax: null,string

Факс контакта. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

skype_name: null,string

Логин контакта в Skype. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

email: null,string

Адрес электронной почты контакта. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone) и, для чужой фирмы, почта контакта не скрыта (is_email_visibled = true).

is_email_visibled: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

recommendations_count: int32

Количество рекомендаций фирмы. Есть только в ответах методов по коду фирмы (GET /v1.0/firms/{atiId}/contacts/summary и GET /v1.0/firms/{atiId}/contacts/{contactId}/summary).

language: null,string

Язык контакта.

}
Пример
{...}
"persistent_user_id":2654179,
"ati_id":"2654179",
"contact_id":2,
"name":"Иван Петров",
"phone":"78312345678",
"mobile_phone":"79991234567",
"claims_count":1,
"bad_partner_mentions_count":0,
"leveled_claims_count":2,
"claims_pro_sum":150000,
"claims_lite_sum":30000,
"city":"Нижний Новгород",
"contact_city":"Нижний Новгород",
"firm_type":"Экспедитор-перевозчик",
"firm_type_id":5,
"firm_name":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"score":4,
"messenger_phone":"79991234567",
"fax":"78312345679",
"skype_name":"ivan.petrov",
"email":"ivan.petrov@example.com",
"is_email_visibled":true,
"recommendations_count":12,
"language":"ru",
"mobile_phone_messengers":3,
"status":2,
"messenger_phone_messengers":3
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение краткой информации обо всех контактах другой фирмы

Число запросов ограничено: при превышении лимита метод возвращает 429.

Возвращает краткую информацию о всех контактах фирмы
get /v1.0/firms/{atiId}/contacts/summary
Параметры
Параметр Тип Расположение Описание
atiId обязательный string path
Код в АТИ фирмы. Пример: 3518206
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/{atiId}/contacts/summary' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Краткая информация о контактах фирмы
Модель
[{...}]

Краткая информация о контакте.

persistent_user_id: int32

Внутренний идентификатор фирмы контакта.

ati_id: null,string

Код в АТИ фирмы контакта.

contact_id: int32

Идентификатор контакта внутри фирмы.

name: null,string

Имя контакта.

phone: null,string

Рабочий телефон. Есть в ответе, только если контакты фирмы доступны запрашивающему: это своя фирма, у своей фирмы оплачен доступ или у фирмы контакта подключён тариф, открывающий её контакты.

mobile_phone: null,string

Мобильный телефон. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

mobile_phone_messengers: integer

Мессенджеры, привязанные к мобильному телефону, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

claims_count: int32

Количество претензий; 0, если данные о претензиях временно недоступны.

bad_partner_mentions_count: int32

Количество упоминаний фирмы на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

leveled_claims_count: int32

Количество претензий Лайт; 0, если данные о претензиях временно недоступны.

claims_pro_sum: double

Сумма выставленных на фирму претензий Про; 0, если данные о претензиях временно недоступны.

claims_lite_sum: double

Сумма выставленных на фирму претензий Лайт; 0, если данные о претензиях временно недоступны.

city: null,string

Город фирмы.

contact_city: null,string

Название города контакта.

firm_type: null,string

Профиль деятельности фирмы.

firm_type_id: int32

Идентификатор профиля деятельности фирмы.

firm_name: null,string

Название фирмы.

ownership: null,string

Организационно-правовая форма.

ownership_id: int32

Идентификатор организационно-правовой формы.

score: double

Количество звезд фирмы; отрицательное число означает красные звезды.

status: enum
[0, 1, 2, 3, 4, 5, 6, 7]

Статус, определяющий цвет подложки звезд.

messenger_phone: null,string

Телефон для мессенджеров; null, если не указан. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

messenger_phone_messengers: integer

Мессенджеры, привязанные к телефону для мессенджеров, — битовая маска значений MessengerType.

fax: null,string

Факс контакта. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

skype_name: null,string

Логин контакта в Skype. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone).

email: null,string

Адрес электронной почты контакта. Есть в ответе, только если контакты фирмы доступны запрашивающему (условия — в описании phone) и, для чужой фирмы, почта контакта не скрыта (is_email_visibled = true).

is_email_visibled: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

recommendations_count: int32

Количество рекомендаций фирмы. Есть только в ответах методов по коду фирмы (GET /v1.0/firms/{atiId}/contacts/summary и GET /v1.0/firms/{atiId}/contacts/{contactId}/summary).

language: null,string

Язык контакта.

}]
Пример
[...]
{...}
"persistent_user_id":2654179,
"ati_id":"2654179",
"contact_id":2,
"name":"Иван Петров",
"phone":"78312345678",
"mobile_phone":"79991234567",
"claims_count":1,
"bad_partner_mentions_count":0,
"leveled_claims_count":2,
"claims_pro_sum":150000,
"claims_lite_sum":30000,
"city":"Нижний Новгород",
"contact_city":"Нижний Новгород",
"firm_type":"Экспедитор-перевозчик",
"firm_type_id":5,
"firm_name":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"score":4,
"messenger_phone":"79991234567",
"fax":"78312345679",
"skype_name":"ivan.petrov",
"email":"ivan.petrov@example.com",
"is_email_visibled":true,
"recommendations_count":12,
"language":"ru",
"mobile_phone_messengers":3,
"status":2,
"messenger_phone_messengers":3
}
]
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение email конкретного контакта фирмы

Метод доступен только фирмам с оплаченным доступом, иначе возвращает 402. Число запросов ограничено: при превышении лимита метод возвращает 429. Метод возвращает 404, если контакт не найден, не дал согласие на обработку персональных данных или у него нет почты.

Возвращает адрес электронной почты контакта фирмы
get /v1.0/firms/contact/{atiId}/{contactId}/email
Параметры
Параметр Тип Расположение Описание
atiId обязательный string path
Код в АТИ фирмы контакта. Пример: 3518206
contactId обязательный integer (int32) path
Идентификатор контакта (поле `contact_id` из метода `GET /v1.0/firms/{atiId}/contacts/summary`). Пример: 2
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/contact/{atiId}/{contactId}/email' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Адрес электронной почты контакта
Модель
{...}

Адрес электронной почты контакта.

email: null,string

Адрес электронной почты контакта.

}
Пример
{...}
"email":"ivan.petrov@example.com"
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
402 Метод доступен только платным пользователям.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"payment_required",
"reason":"Метод доступен только платным пользователям."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Изменение контакта фирмы

Порядок изменения контакта:

  1. Передайте контакт целиком, как его вернул метод получения всех контактов своей фирмы, изменив нужные поля. Контакт ищется по id.
  2. Новый непустой адрес почты (e_mail) заранее подтвердите методом подтверждения новой почты контакта: для своей почты — без contact_id, для почты другого контакта — с его contact_id.
  3. Если аккаунт фирмы подтверждён, изменения сразу не применяются: сервис отправляет код подтверждения на мобильный телефон администратора фирмы в SMS или звонком и отвечает 403 с error = sms_confirmation_required. Аккаунт подтверждён, если поле passport.ati_data_match_point в информации об аккаунте больше 0; служебных и тестовых фирм это не касается.
  4. Чтобы применить изменения, вызовите метод подтверждения изменения контакта от имени того же контакта и передайте в теле полученный код JSON-строкой. В ответе придёт изменённый контакт.

Если подтверждение не требуется, ответ 200 с изменённым контактом приходит сразу. Число изменений ограничено: при превышении лимита метод возвращает 429.

Изменяет контакт своей фирмы
put /v1.0/firms/contacts
Параметры
Параметров нет
Запрос
Модель
{...}

Контакт фирмы в запросах на создание и изменение и в ответе.

firm_id: int32

Внутренний идентификатор фирмы; в запросе игнорируется, в публичном ответе отсутствует.

created_at: date-time

Дата и время создания контакта; может быть не заполнено. В запросе игнорируется, в публичном ответе отсутствует.

firm_name: null,string

Название фирмы контакта. В запросе игнорируется.

ownership: null,string

Организационно-правовая форма фирмы контакта. В запросе игнорируется.

ownership_id: int32

Идентификатор организационно-правовой формы. В запросе игнорируется.

password: null,string

Пароль для входа; в ответе не возвращается. При изменении контакта (PUT /v1.0/firms/contacts) задаётся вместе с логином только контакту без личного пароля (has_personal_password = false), иначе 400 login_and_password_already_set.

id: int32

Идентификатор контакта внутри фирмы.

contact_id: int32

Идентификатор контакта — то же значение, что id. Оставлено для совместимости.

read only
ati_id: null,string

Код фирмы в АТИ. В запросе PUT /v1.0/firms/contacts должен совпадать с кодом своей фирмы.

firm_deletion_date: date-time

Дата удаления аккаунта фирмы; null, если фирма не удалена.

name: null,string

Имя контакта.

phone: null,string

Основной номер телефона; может содержать добавочный номер через запятую.

e_mail: null,string

Адрес электронной почты контакта.

email_for_link: null,string

Адрес, на который метод PUT /v1.0/firms/contacts отправляет письмо со ссылкой для самостоятельной установки логина и пароля, если в том же запросе не задаются новые логин или пароль; в ответе не заполняется. Передаётся, только если у контакта ещё нет личного пароля (has_personal_password = false в ответе GET /v1.0/firms/contacts), иначе 400 login_and_password_already_set.

messenger_phone: null,string

Телефон для мессенджеров.

messenger_phone_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

mobile: null,string

Номер мобильного телефона контакта; при изменении контакта (PUT /v1.0/firms/contacts) обязателен.

mobile_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

fax: null,string

Номер факса контакта.

note: null,string

Примечание к контакту, до 50 символов.

is_visible: boolean

Виден ли контакт (true) или скрыт (false); скрыть уже видимый контакт при изменении нельзя.

is_email_visible: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

mobile_id: int32

Идентификатор диапазона номеров, к которому относится мобильный телефон; сервис определяет его по номеру.

phone_id: int32

Идентификатор диапазона номеров, к которому относится основной телефон; сервис определяет его по номеру.

fax_id: int32

Идентификатор диапазона номеров, к которому относится факс; сервис определяет его по номеру.

skype_name: null,string

Логин контакта в Skype.

city_id: int32

Идентификатор города контакта. Информацию о городе возвращает метод POST /gw/gis-dict/v1/cities/by-ids справочника городов; подставляйте значение в поле ids запроса.

attributes: int32

Атрибуты контакта (битовая маска).

access_rights: int32

Права контакта в прежнем формате (битовая маска); сервис выводит их из user_rights, в запросе значение игнорируется.

gsm_operator_id: int32

Устаревшее поле: то же значение, что mobile_id.

is_deleted: boolean

Удалён ли контакт.

read only
deletion_date: date-time

Дата удаления контакта. Публичные методы возвращают только неудалённые контакты, поэтому в их ответе значение null.

is_photo_exists: boolean

Загружено ли фото контакта; в запросе игнорируется.

login: null,string

Логин контакта для входа.

has_personal_password: boolean

Задан ли у контакта личный пароль для входа; в запросе игнорируется.

language: null,string

Язык сайта, выбранный контактом. В запросе игнорируется.

department_id: int32

Идентификатор основного подразделения контакта.

position: null,string

Должность контакта — свободный текст.

user_rights: integer

Права контакта — битовая маска значений UserRights; например, 129 = 1 + 128.

contact_right_nesting_type_id: enum
[0, 1, 2]

Уровень доступа контакта к данным подразделений фирмы.

has_personal_data_consent: boolean

Дал ли контакт согласие на обработку персональных данных; в запросе игнорируется.

}
Пример запроса
curl 'https://api.ati.su/v1.0/firms/contacts' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"firm_name":"Волга Логистик","ownership":"ООО","ownership_id":6,"id":2,"ati_id":"2654179","name":"Иван Петров","phone":"78312345678","e_mail":"ivan.petrov@example.com","messenger_phone":"79991234567","mobile":"79991234567","fax":"78312345679","note":"Звонить с 9 до 18","is_visible":true,"is_email_visible":true,"mobile_id":36512345,"phone_id":18512345,"fax_id":18512346,"skype_name":"ivan.petrov","city_id":135,"attributes":0,"access_rights":161792,"gsm_operator_id":36512345,"is_photo_exists":false,"has_personal_password":true,"language":"ru","department_id":420202,"position":"Логист","has_personal_data_consent":true,"messenger_phone_messengers":3,"mobile_messengers":3,"user_rights":129,"contact_right_nesting_type_id":1}'
Ответ
200 Изменённый контакт
Модель
{...}

Контакт фирмы с названием и организационно-правовой формой фирмы.

firm_name: null,string

Название фирмы контакта.

ownership: null,string

Организационно-правовая форма фирмы контакта.

ownership_id: int32

Идентификатор организационно-правовой формы.

id: int32

Идентификатор контакта внутри фирмы.

contact_id: int32

Идентификатор контакта — то же значение, что id. Оставлено для совместимости.

read only
ati_id: null,string

Код фирмы в АТИ. В запросе PUT /v1.0/firms/contacts должен совпадать с кодом своей фирмы.

firm_deletion_date: date-time

Дата удаления аккаунта фирмы; null, если фирма не удалена.

name: null,string

Имя контакта.

phone: null,string

Основной номер телефона; может содержать добавочный номер через запятую.

e_mail: null,string

Адрес электронной почты контакта.

email_for_link: null,string

Адрес, на который метод PUT /v1.0/firms/contacts отправляет письмо со ссылкой для самостоятельной установки логина и пароля, если в том же запросе не задаются новые логин или пароль; в ответе не заполняется. Передаётся, только если у контакта ещё нет личного пароля (has_personal_password = false в ответе GET /v1.0/firms/contacts), иначе 400 login_and_password_already_set.

messenger_phone: null,string

Телефон для мессенджеров.

messenger_phone_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

mobile: null,string

Номер мобильного телефона контакта; при изменении контакта (PUT /v1.0/firms/contacts) обязателен.

mobile_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

fax: null,string

Номер факса контакта.

note: null,string

Примечание к контакту, до 50 символов.

is_visible: boolean

Виден ли контакт (true) или скрыт (false); скрыть уже видимый контакт при изменении нельзя.

is_email_visible: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

mobile_id: int32

Идентификатор диапазона номеров, к которому относится мобильный телефон; сервис определяет его по номеру.

phone_id: int32

Идентификатор диапазона номеров, к которому относится основной телефон; сервис определяет его по номеру.

fax_id: int32

Идентификатор диапазона номеров, к которому относится факс; сервис определяет его по номеру.

skype_name: null,string

Логин контакта в Skype.

city_id: int32

Идентификатор города контакта. Информацию о городе возвращает метод POST /gw/gis-dict/v1/cities/by-ids справочника городов; подставляйте значение в поле ids запроса.

attributes: int32

Атрибуты контакта (битовая маска).

access_rights: int32

Права контакта в прежнем формате (битовая маска); сервис выводит их из user_rights, в запросе значение игнорируется.

gsm_operator_id: int32

Устаревшее поле: то же значение, что mobile_id.

is_deleted: boolean

Удалён ли контакт.

read only
deletion_date: date-time

Дата удаления контакта. Публичные методы возвращают только неудалённые контакты, поэтому в их ответе значение null.

is_photo_exists: boolean

Загружено ли фото контакта; в запросе игнорируется.

login: null,string

Логин контакта для входа.

has_personal_password: boolean

Задан ли у контакта личный пароль для входа; в запросе игнорируется.

language: null,string

Язык сайта, выбранный контактом. В запросе игнорируется.

department_id: int32

Идентификатор основного подразделения контакта.

position: null,string

Должность контакта — свободный текст.

user_rights: integer

Права контакта — битовая маска значений UserRights; например, 129 = 1 + 128.

contact_right_nesting_type_id: enum
[0, 1, 2]

Уровень доступа контакта к данным подразделений фирмы.

has_personal_data_consent: boolean

Дал ли контакт согласие на обработку персональных данных; в запросе игнорируется.

}
Пример
{...}
"firm_name":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"id":2,
"contact_id":2,
"ati_id":"2654179",
"firm_deletion_date":"2019-03-14T10:25:41",
"name":"Иван Петров",
"phone":"78312345678",
"e_mail":"ivan.petrov@example.com",
"email_for_link":"ivan.petrov@example.com",
"messenger_phone":"79991234567",
"mobile":"79991234567",
"fax":"78312345679",
"note":"Звонить с 9 до 18",
"is_visible":true,
"is_email_visible":true,
"mobile_id":36512345,
"phone_id":18512345,
"fax_id":18512346,
"skype_name":"ivan.petrov",
"city_id":135,
"attributes":0,
"access_rights":161792,
"gsm_operator_id":36512345,
"is_deleted":false,
"deletion_date":"2019-03-14T10:25:41",
"is_photo_exists":false,
"login":"ivanpetrov",
"has_personal_password":true,
"language":"ru",
"department_id":420202,
"position":"Логист",
"has_personal_data_consent":true,
"messenger_phone_messengers":3,
"mobile_messengers":3,
"user_rights":129,
"contact_right_nesting_type_id":1
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Подтверждение новой почты контакта

Новый адрес почты контакта (e_mail) подтверждается этим методом до изменения контакта. Подтверждение проходит в несколько шагов, шаг задаёт поле confirmation_type:

  • все шаги одной смены почты выполняются с одним и тем же contact_id: для почты другого контакта — с его contact_id, для своей почты — без contact_id;
  • все шаги, кроме последнего, при успехе отвечают 403 с error = email_confirmation_required — это не ошибка, а приглашение к следующему шагу; последний шаг 8 (проверка кода с новой почты) отвечает 200 с пустым телом.

Порядок шагов зависит от того, подтверждён ли аккаунт фирмы (поле passport.ati_data_match_point в информации об аккаунте больше 0):

  • аккаунт подтверждён: 4 (код уходит на new_email) → 8; шаги 9–13 не принимаются (400);
  • аккаунт не подтверждён — один из двух путей:
    • 9 → 10 → 4 → 8 — только для своей почты; код шага 9 уходит на текущую почту контакта; с contact_id другого контакта шаги 9 и 10 отвечают 400 confirmation_type_is_not_valid;
    • 11 → 12 → 13 → 8 — для любого контакта; код шага 11 уходит на системную почту фирмы.

На шагах 10 и 4 передайте код, пришедший на шаге 9, на шагах 12 и 13 — код с шага 11: шаги 4 и 13 проверяют его повторно и отправляют новый код на new_email, который передаётся на шаге 8. Шаг 4 после шагов 11 и 12 (и шаг 13 после шагов 9 и 10) отвечает 400 confirmation_not_found.

Код — 4 цифры, действует 3 минуты с отправки: шаги 10 и 4 (12 и 13) выполните в течение 3 минут после шага 9 (11), а шаг 8 и изменение контакта с тем же адресом почты — в течение 3 минут после шага 4 (13).

Ошибки (400, поле error): confirmation_type_is_not_valid, contact_email_is_empty, contact_email_is_not_unique, admin_email_is_empty, confirmation_not_found, expired_confirmation_code, error_confirmation_code, admin_confirm_code_attempts_exceeded, email_is_not_the_same. Число изменений контактов ограничено: при превышении лимита метод возвращает 429.

Подтверждает новую почту контакта кодом из письма
put /v1.0/firms/contact/email/confirm
Параметры
Параметров нет
Запрос
Модель
{...}

Запрос на подтверждение новой почты контакта.

new_email: null,string

Новый адрес электронной почты контакта. Нужен на шагах 4, 13 и 8 — один и тот же; с этим же адресом затем сохраняется контакт.

confirmation_type: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Шаг подтверждения — значение ConfirmationType. Подтверждённая фирма: 4 → 8. Неподтверждённая: 9 → 10 → 4 → 8 (только для своей почты и при создании контакта) или 11 → 12 → 13 → 8.

confirmation_code: null,string

Код из письма — 4 цифры. На шагах 10 и 4 — код, пришедший на шаге 9; на шагах 12 и 13 — код с шага 11; на шаге 8 — код, пришедший на new_email. На шагах 9 и 11 и на шаге 4 подтверждённой фирмы не нужен.

contact_id: int32

Идентификатор контакта внутри фирмы, чья почта меняется; одинаковый на всех шагах. Не передавайте при создании контакта и при смене своей почты. С идентификатором другого контакта шаги 9 и 10 недоступны.

}
Пример запроса
curl 'https://api.ati.su/v1.0/firms/contact/email/confirm' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"new_email":"ivan.petrov@example.com","confirmation_code":"0427","contact_id":2,"confirmation_type":4}'
Ответ
200 Почта подтверждена, тело ответа пустое
Успешный ответ
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Подтверждение изменения контакта кодом из SMS

Если изменение контакта ответило 403 с error = sms_confirmation_required, изменения применяются после вызова этого метода от имени того же контакта. Ожидающее изменение хранится у этого контакта: следующий запрос на изменение заменяет его вместе с кодом.

  • Тело — JSON-строка с кодом, который администратор фирмы получил в SMS (4 цифры) или звонком, с ведущими нулями: "0427".
  • Код действует 1 час, неверных попыток — не больше 3; после этого изменение сбрасывается (400 confirm_code_attempts_exceeded).
  • Ошибки: 404 not_found — нет ожидающего изменения, 404 confirm_code_not_found — код истёк, 400 wrong_confirm_code — неверный код.

В ответе приходит изменённый контакт. Число изменений контактов ограничено: при превышении лимита метод возвращает 429.

Подтверждает создание или изменение контакта кодом из SMS или звонка
post /v1.0/firms/contacts/confirm
Параметры
Параметров нет
Запрос
Модель
string
Пример запроса
curl 'https://api.ati.su/v1.0/firms/contacts/confirm' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '"0427"'
Ответ
200 Созданный или изменённый контакт
Модель
{...}

Контакт фирмы с названием и организационно-правовой формой фирмы.

firm_name: null,string

Название фирмы контакта.

ownership: null,string

Организационно-правовая форма фирмы контакта.

ownership_id: int32

Идентификатор организационно-правовой формы.

id: int32

Идентификатор контакта внутри фирмы.

contact_id: int32

Идентификатор контакта — то же значение, что id. Оставлено для совместимости.

read only
ati_id: null,string

Код фирмы в АТИ. В запросе PUT /v1.0/firms/contacts должен совпадать с кодом своей фирмы.

firm_deletion_date: date-time

Дата удаления аккаунта фирмы; null, если фирма не удалена.

name: null,string

Имя контакта.

phone: null,string

Основной номер телефона; может содержать добавочный номер через запятую.

e_mail: null,string

Адрес электронной почты контакта.

email_for_link: null,string

Адрес, на который метод PUT /v1.0/firms/contacts отправляет письмо со ссылкой для самостоятельной установки логина и пароля, если в том же запросе не задаются новые логин или пароль; в ответе не заполняется. Передаётся, только если у контакта ещё нет личного пароля (has_personal_password = false в ответе GET /v1.0/firms/contacts), иначе 400 login_and_password_already_set.

messenger_phone: null,string

Телефон для мессенджеров.

messenger_phone_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

mobile: null,string

Номер мобильного телефона контакта; при изменении контакта (PUT /v1.0/firms/contacts) обязателен.

mobile_messengers: integer

Мессенджеры, привязанные к номеру, — битовая маска значений MessengerType; например, 3 = Telegram + WhatsApp.

fax: null,string

Номер факса контакта.

note: null,string

Примечание к контакту, до 50 символов.

is_visible: boolean

Виден ли контакт (true) или скрыт (false); скрыть уже видимый контакт при изменении нельзя.

is_email_visible: boolean

Виден ли адрес электронной почты контакта (true) или скрыт (false).

mobile_id: int32

Идентификатор диапазона номеров, к которому относится мобильный телефон; сервис определяет его по номеру.

phone_id: int32

Идентификатор диапазона номеров, к которому относится основной телефон; сервис определяет его по номеру.

fax_id: int32

Идентификатор диапазона номеров, к которому относится факс; сервис определяет его по номеру.

skype_name: null,string

Логин контакта в Skype.

city_id: int32

Идентификатор города контакта. Информацию о городе возвращает метод POST /gw/gis-dict/v1/cities/by-ids справочника городов; подставляйте значение в поле ids запроса.

attributes: int32

Атрибуты контакта (битовая маска).

access_rights: int32

Права контакта в прежнем формате (битовая маска); сервис выводит их из user_rights, в запросе значение игнорируется.

gsm_operator_id: int32

Устаревшее поле: то же значение, что mobile_id.

is_deleted: boolean

Удалён ли контакт.

read only
deletion_date: date-time

Дата удаления контакта. Публичные методы возвращают только неудалённые контакты, поэтому в их ответе значение null.

is_photo_exists: boolean

Загружено ли фото контакта; в запросе игнорируется.

login: null,string

Логин контакта для входа.

has_personal_password: boolean

Задан ли у контакта личный пароль для входа; в запросе игнорируется.

language: null,string

Язык сайта, выбранный контактом. В запросе игнорируется.

department_id: int32

Идентификатор основного подразделения контакта.

position: null,string

Должность контакта — свободный текст.

user_rights: integer

Права контакта — битовая маска значений UserRights; например, 129 = 1 + 128.

contact_right_nesting_type_id: enum
[0, 1, 2]

Уровень доступа контакта к данным подразделений фирмы.

has_personal_data_consent: boolean

Дал ли контакт согласие на обработку персональных данных; в запросе игнорируется.

}
Пример
{...}
"firm_name":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"id":2,
"contact_id":2,
"ati_id":"2654179",
"firm_deletion_date":"2019-03-14T10:25:41",
"name":"Иван Петров",
"phone":"78312345678",
"e_mail":"ivan.petrov@example.com",
"email_for_link":"ivan.petrov@example.com",
"messenger_phone":"79991234567",
"mobile":"79991234567",
"fax":"78312345679",
"note":"Звонить с 9 до 18",
"is_visible":true,
"is_email_visible":true,
"mobile_id":36512345,
"phone_id":18512345,
"fax_id":18512346,
"skype_name":"ivan.petrov",
"city_id":135,
"attributes":0,
"access_rights":161792,
"gsm_operator_id":36512345,
"is_deleted":false,
"deletion_date":"2019-03-14T10:25:41",
"is_photo_exists":false,
"login":"ivanpetrov",
"has_personal_password":true,
"language":"ru",
"department_id":420202,
"position":"Логист",
"has_personal_data_consent":true,
"messenger_phone_messengers":3,
"mobile_messengers":3,
"user_rights":129,
"contact_right_nesting_type_id":1
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Реквизиты фирмы

Получение реквизитов своей фирмы по их идентификатору

Возвращает реквизит фирмы по его идентификатору.
get /v1.0/firms/requisites/{requisiteId}
Параметры
Параметр Тип Расположение Описание
requisiteId обязательный string (uuid) path
Идентификатор реквизита. Пример: 5e7d4f3a-1234-5678-9abc-def012345678
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/requisites/{requisiteId}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
{...}

Публичные реквизиты фирмы (юридическое лицо, ИП или физическое лицо) с банковскими реквизитами,
адресами и связанными подписантами.

requisite_id: uuid

Идентификатор реквизита.

ati_id: null,string

Код фирмы в АТИ.

requisite_type_id: int32

Идентификатор типа реквизита. Допустимые значения для данной формы собственности — массив requisiteTypes в ответе словаря GET /v1.0/firms/requisites/ownerships/{countryId} (поле id элемента словаря соответствует тому же набору, что и список requisiteTypes).

requisite_name: null,string

Название реквизита.

legal_name: null,string

Юридическое наименование фирмы.

own_ship_id: int32

Идентификатор формы собственности. Значение берётся из метода GET /v1.0/firms/requisites/ownerships/{countryId}. Подставляйте поле id из ответа словаря.

fio: null,string

ФИО владельца.

inn: null,string

ИНН.

ogrn: null,string

ОГРН (для реквизитов в валюте USD/EUR в этом поле хранится VAT).

phone: null,string

Телефон.

fax: null,string

Факс.

email: null,string

Электронный адрес.

kpp: null,string

КПП.

rs: null,string

Расчётный счёт.

ks: null,string

Корреспондентский счёт банка.

bik: null,string

БИК банка.

bank: null,string

Наименование банка.

codes: null,string

Дополнительные коды реквизита.

is_read_only: boolean

Признак реквизитов только для чтения.

okpo: null,string

ОКПО.

is_vat_payer: boolean

Признак плательщика НДС.

last_use_date: date-time

Дата последнего использования в системе (UTC).

is_active: boolean

Активный реквизит.

is_visible: boolean

Будет ли виден реквизит пользователю в будущем. Используется для одноразовых реквизитов (например, при создании счёта с оплатой по банковской карте — там реквизит создаётся из пары полей).

legal_address_id: uuid

Идентификатор юридического адреса в системе.

post_address_id: uuid

Идентификатор почтового адреса в системе.

available_in_ati_docs: boolean

Признак доступности реквизитов в АТИ Доках.

read only
exclusive_for_invoice_pay_type: int32

Идентификатор типа платежа, для которого реквизиты являются приоритетными. При наличии эксклюзивных другие доступные реквизиты для такого InvoicePayTypeId возвращаться не будут.

is_short_requisite: boolean

Признак того, что реквизиты являются короткими/неполными. Для коротких реквизитов есть ослабленная валидация.

}
Пример
{...}
"requisite_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"requisite_type_id":1,
"requisite_name":"Основной реквизит",
"legal_name":"ООО "Ромашка"",
"own_ship_id":1,
"fio":"Иванов Иван Иванович",
"inn":"1234567890",
"ogrn":"1234567890123",
"phone":"+7 (495) 123-45-67",
"fax":"+7 (495) 123-45-68",
"email":"info@example.com",
"kpp":"123456789",
"rs":"40702810400000001234",
"ks":"30101810400000000225",
"bik":"044525225",
"bank":"ПАО Сбербанк",
"codes":"OKVED:49.41",
"is_read_only":false,
"okpo":"12345678",
"is_vat_payer":true,
"last_use_date":"2024-01-15T10:30:00Z",
"is_active":true,
"is_visible":true,
"legal_address":{...},
"address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"country_id":1,
"region_id":77,
"city_id":1,
"city_name":"Москва",
"post_index":"101000",
"street_type_id":1,
"street_name":"Тверская",
"house_no":"10",
"part_no":"корп.1",
"litera":"лит.А",
"office_no":"501",
"post_contact":"Иванов И.И.",
"add_date":"2024-01-15T10:30:00Z",
"attributes":12,
"formatted_text":"101000, г. Москва, ул. Тверская, д.10, корп.1, лит.А, оф.501"
},
"post_address":{...},
"address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"country_id":1,
"region_id":77,
"city_id":1,
"city_name":"Москва",
"post_index":"101000",
"street_type_id":1,
"street_name":"Тверская",
"house_no":"10",
"part_no":"корп.1",
"litera":"лит.А",
"office_no":"501",
"post_contact":"Иванов И.И.",
"add_date":"2024-01-15T10:30:00Z",
"attributes":12,
"formatted_text":"101000, г. Москва, ул. Тверская, д.10, корп.1, лит.А, оф.501"
},
"legal_address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"post_address_id":"6f8e5g4b-2345-6789-0bcd-ef0123456789",
"person_passport":{...},
"series":"4500",
"number":"123456",
"date_of_issue":"2010-05-15T00:00:00Z",
"department_code":"770-001",
"issued_by":"ОВД района Замоскворечье г. Москвы",
"registration":"101000, г. Москва, ул. Тверская, д.10",
"scan_files":[...]
{...}
"link":"https://files.example.com/passport/123.pdf",
"id":"file-abc-123",
"size":102400,
"name":"passport_scan.pdf"
}
]
},
"available_in_ati_docs":true,
"exclusive_for_invoice_pay_type":1,
"is_short_requisite":false,
"signees":[...]
{...}
"signee_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"requisite_id":"6f8e5g4b-2345-6789-0bcd-ef0123456789",
"full_name":"Иванова Ивана Ивановича",
"position":"генерального директора",
"act_upon":"Устава",
"is_default":true,
"deletion_date":"2024-12-31T00:00:00Z",
"full_name_and_position":"Генеральный директор Иванов И.И."
}
]
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}

Получение всех реквизитов своей фирмы

Возвращает список реквизитов фирмы. Если задан atiId, выбираются реквизиты той фирмы; иначе — реквизиты текущей авторизованной фирмы.
get /v1.0/firms/requisites
Параметры
Параметр Тип Расположение Описание
withShortRequisite boolean query
Включать в выдачу короткие/неполные реквизиты. Пример: false
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/requisites' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
[{...}]

Публичные реквизиты фирмы (юридическое лицо, ИП или физическое лицо) с банковскими реквизитами,
адресами и связанными подписантами.

requisite_id: uuid

Идентификатор реквизита.

ati_id: null,string

Код фирмы в АТИ.

requisite_type_id: int32

Идентификатор типа реквизита. Допустимые значения для данной формы собственности — массив requisiteTypes в ответе словаря GET /v1.0/firms/requisites/ownerships/{countryId} (поле id элемента словаря соответствует тому же набору, что и список requisiteTypes).

requisite_name: null,string

Название реквизита.

legal_name: null,string

Юридическое наименование фирмы.

own_ship_id: int32

Идентификатор формы собственности. Значение берётся из метода GET /v1.0/firms/requisites/ownerships/{countryId}. Подставляйте поле id из ответа словаря.

fio: null,string

ФИО владельца.

inn: null,string

ИНН.

ogrn: null,string

ОГРН (для реквизитов в валюте USD/EUR в этом поле хранится VAT).

phone: null,string

Телефон.

fax: null,string

Факс.

email: null,string

Электронный адрес.

kpp: null,string

КПП.

rs: null,string

Расчётный счёт.

ks: null,string

Корреспондентский счёт банка.

bik: null,string

БИК банка.

bank: null,string

Наименование банка.

codes: null,string

Дополнительные коды реквизита.

is_read_only: boolean

Признак реквизитов только для чтения.

okpo: null,string

ОКПО.

is_vat_payer: boolean

Признак плательщика НДС.

last_use_date: date-time

Дата последнего использования в системе (UTC).

is_active: boolean

Активный реквизит.

is_visible: boolean

Будет ли виден реквизит пользователю в будущем. Используется для одноразовых реквизитов (например, при создании счёта с оплатой по банковской карте — там реквизит создаётся из пары полей).

legal_address_id: uuid

Идентификатор юридического адреса в системе.

post_address_id: uuid

Идентификатор почтового адреса в системе.

available_in_ati_docs: boolean

Признак доступности реквизитов в АТИ Доках.

read only
exclusive_for_invoice_pay_type: int32

Идентификатор типа платежа, для которого реквизиты являются приоритетными. При наличии эксклюзивных другие доступные реквизиты для такого InvoicePayTypeId возвращаться не будут.

is_short_requisite: boolean

Признак того, что реквизиты являются короткими/неполными. Для коротких реквизитов есть ослабленная валидация.

}]
Пример
[...]
{...}
"requisite_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"requisite_type_id":1,
"requisite_name":"Основной реквизит",
"legal_name":"ООО "Ромашка"",
"own_ship_id":1,
"fio":"Иванов Иван Иванович",
"inn":"1234567890",
"ogrn":"1234567890123",
"phone":"+7 (495) 123-45-67",
"fax":"+7 (495) 123-45-68",
"email":"info@example.com",
"kpp":"123456789",
"rs":"40702810400000001234",
"ks":"30101810400000000225",
"bik":"044525225",
"bank":"ПАО Сбербанк",
"codes":"OKVED:49.41",
"is_read_only":false,
"okpo":"12345678",
"is_vat_payer":true,
"last_use_date":"2024-01-15T10:30:00Z",
"is_active":true,
"is_visible":true,
"legal_address":{...},
"address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"country_id":1,
"region_id":77,
"city_id":1,
"city_name":"Москва",
"post_index":"101000",
"street_type_id":1,
"street_name":"Тверская",
"house_no":"10",
"part_no":"корп.1",
"litera":"лит.А",
"office_no":"501",
"post_contact":"Иванов И.И.",
"add_date":"2024-01-15T10:30:00Z",
"attributes":12,
"formatted_text":"101000, г. Москва, ул. Тверская, д.10, корп.1, лит.А, оф.501"
},
"post_address":{...},
"address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"country_id":1,
"region_id":77,
"city_id":1,
"city_name":"Москва",
"post_index":"101000",
"street_type_id":1,
"street_name":"Тверская",
"house_no":"10",
"part_no":"корп.1",
"litera":"лит.А",
"office_no":"501",
"post_contact":"Иванов И.И.",
"add_date":"2024-01-15T10:30:00Z",
"attributes":12,
"formatted_text":"101000, г. Москва, ул. Тверская, д.10, корп.1, лит.А, оф.501"
},
"legal_address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"post_address_id":"6f8e5g4b-2345-6789-0bcd-ef0123456789",
"person_passport":{...},
"series":"4500",
"number":"123456",
"date_of_issue":"2010-05-15T00:00:00Z",
"department_code":"770-001",
"issued_by":"ОВД района Замоскворечье г. Москвы",
"registration":"101000, г. Москва, ул. Тверская, д.10",
"scan_files":[...]
{...}
"link":"https://files.example.com/passport/123.pdf",
"id":"file-abc-123",
"size":102400,
"name":"passport_scan.pdf"
}
]
},
"available_in_ati_docs":true,
"exclusive_for_invoice_pay_type":1,
"is_short_requisite":false,
"signees":[...]
{...}
"signee_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"requisite_id":"6f8e5g4b-2345-6789-0bcd-ef0123456789",
"full_name":"Иванова Ивана Ивановича",
"position":"генерального директора",
"act_upon":"Устава",
"is_default":true,
"deletion_date":"2024-12-31T00:00:00Z",
"full_name_and_position":"Генеральный директор Иванов И.И."
}
]
}
]
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}

Получение реквизитов другой фирмы

Возвращает список реквизитов фирмы. Если задан atiId, выбираются реквизиты той фирмы; иначе — реквизиты текущей авторизованной фирмы.
get /v1.0/firms/{atiId}/requisites
Параметры
Параметр Тип Расположение Описание
atiId обязательный string path
Код фирмы в АТИ (опционально). Пример: 12345
withShortRequisite boolean query
Включать в выдачу короткие/неполные реквизиты. Пример: false
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/{atiId}/requisites' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
[{...}]

Публичные реквизиты фирмы (юридическое лицо, ИП или физическое лицо) с банковскими реквизитами,
адресами и связанными подписантами.

requisite_id: uuid

Идентификатор реквизита.

ati_id: null,string

Код фирмы в АТИ.

requisite_type_id: int32

Идентификатор типа реквизита. Допустимые значения для данной формы собственности — массив requisiteTypes в ответе словаря GET /v1.0/firms/requisites/ownerships/{countryId} (поле id элемента словаря соответствует тому же набору, что и список requisiteTypes).

requisite_name: null,string

Название реквизита.

legal_name: null,string

Юридическое наименование фирмы.

own_ship_id: int32

Идентификатор формы собственности. Значение берётся из метода GET /v1.0/firms/requisites/ownerships/{countryId}. Подставляйте поле id из ответа словаря.

fio: null,string

ФИО владельца.

inn: null,string

ИНН.

ogrn: null,string

ОГРН (для реквизитов в валюте USD/EUR в этом поле хранится VAT).

phone: null,string

Телефон.

fax: null,string

Факс.

email: null,string

Электронный адрес.

kpp: null,string

КПП.

rs: null,string

Расчётный счёт.

ks: null,string

Корреспондентский счёт банка.

bik: null,string

БИК банка.

bank: null,string

Наименование банка.

codes: null,string

Дополнительные коды реквизита.

is_read_only: boolean

Признак реквизитов только для чтения.

okpo: null,string

ОКПО.

is_vat_payer: boolean

Признак плательщика НДС.

last_use_date: date-time

Дата последнего использования в системе (UTC).

is_active: boolean

Активный реквизит.

is_visible: boolean

Будет ли виден реквизит пользователю в будущем. Используется для одноразовых реквизитов (например, при создании счёта с оплатой по банковской карте — там реквизит создаётся из пары полей).

legal_address_id: uuid

Идентификатор юридического адреса в системе.

post_address_id: uuid

Идентификатор почтового адреса в системе.

available_in_ati_docs: boolean

Признак доступности реквизитов в АТИ Доках.

read only
exclusive_for_invoice_pay_type: int32

Идентификатор типа платежа, для которого реквизиты являются приоритетными. При наличии эксклюзивных другие доступные реквизиты для такого InvoicePayTypeId возвращаться не будут.

is_short_requisite: boolean

Признак того, что реквизиты являются короткими/неполными. Для коротких реквизитов есть ослабленная валидация.

}]
Пример
[...]
{...}
"requisite_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"requisite_type_id":1,
"requisite_name":"Основной реквизит",
"legal_name":"ООО "Ромашка"",
"own_ship_id":1,
"fio":"Иванов Иван Иванович",
"inn":"1234567890",
"ogrn":"1234567890123",
"phone":"+7 (495) 123-45-67",
"fax":"+7 (495) 123-45-68",
"email":"info@example.com",
"kpp":"123456789",
"rs":"40702810400000001234",
"ks":"30101810400000000225",
"bik":"044525225",
"bank":"ПАО Сбербанк",
"codes":"OKVED:49.41",
"is_read_only":false,
"okpo":"12345678",
"is_vat_payer":true,
"last_use_date":"2024-01-15T10:30:00Z",
"is_active":true,
"is_visible":true,
"legal_address":{...},
"address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"country_id":1,
"region_id":77,
"city_id":1,
"city_name":"Москва",
"post_index":"101000",
"street_type_id":1,
"street_name":"Тверская",
"house_no":"10",
"part_no":"корп.1",
"litera":"лит.А",
"office_no":"501",
"post_contact":"Иванов И.И.",
"add_date":"2024-01-15T10:30:00Z",
"attributes":12,
"formatted_text":"101000, г. Москва, ул. Тверская, д.10, корп.1, лит.А, оф.501"
},
"post_address":{...},
"address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"ati_id":"12345",
"country_id":1,
"region_id":77,
"city_id":1,
"city_name":"Москва",
"post_index":"101000",
"street_type_id":1,
"street_name":"Тверская",
"house_no":"10",
"part_no":"корп.1",
"litera":"лит.А",
"office_no":"501",
"post_contact":"Иванов И.И.",
"add_date":"2024-01-15T10:30:00Z",
"attributes":12,
"formatted_text":"101000, г. Москва, ул. Тверская, д.10, корп.1, лит.А, оф.501"
},
"legal_address_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"post_address_id":"6f8e5g4b-2345-6789-0bcd-ef0123456789",
"person_passport":{...},
"series":"4500",
"number":"123456",
"date_of_issue":"2010-05-15T00:00:00Z",
"department_code":"770-001",
"issued_by":"ОВД района Замоскворечье г. Москвы",
"registration":"101000, г. Москва, ул. Тверская, д.10",
"scan_files":[...]
{...}
"link":"https://files.example.com/passport/123.pdf",
"id":"file-abc-123",
"size":102400,
"name":"passport_scan.pdf"
}
]
},
"available_in_ati_docs":true,
"exclusive_for_invoice_pay_type":1,
"is_short_requisite":false,
"signees":[...]
{...}
"signee_id":"5e7d4f3a-1234-5678-9abc-def012345678",
"requisite_id":"6f8e5g4b-2345-6789-0bcd-ef0123456789",
"full_name":"Иванова Ивана Ивановича",
"position":"генерального директора",
"act_upon":"Устава",
"is_default":true,
"deletion_date":"2024-12-31T00:00:00Z",
"full_name_and_position":"Генеральный директор Иванов И.И."
}
]
}
]
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}

Данные по фирмам

Получение краткой информации о своей фирме

Авторизация
Возвращает краткую информацию о своей фирме
get /v1.0/firms/summary
Параметры
Параметров нет
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/summary' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Краткая информация о фирме
Модель
{...}

Краткая информация о фирме.

ati_id: null,string

Код фирмы в АТИ.

brand: null,string

Бренд фирмы; null, если бренд не указан.

ownership: null,string

Организационно-правовая форма фирмы.

ownership_id: int32

Идентификатор организационно-правовой формы.

full_name: null,string

Полное название фирмы: название и организационно-правовая форма через запятую; если бренд отличается от названия, то «Бренд (Название, ОПФ)».

firm_name: null,string

Название фирмы.

address: null,string

Адрес фирмы.

web_site: null,string

Сайт фирмы.

position_in_city: int32

Место фирмы в рейтинге по городу.

position_in_country: int32

Место фирмы в рейтинге по стране.

name_eng: null,string

Международное название фирмы.

firm_type: null,string

Профиль деятельности фирмы; пустая строка, если профиль не указан.

firm_type_id_int: int32

Идентификатор профиля деятельности; null, если профиль не указан.

firm_type_id: null,string

Идентификатор профиля деятельности строкой (устаревшее поле, используйте firm_type_id_int).

predicted_firm_type_id: int32

Идентификатор предполагаемого профиля деятельности по результатам анализа фирмы.

info_reference: null,string

Ссылка на карточку фирмы на сайте АТИ.

passport_reference: null,string

Ссылка на паспорт фирмы на сайте АТИ.

city: null,string

Название города фирмы.

score: double

Количество звезд фирмы; отрицательное число означает красные звезды.

bad_partner_mentions_count: int32

Количество упоминаний фирмы на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

leveled_claims_count: int32

Количество претензий Лайт.

claims_count: int32

Количество претензий от фирм.

language: null,string

Язык фирмы.

recommendations_count: int32

Количество рекомендаций от фирм.

inn: null,string

ИНН фирмы.

ogrn: null,string

ОГРН фирмы.

kpp: null,string

КПП фирмы (код причины постановки на учет).

okpo: null,string

Код фирмы в Общероссийском классификаторе предприятий и организаций (ОКПО).

negative_points_sum: double

Сумма отрицательных баллов фирмы: 0 или отрицательное число.

tf_firm_color: null,string

Цвет фирмы в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_account_color: null,string

Цвет аккаунта в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_has_signals: boolean

Есть ли о фирме какая-либо информация в системе «Светофор».

registration_date: date-time

Дата регистрации фирмы в АТИ.

contact_info_changed: date-time

Дата последнего изменения в истории фирмы. Поле есть в ответе только у пользователей с платным доступом к АТИ.

deletion_date: date-time

Дата удаления фирмы; null, если фирма не удалена.

last_month_active_days: int32

Число дней со входами на сайт за последние 30 дней. Поле есть в ответе только у пользователей с платным доступом к АТИ.

verified_trucks: int32

Количество зарегистрированных транспортных средств фирмы.

}
Пример
{...}
"ati_id":"2654179",
"brand":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"full_name":"Волга Логистик, ООО",
"firm_name":"Волга Логистик",
"address":"603005, Нижний Новгород, ул. Минина, д. 12",
"web_site":"www.volga-logistic.ru",
"position_in_city":125,
"position_in_country":3412,
"name_eng":"Volga Logistic",
"firm_type":"Экспедитор-перевозчик",
"firm_type_id_int":5,
"firm_type_id":"5",
"predicted_firm_type_id":5,
"info_reference":"https://ati.su/firms/2654179/info",
"passport_reference":"https://ati.su/firms/2654179/passport",
"city":"Нижний Новгород",
"score":4,
"bad_partner_mentions_count":0,
"leveled_claims_count":2,
"claims_count":1,
"language":"ru",
"recommendations_count":12,
"inn":"5260417382",
"ogrn":"1155260008421",
"kpp":"526001001",
"okpo":"45781236",
"negative_points_sum":-1,
"tf_firm_color":"Green",
"tf_account_color":"Green",
"tf_has_signals":true,
"registration_date":"2019-03-14T07:25:41Z",
"contact_info_changed":"2026-09-02T11:37:15Z",
"deletion_date":"2025-02-11T13:48:03Z",
"last_month_active_days":18,
"verified_trucks":3,
"location":{...},
"city_id":135,
"region_id":78,
"country_id":1,
"full_name":"Нижний Новгород, Нижегородская область, Россия",
"short_name":"Нижний Новгород",
"is_regional_center":true,
"city_size":6,
"fias_id":"555e7d61-d9a7-4ba6-9770-6caa8198c483",
"city_name":"Нижний Новгород",
"region_name":"Нижегородская область",
"country_name":"Россия",
"country_code_name":"RUS",
"attributes":4
},
"affiliated_firms":[...],
{...}
"firm_name":"Волга Транс",
"inn":"5260198347",
"tf_firm_color":"Green",
"tf_has_signals":true,
"status":1
}
],
"firm_documents":[...]
{...}
"link":"7D2E4A91C3B84F05A6E1D9B2C4F8A031",
"description":"Свидетельство о регистрации юр. лица скан от 14.03.2019",
"creation_date":"2019-03-15T09:12:05",
"name":"скан от 14.03.2019",
"type_id":2
}
]
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение краткой информации о фирме по её идентификатору

Код фирмы должен быть числом, иначе метод возвращает 400.

Возвращает краткую информацию о фирме по коду в АТИ
get /v1.0/firms/summary/{atiId}
Параметры
Параметр Тип Расположение Описание
atiId обязательный string path
Код фирмы в АТИ. Пример: 3518206
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/summary/{atiId}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Краткая информация о фирме
Модель
{...}

Краткая информация о фирме.

ati_id: null,string

Код фирмы в АТИ.

brand: null,string

Бренд фирмы; null, если бренд не указан.

ownership: null,string

Организационно-правовая форма фирмы.

ownership_id: int32

Идентификатор организационно-правовой формы.

full_name: null,string

Полное название фирмы: название и организационно-правовая форма через запятую; если бренд отличается от названия, то «Бренд (Название, ОПФ)».

firm_name: null,string

Название фирмы.

address: null,string

Адрес фирмы.

web_site: null,string

Сайт фирмы.

position_in_city: int32

Место фирмы в рейтинге по городу.

position_in_country: int32

Место фирмы в рейтинге по стране.

name_eng: null,string

Международное название фирмы.

firm_type: null,string

Профиль деятельности фирмы; пустая строка, если профиль не указан.

firm_type_id_int: int32

Идентификатор профиля деятельности; null, если профиль не указан.

firm_type_id: null,string

Идентификатор профиля деятельности строкой (устаревшее поле, используйте firm_type_id_int).

predicted_firm_type_id: int32

Идентификатор предполагаемого профиля деятельности по результатам анализа фирмы.

info_reference: null,string

Ссылка на карточку фирмы на сайте АТИ.

passport_reference: null,string

Ссылка на паспорт фирмы на сайте АТИ.

city: null,string

Название города фирмы.

score: double

Количество звезд фирмы; отрицательное число означает красные звезды.

bad_partner_mentions_count: int32

Количество упоминаний фирмы на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

leveled_claims_count: int32

Количество претензий Лайт.

claims_count: int32

Количество претензий от фирм.

language: null,string

Язык фирмы.

recommendations_count: int32

Количество рекомендаций от фирм.

inn: null,string

ИНН фирмы.

ogrn: null,string

ОГРН фирмы.

kpp: null,string

КПП фирмы (код причины постановки на учет).

okpo: null,string

Код фирмы в Общероссийском классификаторе предприятий и организаций (ОКПО).

negative_points_sum: double

Сумма отрицательных баллов фирмы: 0 или отрицательное число.

tf_firm_color: null,string

Цвет фирмы в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_account_color: null,string

Цвет аккаунта в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_has_signals: boolean

Есть ли о фирме какая-либо информация в системе «Светофор».

registration_date: date-time

Дата регистрации фирмы в АТИ.

contact_info_changed: date-time

Дата последнего изменения в истории фирмы. Поле есть в ответе только у пользователей с платным доступом к АТИ.

deletion_date: date-time

Дата удаления фирмы; null, если фирма не удалена.

last_month_active_days: int32

Число дней со входами на сайт за последние 30 дней. Поле есть в ответе только у пользователей с платным доступом к АТИ.

verified_trucks: int32

Количество зарегистрированных транспортных средств фирмы.

}
Пример
{...}
"ati_id":"2654179",
"brand":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"full_name":"Волга Логистик, ООО",
"firm_name":"Волга Логистик",
"address":"603005, Нижний Новгород, ул. Минина, д. 12",
"web_site":"www.volga-logistic.ru",
"position_in_city":125,
"position_in_country":3412,
"name_eng":"Volga Logistic",
"firm_type":"Экспедитор-перевозчик",
"firm_type_id_int":5,
"firm_type_id":"5",
"predicted_firm_type_id":5,
"info_reference":"https://ati.su/firms/2654179/info",
"passport_reference":"https://ati.su/firms/2654179/passport",
"city":"Нижний Новгород",
"score":4,
"bad_partner_mentions_count":0,
"leveled_claims_count":2,
"claims_count":1,
"language":"ru",
"recommendations_count":12,
"inn":"5260417382",
"ogrn":"1155260008421",
"kpp":"526001001",
"okpo":"45781236",
"negative_points_sum":-1,
"tf_firm_color":"Green",
"tf_account_color":"Green",
"tf_has_signals":true,
"registration_date":"2019-03-14T07:25:41Z",
"contact_info_changed":"2026-09-02T11:37:15Z",
"deletion_date":"2025-02-11T13:48:03Z",
"last_month_active_days":18,
"verified_trucks":3,
"location":{...},
"city_id":135,
"region_id":78,
"country_id":1,
"full_name":"Нижний Новгород, Нижегородская область, Россия",
"short_name":"Нижний Новгород",
"is_regional_center":true,
"city_size":6,
"fias_id":"555e7d61-d9a7-4ba6-9770-6caa8198c483",
"city_name":"Нижний Новгород",
"region_name":"Нижегородская область",
"country_name":"Россия",
"country_code_name":"RUS",
"attributes":4
},
"affiliated_firms":[...],
{...}
"firm_name":"Волга Транс",
"inn":"5260198347",
"tf_firm_color":"Green",
"tf_has_signals":true,
"status":1
}
],
"firm_documents":[...]
{...}
"link":"7D2E4A91C3B84F05A6E1D9B2C4F8A031",
"description":"Свидетельство о регистрации юр. лица скан от 14.03.2019",
"creation_date":"2019-03-15T09:12:05",
"name":"скан от 14.03.2019",
"type_id":2
}
]
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение краткой информации о фирмах по их идентификаторам

В запросе — не больше 100 кодов. Коды, по которым фирма не найдена, в ответ не попадают. Если кодов больше 100 или среди них нет ни одного числового, метод возвращает 400.

Возвращает краткую информацию о фирмах по списку кодов
post /v1.0/firms/summaries
Параметры
Параметров нет
Запрос
Модель
[string]

Коды фирм в АТИ, не больше 100.

Пример запроса
curl 'https://api.ati.su/v1.0/firms/summaries' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '["2654179","3518206"]'
Ответ
200 Краткая информация о найденных фирмах
Модель
[{...}]

Краткая информация о фирме.

ati_id: null,string

Код фирмы в АТИ.

brand: null,string

Бренд фирмы; null, если бренд не указан.

ownership: null,string

Организационно-правовая форма фирмы.

ownership_id: int32

Идентификатор организационно-правовой формы.

full_name: null,string

Полное название фирмы: название и организационно-правовая форма через запятую; если бренд отличается от названия, то «Бренд (Название, ОПФ)».

firm_name: null,string

Название фирмы.

address: null,string

Адрес фирмы.

web_site: null,string

Сайт фирмы.

position_in_city: int32

Место фирмы в рейтинге по городу.

position_in_country: int32

Место фирмы в рейтинге по стране.

name_eng: null,string

Международное название фирмы.

firm_type: null,string

Профиль деятельности фирмы; пустая строка, если профиль не указан.

firm_type_id_int: int32

Идентификатор профиля деятельности; null, если профиль не указан.

firm_type_id: null,string

Идентификатор профиля деятельности строкой (устаревшее поле, используйте firm_type_id_int).

predicted_firm_type_id: int32

Идентификатор предполагаемого профиля деятельности по результатам анализа фирмы.

info_reference: null,string

Ссылка на карточку фирмы на сайте АТИ.

passport_reference: null,string

Ссылка на паспорт фирмы на сайте АТИ.

city: null,string

Название города фирмы.

score: double

Количество звезд фирмы; отрицательное число означает красные звезды.

bad_partner_mentions_count: int32

Количество упоминаний фирмы на форуме «Недобросовестные партнёры». Не заполняется: всегда 0.

leveled_claims_count: int32

Количество претензий Лайт.

claims_count: int32

Количество претензий от фирм.

language: null,string

Язык фирмы.

recommendations_count: int32

Количество рекомендаций от фирм.

inn: null,string

ИНН фирмы.

ogrn: null,string

ОГРН фирмы.

kpp: null,string

КПП фирмы (код причины постановки на учет).

okpo: null,string

Код фирмы в Общероссийском классификаторе предприятий и организаций (ОКПО).

negative_points_sum: double

Сумма отрицательных баллов фирмы: 0 или отрицательное число.

tf_firm_color: null,string

Цвет фирмы в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_account_color: null,string

Цвет аккаунта в системе «Светофор». Поле есть в ответе только у пользователей с доступом к «Светофору».

tf_has_signals: boolean

Есть ли о фирме какая-либо информация в системе «Светофор».

registration_date: date-time

Дата регистрации фирмы в АТИ.

contact_info_changed: date-time

Дата последнего изменения в истории фирмы. Поле есть в ответе только у пользователей с платным доступом к АТИ.

deletion_date: date-time

Дата удаления фирмы; null, если фирма не удалена.

last_month_active_days: int32

Число дней со входами на сайт за последние 30 дней. Поле есть в ответе только у пользователей с платным доступом к АТИ.

verified_trucks: int32

Количество зарегистрированных транспортных средств фирмы.

}]
Пример
[...]
{...}
"ati_id":"2654179",
"brand":"Волга Логистик",
"ownership":"ООО",
"ownership_id":6,
"full_name":"Волга Логистик, ООО",
"firm_name":"Волга Логистик",
"address":"603005, Нижний Новгород, ул. Минина, д. 12",
"web_site":"www.volga-logistic.ru",
"position_in_city":125,
"position_in_country":3412,
"name_eng":"Volga Logistic",
"firm_type":"Экспедитор-перевозчик",
"firm_type_id_int":5,
"firm_type_id":"5",
"predicted_firm_type_id":5,
"info_reference":"https://ati.su/firms/2654179/info",
"passport_reference":"https://ati.su/firms/2654179/passport",
"city":"Нижний Новгород",
"score":4,
"bad_partner_mentions_count":0,
"leveled_claims_count":2,
"claims_count":1,
"language":"ru",
"recommendations_count":12,
"inn":"5260417382",
"ogrn":"1155260008421",
"kpp":"526001001",
"okpo":"45781236",
"negative_points_sum":-1,
"tf_firm_color":"Green",
"tf_account_color":"Green",
"tf_has_signals":true,
"registration_date":"2019-03-14T07:25:41Z",
"contact_info_changed":"2026-09-02T11:37:15Z",
"deletion_date":"2025-02-11T13:48:03Z",
"last_month_active_days":18,
"verified_trucks":3,
"location":{...},
"city_id":135,
"region_id":78,
"country_id":1,
"full_name":"Нижний Новгород, Нижегородская область, Россия",
"short_name":"Нижний Новгород",
"is_regional_center":true,
"city_size":6,
"fias_id":"555e7d61-d9a7-4ba6-9770-6caa8198c483",
"city_name":"Нижний Новгород",
"region_name":"Нижегородская область",
"country_name":"Россия",
"country_code_name":"RUS",
"attributes":4
},
"affiliated_firms":[...],
{...}
"firm_name":"Волга Транс",
"inn":"5260198347",
"tf_firm_color":"Green",
"tf_has_signals":true,
"status":1
}
],
"firm_documents":[...]
{...}
"link":"7D2E4A91C3B84F05A6E1D9B2C4F8A031",
"description":"Свидетельство о регистрации юр. лица скан от 14.03.2019",
"creation_date":"2019-03-15T09:12:05",
"name":"скан от 14.03.2019",
"type_id":2
}
]
}
]
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Комментарии фирм

Получение всех своих комментариев о других фирмах

Возвращает все комментарии своей фирмы о других фирмах
get /v1.0/firms/comments
Параметры
Параметров нет
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарии своей фирмы о других фирмах
Модель
[{...}]

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}]
Пример
[...]
{...}
"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
"ati_id":"2654179",
"user_id":2,
"commented_firm_ati_id":"3518206",
"comment":"Надёжный партнёр, оплата без задержек.",
"added_date":"2019-03-14T10:25:41"
}
]
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение своего комментария о фирме

Возвращает комментарий своей фирмы о фирме с кодом atiId
get /v1.0/firms/comments/{atiId}
Параметры
Параметр Тип Расположение Описание
atiId обязательный string path
Код в АТИ фирмы, о которой оставлен комментарий. Пример: 3518206
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments/{atiId}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарий о фирме
Модель
{...}

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}
Пример
{...}
"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
"ati_id":"2654179",
"user_id":2,
"commented_firm_ati_id":"3518206",
"comment":"Надёжный партнёр, оплата без задержек.",
"added_date":"2019-03-14T10:25:41"
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение своего комментария о фирмах

Фирмы без комментария в ответ не попадают. Если нет комментария ни об одной из фирм, метод возвращает пустой массив.

Возвращает комментарии своей фирмы о фирмах из списка кодов
post /v1.0/firms/comments/byfirms
Параметры
Параметров нет
Запрос
Модель
[string]

Коды в АТИ фирм, о которых нужны комментарии.

Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments/byfirms' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '["3518206","4127730"]'
Ответ
200 Найденные комментарии; фирмы без комментария в ответ не попадают
Модель
[{...}]

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}]
Пример
[...]
{...}
"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
"ati_id":"2654179",
"user_id":2,
"commented_firm_ati_id":"3518206",
"comment":"Надёжный партнёр, оплата без задержек.",
"added_date":"2019-03-14T10:25:41"
}
]
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Получение своего комментария о фирме по идентификатору комментария

Возвращает комментарий своей фирмы по идентификатору комментария
get /v1.0/firms/comments/{commentId}
Параметры
Параметр Тип Расположение Описание
commentId обязательный string (uuid) path
Идентификатор комментария (поле `id`). Пример: 3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments/{commentId}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарий
Модель
{...}

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}
Пример
{...}
"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
"ati_id":"2654179",
"user_id":2,
"commented_firm_ati_id":"3518206",
"comment":"Надёжный партнёр, оплата без задержек.",
"added_date":"2019-03-14T10:25:41"
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Добавление комментария о фирме

Поля id, user_id и added_date заполняет сервис, значения из запроса игнорируются. В ati_id передайте код своей фирмы, иначе метод возвращает 403. Число изменений комментариев ограничено: при превышении лимита метод возвращает 429.

Добавляет комментарий своей фирмы о другой фирме
post /v1.0/firms/comments
Параметры
Параметров нет
Запрос
Модель
{...}

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}
Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"ati_id":"2654179","commented_firm_ati_id":"3518206","comment":"Надёжный партнёр, оплата без задержек."}'
Ответ
200 Созданный комментарий с назначенным идентификатором
Модель
{...}

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}
Пример
{...}
"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
"ati_id":"2654179",
"user_id":2,
"commented_firm_ati_id":"3518206",
"comment":"Надёжный партнёр, оплата без задержек.",
"added_date":"2019-03-14T10:25:41"
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Изменение комментария о фирме

Комментарий ищется по полю id. Поля user_id и added_date заполняет сервис. В ati_id передайте код своей фирмы, иначе метод возвращает 403. Число изменений комментариев ограничено: при превышении лимита метод возвращает 429.

Изменяет комментарий своей фирмы о другой фирме
put /v1.0/firms/comments
Параметры
Параметров нет
Запрос
Модель
{...}

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}
Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b","ati_id":"2654179","commented_firm_ati_id":"3518206","comment":"Надёжный партнёр, оплата без задержек."}'
Ответ
200 Изменённый комментарий
Модель
{...}

Комментарий своей фирмы о другой фирме.

id: uuid

Идентификатор комментария. При добавлении назначается сервисом.

ati_id: null,string

Код в АТИ своей фирмы — автора комментария. Должен совпадать с фирмой, от имени которой выполнен запрос.

user_id: int32

Идентификатор контакта, который добавил или последним изменил комментарий. Заполняется сервисом.

commented_firm_ati_id: null,string

Код в АТИ фирмы, о которой оставлен комментарий.

comment: null,string

Текст комментария.

added_date: date-time

Дата и время добавления или последнего изменения комментария. Заполняется сервисом.

}
Пример
{...}
"id":"3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b",
"ati_id":"2654179",
"user_id":2,
"commented_firm_ati_id":"3518206",
"comment":"Надёжный партнёр, оплата без задержек.",
"added_date":"2019-03-14T10:25:41"
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
429 Слишком много запросов.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"too_many_requests",
"reason":"Слишком много запросов."
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Удаление комментария о фирме по идентификатору комментария

Удаляет комментарий своей фирмы по идентификатору
delete /v1.0/firms/comments/{commentId}
Параметры
Параметр Тип Расположение Описание
commentId обязательный string (uuid) path
Идентификатор комментария (поле `id`). Пример: 3fa1c2d4-5b6e-4f70-8a9b-0c1d2e3f4a5b
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/firms/comments/{commentId}' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарий удалён, тело ответа пустое
Успешный ответ
401 Не авторизован
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"un_authorized",
"reason":"Не авторизован"
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
404 Ресурс не найден
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"not_found",
"reason":"Ресурс не найден"
}
500 Произошла ошибка во время выполнения запроса.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"internal_error",
"reason":"Произошла ошибка во время выполнения запроса."
}
504 Сервер не ответил во время.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"timeout",
"reason":"Сервер не ответил во время."
}

Дополнительные методы поиска информации о фирме