Подключение и работа по API ОРД-А v2
Вопрос-ответ
Коротко о новом законе
Подключение к ОРД-А и работа в ЛК
Площадки
Контрагенты
Договоры
Креативы
Гайд по размещению (идентификатора) токена
Документация API
Статистика
Акты, разаллокация акта по ИД
Импорт/Экспорт Excel в ЛК
Обновление 16.11.24
Тип/свойство Описание
Organizations
name Обновлены паттерны
Паттерн для fl (ФЛ):
ADVERTISER_FL_NAME_PATTERN =
"^[А-яёЁIVXLCDM]+([- ']?[А-яёЁIVXLCDM]+)*$";
Паттерн для ip (ИП):

ADVERTISER_IP_NAME_PATTERN_1 = "(^[А-яёЁIVXLCDM—–\\-'\\.]+[А-яёЁIVXLCDM—–\\-'\\. ]*[А-яёЁIVXLCDM—–\\-'\\.]+$)";
ADVERTISER_IP_NAME_PATTERN_2 =
"(^.*[А-яё]+.*$)";
Если не проходит либо ADVERTISER_IP_NAME_PATTERN_1, либо ADVERTISER_IP_NAME_PATTERN_2, то ошибка.

Паттерн для ul (ЮЛ):
ADVERTISER_UL_NAME_PATTERN = "^(?!\\s*[^а-яёА-ЯЁ0-9A-Za-z]+$)[а-яёА-ЯЁ0-9A-Za-z\\-\\–\\—\\&\\#\\,\\.\\;\\!\\?\\‘\\`\\'\\+\\*\\№\\/\\:\\|\\_\\%\\°\\«\\»\\ \\(\\)\\\"\\n=]+";

Creatives
kktu Добавлено поле ККТУ - классификатор категорий товаров и услуг:
  • поле необязательное (с 09.01.25 станет обязательным);
  • тип: массив строк;
  • три числа от 1-999 с разделителем точка между ними (например, 1.1.1);
  • если «co_branding»=false или не передано (null), то должен быть передан один элемент в массиве. Если «co_branding»=true, может быть 1 и более элементов в массиве.
GET /kktu Добавлен метод для получения списка ККТУ
CreativeItems
description Для методов /creatives/{creative_id}/items/{id} и /creatives/{creative_id}/items/insert поле «description» (Описание изображения креатива) стало необязательным, однако, если не заполнено, подтягивается автоматически из поля «description» (Описание объекта рекламирования) соответствующего креатива.
Statistics
Введена проверка составного ключа на уникальность:
[creative_id, platform_id, monthYear(date_start_fact), type] – при отсутствии связи с актом;
[invoice_item_id, creative_id, platform_id, monthYear(date_start_fact), type] – при наличии связи с актом.
Обновления от 09.10.24
ВНИМАНИЕ!
Внесение медиа и/или текстовых данных в креатив является обязательным по требованию ЕРИР.
Тип/свойство Описание
Organizations
legal_address,
post_address
Из запросов убраны поля:
"legal_address": {
"city": null,
"street": null,
"building": null,
"postcode": null
},
"post_address": {
"city": null,
"street": null,
"building": null,
"postcode": null
}
Сontracts
is_vat Убрано поле "is_vat" (НДС).
expiration_date Добавлено необязательное поле "expiration_date" (дата окончания действия договора).
parent_contract_id Для договора с type = "additional-agreement" нельзя указать в parent_contract_id договор с type = "additional-agreement" (запрет на добавление дополнительного соглашения к дополнительному соглашению).
amount Дополнительная валидация для поля "amount":
  • Нельзя указывать 0 для договора, у которого type = "intermediary-contract" (посреднический договор).
  • Нельзя указывать 0 для договора, у которого type = "additional-agreement" (дополнительное соглашение) и родительский договор с типом "intermediary-contract" (посреднический договор).
action_description Убрано поле "action_description" (Описание)
subject_description Убрано поле "subject_description" (Описание)
subject Для поля "subject" добавится параметр "representation" - Представительство
Creatives
is_political Убрано поле "is_political" (Политическая реклама)
target_audience Убрано поле "target_audience" (Параметры целевой аудиотории рекламы)
okved Убрано поле "okved" (ОКВЭД)
type Изменены возможные значения для поля "type" (тип распространения рекламы). Убран тип "other" – Иное
Возможные значения:
  • text-block - Текстовый блок;
  • text-video-block - Текстовый блок с видео;
  • text-audio-block - Текстовый блок с аудио;
  • text-audio-video-block - Текстовый блок с аудио и видео;
  • text-graphic-block - Текстово-графический блок;
  • text-graphic-video-block - Текстово-графический блок с видео;
  • text-graphic-audio-block - Текстово-графический блок с аудио;
  • text-graphic-audio-video-block - Текстово-графический блок с аудио и видео;
  • banner - Баннер;
  • banner-html5 - HTML5-баннер;
  • video - Видеоролик;
  • audio-rec - Аудиозапись;
  • live-video - Видеотрансляция в прямом эфире;
  • live-audio - Аудиотрансляция в прямом эфире.
is_media Убрано поле "is_media"
name Убрано поле "name"
CreativeItems
text_data Текстовые данные креатива необходимо указывать, если в поле "type" (тип распространения рекламы) указано одно из следующих значений:
  • "text-block" - Текстовый блок,
  • "text-graphic-block" - Текстово-графический блок,
  • "text-video-block" - Текстовый блок с видео,
  • "text-graphic-video-block" - Текстово-графический блок с видео,
  • "text-audio-block" - Текстовый блок с аудио,
  • "text-graphic-audio-block" - Текстово-графический блок с аудио,
  • "text-audio-video-block" - Текстовый блок с аудио и видео,
  • "text-graphic-audio-video-block" - Текстово-графический блок с аудио и видео.
media В креатив необходимо добавить медиа, если в поле "type" (тип распространения рекламы) указано одно из следующих значений:
  • "text-video-block" - Текстовый блок с видео;
  • "text-audio-block" - Текстовый блок с аудио;
  • "text-audio-video-block" - Текстовый блок с аудио и видео;
  • "text-graphic-block" - Текстово-графический блок;
  • "text-graphic-video-block" - Текстово-графический блок с видео;
  • "text-graphic-audio-block" - Текстово-графический блок с аудио;
  • "text-graphic-audio-video-block" - Текстово-графический блок с аудио и видео;
  • "banner" - Баннер;
  • "banner-html5" - HTML5-баннер;
  • "video" - Видеоролик;
  • "audio-rec" - Аудиозапись;
  • "live-video" - Видеотрансляция в прямом эфире;
  • "live-audio" - Аудиотрансляция в прямом эфире
description Обязательно для заполнения, если передается "media" в формате "Изображение". Возможные расширения для формата “Изображение:
  • png;
  • jpg;
  • jpeg;
  • webp;
  • gif;
  • svg+xml.
Statistics
is_vat Убрано поле "is_vat" (НДС).
type Поле "type" (Тип РК) стало обязательным
amount Максимальное число в поле "amount" (Стоимость оказанных услуг) увеличилось до 10 000 000 000.00000.
amount_per_show Максимальное число в поле "amount_per_show" (Стоимость единицы оказания услуг) увеличилось до 10 000 000 000.00000.
Invoices
subject Убрано поле "subject" (описание предмета акта)
amount Для поля "amount" введена следующая проверка: сумма в актах должна быть больше нуля, исключение, если акт относится к безвозмездным договорам, когда в договоре явным образом указана стоимость договора равная 0.
Ошибка выдается в следующих случаях:
  • Если в акте передана сумма равная 0, а договор акта имеет тип "contract" и указана сумма договора больше 0, либо отсутствует.
  • Если в акте передана сумма равная 0, а договор акта имеет тип "additional-agreement" и родительский договор ДС имеет тип "contract" и в обоих случаях (в договоре и ДС) указана сумма договора больше 0, либо отсутствует.
  • Если в акте передана сумма равная 0, а договор акта имеет тип "intermediary-contract".
  • Если в акте передана сумма равная 0, а договор акта имеет тип "additional-agreement" и родительский договор ДС имеет тип "intermediary-contract" или у ДС Сведения о предмете договора указано "Посредничество" (subject = "mediation")
contractor_role Дополнительная валидация для ролей в акте: если указывается договор, в котором agent_acting_for_publisher = true, то в акте не может быть указан исполнитель ("contractor_role") в роли Рекламораспространителя ("rr").
InvoiceItems
is_vat Убрано поле "is_vat" (НДС).
Обновления от 25.08.24
Тип/свойство Описание
Platforms
type Убран тип "is" - информационная система
Statistics
type Добавлен параметр "type" - "Тип рекламной кампании".
Возможные значения:
• other - Иное;
• cpm - CPM;
• cpc - CPC;
• cpa - CPA.
Внимание! Поле станет обязательным с 01.10.24.
date_end_fact, date_start_fact Если date_end_fact > 31.04.2024 и invoice_item_id заполнено (есть связь с пунктом акта), то date_end_fact и date_start_fact должны быть в рамках одного месяца
date_end_plan, date_start_plan Если date_end_plan > 31.04.2024 и invoice_item_id заполнено (есть связь с пунктом акта), то date_end_fact и date_start_plan должны быть в рамках одного месяца
POST /statistics/bulk/delete Добавлен метод массового удаления статистики
Invoices
unset_statistics Для метода DELETE /invoices/{id} добавлен параметр unset_statistics, отвечающий за отвязывание (unset_statistics=true) или удаление статистики (unset_statistics=false)
Invoice_items
unset_statistics Для метода DELETE /invoices/items/{id} добавится параметр unset_statistics, отвечающий за отвязывание (unset_statistics=true) или удаление статистики (unset_statistics=false)
Обновления от 21.06.24
Тип/свойство Описание
Organizations
platforms Поле стало не обязательным
name Добавлен паттерн в зависимости от значения в поле type.
Паттерн для ip:
ADVERTISER_FL_IP_NAME_PATTERN =
"^[А-яёЁIVXLCDM']+([- ]?[А-яёЁIVXLCDM']+)*$";

Паттерн для fl:
name != null &&
!ValidationUtils.validateAdvertiserName(
name, AdvertiserAndPlatformValidationPatterns
.ADVERTISER_FL_IP_NAME_PATTERN)
&& !ValidationUtils.validateAdvertiserName(
name, AdvertiserAndPlatformValidationPatterns
.ADVERTISER_NAME_PATTERN_SPECS)

где,
ADVERTISER_FL_IP_NAME_PATTERN =
"^[А-яёЁIVXLCDM']+([- ]?[А-яёЁIVXLCDM']+)*$";
ADVERTISER_NAME_PATTERN_SPECS =
"^(?![—–-])(?!.*[-—–]$)(?!.*[-—–]{2})(?!.* ).*$"

Паттерн для ul:
ADVERTISER_UL_NAME_PATTERN = "^ (?!\\s*[^а-яёА-ЯЁ0-9A-Za-z]+$)[а-яёА-ЯЁ0-9A-Za-z \\-\\–\\—\\&\\#\\,\\.\\;\\!\\?\\‘\\\\'\\+\\*\\№\\/\\:\\|\\_\\%\\°\\«\\»\\ \\(\\)\\\"\\n]+";

Паттерн для ffl и ful:
ADVERTISER _FFL_FUL_NAME_PATTERN = "^ (?!\\s*[^a-zA-Zа-яА-Я0-9]+$)[a-zA-Zа-яёА-ЯЁ0-9 \\-\\–\\—\\&\\#\\,\\.\\;\\!\\?\\‘\\\\'\\+\\*\\№\\/\\:\\|\\_\\%\\°\\«\\»\\ \\(\\)\\\"\\n]+";
Platforms, Organizations, Сontracts, Creatives, Statistics, Invoices
GET по id, include=erirEntity Изменено содержание параметра "erir_entity": добавлена дополнительная информация об отправке в ЕРИР.

В erir_entity.status выводится статус первичной успешной отправки в ЕРИР, если такая имеется. В "erir_entity.last_item.status" содержится информация о текущем статусе отправки в ЕРИР.

Пример:
"erir_entity": {
"id": 237,
"status": "Зарегистрирован",
"status_label": "registered",
"registered_at": "2024-05-15T18:34:05+03:00"
"last_item": {
"id": 265,
"status": "Зарегистрирован",
"status_label": "registered",
},
"errors": [],
"message": null,
"pending_at":"2024-05-16T19:40:05+03:00"
"status_changed_at": "2024-05-16T21:40:05+03:00",
},
}
Обновления от 26.04.24
Тип/свойство Описание
Platforms, Organizations, Сontracts, Creative
dependent_relationships В ответах GET запросов по id и DELETE выводится параметр, показывающий связанные (дочерние) объекты.
Пример ответа для DELETE:
{
"message": "У данного объекта есть зависящие сущности",
"dependent_relationships": [
{
"name": "creative",
"id": 5574
},
{
"name": "creative",
"id": 5579
}
]
}
Organizations, Contracts, Invoices, Invoices/items
sort Добавлена сортировка по id и -id
Обновления от 11.04.24
Тип/свойство Описание
Creatives
co_branding Признак совместных кампаний (кобрендинг). Данный параметр является необязательным. Если не передавать, по умолчанию проставляется как false. Выводится во всех методах /creatives
contract_id Принимается массив id договоров для co_branding = true. Указывается как минимум два contract_id
Сontracts
type Добавлен новый тип договоров "external" (внешний договор). Применяется в случае необходимости добавления договоров из ЕРИР в CID
cid Указывается, если type=external. Передается CID внешнего договора. Выводится в GET запросах.
Обновления от 13.03.24
Тип/свойство Описание
Creatives
okveds Расширен паттерн для ОКВЭД (длина значения ОКВЭД может составлять от 3 до 6 символов)

Напоминание: ОКВЭД более не обязателен. Если не указывается, в ЕРИР отправляется 00.00 (проставляется нами автоматом)
is_media Данный параметр был удален
Обновления от 06.02.24
Тип/свойство Описание
Platforms
owner_organization_id Необязательное поле, в котором указывается id организации-владельца площадки
url Проверка на протоколы http:// и https://
name Ограничено до 100 символов
Organizations
owned_platforms Необязательное поле. Передается массив id площадок, для которых данный контрагент является владельцем.
Сontracts
number Расширено до 255 символов
type=additional-agreement При создании доп. соглашения (additional-agreement) запрещается привязывать родительский договор (parent_сontract_id), в котором client_id (Идентификатор контрагент - заказчик) и contractor_id (Идентификатор контрагент-исполнителя) отличается от client_id и contractor_id создаваемого доп. соглашения
Invoices
contractor_role Запрещено передавать rd (исполнитель не может быть рекламодателем)
end_date Дата окончания по акту может быть до 2100-12-31
contract_id Если client_role='rd', то идентификатор договора акта должен быть равен идентификатору изначального договора, либо являться дополнительным соглашением к изначальному договору (invoice.contract_id = invoice_items.contract_id ИЛИ invoice.contract_id - это доп. соглашение к invoice_items.contract_id)
client_role, contractor_role Добавлено возможное сочетание ролей: client_role=rr, contractor_role=ors, если в contract_id указан договор с типом "intermediary-contract" со значением agentActingForPublisher= "true"
Statistics
date_end_fact, date_start_fact Если date_end_fact > 30.09.2023 и invoice_item_id заполнено (есть связь с пунктом акта), то date_end_fact и date_start_fact должны быть в рамках одного месяца
date_end_fact, date_start_fact Если invoice_item_id = null, то date_end_fact и date_start_fact должны быть в рамках одного месяца
date_end_plan, date_start_plan Если date_end_plan > 30.09.2023 и invoice_item_id заполнено (есть связь с пунктом акта), то date_end_ plan и date_start_ plan должны быть в рамках одного месяца
date_end_plan, date_start_plan Если invoice_item_id = null, то date_end_plan и date_start_ plan должны быть в рамках одного месяца
date_start_fact Если invoice_item_id заполнено, то date_start_fact должно быть позже либо равно start_date в invoices
Обновления от 27.12.23
Тип/свойство Описание
Creatives, Invoices
status Новый статус отправки "status": "Ожидание данных". Выводится для объектов creatives без медиа или текстовых данных и invoices без invoice_items.

Внимание! Не выводится для объектов, созданных до данного релиза.
Примечание: Объекты с таким статусом не будут отправлены в ЕРИР без соответствующих данных.
Creatives
filter[statistics] Фильтр по поиску креативов со статистикой filter[statistics]=with и без статистики filter[statistics]=without
Creatives, Invoices
filter[status]=6 Фильтр по поиску статуса «Ожидание данных»
Обновления от 29.11.23
Тип/свойство Описание
Invoices
DELETE
/invoices/{id}?relations=true
Метод удаления акта.
Внимание! Удаляются также связанные сущности (invoice_items и statistics)
Statistics
amount Валидация: если amount_per_show = 0, то amount не может быть больше 0
Обновления от 31.10.23
Тип/свойство Описание
Platforms, Organizations, Сontracts, Creatives, Statistics, Invoices
include=erirEntity Фильтр для получения статусов об отправки данных в ЕРИР изменен с include=lastErirStat на include=erirEntity
Platforms, Organizations, Сontracts, Creatives, Statistics, Invoices
erir_entity В get запросах при использовании фильтра include=lastErirStat название поля "erir_stat" меняется на "erir_entity"
Platforms, Organizations, Сontracts, Creatives, Statistics, Invoices
erir_entity В get запросах по id объекта (например, GET /platforms/{id} ) в теле объекта возвращается статус отправки в ЕРИР в виде
{

"erir_entity": {
"message": null,
"status": "Зарегистрирован"
},

}
Обновления от 26.09.23
Тип/свойство Описание
Сontracts
date Дата договора. Изменен тип данных с timestamp на date
(Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
created_at Дата создания. Формат дат изменен с «2023-09-14T17:47:46.000000Z» на «2023-09-26T09:44:22+03:00»
invoices
date Дата акта. Изменен тип данных с timestamp на date
(Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
start_date Дата начала акта. Изменен тип данных с timestamp на date
(Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
end_date Дата окончания акта. Изменен тип данных с timestamp на date
(Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
created_at Дата создания. Формат дат изменен с «2023-09-14T17:47:46.000000Z» на «2023-09-26T09:44:22+03:00»
Creatives
published_at Дата добавления. Изменен тип данных с timestamp на date
(Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
created_at Дата создания. Формат дат изменен с «2023-09-14T17:47:46.000000Z» на «2023-09-26T09:44:22+03:00»
Statistics
date_start_fact Дата начала показов фактическая. Изменен тип данных с timestamp на date. (Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
date_end_fact Дата окончания показов фактическая. Изменен тип данных с timestamp на date. (Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
date_start_plan Дата начала показов по акту. Изменен тип данных с timestamp на date. (Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
date_end_ plan Дата окончания показов по акту. Изменен тип данных с timestamp на date. (Было “2023-09-14T17:47:46.000000Z”, стало “2023-09-14”. Старый формат также принимается, однако на нашей стороне преобразуется в date)
created_at Дата создания. Формат дат изменен с «2023-09-14T17:47:46.000000Z» на «2023-09-26T09:44:22+03:00»
Обновления, введенные ранее
Тип/свойство Описание
Сontracts
type Значение - “self_promotion” - договор типа “Самореклама” удаляется. Поле type может принимать только значения - intermediary-contract, contract, additional-agreement.
Creatives
self_promotion_ organization_id Добавляется свойство - “self_promotion_organization_id”. Данное свойство заполняется в случае, если креатив является саморекламой, во всех остальных случаях равен null. Также в случае, если креатив является саморекламой, поле contract_id равно null.
InvoiceItems
filter[search] Добавлен фильтр filter[search]. Осуществляет поиск по полям id, contract.number, invoice.number
Organizations
filter[search] Добавлен фильтр filter[search]. Осуществляет поиск по полям id, name
CreativeItems
Добавлен новый метод загрузки медиа в креатив. Позволяет также добавлять текстовые данные.
Сравнительная таблица различий методов версий V1 и V2 доступна в разделе 3.15
1. Вводные данные
URL для обращения к API: https://api.ord-a.ru/api/v2/

Актуальный Swagger: https://api.ord-a.ru/api/v2/documentation#/
2. JWT Авторизация
Авторизация и аутентификация при обращении к API осуществляется при помощи JSON Web Token (JWT), который необходимо указывать в заголовке Authorization. Пример:
curl --location --request POST 'https://api.ord-a.ru/api/v2/invoices/items \ --header 'Authorization: Bearer your_api_token' \ --header 'Content-Type: application/json' \ --data-raw '{"contract_id": 6, "amount": 0,}'
3. Методы API
В описании эндпоинтов указан http метод для выполнения запросов. Если указан REST, то используется общепринятая схема http методов:

POST – создание

GET – получение списка, c передачей фильтров по названию полей в query

GET метод/id_объекта / - получение объекта запроса по его id

PUT метод/id_объекта/ - обновление объекта

DELETE – удаление объектов. Доступно в organizations, platforms, contracts и creatives.

В запросах получения списка есть параметры для пагинации total и pages, в параметры запроса можно отправлять:

skip – отступ от начала списка (количество объектов),

limit – количество объектов в одном запросе

например, https://api.ord-a.ru/api/v2/platforms?skip=15&limit=10 , вернёт 10 площадок, которые идут после первых 15 в списке.
Метод Описание
POST /auth/ Получение JWT для авторизации запросов
REST /organizations Создание (обновление) данных о контрагентах
REST /platforms Создание (обновление) данных о площадках
REST /contracts Создание (обновление) данных о договорах
REST /creatives Создание (обновление) сведений о креативах
REST /media Загрузка медиаданных в креатив
REST /creatives/items Загрузка медиа и текстовых данных в креатив посредством создания пункта креатива
REST /user/media Привязка медиафайлов к пользователю
REST /invoices Создание (обновление) данных об актах
REST /invoices/items Создание (обновление) данных о разаллокации актов по договорам
REST /statistics Создание (обновление) статистики по креативам
REST /invoices/items/{id}/creatives Создание (обновление) данных о разаллокации актов по креативам
3.1. Авторизация: POST /auth
https://api.ord-a.ru/api/v2/auth
При истечении указанной даты в expires_at, необходимо заново отправить запрос и получить новый JWT
Код ответа Описание
200 ОК Статус успешного запроса
422 Unprocessable Content Некорректный запрос
403 Forbidden Доступ запрещен, невалидный логин или пароль
Пример запроса:
{
"email": "test@test-a.ru",
"password": "test "
}
Пример ответа:
{
"data": {
"access_token": "...",
"expires_at": "2024-06-07T12:40:10.000000Z"
},
"message": "access_token успешно создан"
}
3.2. Контрагенты (Organizations)
3.2.1 Получение сведений о контрагентах: GET /organizations
https://api.ord-a.ru/api/v2/organizations
Параметры запроса:
Параметр Тип Обязательность Описание
page число нет Номер страницы
limit число нет Количество записей на странице
sort строка нет Используется при get запросе. Сортировка по столбцу. Допустимые значения: id, -id, name, -name, created_at, -created_at, inn, -inn, alternative_inn, -alternative_inn, oksm_number, -oksm_number
Данный метод вернет сведения о всех заведенных контрагентах.
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/organizations' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'X-CSRF-TOKEN: '
Пример успешного ответа:
{
"data": [
{
"id": 14166,
"name": "Первое имя",
"is_partner": false,
"membership_id": 1,
"type": "ul",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "7613946079",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": null,
"oksm_number": null,
"rs_url": "https://my-dev.ord-a.ru",
"is_agent": false,
"platforms": [
326009
],
"owned_platforms": [
326009
],
"created_at": "2024-02-19T13:33:31+03:00",
"deleted_at": null,
"external_id": null
},
{
"id": 14165,
"name": "Имя второе",
"is_partner": false,
"membership_id": 1,
"type": "fl",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "277332520750",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": null,
"oksm_number": null,
"rs_url": "https://my-dev.ord-a.ru",
"is_agent": false,
"platforms": [
326008
],
"owned_platforms": [],
"created_at": "2024-02-19T10:41:40+03:00",
"deleted_at": null,
"external_id": null
}
],
"links": {
"first": "http://api.ord-a.ru/api/v2/organizations?page=1",
"last": "http://aapi.ord-a.ru/api/v2/organizations?page=16",
"prev": null,
"next": "http://api.ord-a.ru/api/v2/organizations?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Вперед",
"active": false
},
{
"url": "http://api.ord-a.ru/api/v2/organizations?page=1",
"label": "1",
"active": true
},
{
"url": "http://api.ord-a.ru/api/v2/organizations?page=2",
"label": "2",
"active": false
},

],
"path": "http://api.ord-a.ru/api/v2/organizations",
"per_page": 2,
"to": 1,
"total": 2
}
}
3.2.2 Получение сведений определенного контрагента: GET /organizations/{id}
https://api.ord-a.ru/api/v2/organizations/{id}
Данный метод вернет сведения определенного контрагента.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор организации
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
404 Not found Идентификатор организации не найден
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/organizations/704' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'X-CSRF-TOKEN: '
Успешный ответ:
{
"data": {
"id": 704,
"name": "ООО \"ОРД-А\"",
"is_partner": false,
"membership_id": 1,
"erir_entity": {
"id": 1906,
"status": "Зарегистрирован",
"status_label": "registered",
"last_item": {
"id": 4244,
"status": "Зарегистрирован",
"status_label": "registered",
"errors": [],
"message": null,
"created_at": "2024-06-19T10:03:34+03:00",
"pending_at": "2024-06-19T10:08:34+03:00",
"status_changed_at": "2024-06-20T04:13:04+03:00"
},
"registered_at": "2024-06-20 04:13:04",
"created_at": "2024-06-19T10:03:32+03:00"
},
"has_cid_contracts": false,
"dependent_relationships": [
{
"name": "contract",
"id": 311
},
{
"name": "self_promotion_creatives",
"id": 284
}
],
"type": "ul",
"is_ors": false,
"is_rr": true,
"is_rd": false,
"inn": "9715420338",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": null,
"oksm_number": null,
"rs_url": null,
"is_agent": false,
"platforms": [
200,
201
],
"owned_platforms": [
200,
201
],
"created_at": "2024-06-19T10:03:32+03:00",
"deleted_at": null,
"external_id": null
}
}
3.2.3 Создание контрагента: POST /organizations
https://api.ord-a.ru/api/v2/organizations
Данный метод используется для создания сведений о контрагентах.
Код ответа Описание
201 Created Статистика создана
401 Unauthorized Доступ запрещен, невалидный токен
422 Unprocessable Content Некорректный запрос
Пример запроса:
curl -X 'POST' \
'https://api.ord-a.ru/api/v2/organizations' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d '{
"name": "Третье имя",
"type": "ul",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "7613946079",
"rs_url": "https://my-dev.ord-a.ru",
"platforms": [
326404, 326390
],
"owned_platforms": [
326404
],
"disable_platform_sync": false,
"external_id": "123"
}'
Успешный ответ:
{
"data": {
"id": 14168,
"name": "Третье имя",
"is_partner": false,
"membership_id": 1,
"type": "ul",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "7613946079",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": null,
"oksm_number": null,
"rs_url": "https://my-dev.ord-a.ru",
"is_agent": false,
"platforms": [
326404,
326390
],
"owned_platforms": [
326404
],
"created_at": "2024-02-26T10:40:48+03:00",
"deleted_at": null,
"external_id": "123"
}
}
3.2.4 Обновление контрагента: PUT /organizations/{id}
https://api.ord-a.ru/api/v2/organizations/{id}
Данный метод используется для создания сведений о контрагентах.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор организации
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
404 Not found Идентификатор организации не найден
422 Unprocessable Content Некорректный запрос
Пример запроса:
 curl -X 'PUT' \
 'https://api.ord-a.ru/api/v2/organizations/704' \
 -H 'accept: application/json' \
 -H 'Authorization: Bearer TOKEN' \
 -H 'Content-Type: application/json' \
 -H 'X-CSRF-TOKEN: ' \
 -d '{
 "type": "ul",
   "name": "ООО \"ОРД-А\"",
   "is_ors": true,
   "is_rr": true,
   "is_agent": true,
   "is_rd": true,
   "inn": 9715420338,
   "rs_url":"https://my-dev.ord-a.ru",
   "platforms": [
       "7734"
   ],
   "owned_platforms": [
       "7734"
   ]
}'
Успешный ответ:
{
   "data": {
       "id": 704,
       "name": "ООО \"ОРД-А\"",
       "is_partner": false,
       "membership_id": 1,
       "type": "ul",
       "is_ors": true,
       "is_rr": true,
       "is_rd": true,
       "inn": "9715420338",
       "mobile_phone": null,
       "epay_number": null,
       "reg_number": null,
       "alternative_inn": null,
       "oksm_number": null,
       "rs_url": "https://my-dev.ord-a.ru",
       "is_agent": true,
       "platforms": [
           7734
       ],
       "owned_platforms": [
           7734
       ],
       "created_at": "2024-06-19T10:03:32+03:00",
       "deleted_at": null,
       "external_id": null
   }
}
 3.2.5 Удаление контрагента: DELETE /organizations/{id}
https://api.ord-a.ru/api/v2/organizations/{id}
Данный метод используется для удаления сведений о контрагенте.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор организации
Код ответа Описание
204 No Content Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
400 Bad Request У объекта есть зависящие сущности, мешающие удалению
404 Not found Идентификатор организации не найден
Пример запроса:
curl -X 'DELETE' \
  'https://api.ord-a.ru/api/v2/organizations/25592 \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRF-TOKEN: ' \
  -d ''
3.2.6 Восстановление контрагента: GET /organizations/{id}/restore
https://api.ord-a.ru/api/v2/organizations/{id}/restore
Данный метод используется для восстановления сведений о контрагенте.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор организации
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
404 Not found Идентификатор организации не найден
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/platforms/901/restore' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d ''
Успешный ответ:
{
   "data": {
       "id": 901,
       "name": "четвертое имя",
       "is_partner": false,
       "membership_id": 1,
       "type": "ful",
       "is_ors": false,
       "is_rr": true,
       "is_rd": false,
       "inn": null,
       "mobile_phone": null,
       "epay_number": "11",
       "reg_number": "32423-232-424",
       "alternative_inn": "32423232424",
       "oksm_number": "232",
       "rs_url": null,
       "is_agent": false,
       "created_at": "2024-06-28T12:59:32+03:00",
       "deleted_at": null,
       "external_id": null
   }
}
3.2.7 Массовое добавление, обновление данных об организации: GET /organizations/upsert
https://api.ord-a.ru/api/v2/organizations/upsert
Данный метод используется для массового добавления, обновления данных о контрагентах.
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
422 Unprocessable Content Некорректный запрос
Пример запроса обновления:
 curl -X 'POST' \
  'https://api.ord-a.ru/api/v2/organizations/upsert' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer  TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRF-TOKEN: ' \
  -d '{
 "organizations": [
    {
    "id": 14168,
    "name": "Измененное имя",
   "type": "ul",
   "is_ors": true,
    "is_rr": false,
    "is_rd": false,
    "inn": "7613946079",
    "rs_url": "https://local.ru",
    "platforms": [
        326404
    ],
    "owned_platforms": [
        326404
    ],
   "external_id": "123"
    },
    {
    "id": 14167,
    "name": "Тест",
   "type": "ul",
   "is_ors": false,
    "is_rr": true,
    "is_rd": false,
    "inn": "7613946079",
    "rs_url": "https://my-dev.ord-a.ru",
    "platforms": [
        326390
    ],
   "external_id": "43"
    }
  ]
}'
Успешный ответ:
{
    "data": [
        {
            "id": 14168,
            "external_id": "43"
        },
        {
            "id": 25197,
            "external_id": "123"
        }
    ],
    "message": "OK"
}
3.2.8 Атрибуты объекта «Контрагенты» (Organizations):
Параметр Тип Обязательность Описание
id число да Идентификатор контрагента
name строка (255) да

Наименование контрагента

Длина строки от 1 до 255, может содержать цифры и буквы, а также все спец символы (pattern: ^(?!\s*$)[\s\S]{1,255} Не пустое и не превышает 255)

Для типа организации "fl" - Физическое лицо и "ip" - Индивидуальный предприниматель:
  1. Только русские буквы.
  2. Допускается пробел (неhttps://api.ord-a.ru/api/v2/organizations?include=erirEntity более одного между словами. При этом в начале и в конце пробелов не должно быть).
  3. Допускается тире (не более одного между словами. При этом в начале и в конце тире не должно быть).
  4. Символы римских чисел: I, V, X, L, C, D, M
  5. Допускается "'" (не более одного между словами. При этом в начале и в конце символа не должно быть)
  6. Паттерн для ip:
    ADVERTISER_IP_NAME_PATTERN_1 =
    "(^[А-яёЁIVXLCDM—–\\-'\\.]+[А-яёЁIVXLCDM—–\\-'\\. ]*[А-яёЁIVXLCDM—–\\-'\\.]+$)";
    ADVERTISER_IP_NAME_PATTERN_2 =
    "(^.*[А-яё]+.*$)";
    Если не проходит либо ADVERTISER_IP_NAME_PATTERN_1, либо ADVERTISER_IP_NAME_PATTERN_2, то ошибка.
  7. Паттерн для fl:
    ADVERTISER_FL_NAME_PATTERN =
    "^[А-яёЁIVXLCDM]+([- ']?[А-яёЁIVXLCDM]+)*$";
Для типа организации "ul" - юридическое лицо:
  1. В названии контрагента могут использоваться только буквы русского алфавита, цифры и символы: пробел, кавычки, круглые скобки, “-”, “–”, ”—”, “&”, “#”, “,”, “.”, “;”, “!”,, “?”, “‘”, “`”, “+”, “*”, “№”, “/”, “:”, “|”, “_”, “%”, “°”, “«”, “»”, "'".
  2. Название контрагента не должно состоять только из одних символов: пробел, кавычки, круглые скобки, “-”, “–”, ”—”, “&”, “#”, “,”, “.”, “;”, “!”,, “?”, “‘”, “`”, “+”, “*”, “№”, “/”, “:”, “|”, “_”, “%”, “°”, “«”, “»”.
  3. В начале и в конце не должно быть пробелов.
  4. Символы римских чисел: I, V, X, L, C, D, M
  5. Паттерн:
    ADVERTISER_UL_NAME_PATTERN = "^(?!\\s*[^а-яёА-ЯЁ0-9A-Za-z]+$)[а-яёА-ЯЁ0-9A-Za-z\\-\\–\\—\\&\\#\\,\\.\\;\\!\\?\\‘\\`\\'\\+\\*\\№\\/\\:\\|\\_\\%\\°\\«\\»\\ \\(\\)\\\"\\n=]+";
Для типов организаций "ffl" - Иностранное физическое лицо и "ful" - Иностранное юридическое лицо:
  1. В названии контрагента могут использоваться только буквы русского или латинского алфавитов, цифры и символы: пробел, кавычки, круглые скобки, “-”, “–”, ”—”, “&”, “#”, “,”, “.”, “;”, “!”,, “?”, “‘”, “`”, “+”, “*”, “№”, “/”, “:”, “|”, “_”, “%”, “°”, “«”, “»”, "'".
  2. Название контрагента не должно состоять только из одних символов: пробел, кавычки, круглые скобки, “-”, “–”, ”—”, “&”, “#”, “,”, “.”, “;”, “!”,, “?”, “‘”, “`”, “+”, “*”, “№”, “/”, “:”, “|”, “_”, “%”, “°”, “«”, “»”.
  3. В начале и в конце не должно быть пробелов.
  4. Паттерн:
    ADVERTISER_FFL_FUL_NAME_PATTERN = "^(?!\\s*[^a-zA-Zа-яА-Я0-9]+$)[a-zA-Zа-яёА-ЯЁ0-9\\-\\–\\—\\&\\#\\,\\.\\;\\!\\?\\‘\\`\\'\\+\\*\\№\\/\\:\\|\\_\\%\\°\\«\\»\\ \\(\\)\\\"\\n]+";
type строка (255) да

Тип организации (контрагента). Возможные значения:

ffl - Иностранное физическое лицо;
ful - Иностранное юридическое лицо;
ip - Индивидуальный предприниматель;
fl - Физическое лицо;
ul - Юридическое лицо.
is_ors булево да Является ОРC
is_rr булево да Является РР
is_rd булево да Является ли контрагент рекламодателем. По умолчанию значение - false
is_agent булево нет Является ли рекламным агентом. По умолчанию значение - false
inn число Условно обязательно ИНН (обязательно для заполнения для Российских организаций) Если тип организации "fl" - Физическое лицо или "ip" - Индивидуальный предприниматель - 12-значный ИНН. Если тип организации "ul" - Юридическое лицо - 10-значный ИНН.
mobile _phone строка (15) Опциональное

Абонентский номер мобильного телефона

Обязательно для заполнения для типа организации ffl - Иностранное физическое лицо. Если не заполнено, то должно быть заполнено epayNumber.
Номер начинать с + и далее только цифры от 0 до 9.
epay _number строка (127) Опциональное Обязательно для заполнения для типа организации ffl - Иностранное физическое лицо. Если не заполнено, то должно быть заполнено mobilePhone.
reg_number строка (31) Опциональное

Регистрационный номер, либо его аналог (для иностранных физлиц).

Обязательно для заполнения для типа организации ful - иностранное юридическое лицо. Если не заполнено, то должно быть заполнено alternativeInn.
alternative _inn строка Опциональное

Номер налогоплательщика либо его аналог в стране регистрации (для иностранных физ. и юр. лиц)

Обязательно для заполнения для типов организации: ful - Иностранное юридическое лицо. Если не заполнено, то должно быть заполнено regNumber;
ffl - Иностранное физическое лицо, если стоит признак isOrs=true
oksm _number строка (15) Условно обязательно

Код страны регистрации юрлица в соответствии с ОКСМ

Обязательно для заполнения для следующих типов организаций:
  1. ffl - Иностранное физическое лицо;
  2. ful - Иностранное юридическое лицо.
  3. В начале и в конце не должно быть пробелов.
Если заполнено - длина строки 3 цифры
rs_url строка (2000) Условно обязательно

URL рекламной системы.

Обязательно для всех типов, если признак is_ors = true

Если заполнен, то URL проверяется на протокол http|https
platforms массив Нет Сведения о площадках (массив id площадок созданных в методе POST /platforms)
owned _platforms массив Нет

Передается массив id площадок, для которых данный контрагент является владельцем.

Внимание! площадки, указанные в owned_platforms, должны также передаваться в platforms
external_id строка нет Учетный идентификатор в базе пользователя
partners массив нет Массив id параметров партнерских организаций
dependent _relationships массив не заполняется Связанные (дочерние) объекты. Пример:
"dependent_relationships": [
{
"name": "contract",
"id": 33174
}
include Строка нет

Параметр для получения статусов сущностей для GET запроса, значение – erirEntity пример использования

(https://api.ord-a.ru/api/v2/organizations?include=erirEntity)
В json ответе от сервера появятся данные:

"erir_entity": {
"id": 10423,
"status": "Зарегистрирован",
"status_label": "registered",
"last_item": {
"id": 15069,
"status": "Зарегистрирован",
"status_label": "registered",
"errors": [],
"message": null,
"created_at": "2024-07-17T10:50:26+03:00",
"pending_at": "2024-07-17T10:55:26+03:00",
"status_changed_at": "2024-07-17T12:56:04+03:00"
},
"registered_at": "2024-07-17 12:56:04",
"created_at": "2024-07-17T10:50:25+03:00"
}
...
filter [option] строка (255) нет

Параметр для поиска записей сущностей для GET запроса, допустимые значения:
- id;
-name;
-created_at;
-inn;
-oksm_number;
-external_id;
-status (1, 2, 3, 4, 10)

Пример запроса:

https://api.ord-a.ru/api/v2/organizations/?include=lastEntity&limit=10&page=1&filter[id]=4

sort строка (255) нет

Параметр для сортировки массива сущностей для GET запроса, допустимые значения: id, -id, - name, -name, created_at, -created_at, inn, -inn, alternative_inn, -alternative_inn, oksm_number, -oksm_number.

Пример запроса:

https://api.ord-a.ru/api/v2/organizations?sort=name

3.3.  Площадки (Platforms)
3.3.1  Получение сведений о площадках: GET /platforms
https://api.ord-a.ru/api/v2/platforms
Параметры запроса:
Параметр Тип Обязательность Описание
page число нет Номер страницы
limit число нет Количество записей на странице
sort строка нет Используется при get запросе. Сортировка по столбцу. Допустимые значения: id, -id, name, -name, type, -type, url, -url
Данный метод используется для получения сведений о площадках.
Код ответа Описание
200 ОК Положительный статус запроса
401 Unauthorized Доступ запрещен, невалидный токен
Пример запроса:
curl -X 'GET' \
  'https://api.ord-a.ru/api/v2/platforms/' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer TOKEN' \
  -H 'X-CSRF-TOKEN: '
Успешный ответ:
  {
  "data": [
    {
            "id": 326409,
            "name": "Тестовая 1",
            "membership_id": 1,
            "is_partner": false,
            "type": "apps",
            "url": "http://localhost.ru",
            "external_id": null,
            "owner_organization_id": null,
            "deleted_at": null,
            "created_at": "2024-02-21T21:06:39+03:00"
        },
        {
            "id": 326408,
            "name": "Тестовая 2",
            "membership_id": 1,
            "is_partner": false,
            "type": "apps",
            "url": "http://localhost.ru",
            "external_id": null,
            "owner_organization_id": null,
            "deleted_at": null,
            "created_at": "2024-02-21T21:04:16+03:00"
        },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 2,
    "links": [
      {
        "url": null,
        "label": "« Вперед",
        "active": false
      },
      {
        "url": "http://api.ord-a.ru/api/v2/platforms?page=1",
        "label": "1",
        "active": true
      },
    ],
    "path": "http://api.ord-a.ru/api/v2/platforms",
    "per_page": 2,
    "to": 2,
    "total": 2
  }
}
3.3.2 Получение сведений определенной площадки: GET /platforms/{id}
https://api.ord-a.ru/api/v2/platforms/{id}
Данный метод вернет сведения определенной площадки.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
404 Not found Идентификатор площадки не найден
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/platforms/174' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'X-CSRF-TOKEN: '
Успешный ответ:
{
   "data": {
       "id": 174,
       "name": "est",
       "membership_id": 1,
       "is_partner": false,
       "erir_entity": {
           "id": 2125,
           "status": "Зарегистрирован",
           "status_label": "registered",
           "last_item": {
               "id": 7145,
               "status": "Зарегистрирован",
               "status_label": "registered",
               "errors": [],
               "message": null,
               "created_at": "2024-06-30T22:38:04+03:00",
               "pending_at": "2024-06-30T22:43:04+03:00",
               "status_changed_at": "2024-07-01T00:44:04+03:00"
           },
           "registered_at": "2024-07-01 00:44:04",
           "created_at": "2024-06-20T15:08:43+03:00"
       },
       "dependent_relationships": [
           {
               "name": "statistics",
               "id": 221
           }
       ],
       "type": "apps",
       "url": "http://localhost.ru",
       "external_id": null,
       "owner_organization_id": 738,
       "deleted_at": null,
       "created_at": "2024-06-20T15:08:43+03:00"
   }
}
3.3.3 Создание площадки: POST /platforms
https://api.ord-a.ru/api/v2/platforms
Данный метод используется для создания  сведений о площадках.
Код ответа Описание
201 Created Площадка создана
401 Unauthorized Доступ запрещен, невалидный токен
422 Unprocessable Content Некорректный запрос
Пример запроса:
curl -X 'POST' \
  'https://api.ord-a.ru/api/v2/platforms' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer  TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRF-TOKEN: ' \
  -d '{
  "type": "site",
  "name": "Тестовая",
  "url": "http://localhost",
  "external_id": "1"
}'
Успешный ответ:
{
    "data": {
        "id": 326413,
        "name": "Тестовая",
        "membership_id": 1,
        "is_partner": false,
        "type": "site",
        "url": "http://localhost",
        "external_id": "1",
        "owner_organization_id": null,
        "deleted_at": null,
        "created_at": "2024-02-27T18:31:48+03:00"
    }
}
3.3.4  Обновление площадки: PUT /platforms/{id}
https://api.ord-a.ru/api/v2/platforms/{id}
Данный метод используется для обновления сведений о площадках.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
200 ОК Запрос выполнен удачно
422 Unprocessable Content Некорректный запрос
401 Forbidden Доступ запрещен, невалидный токен
404 Not Found Площадка не найдена
Пример запроса:
curl -X 'PUT' \
'https://api.ord-a.ru/api/v2/platforms/174' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d '{
"type": "site",
"name": "Тестовая измененная",
"url": "http://localhost",
"external_id": "1"
}'
Успешный ответ:
{
   "data": {
       "id": 174,
       "name": "Тестовая измененная",
       "membership_id": 1,
       "is_partner": false,
       "type": "site",
       "url": "http://localhostanjonoionfewfw",
       "external_id": "123",
       "owner_organization_id": null,
       "deleted_at": null,
       "created_at": "2024-06-20T15:08:43+03:00"
   }
}
3.3.5 Удаление площадки: DELETE /platforms/{id}
https://api.ord-a.ru/api/v2/platforms/{id}
Данный метод используется для удаления сведений о площадках.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
204 No Content Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
400 Bad Request У объекта есть зависящие сущности, мешающие удалению
404 Not Found Идентификатор площадки не найден
Пример запроса:
curl -X 'DELETE' \
  'https://api.ord-a.ru/api/v2/platforms/649242' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRF-TOKEN: ' \
  -d ''
3.3.6 Восстановление площадки: GET /platforms/{id}/restore
https://api.ord-a.ru/api/v2/platforms/{id}/restore
Данный метод используется для восстановления сведений о площадках.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен, невалидный токен
404 Not Found Идентификатор площадки не найден
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/platforms/171/restore' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d ''
Успешный ответ:
{
   "data": {
       "id": 171,
       "name": "qwe",
       "membership_id": 1,
       "is_partner": false,
       "type": "is",
       "url": "http://mail.ru",
       "external_id": null,
       "owner_organization_id": null,
       "deleted_at": null,
       "created_at": "2024-06-20T12:38:18+03:00"
   }
}
3.3.7 Массовое добавление, обновление площадок: GET /platforms/upsert
https://api.ord-a.ru/api/v2/platforms/upsert
Данный метод используется для массового добавления/ обновления площадок.
Пример запроса на создание площадок:
curl -X 'POST' \
 'https://api.ord-a.ru/api/v2/platforms/upsert' \
 -H 'accept: application/json' \
 -H 'Authorization: Bearer TOKEN' \
 -H 'Content-Type: application/json' \
 -H 'X-CSRF-TOKEN: ' \
 -d '{
 "platforms": [
  {
   "type": "apps",
   "name": "Площадка 1",
   "url": "http://localhost.ru",
   "external_id": "123"
  },
  {
   "type": "site",
   "name": "Площадка 2",
   "url": "http://localhost.ru"
  }
 ]
}'
Успешный ответ:
{
    "data": [
        {
            "id": 645524,
            "external_id": "123"
        },
        {
            "id": 645525,
            "external_id": null
        }
    ],
    "message": "OK"
}
3.3.8 Атрибуты объекта «Платформы» (Platforms):
Параметр Тип Обязательность Описание
id число да Идентификатор контрагента
type строка (255) да

Тип площадки. Возможные значения:
apps - Приложение;
site - Сайт.

name строка (100) да Название сайта (блога) или приложения или иные способы адресации
url строка (2000) да

URL площадки или приложения в сторе.

Проверка URL:
Проверить протокол http|https
owner _organization_id число Нет Указывается id организации-владельца площадки
external_id строка нет Учетный идентификатор в базе пользователя
dependent _relationships массив не заполняется Связанные (дочерние) объекты. Пример:
"dependent_relationships": [
{
"name": "statistics",
"id": 221
}
limit число нет Используется при get запросе. Количество записей при пагинации на странице.
page число нет Используется при get запросе. Номер страницы при пагинации на странице
sort строка (255) нет Используется при get запросе. Сортировка по столбцу. Допустимые значения: name, -name, created_at, -created_at, inn, -inn, alternative_inn, -alternative_inn, oksm_number, -oksm_number
include Строка нет

Параметр для получения статусов сущностей для GET запроса, значение – erirEntity пример использования

(https://api.ord-a.ru/api/v2/platforms?include=erirEntity)
В json ответе от сервера появятся данные:
...
"erir_entity": {
"id": 10424,
"status": "Зарегистрирован",
"status_label": "registered",
"last_item": {
"id": 15104,
"status": "Зарегистрирован",
"status_label": "registered",
"errors": [],
"message": null,
"created_at": "2024-07-17T11:18:09+03:00",
"pending_at": "2024-07-17T11:23:09+03:00",
"status_changed_at": "2024-07-17T13:21:03+03:00"
},
"registered_at": "2024-07-17 13:21:03",
"created_at": "2024-07-17T11:18:08+03:00"
}

filter[option] строка нет

Параметр для поиска записей сущностей для GET запроса, допустимые значения:
- id;
- name;
- type;
- url;
- external_id;
- status (1, 2, 3, 4, 10)

Пример запроса:

https://api.ord-a.ru/api/v2/platforms/?include=lastEntity&limit=10&page=1&filter[id]=4

3.4 Договоры (Contracts)
3.4.1  Получение сведений о договорах: GET /contracts
https://api.ord-a.ru/api/v2/contracts
Данный метод используется для получения сведений о договорах.
Параметры запроса:
Параметр Тип Обязательность Описание
page число нет Номер страницы
limit число нет Количество записей на странице
sort строка нет Используется при get запросе. Сортировка по столбцу. Допустимые значения: id, -id, number, -number, date, -date, type, -type, amount, -amount
Код ответа Описание
200 ОК Информация о договорах
401 Unauthorized Доступ запрещен
Успешный ответ:
{
"data": [
{
"id": 32206,
"number": "1 от 27.02",
"is_partner": false,
"membership_id": 1,
"cid": null,
"type": "contract",
"client_id": 14168,
"client": {
"id": 14168,
"name": "Измененное имя",
"is_partner": false,
"membership_id": 1,
"type": "ul",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "7613946079",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": null,
"oksm_number": null,
"rs_url": "https://local.ru",
"is_agent": false,
"created_at": "2024-02-26T10:40:48+03:00",
"deleted_at": null,
"external_id": "123"
},
"contractor_id": 14165,
"contractor": {
"id": 14165,
"name": "массово",
"is_partner": false,
"membership_id": 1,
"type": "fl",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "277332520750",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": "",
"oksm_number": null,
"rs_url": "https://my-dev.ord-a.ru",
"is_agent": false,
"created_at": "2024-02-19T10:41:40+03:00",
"deleted_at": null,
"external_id": null
},
"is_reg_report": true,
"is_original_contract": false,
"date": "2024-02-27",
"expiration_date": null,
"amount": "200",
"action": null,
"subject": "distribution",
"parent_contract_id": null,
"parent_contract": null,
"agent_acting_for_publisher": false,
"external_id": "46",
"created_at": "2024-02-28T08:05:04+03:00",
"deleted_at": null
},
{
"id": 32205,
"number": "2 от 27.02",
"is_partner": false,
"membership_id": 1,
"cid": null,
"type": "contract",
"client_id": 14168,
"client": {
"id": 14168,
"name": "Измененное имя",
"is_partner": false,
"membership_id": 1,
"type": "ul",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "7613946079",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": null,
"oksm_number": null,
"rs_url": "https://local.ru",
"is_agent": false,
"created_at": "2024-02-26T10:40:48+03:00",
"deleted_at": null,
"external_id": "123"
},
"contractor_id": 14165,
"contractor": {
"id": 14165,
"name": "массово",
"is_partner": false,
"membership_id": 1,
"type": "fl",
"is_ors": true,
"is_rr": false,
"is_rd": false,
"inn": "277332520750",
"mobile_phone": null,
"epay_number": null,
"reg_number": null,
"alternative_inn": "",
"oksm_number": null,
"rs_url": "https://my-dev.ord-a.ru",
"is_agent": false,
"created_at": "2024-02-19T10:41:40+03:00",
"deleted_at": null,
"external_id": null
},
"is_reg_report": true,
"is_original_contract": false,
"date": "2024-02-27",
"expiration_date": null,
"amount": "200",
"action": null,
"subject": "distribution",
"parent_contract_id": null,
"parent_contract": null,
"agent_acting_for_publisher": false,
"external_id": "string",
"created_at": "2024-02-28T08:04:13+03:00",
"deleted_at": null
}
],
"links": {
"first": "https://api.ord-a.ru/api/v2/contracts?page=1",
"last": "https://api.ord-a.ru/api/v2/contracts?page=2",
"prev": null,
"next": "https://api.ord-a.ru/api/v2/contracts?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Вперед",
"active": false
},
{
"url": "https://api.ord-a.ru/api/v2/contracts?page=1",
"label": "1",
"active": true
}
],
"path": " https://api.ord-a.ru/api/v2/contracts",
"per_page": 2,
"to": 2,
"total": 2
}
}
3.4.2  Получение сведений определенного договора: GET /contracts/{id}
https://api.ord-a.ru/api/v2/contracts/{id}
Данный метод используется для получения сведений по конкретному договору.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
200 ОК Запрос успешно прошел
401 Unauthorized Доступ запрещен
404 Not Found Идентификатор договора не найден
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/contracts/338' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'X-CSRF-TOKEN: '
Успешный ответ:
{
   "data": {
       "id": 338,
       "number": null,
       "is_partner": false,
       "membership_id": 1,
       "cid": null,
       "erir_entity": {
           "id": 2137,
           "status": "Зарегистрирован",
           "status_label": "registered",
           "last_item": {
               "id": 4485,
               "status": "Зарегистрирован",
               "status_label": "registered",
               "errors": [],
               "message": null,
               "created_at": "2024-06-20T15:08:51+03:00",
               "pending_at": "2024-06-20T15:13:51+03:00",
               "status_changed_at": "2024-06-22T06:56:02+03:00"
           },
           "registered_at": "2024-06-22 06:56:02",
           "created_at": "2024-06-20T15:08:48+03:00"
       },
       "dependent_relationships": [
           {
               "name": "child_contracts",
               "id": 342
           },
           {
               "name": "invoices",
               "id": 309
           }
       ],
       "type": "intermediary-contract",
       "client_id": 731,
       "client": {
           "id": 731,
           "name": "второе имя",
           "is_partner": false,
           "membership_id": 1,
           "type": "fl",
           "is_ors": false,
           "is_rr": true,
           "is_rd": false,
           "inn": "556682190171",
           "mobile_phone": null,
           "epay_number": null,
           "reg_number": null,
           "alternative_inn": null,
           "oksm_number": null,
           "rs_url": null,
           "is_agent": false,
           "created_at": "2024-06-20T15:08:44+03:00",
           "deleted_at": null,
           "external_id": null
       },
       "contractor_id": 730,
       "contractor": {
           "id": 730,
           "name": "Первое имя",
           "is_partner": false,
           "membership_id": 1,
           "type": "ul",
           "is_ors": false,
           "is_rr": true,
           "is_rd": false,
           "inn": "3691578700",
           "mobile_phone": null,
           "epay_number": null,
           "reg_number": null,
           "alternative_inn": null,
           "oksm_number": null,
           "rs_url": null,
           "is_agent": false,
           "created_at": "2024-06-20T15:08:44+03:00",
           "deleted_at": null,
           "external_id": null
       },
       "is_reg_report": false,
       "is_original_contract": false,
       "date": "2023-12-05",
"expiration_date": null,
       "amount": null,
       "action": "other",
       "subject": "other",
       "parent_contract_id": null,
       "parent_contract": null,
       "agent_acting_for_publisher": false,
       "external_id": null,
       "created_at": "2024-06-20T15:08:48+03:00",
       "deleted_at": null
   }
}
3.4.3 Создание  договора:  POST /contracts
https://api.ord-a.ru/api/v2/contracts
Данный метод используется для создания сведений о договорах.
Параметры запроса:
Код ответа Описание
201 Created Договор создан
401 Unauthorized Доступ запрещен
422 Unprocessable Content Ошибка во входных данных
Пример запроса:
curl -X 'POST' \
https://api.ord-a.ru/api/v2/contracts' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d '{
"type": "contract",
"client_id": 14168,
"contractor_id": 14165,
"is_reg_report": true,
"number": "1 от 27.02",
"date": "2024-02-27",
"amount": 200,
"subject": "distribution",
"external_id": "46"
}'
Успешный ответ:
{
"data": {
"id": 32206,
"number": "1 от 27.02",
"is_partner": false,
"membership_id": 1,
"type": "contract",
"client_id": 14168,
"contractor_id": 14165,
"is_reg_report": true,
"date": "2024-02-27",
"expiration_date": null,
"amount": 200,
"action": null,
"subject": "distribution",
"parent_contract_id": null,
"agent_acting_for_publisher": false,
"external_id": "46",
"created_at": "2024-02-28T08:05:04+03:00",
"deleted_at": null
}
}
3.4.4 Обновление договора: PUT /contracts/{id}
 https://api.ord-a.ru/api/v2/contracts/{id}
Данный метод используется для обновления сведений по конкретному договору.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
200 ОК Статус успешного запроса
401 Unauthorized Доступ запрещен
404 Not found Идентификатор договора не найден
422 Unprocessable Content Ошибка во входных данных
Пример запроса:
curl -X 'PUT' \
https://api.ord-a.ru/api/v2/contracts/338' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d '{
"type": "additional-agreement",
"date": "2023-12-05",
"contractor_id": 930,
"client_id": 931,
"subject": "other",
"parent_contract_id": 435,
"is_reg_report": false
}'
Успешный ответ:
{
"data": {
"id": 338,
"number": null,
"is_partner": false,
"membership_id": 1,
"cid": null,
"type": "additional-agreement",
"client_id": 931,
"contractor_id": 930,
"is_reg_report": false,
"date": "2023-12-05",
"expiration_date": null,
"amount": null,
"action": null,
"subject": "other",
"parent_contract_id": 435,
"agent_acting_for_publisher": false,
"external_id": null,
"created_at": "2024-06-20T15:08:48+03:00",
"deleted_at": null
}
}
3.4.5  Удаление договора: DELETE /contracts/{id}
https://api.ord-a.ru/api/v2/contracts/{id}
Данный метод используется для удаления сведений по конкретному договору.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
204 No Content Статус успешного запроса
400 Bad Request У объекта есть зависящие сущности, мешающие удалению
401 Unauthorized Доступ запрещен, невалидный токен
404 Not found Идентификатор креатива не найден
Пример запроса:
curl -X 'DELETE' \
'https://api.ord-a.ru/api/v2/contracts/432' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d ''
3.4.6  Восстановление договора: GET /contracts/{id}/restore
https://api.ord-a.ru/api/v2/contracts/{id}/restore
Данный метод используется для восстановления сведений по конкретному договору.
Параметры запроса:
Параметр Тип Обязательность Описание
id число да идентификатор площадки
Код ответа Описание
200 ОК Запрос прошел успешно
401 Unauthorized Доступ запрещен
422 Unprocessable Content Некорректный запрос
Пример запроса:
curl -X 'GET' \
'https://api.ord-a.ru/api/v2/contracts/432/restore' \
-H 'accept: application/json' \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-H 'X-CSRF-TOKEN: ' \
-d ''
Успешный ответ:
{
"data": {
"id": 432,
"number": null,
"is_partner": false,
"membership_id": 1,
"cid": null,
"type": "contract",
"client_id": 933,
"contractor_id": 930,
"is_reg_report": false,
"date": "2023-12-05",
"expiration_date": null,
"amount": null,
"action": null,
"subject": "other",
"parent_contract_id": null,
"agent_acting_for_publisher": false,
"external_id": null,
"created_at": "2024-07-15T09:44:38+03:00",
"deleted_at": null
}
}
3.4.7  Массовое добавление, обновление договора: POST /contracts/upsert
https://api.ord-a.ru/api/v2/contracts/upsert
Данный метод используется для массового добавления, обновления договоров.
Код ответа Описание
200 ОК Запрос прошел успешно
401 Unauthorized Доступ запрещен
422 Unprocessable Content Некорректный запрос
Пример запроса на обновление договоров:
 curl -X 'POST' \
  'https://api.ord-a.ru/api/v2/contracts/upsert' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRF-TOKEN: ' \
  -d '{
  "contracts": [
    {
      "id": 32834,
      "type": "contract",
      "client_id": 24520,
      "contractor_id": 25197,
      "is_reg_report": true,
      "number": "1 от 27.02",
      "date": "2024-02-27",
      "amount": 2000,
      "subject": "distribution",
      "external_id": "3"
    },
    {
      "id": 32820,
      "type": "contract",
      "client_id": 25171,
      "contractor_id": 24534,
      "is_reg_report": true,
      "number": "2 от 27.02",
      "date": "2024-02-27",
      "amount": 100,
      "subject": "distribution",
      "external_id": "5"
    }
  ]
}'
Успешный ответ:
  {
    "data": [
        {
            "id": 32834,
            "external_id": "3"
        },
        {
            "id": 32820,
            "external_id": "5"
        }
    ],
    "message": "OK"
}
3.4.8 Атрибуты объекта «Договоры» (Contracts):
Параметр Тип Обязательность Описание
type строка (255) да

Тип договора. Возможные значения: intermediary-contract - Посреднический договор;
contract - Договор оказания услуг;
additional-agreement - Дополнительное соглашение.
external - Внешний договор (для внесения по CID договора из ЕРИР)

При additional-agreement запрещается указывать parent_сontract_id, в котором client_id и contractor_id отличается от client_id и contractor_id создаваемого доп. соглашения.

для договора с type = "additional-agreement" нельзя указать в parent_contract_id договор с type= "additional-agreement"

cid строка Условно обязательно Передается CID внешнего договора. Указывается, если type=external.
agent _acting_for _publisher булево Условно обязательно Агент представляет сторону принципала."Обязательно для типа договора "intermediary-contract" - Посреднический договор
client_id число да Идентификатор контрагент - заказчик. Заказчик и Исполнитель не могут иметь один и тот же идентификатор, а также иметь один и тот же ИНН.
contractor_id число да Идентификатор контрагент-исполнителя должен быть отличным от client_id
parent _сontract _id число Условно обязательно Идентификатор основного (родительского) договора (обязательно для доп соглашений). Если создаем основной договор передаем “null”
is_reg_report булево да На контрагенте-исполнителе лежит обязанность регистрировать и репортить креативы. Возможные значения: true/ false
action строка (255) Условно обязательно

Описание осуществляемых посредником-представителем действий. Обязательно, если тип договора intermediary-contract.

Возможные значения: other - Иное;
distribution - Действия в целях распространения рекламы;
conclude - Заключение договоров;
commercial - Коммерческое представительство.
subject строка (255) да

Сведения о предмете договора.

Возможные значения:
other - Иное;
org-distribution - Договор на организацию распространения рекламы;
mediation - Посредничество;
distribution - Договор на распространение рекламы;
representation – Представительство
number строка (255) нет Номер договора.
date дата (date) да

Дата договора в формате ГГГГ-мм-дд

1. Дата должна быть не ниже, чем 01.01.1991
2. Дата должна быть меньше или равна текущей дате
expiration_date дата (date) нет

Дата договора в формате ГГГГ-мм-дд

Дата в expiration_date должна быть позже, либо равна дате договора (date)

amount число нет

Сумма договора.

Положительные числа или нулевые
Формат: два знака после запятой, разделитель - точка 22.23
12 цифр до точки, т.е. максимальное число, которое может быть передано = 999 999 999 999
  • Нельзя указывать 0 для договора, у которого type = "intermediary-contract" (посреднический договор).
  • Нельзя указывать 0 для договора, у которого type = "additional-agreement" (дополнительное соглашение) и родительский договор с типом "intermediary-contract" (посреднический договор).
external_id строка (255) нет Учетный идентификатор в базе пользователя
limit число нет Используется при get запросе. Количество записей при пагинации на странице.
page число нет Используется при get запросе. Номер страницы при пагинации на странице
sort строка нет Используется при get запросе. Сортировка по стоблцу. Допустимые значения: id, -id, number, -number, date, -date, type, -type, amount, -amount
dependent_relationships массив не заполняется Связанные (дочерние) объекты. Пример:
"dependent_relationships": [
{"name": "child_contracts",
"id": 435},
{"name": "invoice_items",
"id": 49},
{"name": "invoices",
"id": 316},
{"name": "creatives",
"id": 454}
]
include Строка нет

Параметр для получения статусов сущностей для GET запроса, значение – erirtEntity пример использования

(https://api.ord-a.ru/api/v2/ contracts?include=erirEntity)
В json ответе от сервера появятся данные:
...
"erir_entity": {
"id": 10345,
"status": "Зарегистрирован",
"status_label": "registered",
"last_item": {
"id": 14957,
"status": "Зарегистрирован",
"status_label": "registered",
"errors": [],
"message": null,
"created_at": "2024-07-15T09:44:44+03:00",
"pending_at": "2024-07-15T09:49:44+03:00",
"status_changed_at": "2024-07-17T17:07:03+03:00"
},
"registered_at": "2024-07-17 17:07:03",
"created_at": "2024-07-15T09:44:41+03:00"
}
...
filter[option] строка нет

Параметр для поиска записей сущностей для GET запроса, допустимые значения:
- id;
- search;
- type;
- number;
- client;
- date;
- amount;
- parentContract;
- parent_contract_id;
- is_original_contract;
- external_id;
- created_at;
- status (1, 2, 3, 4, 10)

Пример запроса:

https://api.ord-a.ru/api/v2/ contracts /?filter[id]=4