{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "RBKmoney Platform API", "description": "## Описание\nRBKmoney API является базовой и единственной точкой взаимодействия с платежной платформой. Все изменения состояний платформы осуществляются с помощью вызовов соответствующих методов API. Любые сторонние приложения, включая наши веб-сайты и другие UI-интерфейсы являются внешними приложениями-клиентами.\nRBKmoney API работает поверх HTTP-протокола. Мы используем REST архитектуру, схема описывается в соответствии со [Swagger](http://swagger.io/). Коды возврата описываются соответствующими HTTP-статусами. Платформа принимает и возвращает JSON-структуры в HTTP body.\n## Идемпотентные запросы\nЛюбой вызов методов API обязан предваряться предоставлением уникального для участника в пределах платформы ID запроса. Данный ID передается в соответствующем заголовке HTTP-запроса:\n```\n X-Request-ID: oX5MWM2AQy\n```\nДля генерации ID запросов мы рекомендуем использовать алгоритмы генерации из стандарта [RFC-4122](https://www.ietf.org/rfc/rfc4122.txt). Платформа гарантирует идемпотентность запросов, отправленных с одинаковым ID.\n## Тип содержимого и кодировка\nЛюбой запрос к API должен выполняться в кодировке UTF-8 и с указанием содержимого в формате JSON\n```\n Content-Type: application/json; charset=utf-8\n```\n## Формат дат\nПлатформа принимает значения date-time в стандарте ISO 8601 с обязательным указанием UTC-оффсета, например:\n```\n 2017-01-01T00:00:00Z\n 2017-01-01T00:00:01+00:00\n```\n", "termsOfService": "http://rbkmoney.com/", "contact": { "name": "RBKmoney support team", "email": "support@rbk.money", "url": "https://api.rbk.money" } }, "host": "api.rbk.money", "basePath": "/v1", "schemes": [ "https" ], "consumes": [ "application/json; charset=utf-8" ], "produces": [ "application/json; charset=utf-8" ], "securityDefinitions": { "bearer": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "Для аутентификации вызовов мы используем [JWT](https://jwt.io). Cоответствующий ключ передается в заголовке.\n```shell\n Authorization: Bearer {TOKENIZATION|PRIVATE_JWT}\n```\nПосмотреть ваш API-ключ вы можете в [личном кабинете](https://dashboard.rbk.money/api/key).\n\nКлючи не разделяются на тестовые и боевые, ваш API ключ открывает доступ ко всем функциям платформы. Для тестовых транзакций используйте ID тестовых магазинов.\n\nПомните, что вы никому не должны передавать ваш API ключ!\n" } }, "security": [ { "bearer": [] } ], "responses": { "NotFound": { "description": "Заданный ресурс не найден", "schema": { "$ref": "#/definitions/GeneralError" } } }, "parameters": { "accountID": { "name": "accountID", "in": "path", "description": "Account ID", "required": true, "type": "integer", "format": "int64" }, "requestID": { "name": "X-Request-ID", "in": "header", "description": "Уникальный идентификатор запроса к системе", "required": true, "type": "string", "maxLength": 32, "minLength": 1 }, "claimID": { "name": "claimID", "in": "path", "description": "Идентификатор заявки", "required": true, "type": "integer", "format": "int64" }, "claimRevision": { "name": "claimRevision", "in": "query", "description": "Версия заявки", "required": true, "type": "integer", "format": "int32" }, "shopID": { "name": "shopID", "in": "path", "description": "Идентификатор магазина", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "invoiceTemplateID": { "name": "invoiceTemplateID", "in": "path", "description": "Идентификатор шаблона инвойса", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "paymentID": { "name": "paymentID", "in": "path", "description": "Идентификатор платежа в рамках инвойса", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "refundID": { "name": "refundID", "in": "path", "description": "Идентификатор возврата в рамках платежа", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "contractID": { "name": "contractID", "in": "path", "description": "Идентификатор договора", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "residence": { "name": "residence", "in": "query", "description": "Резиденция, alpha-3 код по стандарту [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)", "required": false, "type": "string", "pattern": "^[A-Z]{3}$" }, "customerID": { "name": "customerID", "in": "path", "description": "Идентификатор кастомера", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "customerBindingID": { "name": "customerBindingID", "in": "path", "description": "Идентификатор привязки к кастомера", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "webhookID": { "name": "webhookID", "in": "path", "description": "Идентификатор webhook'а", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "adjustmentID": { "name": "adjustmentID", "in": "path", "description": "Идентификатор поправки к договору", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "payoutToolID": { "name": "payoutToolID", "in": "path", "description": "Идентификатор средства вывода", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "reportID": { "name": "reportID", "in": "path", "description": "Идентификатор отчета", "required": true, "type": "integer", "format": "int64" }, "fileID": { "name": "fileID", "in": "path", "description": "Идентификатор файла", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "invoiceID": { "name": "invoiceID", "in": "path", "description": "Идентификатор инвойса", "required": true, "type": "string", "maxLength": 40, "minLength": 1 }, "paymentInstitutionID": { "name": "paymentInstitutionID", "in": "path", "description": "Payment institution reference", "required": true, "type": "integer", "format": "int32" }, "fromTime": { "name": "fromTime", "in": "query", "description": "Начало временного отрезка", "required": true, "type": "string", "format": "date-time" }, "toTime": { "name": "toTime", "in": "query", "description": "Конец временного отрезка", "required": true, "type": "string", "format": "date-time" }, "splitUnit": { "name": "splitUnit", "in": "query", "description": "Единица времени сегмента разбиения", "required": true, "type": "string", "enum": [ "minute", "hour", "day", "week", "month", "year" ] }, "splitSize": { "name": "splitSize", "in": "query", "description": "Размер сегмента разбиения", "required": true, "type": "integer", "format": "int32", "minimum": 1 }, "limit": { "name": "limit", "in": "query", "description": "Лимит выборки", "required": true, "type": "integer", "format": "int32", "minimum": 1, "maximum": 1000 }, "offset": { "name": "offset", "in": "query", "description": "Смещение выборки", "required": false, "type": "integer", "minimum": 0 } }, "tags": [ { "name": "Parties", "x-displayName": "Участники", "description": "Участник системы объединяет в себе данные о вашей организации, списке и условиях договоров, заключенных с вами, а также информацию о привязанных к организации сотрудниках. Идентификатором участника является email, использованный при регистрации. Если вы зарегистрировались впервые, то это учетная запись, с которой проводилась регистрация в личном кабинете.\n" }, { "name": "Claims", "x-displayName": "Заявки", "description": "Некоторая область данных может быть изменена только после премодерации на стороне платформы. Например, создание и активация новых магазинов, изменение финансовых данных вашего участника и т.п. требуют ручной проверки сотрудниками RBKmoney. Попытка изменить такие данные приводит к автоматическому созданию заявки на изменение данных. До тех пор, пока заявка не одобрена, вы можете добавлять изменения. После одобрения они будут применены к набору данных. В случае отказа по заявке данные останутся в неизменном состоянии. Ближайшим аналогом заявок можно представить Pull Request в распределенных системах контроля версий.\n" }, { "name": "Shops", "x-displayName": "Магазины", "description": "Магазин - это отображение вашего веб-сайта или точки продаж в платформе. К магазину привязываются финансовые условия, которые определяют, в частности, процент комиссии платформы. Каждый магазин в системе имеет привязанные счета, на которых аккумулируются отправленные плательщиками деньги. В каждой валюте может существовать только один счет. Категория магазина определяет группы товаров или услуг, которые в нем представлены. К магазину может быть привязан банковский терминал на стороне банка-эквайера. Любые изменения данных магазинов требуют верификации на стороне платформы.\nДля тестовых платежей используются магазины, созданные в тестовой категории. Первый тестовый магазин платформа создает автоматически при регистрации участника.\nВаш веб-сайт или точка продаж могут иметь более одного магазина, ближайшим аналогом можно представить банковские POS-терминалы на точке продаж.\n## Асинхронные уведомления\nДля любого магазина можно указать URL для получения асинхронных оповещений об изменении состояния данных при помощи установки webhook'а. Например, если вы используете неперсистентные интерпретируемые языки разработки, такие как PHP, вы можете установить webhook, указав URL вашего приложения, на который платформа будет отправлять данных об изменении состояния инвойса. Для проверки подлинности присланных на URL вашего приложения данных используется соответствующий публичный ключ, который создаётся при установке этого webhook'а и получить который можно в вашем личном кабинете.\n" }, { "name": "Invoices", "x-displayName": "Инвойсы", "description": "Инвойс - это базовая часть работы с платформой по приему платежей. Перед рендерингом платежной формы, запуском транзакций на списание денег, холдированием средств на карте плательщика и запуском других подобных бизнес-процессов, необходимо создать инвойс и узнать его идентификатор.\nВ общем случае, инвойс является контейнером для платежей, данных о товарах и магазине. Инвойсы имеют настраиваемый ограниченный срок жизни. После истечения срока жизни состояние инвойса изменить невозможно.\n\n## Состояния и статусы инвойса\nТаблица состояний инвойса:\n | | | |\n | -- | -- | -- |\n | Не оплачен | `unpaid` | Инвойс создан, но финансовые обязательства ещё не погашены. |\n | Отменён | `cancelled` | Инвойс отменён с указанием причины, все обязательства по нему недействительны. |\n | Оплачен | `paid` | Финансовые обязательства по инвойсу погашены, но товары или услуги плательщику ещё не предоставлены. |\n | Погашен | `fulfilled` | Все обязательства, как плательщика, так и мерчанта, погашены. |\n | Возмещён | `refunded` | Мерчанту не удалось выполнить свои обязательства, и финансовые обязательства плательщика были возмещены. |\n\nВ узлах диаграммы указаны статусы инвойса, стрелки помечены процессами, успешное завершение которых порождает переход из одного статуса в другой.\n![Invoice State diagram](wsd/img/invoice.svg)\n## Метаданные инвойса\nПлатформа предоставляет вам возможность заполнить и сохранить любые необходимые метаданные в структуре инвойса. Данные описываются массивом JSON. В дальнейшем платформа предоставит вам эти данные при запросе данных инвойса по его ID либо пришлет в асинхронном режиме на webhook, установленный для соответствующего магазине, если он есть.\n## События инвойса\nМы используем event-based, или событийную архитектуру для любого изменения состояния данных в платформе. События, которые генерируют участники процесса привязываются к объектам системы, и таким образом позволяют узнать конечное состояние данных объекта. В системе можно получить как полный список событий, приведших к определенному состоянию данных, так и последнее событие, описывающее текущее состояние объекта. Например, для того, чтобы узнать состояние инвойса, и таким образом принять решение об отгрузке товара или предоставлении услуги плательщику, можно запросить у платформы все события, произошедшие в рамках указанного ID инвойса, либо самое последнее из них.\n## Authorization\nОперации:\n* создания инвойса,\n* отмены ивнвойса,\n* погашения инвойса,\n* получения *нового* токена доступа к инвойсу (уже после создания инвойса)\n\nавторизуются вашим API-ключем.\n### Токен доступа к инвойсу\nТокен доступа к инвойсу авторизует ограниченное количество операций, необходимых для проведения [платежей](#tag/Payments) по указанному инвойсу, в частности:\n* [токенизация](#tag/Tokens) платёжных инструментов,\n* создание платежей по этому и только этому инвойсу,\n* получение состояния и событий этого инвойса.\n\nСрок действия токена составляет 3 суток от момента создания, после истечения которого использовать его для авторизации операций будет более невозможно.\n" }, { "name": "InvoiceTemplates", "x-displayName": "Шаблоны инвойсов", "description": "Шаблоны инвойсов позволяют упростить выставление инвойсов. Шаблон инвойса привязан к конкретному магазину и содержит спецификацию, по которой можно создавать инвойсы, указывая только конкретнyю стоимость товаров и услуг и/или метаданные инвойса. В случае, если шаблон содержит фиксированную стоимость, её также можно опустить при создании инвойса. Если при создании инвойса по шаблону не указать метаданные инвойса, они будут взяты из значения в шаблоне (если шаблон содержит метаданные).\n\nCоздание, модификация и удаление шаблона инвойса не требуют верификации на стороне платформы и заявок на эти изменения.\n## Authorization\nСоздание, модификация и удаление шаблона инвойса авторизуются вашим API-ключем.\n### Токен доступа к шаблону инвойса\nТокен доступа к шаблону инвойса создается в результате операции создания шаблона. Он авторизует:\n* получение шаблона инвойса по его идентификатору,\n* создание инвойса по данному шаблону.\n" }, { "name": "Accounts", "x-displayName": "Счета", "description": "Каждый магазин в платформе имеет привязанные счета, на которых аккумулируются средства плательщиков. К магазину может быть привязан счет в любой валюте, если это описано в рамках договора с участником системы, однако не более одного счета в одинаковой валюте.\nСчета разделяются на два основных типа - основной счет и счет гарантийного фонда.\nОсновной счет используется для оперативных взаиморасчетов между банковскими счетами RBKmoney и вашими банковскими счетами для вывода средств. Вывод средств предваряется суммированием всех средств со счетов ваших магазинов и последующим переводом с помощью банковских транзакций, либо других средств вывода денег из системы.\nСчет гарантийного фонда используется для накопления определенных сумм средств от оборота магазина так, как это указано в договоре с участником.\n" }, { "name": "Payments", "x-displayName": "Платежи", "description": "Реальное списание денег с плательщиков осуществляется вызовом метода создания платежа. Перед запуском платежей необходимо создать инвойс, в рамках которого платформа будет проводить попытки списания, а также указать токен платежного средства плательщика. Таким образом, платформа предоставляет вам интерфейс, позволяющий со стороны вашего серверного кода инициировать и контролировать процесс списания денег. Данный процесс может быть, как синхронным, когда вы ожидаете ответа системы, так и асинхронным, когда после запуска платежа вы ожидаете уведомлений на установленный для соответствующего магазина webhook.\n## Платежная сессия\nПлатформа обеспечивает идемпотентность списания денег с платежного средства, предоставляя уникальный идентификатор платежной сессии. Данный идентификатор предоставляется в процессе создания [токена платежного средства](#tag/Tokens) и гарантирует идемпотентность запросов на списание средств, обеспечивая защиту от ошибочных повторных списаний.\n## Authorization\nЗапросы API платежей авторизуются либо токеном доступа к инвойсу, по которому создан платеж, либо вашим API-ключем.\n" }, { "name": "Tokens", "x-displayName": "Платежные токены", "description": "Платформа предоставляет вам возможность самостоятельно инициировать списание денег с платежных карт плательщиков и берет на себя процессы сертификации и соответствия стандартам PCS-DSS. Стандарт декларирует запрет на обработку и хранение данных держателей карт (ДДК) на стороне мерчанта. Используемые нами подходы к реализации интерфейса подразумевают возможность верстки и отдачи HTML формы для ввода ДДК на стороне вашего серверного кода. Чтобы обеспечить соответствие стандартам мы предоставляем разработанную нами JS-библиотеку, которая после встраивания в HTML-код вашей платежной формы в асинхронном режиме собирает ДДК и отправляет на интерфейс платформы для дальнейшего шифрования и токенизации. В ответ JS-библиотека возвращает на вашу платежную форму уникальный токен платежной карты, который в дальнейшем вы можете использовать для запуска платежей.\n\nВ процессе создания токена предоставляется [платежная сессия](#tag/Payments), обеспечивающая идемпотентность списания денег с платежного средства.\n" }, { "name": "Categories", "x-displayName": "Категории магазинов", "description": "Для описания групп товаров и услуг, предоставляемых магазинами, используются категории. Категории могут влиять на предоставление статистики, упорядочивание магазинов, а также на финансовые условия системы.\n" }, { "name": "Contracts", "x-displayName": "Договоры", "description": "Договор содержит данные юридического соглашения, на основе которого система предоставляет всевозможные услуги мерчанту. В договоре, в частности описывается набор условий, по которым предоставляются сервисы платформы, например, комиссии на проведение транзакций, условия вывода средств и данных юридического лица.\nЛюбые изменения данных магазинов требуют верификации на стороне платформы путем создания заявок на изменение.\n" }, { "name": "Payouts", "x-displayName": "Вывод средств", "description": "Для получения автоматических выплат по принятым платежам на ваш банковский счет необходимо в рамках договора с системой указать данные для вывода средств. В дальнейшем по указанным данным система будет инициировать банковские переводы на основе суммы платежей, принятой по всем активным магазинам.\nЛюбые изменения данных требуют верификации на стороне платформы путем создания заявок на изменение.\n" }, { "name": "Webhooks", "x-displayName": "Webhooks", "description": "## RBKmoney Webhooks Management API\nВ данном разделе описаны методы, позволяющие управлять Webhook'ами, или инструментами для получения асинхронных оповещений посредством HTTP-запросов при наступлении одного или группы интересующих вас событий, например, о том, что платеж в рамках созданного инвойса был успешно оплачен.\n## RBKmoney Webhooks Events API\nВнимание! Только Webhooks Management API является частью платформы RBKmoney, а следовательно и данной спецификации. Для реализации обработчика присылаемых уведомлений вам необходимо будет ознакомиться со Swagger-спецификацей [RBKmoney Webhooks Events API](https://rbkmoney.github.io/webhooks-events-api).\n" }, { "name": "Geo", "x-displayName": "Геопозиционирование", "description": "Для отображения геоданных плательщиков существуют вспомогательные операции, например, получение названия геопозиции по её идентификатору.\n" }, { "name": "Search", "x-displayName": "Поиск", "description": "Для получения списка всех инвойсов/платежей указанного магазина необходимо вызвать соответствующий метод платформы. Имеется возможность отфильтровать выборку по определенным статусам.\n" }, { "name": "Analytics", "x-displayName": "Аналитика", "description": "Платформа предоставляет возможность получения различных аналитических данных, полученных в рамках взаимодействия с ней. Аналитические отчеты подготовлены заранее и не подразумевают интерактивного изменения структуры данных.\n" }, { "name": "PaymentInstitutions", "x-displayName": "Платёжные организации", "description": "Платёжная организация - организация, осуществляющая услуги по обслуживанию финансовых операций, которые возникают в результате осуществления бизнес-процессов системой.\n" }, { "name": "Reports", "x-displayName": "Отчеты", "description": "Один раз в отчетный период платформа автоматически подготавливает и размещает документы в формате XLSX с разбиением по магазину активной категории. Также, каждый документ будет подписан [квалифицированной ЭЦП](http://minsvyaz.ru/ru/appeals/faq/31/). Данная подпись является юридически значимой и позволяет полностью отказаться от бумажного документооборота.\n" }, { "name": "Error Codes", "x-displayName": "Коды ошибок", "description": "\n## Ошибки бизнес-логики\nВсе ошибки бизнес-логики имеют следуюший вид:\n\n ```json\n {\n \"code\": \"string\",\n \"message\": \"string\"\n }\n ```\n\nВ поле `code` содержится тип ошибки, а в `message` - дополнительная информация по произошедшей ошибке.\nНа данный момент существуют следующие коды ошибок:\n\n | Код | Описание |\n | --- | -------- |\n | **operationNotPermitted** | Недоступная в рамках действующего договора операция. |\n | **invalidPartyStatus** | Ваш участник заблокирован или его операции приостановлены. В последнем случае вы можете их [возобновить](#operation/activateMyParty). |\n | **invalidShopStatus** | Ваш магазин заблокирован или его операции приостановлены. В последнем случае вы можете их [возобновить](#operation/activateShop). |\n | **invalidShopID** | Указан идентификатор несуществующего магазина. |\n | **invalidInvoiceCost** | Стоимость инвойса не указана или неверна, в частности, не равна стоимости позиций в корзине. |\n | **invalidInvoiceCart** | Некорректная корзина в инвойсе, Например, пустая. |\n | **invalidInvoiceStatus** | Неверный [статус инвойса](#tag/Invoices). Например, при попытке [оплатить](#operation/createPayment) отменённый инвойс. |\n | **invoiceTermsViolated** | Инвойс нарушает ограничения, установленные в рамках действующего договора. |\n | **invoicePaymentPending** | Последний запущенный платёж по указанному инвойсу ещё не достиг финального статуса. |\n | **invalidPaymentStatus** | Неверный [статус платежа](#tag/Payments). Например, при попытке [подтвердить](#operation/capturePayment) неуспешный платёж. |\n | **invalidPaymentResource** | Не поддерживаемый системой или не подключенный в рамках действующего договора платежный инструмент. |\n | **invalidPaymentToolToken** | Неверное содержимое токена платёжного инструмента. |\n | **invalidPaymentSession** | Неверные содержимое платёжной сессии. |\n | **insufficentAccountBalance** | Недостаточный объём денежных средств на счёте магазина, например, для проведения возврата. |\n | **invoicePaymentAmountExceeded** | Попытка возврата сверх суммы платежа. |\n | **inconsistentRefundCurrency** | Попытка возврата средств в валюте, отличной от валюты платежа. |\n | **changesetConflict** | Попытка внести изменения участника, конфликтующие с изменениями в других заявках, ожидающих рассмотрения. |\n | **invalidChangeset** | Неверные изменения участника, например, попытка создать магазин в валюте, недоступной в рамках договора. |\n | **invalidClaimStatus** | Неверный статус заявки. Например, при попытке [отзыва](#operation/revokeClaimByID) уже принятой заявки. |\n | **invalidClaimRevision** | Неверная ревизия заявки. Например, в случае если заявку одновременно с вами кто-то уже принял или отклонил. |\n | **limitExceeded** | Превышен разумный лимит выборки. В этом случае лучше запросить менее объёмный набор данных. |\n | **invalidRequest** | Прочие неверные данные запроса. |\n\n## Общие ошибки\nОшибки возникающие при попытках совершения операций с незарегистрированными в системе объектами. Имеют вид\n\n ```json\n {\n \"message\": \"string\"\n }\n ```\n\nВ поле `message` содержится информация по произошедшей ошибке. Например:\n\n ```json\n {\n \"message\": \"Invoice not found\"\n }\n ```\n\n## Ошибки обработки запросов\nВ процессе обработки запросов силами нашей платформы могут происходить различные непредвиденные ситуации. Об их появлении платформа сигнализирует по протоколу HTTP соответствующими [статусами][5xx], обозначающими ошибки сервера.\n\n | Код | Описание |\n | ------- | ---------- |\n | **500** | В процессе обработки платформой запроса возникла непредвиденная ситуация. При получении подобного кода ответа мы рекомендуем обратиться в техническую поддержку. |\n | **503** | Платформа временно недоступна и не готова обслуживать данный запрос. Запрос гарантированно не выполнен, при получении подобного кода ответа попробуйте выполнить его позднее, когда доступность платформы будет восстановлена. |\n | **504** | Платформа превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. |\n\n[5xx]: https://tools.ietf.org/html/rfc7231#section-6.6\n" } ], "paths": { "/analytics/shops/{shopID}/customers/stats/payment_method": { "get": { "description": "Получить статистику по платежным средствам за определённое время.\n", "tags": [ "Analytics" ], "operationId": "getPaymentMethodStats", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/splitUnit" }, { "$ref": "#/parameters/splitSize" }, { "name": "paymentMethod", "in": "query", "description": "Метод оплаты", "type": "string", "required": true, "enum": [ "bankCard" ] } ], "responses": { "200": { "description": "Статистика по платежным средствам", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentMethodStat" } } }, "400": { "description": "Неверные данные запроса статистики", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/customers/stats/rate": { "get": { "description": "Получить статистику по уникальным плательщикам за определённое время.\n", "tags": [ "Analytics" ], "operationId": "getPaymentRateStats", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" } ], "responses": { "200": { "description": "Статистика по уникальным плательщикам", "schema": { "$ref": "#/definitions/PaymentRateStat" } }, "400": { "description": "Неверные данные запроса статистики", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/invoices": { "get": { "description": "Поиск инвойсов", "tags": [ "Search" ], "operationId": "searchInvoices", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/limit" }, { "$ref": "#/parameters/offset" }, { "name": "invoiceStatus", "in": "query", "description": "Статус инвойса для поиска", "required": false, "type": "string", "enum": [ "unpaid", "cancelled", "paid", "fulfilled" ] }, { "name": "paymentStatus", "in": "query", "description": "Статус платежа для поиска", "required": false, "type": "string", "enum": [ "pending", "processed", "captured", "cancelled", "refunded", "failed" ] }, { "name": "paymentFlow", "in": "query", "description": "Flow платежа", "required": false, "type": "string", "enum": [ "instant", "hold" ] }, { "name": "paymentMethod", "in": "query", "description": "Метод оплаты", "required": false, "type": "string", "enum": [ "bankCard", "paymentTerminal" ] }, { "name": "paymentTerminalProvider", "in": "query", "description": "Провайдер платежного терминала", "required": false, "type": "string", "enum": [ "euroset" ] }, { "name": "invoiceID", "in": "query", "description": "Идентификатор инвойса", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "paymentID", "in": "query", "description": "Идентификатор платежа", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "payerEmail", "in": "query", "description": "Email, указанный при оплате", "required": false, "type": "string", "format": "email", "maxLength": 100 }, { "name": "payerIP", "in": "query", "description": "IP-адрес плательщика", "required": false, "type": "string", "format": "ip-address", "maxLength": 45 }, { "name": "payerFingerprint", "in": "query", "description": "Уникальный отпечаток user agent'а плательщика", "required": false, "type": "string", "maxLength": 1000 }, { "name": "customerID", "in": "query", "description": "Идентификатор плательщика", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "bankCardTokenProvider", "in": "query", "required": false, "description": "Провайдер платежных токенов", "type": "string", "enum": [ "applepay", "googlepay", "samsungpay" ] }, { "name": "bankCardPaymentSystem", "in": "query", "required": false, "description": "Платежная система", "type": "string", "enum": [ "visa", "mastercard", "visaelectron", "maestro", "forbrugsforeningen", "dankort", "amex", "dinersclub", "discover", "unionpay", "jcb", "nspkmir", "elo", "rupay", "dummy" ] }, { "name": "bin", "in": "query", "description": "BIN банка-эмитента карты", "required": false, "type": "string", "pattern": "^\\d{6,8}$" }, { "name": "cardNumberMask", "in": "query", "description": "Маскированый номер карты", "required": false, "type": "string", "pattern": "^\\d{2,4}$" }, { "name": "paymentAmount", "in": "query", "description": "Сумма платежа", "required": false, "type": "integer", "format": "int64", "minimum": 1 }, { "name": "invoiceAmount", "in": "query", "description": "Сумма инвойса", "required": false, "type": "integer", "format": "int64", "minimum": 1 } ], "responses": { "200": { "description": "Найденные инвойсы", "schema": { "type": "object", "properties": { "totalCount": { "type": "integer" }, "result": { "type": "array", "items": { "$ref": "#/definitions/Invoice" } } } } }, "400": { "description": "Неверные данные для поиска", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/payments": { "get": { "description": "Поиск платежей", "tags": [ "Search" ], "operationId": "searchPayments", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/limit" }, { "$ref": "#/parameters/offset" }, { "name": "paymentStatus", "in": "query", "description": "Статус платежа для поиска", "required": false, "type": "string", "enum": [ "pending", "processed", "captured", "cancelled", "refunded", "failed" ] }, { "name": "paymentFlow", "in": "query", "description": "Flow платежа", "required": false, "type": "string", "enum": [ "instant", "hold" ] }, { "name": "paymentMethod", "in": "query", "description": "Метод оплаты", "required": false, "type": "string", "enum": [ "bankCard", "paymentTerminal" ] }, { "name": "paymentTerminalProvider", "in": "query", "description": "Провайдер платежного терминала", "required": false, "type": "string", "enum": [ "euroset" ] }, { "name": "invoiceID", "in": "query", "description": "Идентификатор инвойса", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "paymentID", "in": "query", "description": "Идентификатор платежа", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "payerEmail", "in": "query", "description": "Email, указанный при оплате", "required": false, "type": "string", "format": "email", "maxLength": 100 }, { "name": "payerIP", "in": "query", "description": "IP-адрес плательщика", "required": false, "type": "string", "format": "ip-address", "maxLength": 45 }, { "name": "payerFingerprint", "in": "query", "description": "Уникальный отпечаток user agent'а плательщика", "required": false, "type": "string", "maxLength": 1000 }, { "name": "customerID", "in": "query", "description": "Идентификатор плательщика", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "bankCardTokenProvider", "in": "query", "required": false, "description": "Провайдер платежных токенов", "type": "string", "enum": [ "applepay", "googlepay", "samsungpay" ] }, { "name": "bankCardPaymentSystem", "in": "query", "required": false, "description": "Платежная система", "type": "string", "enum": [ "visa", "mastercard", "visaelectron", "maestro", "forbrugsforeningen", "dankort", "amex", "dinersclub", "discover", "unionpay", "jcb", "nspkmir", "elo", "rupay", "dummy" ] }, { "name": "bin", "in": "query", "description": "BIN банка-эмитента карты", "required": false, "type": "string", "pattern": "^\\d{6,8}$" }, { "name": "cardNumberMask", "in": "query", "description": "Маскированый номер карты", "required": false, "type": "string", "pattern": "^\\d{2,4}$" }, { "name": "paymentAmount", "in": "query", "description": "Сумма платежа", "required": false, "type": "integer", "format": "int64", "minimum": 1 } ], "responses": { "200": { "description": "Найденные платежи", "schema": { "type": "object", "properties": { "totalCount": { "type": "integer" }, "result": { "type": "array", "items": { "$ref": "#/definitions/PaymentSearchResult" } } } } }, "400": { "description": "Неверные данные для поиска", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/payments/stats/conversion": { "get": { "description": "Получить статистику конверсии платежей магазина за определённое время.\n", "tags": [ "Analytics" ], "operationId": "getPaymentConversionStats", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/splitUnit" }, { "$ref": "#/parameters/splitSize" } ], "responses": { "200": { "description": "Статистика конверсии платежей", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentConversionStat" } } }, "400": { "description": "Неверные данные запроса статистики", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/payments/stats/geo": { "get": { "description": "Получить статистику по геопозициям плательщиков за определённое время.\n", "tags": [ "Analytics" ], "operationId": "getPaymentGeoStats", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/splitUnit" }, { "$ref": "#/parameters/splitSize" } ], "responses": { "200": { "description": "Статистика по геопозициям плательщиков", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentGeoStat" } } }, "400": { "description": "Неверные данные запроса статистики", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/payments/stats/revenue": { "get": { "description": "Получить статистику по сумме платежей магазина за определенное время, в том\nчисле за вычетом комиссии системы.\n", "tags": [ "Analytics" ], "operationId": "getPaymentRevenueStats", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/splitUnit" }, { "$ref": "#/parameters/splitSize" } ], "responses": { "200": { "description": "Статистика по сумме платежей и прибыли", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentRevenueStat" } } }, "400": { "description": "Неверные данные запроса статистики", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/analytics/shops/{shopID}/payouts": { "get": { "description": "Поиск выплат", "tags": [ "Search" ], "operationId": "searchPayouts", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" }, { "$ref": "#/parameters/limit" }, { "$ref": "#/parameters/offset" }, { "name": "payoutStatus", "in": "query", "description": "Статус выплаты для поиска", "required": false, "type": "string", "enum": [ "unpaid", "paid", "cancelled", "confirmed" ] }, { "name": "payoutID", "in": "query", "description": "Идентификатор выплаты", "required": false, "type": "string", "maxLength": 40, "minLength": 1 }, { "name": "payoutToolType", "in": "query", "description": "Тип выплаты для поиска", "required": false, "type": "string", "enum": [ "PayoutCard", "PayoutAccount" ] } ], "responses": { "200": { "description": "Найденные выплаты", "schema": { "type": "object", "properties": { "totalCount": { "type": "integer" }, "result": { "type": "array", "items": { "$ref": "#/definitions/Payout" } } } } }, "400": { "description": "Неверные данные для поиска", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/accounts/{accountID}": { "get": { "description": "Get account by ID", "operationId": "getAccountByID", "tags": [ "Accounts" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/accountID" } ], "responses": { "200": { "description": "Account found", "schema": { "$ref": "#/definitions/Account" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/categories": { "get": { "description": "Получить список категорий", "tags": [ "Categories" ], "operationId": "getCategories", "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "200": { "description": "List of categories", "schema": { "type": "array", "items": { "$ref": "#/definitions/Category" } } } } } }, "/processing/categories/{categoryID}": { "get": { "description": "Получить данные категории по ее ID", "tags": [ "Categories" ], "operationId": "getCategoryByRef", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "categoryID", "in": "path", "description": "Category reference", "required": true, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "Category found", "schema": { "$ref": "#/definitions/Category" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/claims": { "get": { "description": "Получить список заявок участника, при желании отфильтрованный по значению\nстатуса.\n", "operationId": "getClaims", "tags": [ "Claims" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "claimStatus", "description": "Значение статуса для фильтрации", "in": "query", "type": "string", "enum": [ "pending", "accepted", "denied", "revoked" ] } ], "responses": { "200": { "description": "Список найденных заявок", "schema": { "type": "array", "items": { "$ref": "#/definitions/Claim" } } } } }, "post": { "description": "Создать новую заявку с заданным набором изменений и отправить её на\nпремодерацию.\n", "operationId": "createClaim", "tags": [ "Claims" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "claimChangeset", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ClaimChangeset" } } ], "responses": { "201": { "description": "Заявка создана", "schema": { "$ref": "#/definitions/Claim" } }, "400": { "description": "Ошибочные данные в заявке", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "changesetConflict", "invalidPartyStatus", "invalidChangeset", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Changeset conflict" } } } } } } }, "/processing/claims/{claimID}": { "get": { "description": "Получить заявку по её идентификатору.\n", "operationId": "getClaimByID", "tags": [ "Claims" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/claimID" } ], "responses": { "200": { "description": "Данные заявки", "schema": { "$ref": "#/definitions/Claim" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/claims/{claimID}/revoke": { "put": { "description": "Отозвать заявку по её идентификатору.", "operationId": "revokeClaimByID", "tags": [ "Claims" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/claimID" }, { "$ref": "#/parameters/claimRevision" }, { "name": "reason", "in": "body", "schema": { "$ref": "#/definitions/Reason" } } ], "responses": { "204": { "description": "Заявка отозвана" }, "400": { "description": "Ошибка отзыва заявки", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidClaimStatus", "invalidClaimRevision", "invalidPartyStatus" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid claim status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/contracts": { "get": { "description": "Получить данные всех договоров участника", "operationId": "getContracts", "tags": [ "Contracts" ], "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "200": { "description": "List of contracts", "schema": { "type": "array", "items": { "$ref": "#/definitions/Contract" } } } } } }, "/processing/contracts/{contractID}": { "get": { "description": "Получить данные договора по его ID", "operationId": "getContractByID", "tags": [ "Contracts" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/contractID" } ], "responses": { "200": { "description": "Contract found", "schema": { "$ref": "#/definitions/Contract" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/contracts/{contractID}/adjustments": { "get": { "description": "Получить данные всех поправок к указанному договору", "operationId": "getContractAdjustments", "tags": [ "Contracts" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/contractID" } ], "responses": { "200": { "description": "Набор поправок к договору", "schema": { "type": "array", "items": { "$ref": "#/definitions/ContractAdjustment" } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/contracts/{contractID}/adjustments/{adjustmentID}": { "get": { "description": "Получить данные поправки к договору по её идентификатору", "operationId": "getContractAdjustmentByID", "tags": [ "Contracts" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/contractID" }, { "$ref": "#/parameters/adjustmentID" } ], "responses": { "200": { "description": "Данные поправки к договору", "schema": { "$ref": "#/definitions/ContractAdjustment" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/contracts/{contractID}/payout_tools": { "get": { "description": "Получить данные всех средств вывода", "operationId": "getPayoutTools", "tags": [ "Payouts" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/contractID" } ], "responses": { "200": { "description": "Набор средств вывода", "schema": { "type": "array", "items": { "$ref": "#/definitions/PayoutTool" } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/contracts/{contractID}/payout_tools/{payoutToolID}": { "get": { "description": "Получить данные средства вывода по его идентификатору", "operationId": "getPayoutToolByID", "tags": [ "Payouts" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/contractID" }, { "$ref": "#/parameters/payoutToolID" } ], "responses": { "200": { "description": "Данные средства вывода", "schema": { "$ref": "#/definitions/PayoutTool" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/customers": { "post": { "description": "Создать нового плательщика.", "tags": [ "Customers" ], "operationId": "createCustomer", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "customerParams", "description": "Параметры создаваемого плательщика", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Customer" } } ], "responses": { "201": { "description": "Плательщик создан", "schema": { "$ref": "#/definitions/CustomerAndToken" } }, "400": { "description": "Ошибочные данные плательщика", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "operationNotPermitted", "invalidShopID", "invalidPartyStatus", "invalidShopStatus", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Operation not permitted" } } } } } } }, "/processing/customers/{customerID}": { "get": { "description": "Получить данные плательщика по его идентификатору.", "operationId": "getCustomerById", "tags": [ "Customers" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" } ], "responses": { "200": { "description": "Данные плательщика", "schema": { "$ref": "#/definitions/Customer" } }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "description": "Удалить плательщика по его идентификатору", "operationId": "deleteCustomer", "tags": [ "Customers" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" } ], "responses": { "204": { "description": "Плательщик удален" }, "400": { "description": "Ошибка удаления плательщика", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPartyStatus", "invalidShopStatus" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid party status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/customers/{customerID}/access-tokens": { "post": { "operationId": "createCustomerAccessToken", "description": "Создать новый токен для доступа к указанному плательщику.\n", "tags": [ "Customers" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" } ], "responses": { "201": { "description": "Токен для доступа создан", "schema": { "$ref": "#/definitions/AccessToken" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/customers/{customerID}/bindings": { "post": { "description": "Запустить новую привязку к плательшику.", "tags": [ "Customers" ], "operationId": "createBinding", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" }, { "name": "bindingParams", "description": "Параметры создаваемой привязки", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CustomerBindingParams" } } ], "responses": { "201": { "description": "Привязка запущена", "schema": { "$ref": "#/definitions/CustomerBinding" } }, "400": { "description": "Ошибочные данные для привязки", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPaymentResource", "operationNotPermitted", "invalidPartyStatus", "invalidShopStatus", "invalidPaymentToolToken", "invalidPaymentSession", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid payment resource" } } } }, "404": { "$ref": "#/responses/NotFound" } } }, "get": { "description": "Получить все привязки к плательщику.", "tags": [ "Customers" ], "operationId": "getBindings", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" } ], "responses": { "200": { "description": "Список привязок", "schema": { "type": "array", "items": { "$ref": "#/definitions/CustomerBinding" } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/customers/{customerID}/bindings/{customerBindingID}": { "get": { "description": "Получить информацию о привязке к плательщику.", "tags": [ "Customers" ], "operationId": "getBinding", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" }, { "$ref": "#/parameters/customerBindingID" } ], "responses": { "200": { "description": "Данные привязки", "schema": { "$ref": "#/definitions/CustomerBinding" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/customers/{customerID}/events": { "get": { "description": "Получить историю указанного плательщика в виде набора событий.", "tags": [ "Customers" ], "operationId": "getCustomerEvents", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/customerID" }, { "name": "limit", "in": "query", "description": "Лимит выборки", "required": true, "type": "integer", "format": "int32", "minimum": 1 }, { "name": "eventID", "in": "query", "description": "Идентификатор события.\n\nВсе события, возникшие в системе _после_ указанного, попадут в выборку.\n", "required": false, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "Набор событий", "schema": { "type": "array", "items": { "$ref": "#/definitions/CustomerEvent" } } }, "400": { "description": "Ошибочные данные для запроса истории", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoice-templates": { "post": { "description": "Создать новый шаблон инвойса.", "tags": [ "InvoiceTemplates" ], "operationId": "createInvoiceTemplate", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "invoiceTemplateCreateParams", "description": "Параметры шаблона инвойса.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InvoiceTemplateCreateParams" } } ], "responses": { "201": { "description": "Шаблон инвойса создан.", "schema": { "$ref": "#/definitions/InvoiceTemplateAndToken" } }, "400": { "description": "Ошибочные данные для создания шаблона", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest", "invalidShopID", "invalidPartyStatus", "invalidShopStatus", "invalidInvoiceCart" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Lifetime cannot be zero" } } } } } } }, "/processing/invoice-templates/{invoiceTemplateID}": { "get": { "description": "Получить шаблон инвойса по его идентификатору.", "tags": [ "InvoiceTemplates" ], "operationId": "getInvoiceTemplateByID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceTemplateID" } ], "responses": { "200": { "description": "Шаблон инвойса", "schema": { "$ref": "#/definitions/InvoiceTemplate" } }, "404": { "$ref": "#/responses/NotFound" } } }, "put": { "description": "Модифицировать шаблон инвойса.", "tags": [ "InvoiceTemplates" ], "operationId": "updateInvoiceTemplate", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceTemplateID" }, { "name": "invoiceTemplateUpdateParams", "description": "Параметры модифицируемого инвойса.", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InvoiceTemplateUpdateParams" } } ], "responses": { "200": { "description": "Шаблон инвойса модифицирован.", "schema": { "$ref": "#/definitions/InvoiceTemplate" } }, "400": { "description": "Ошибочные данные для изменения шаблона", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPartyStatus", "invalidShopStatus", "invalidInvoiceCart", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid party status" } } } }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "description": "Удалить шаблон инвойса.", "tags": [ "InvoiceTemplates" ], "operationId": "deleteInvoiceTemplate", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceTemplateID" } ], "responses": { "204": { "description": "Шаблон инвойса удален." }, "400": { "description": "Ошибочные данные для удаления шаблона", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPartyStatus", "invalidShopStatus" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid party status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoice-templates/{invoiceTemplateID}/invoices": { "post": { "description": "Создать новый инвойс по шаблону.", "tags": [ "InvoiceTemplates" ], "operationId": "createInvoiceWithTemplate", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceTemplateID" }, { "name": "invoiceParamsWithTemplate", "description": "Параметры создаваемого инвойса", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InvoiceParamsWithTemplate" } } ], "responses": { "201": { "description": "Инвойс создан", "schema": { "$ref": "#/definitions/InvoiceAndToken" } }, "400": { "description": "Ошибочные данные для создания инвойса", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPartyStatus", "invalidShopStatus", "invalidRequest", "invoiceTermsViolated" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid party status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoice-templates/{invoiceTemplateID}/payment-methods": { "get": { "description": "Получить доступные для инвойса методы оплаты по шаблону инвойса.", "tags": [ "InvoiceTemplates" ], "operationId": "getInvoicePaymentMethodsByTemplateID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceTemplateID" } ], "responses": { "200": { "description": "Список методов оплаты", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentMethod" } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices": { "post": { "description": "Создать новый инвойс.", "tags": [ "Invoices" ], "operationId": "createInvoice", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "invoiceParams", "description": "Параметры создаваемого инвойса", "in": "body", "required": true, "schema": { "$ref": "#/definitions/InvoiceParams" } } ], "responses": { "201": { "description": "Инвойс создан", "schema": { "$ref": "#/definitions/InvoiceAndToken" } }, "400": { "description": "Ошибочные данные для создания инвойса", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidShopID", "invalidRequest", "invalidPartyStatus", "invalidShopStatus", "invalidInvoiceCart", "invalidInvoiceCost", "invoiceTermsViolated" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Shop not found" } } } } } } }, "/processing/invoices/{invoiceID}": { "get": { "description": "Получить данные инвойса по его идентификатору.", "tags": [ "Invoices" ], "operationId": "getInvoiceByID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" } ], "responses": { "200": { "description": "Данные инвойса", "schema": { "$ref": "#/definitions/Invoice" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/access-tokens": { "post": { "operationId": "createInvoiceAccessToken", "description": "Создать новый токен для доступа к указанному инвойсу.", "tags": [ "Invoices" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" } ], "responses": { "201": { "description": "Токен для доступа к инвойсу создан.", "schema": { "$ref": "#/definitions/AccessToken" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/events": { "get": { "description": "Получить историю указанного инвойса в виде набора событий.", "tags": [ "Invoices" ], "operationId": "getInvoiceEvents", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "name": "limit", "in": "query", "description": "Лимит выборки", "required": true, "type": "integer", "format": "int32", "minimum": 1 }, { "name": "eventID", "in": "query", "description": "Идентификатор события.\n\nВсе события, возникшие в системе _после_ указанного, попадут в выборку.\n", "required": false, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "Набор событий", "schema": { "type": "array", "items": { "$ref": "#/definitions/InvoiceEvent" } } }, "400": { "description": "Ошибочные данные для запроса истории", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/fulfill": { "post": { "description": "Погасить указанный инвойс.", "tags": [ "Invoices" ], "operationId": "fulfillInvoice", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "name": "fulfillInvoice", "in": "body", "description": "Произвольная причина совершения операции", "required": true, "schema": { "$ref": "#/definitions/Reason" } } ], "responses": { "204": { "description": "Инвойс погашен" }, "400": { "description": "Ошибка погашения инвойса", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidInvoiceStatus", "invalidPartyStatus", "invalidShopStatus" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid invoice status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payment-methods": { "get": { "description": "Получить доступные для инвойса методы оплаты.", "tags": [ "Invoices" ], "operationId": "getInvoicePaymentMethods", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" } ], "responses": { "200": { "description": "Список методов оплаты", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentMethod" } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payments": { "get": { "description": "Получить все платежи по указанному инвойсу.", "tags": [ "Payments" ], "operationId": "getPayments", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" } ], "responses": { "200": { "description": "Данные платежей по инвойсу", "schema": { "type": "array", "items": { "$ref": "#/definitions/Payment" } } }, "404": { "$ref": "#/responses/NotFound" } } }, "post": { "description": "Создать новый платеж по указанному инвойсу.", "tags": [ "Payments" ], "operationId": "createPayment", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "name": "paymentParams", "description": "Параметры создаваемого платежа", "in": "body", "required": true, "schema": { "$ref": "#/definitions/PaymentParams" } } ], "responses": { "201": { "description": "Платёж создан", "schema": { "$ref": "#/definitions/Payment" } }, "400": { "description": "Ошибочные данные для запуска платежа", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidInvoiceStatus", "invoicePaymentPending", "invalidRequest", "invalidPartyStatus", "invalidShopStatus", "invalidPaymentToolToken", "invalidPaymentSession" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid invoice status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payments/{paymentID}": { "get": { "description": "Получить данные платежа по указанному инвойсу.", "tags": [ "Payments" ], "operationId": "getPaymentByID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "$ref": "#/parameters/paymentID" } ], "responses": { "200": { "description": "Данные платежа", "schema": { "$ref": "#/definitions/Payment" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payments/{paymentID}/cancel": { "post": { "description": "Отменить указанный платеж.", "tags": [ "Payments" ], "operationId": "cancelPayment", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "$ref": "#/parameters/paymentID" }, { "name": "cancelPayment", "in": "body", "description": "Произвольная причина совершения операции", "required": true, "schema": { "$ref": "#/definitions/Reason" } } ], "responses": { "202": { "description": "Запрос на отмену платежа принят" }, "400": { "description": "Ошибка отмены платежа", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPaymentStatus", "operationNotPermitted", "invalidPartyStatus", "invalidShopStatus", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid payment status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payments/{paymentID}/capture": { "post": { "description": "Подтвердить указанный платеж.", "tags": [ "Payments" ], "operationId": "capturePayment", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "$ref": "#/parameters/paymentID" }, { "name": "capturePayment", "in": "body", "description": "Произвольная причина совершения операции", "required": true, "schema": { "$ref": "#/definitions/Reason" } } ], "responses": { "202": { "description": "Запрос на подтверждение платежа принят" }, "400": { "description": "Ошибка подтверждения платежа", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidPaymentStatus", "operationNotPermitted", "invalidPartyStatus", "invalidShopStatus", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid payment status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payments/{paymentID}/refunds": { "get": { "description": "Получить все возвраты указанного платежа.", "tags": [ "Payments" ], "operationId": "getRefunds", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "$ref": "#/parameters/paymentID" } ], "responses": { "200": { "description": "Данные возвратов по платежу", "schema": { "type": "array", "items": { "$ref": "#/definitions/Refund" } } }, "404": { "$ref": "#/responses/NotFound" } } }, "post": { "description": "Создать возврат указанного платежа", "tags": [ "Payments" ], "operationId": "createRefund", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "$ref": "#/parameters/paymentID" }, { "name": "refundParams", "description": "Параметры создаваемого возврата платежа", "in": "body", "required": true, "schema": { "$ref": "#/definitions/RefundParams" } } ], "responses": { "201": { "description": "Возврат создан", "schema": { "$ref": "#/definitions/Refund" } }, "400": { "description": "Ошибочные данные для возврата", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "operationNotPermitted", "invalidPaymentStatus", "insufficentAccountBalance", "invoicePaymentAmountExceeded", "inconsistentRefundCurrency", "invalidRequest", "invalidPartyStatus", "invalidShopStatus", "invalidContractStatus" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Operation not permitted" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/payments/{paymentID}/refunds/{refundID}": { "get": { "description": "Получить данные определённого возврата указанного платежа.", "tags": [ "Payments" ], "operationId": "getRefundByID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "$ref": "#/parameters/paymentID" }, { "$ref": "#/parameters/refundID" } ], "responses": { "200": { "description": "Данные возврата", "schema": { "$ref": "#/definitions/Refund" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/invoices/{invoiceID}/rescind": { "post": { "description": "Перевести инвойс в состояние \"Отменен\" со статусом \"Аннулирован\".", "tags": [ "Invoices" ], "operationId": "rescindInvoice", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/invoiceID" }, { "name": "rescindInvoice", "in": "body", "description": "Произвольная причина совершения операции", "required": true, "schema": { "$ref": "#/definitions/Reason" } } ], "responses": { "204": { "description": "Инвойс аннулирован" }, "400": { "description": "Ошибка отмены инвойса", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidInvoiceStatus", "invoicePaymentPending", "invalidPartyStatus", "invalidShopStatus" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Invalid invoice status" } } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/me": { "get": { "tags": [ "Parties" ], "operationId": "getMyParty", "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "200": { "description": "Get my party", "schema": { "$ref": "#/definitions/Party" } } } } }, "/processing/me/activate": { "put": { "description": "Activate my party", "operationId": "activateMyParty", "tags": [ "Parties" ], "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "204": { "description": "Party activated" } } } }, "/processing/me/suspend": { "put": { "description": "Suspend my party", "operationId": "suspendMyParty", "tags": [ "Parties" ], "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "204": { "description": "Party suspended" } } } }, "/processing/payment-institutions": { "get": { "description": "Получить список платёжных организаций", "tags": [ "PaymentInstitutions" ], "operationId": "getPaymentInstitutions", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/residence" }, { "name": "realm", "in": "query", "required": false, "type": "string", "enum": [ "test", "live" ] } ], "responses": { "200": { "description": "List of payment institutions", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentInstitution" } } } } } }, "/processing/payment-institutions/{paymentInstitutionID}": { "get": { "description": "Получить данные платёжной организации по ее ID", "tags": [ "PaymentInstitutions" ], "operationId": "getPaymentInstitutionByRef", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/paymentInstitutionID" } ], "responses": { "200": { "description": "Payment institution found", "schema": { "$ref": "#/definitions/PaymentInstitution" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/payment-institutions/{paymentInstitutionID}/terms/payments": { "get": { "description": "Получить условия проведения платежей для платёжной организации", "tags": [ "PaymentInstitutions" ], "operationId": "getPaymentInstitutionPaymentTerms", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/paymentInstitutionID" } ], "responses": { "200": { "description": "Payment institution terms calculated", "schema": { "$ref": "#/definitions/PaymentTerms" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/payment-institutions/{paymentInstitutionID}/terms/payouts/methods": { "get": { "description": "Получить cпособы вывода средств для платёжной организации", "tags": [ "PaymentInstitutions" ], "operationId": "getPaymentInstitutionPayoutMethods", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/paymentInstitutionID" }, { "name": "currency", "in": "query", "required": false, "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" } ], "responses": { "200": { "description": "Способ вывода средств", "schema": { "type": "array", "items": { "type": "string", "enum": [ "BankAccount", "InternationalBankAccount" ] } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/payment-institutions/{paymentInstitutionID}/terms/payouts/schedules": { "get": { "description": "Получить доступные расписания вывода средств для платёжной организации", "tags": [ "PaymentInstitutions" ], "operationId": "getPaymentInstitutionPayoutSchedules", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/paymentInstitutionID" }, { "name": "currency", "in": "query", "required": false, "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, { "name": "payoutMethod", "in": "query", "required": false, "description": "Способ вывода средств", "type": "string", "enum": [ "BankAccount", "InternationalBankAccount" ] } ], "responses": { "200": { "description": "Идентификаторы расписаний выводов", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/payment-resources": { "post": { "description": "Создать новый одноразовый токен платежного средства, предоставленного плательщиком, а\nтакже новую уникальную платежную сессию.\nТокен платежного средства и идентификатор сессии необходим для создания\nплатежа по инвойсу и имеет ограниченное время жизни.\n", "tags": [ "Tokens" ], "operationId": "createPaymentResource", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "paymentResource", "description": "Данные для создания платежного средства", "in": "body", "required": true, "schema": { "$ref": "#/definitions/PaymentResourceParams" } } ], "responses": { "201": { "description": "Токен и сессия созданы", "schema": { "$ref": "#/definitions/PaymentResourceResult" } }, "400": { "description": "Ошибочные данные для токенизации", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Card data is invalid" } } } } } } }, "/processing/schedules/{scheduleID}": { "get": { "description": "Получить данные расписания выводов по ее ID", "tags": [ "Payouts" ], "operationId": "getScheduleByRef", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "scheduleID", "in": "path", "description": "Schedule reference", "required": true, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "Schedule found", "schema": { "$ref": "#/definitions/Schedule" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/shops": { "get": { "description": "Get all shops", "operationId": "getShops", "tags": [ "Shops" ], "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "200": { "description": "List of shops", "schema": { "type": "array", "items": { "$ref": "#/definitions/Shop" } } } } } }, "/processing/shops/{shopID}": { "get": { "description": "Get shop by id", "operationId": "getShopByID", "tags": [ "Shops" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" } ], "responses": { "200": { "description": "Shop found", "schema": { "$ref": "#/definitions/Shop" } }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/shops/{shopID}/activate": { "put": { "description": "Activate shop", "operationId": "activateShop", "tags": [ "Shops" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" } ], "responses": { "204": { "description": "Shop activated" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/shops/{shopID}/suspend": { "put": { "description": "Приостановить действие магазина. Этот тип заявок обрабатывается платформой\nавтоматически и исполняется сразу же после отправки.\n", "operationId": "suspendShop", "tags": [ "Shops" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" } ], "responses": { "204": { "description": "Shop suspended" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/processing/webhooks": { "post": { "description": "Установить новый webhook.", "tags": [ "Webhooks" ], "operationId": "createWebhook", "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "webhookParams", "description": "Параметры устанавливаемого webhook'а", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Webhook" } } ], "responses": { "201": { "description": "Webhook установлен", "schema": { "$ref": "#/definitions/Webhook" } }, "400": { "description": "Ошибочные данные webhook'а", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidShopID" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Shop not found" } } } } } }, "get": { "description": "Получить набор установленных webhook'ов.", "tags": [ "Webhooks" ], "operationId": "getWebhooks", "parameters": [ { "$ref": "#/parameters/requestID" } ], "responses": { "200": { "description": "Набор webhook'ов", "schema": { "type": "array", "items": { "$ref": "#/definitions/Webhook" } } } } } }, "/processing/webhooks/{webhookID}": { "get": { "description": "Получить webhook по его идентификатору.", "tags": [ "Webhooks" ], "operationId": "getWebhookByID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/webhookID" } ], "responses": { "200": { "description": "Данные webhook'а", "schema": { "$ref": "#/definitions/Webhook" } }, "404": { "$ref": "#/responses/NotFound" } } }, "delete": { "description": "Снять указанный webhook.", "tags": [ "Webhooks" ], "operationId": "deleteWebhookByID", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/webhookID" } ], "responses": { "204": { "description": "Webhook успешно снят" }, "404": { "$ref": "#/responses/NotFound" } } } }, "/reference/geo/location/names": { "get": { "description": "Получить локализованные названия геопозиций плательщиков по их\nидентификаторам.\n", "operationId": "getLocationsNames", "tags": [ "Geo" ], "parameters": [ { "$ref": "#/parameters/requestID" }, { "name": "language", "in": "query", "description": "Язык для локализации", "required": true, "type": "string" }, { "name": "geoIDs", "in": "query", "description": "Идентификаторы геопозиций", "required": true, "type": "array", "collectionFormat": "csv", "items": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "Locations Names", "schema": { "type": "array", "items": { "$ref": "#/definitions/LocationName" } } }, "400": { "description": "Неверные данные запроса геопозиций", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } } } } }, "/shops/{shopID}/reports": { "get": { "description": "Получить список отчетов по данному магазину за период", "tags": [ "Reports" ], "operationId": "getReports", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/fromTime" }, { "$ref": "#/parameters/toTime" } ], "responses": { "200": { "description": "Найденные отчеты", "schema": { "type": "array", "items": { "$ref": "#/definitions/Report" } } }, "400": { "description": "Ошибочные данные для получения", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "limitExceeded", "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string", "example": "Max limit: 1000" } } } } } } }, "/shops/{shopID}/reports/{reportID}/files/{fileID}/download": { "get": { "description": "Скачать файл", "tags": [ "Reports" ], "operationId": "downloadFile", "parameters": [ { "$ref": "#/parameters/requestID" }, { "$ref": "#/parameters/shopID" }, { "$ref": "#/parameters/reportID" }, { "$ref": "#/parameters/fileID" } ], "responses": { "303": { "description": "See Other", "headers": { "Location": { "type": "string", "description": "URL файла" } } }, "400": { "description": "Ошибочные данные для скачинвания", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "[Код ошибки](#tag/Error-Codes)\n", "type": "string", "enum": [ "invalidRequest" ] }, "message": { "description": "Человекочитаемое описание ошибки", "type": "string" } } } }, "404": { "$ref": "#/responses/NotFound" } } } } }, "definitions": { "AccessToken": { "type": "object", "required": [ "payload" ], "properties": { "payload": { "description": "Содержимое токена для доступа\n", "type": "string" } } }, "Account": { "type": "object", "required": [ "id", "ownAmount", "availableAmount", "currency" ], "properties": { "id": { "type": "integer", "format": "int64" }, "ownAmount": { "type": "integer" }, "availableAmount": { "type": "integer" }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" } } }, "ApplePay": { "type": "object", "allOf": [ { "$ref": "#/definitions/TokenizedCardData" }, { "type": "object", "description": "Платежные данные Apple Pay", "required": [ "merchantID", "paymentToken" ], "properties": { "merchantID": { "description": "Идентификатор мерчанта в Apple Pay", "type": "string" }, "paymentToken": { "description": "Совокупность открытых и зашифрованных платежных данных", "type": "object" } } } ] }, "ArticlesOfAssociation": { "description": "Устав организации", "type": "object", "allOf": [ { "$ref": "#/definitions/RepresentativeDocument" } ] }, "BankAccount": { "description": "Данные расчётного счёта в банковской организации, ведущей деятельность под\nюрисдикцией РФ.\n", "type": "object", "required": [ "account", "bankName", "bankPostAccount", "bankBik" ], "properties": { "account": { "description": "Номер счёта", "type": "string", "pattern": "^\\d{20}$" }, "bankName": { "description": "Наименование юридического лица банковской организации", "type": "string", "maxLength": 100 }, "bankPostAccount": { "type": "string", "pattern": "^\\d{20}$" }, "bankBik": { "description": "БИК банковской организации", "type": "string", "pattern": "^\\d{9}$" } } }, "BankCard": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentMethod" }, { "type": "object", "required": [ "paymentSystems" ], "properties": { "paymentSystems": { "description": "Список платежных систем", "type": "array", "items": { "description": "Платежная система", "type": "string", "enum": [ "visa", "mastercard", "visaelectron", "maestro", "forbrugsforeningen", "dankort", "amex", "dinersclub", "discover", "unionpay", "jcb", "nspkmir", "elo", "rupay", "dummy" ] } }, "tokenProviders": { "description": "Список провайдеров платежных токенов", "type": "array", "items": { "description": "Провайдер платежных токенов", "type": "string", "enum": [ "applepay", "googlepay", "samsungpay" ] } } } } ] }, "BankCardDetails": { "required": [ "cardNumberMask", "paymentSystem" ], "properties": { "cardNumberMask": { "description": "Маскированый номер карты", "type": "string", "pattern": "^\\d{6,8}\\*+\\d{2,4}$" }, "bin": { "description": "BIN банка-эмитента карты", "type": "string", "pattern": "^\\d{6,8}$" }, "lastDigits": { "description": "Последние цифры номера карты", "type": "string", "pattern": "^\\d{2,4}$" }, "paymentSystem": { "description": "Платежная система", "type": "string", "enum": [ "visa", "mastercard", "visaelectron", "maestro", "forbrugsforeningen", "dankort", "amex", "dinersclub", "discover", "unionpay", "jcb", "nspkmir", "elo", "rupay", "dummy" ] }, "tokenProvider": { "description": "Провайдер платежных токенов", "type": "string", "enum": [ "applepay", "googlepay", "samsungpay" ] } } }, "BankCardPaymentSystem": { "description": "Платежная система", "type": "string", "enum": [ "visa", "mastercard", "visaelectron", "maestro", "forbrugsforeningen", "dankort", "amex", "dinersclub", "discover", "unionpay", "jcb", "nspkmir", "elo", "rupay", "dummy" ] }, "BankCardTokenProvider": { "description": "Провайдер платежных токенов", "type": "string", "enum": [ "applepay", "googlepay", "samsungpay" ] }, "BrowserGetRequest": { "type": "object", "allOf": [ { "$ref": "#/definitions/BrowserRequest" }, { "type": "object", "required": [ "uriTemplate" ], "properties": { "uriTemplate": { "description": "Шаблон значения URL для перехода в браузере\n\nШаблон представлен согласно стандарту\n[RFC6570](https://tools.ietf.org/html/rfc6570).\n", "type": "string" } } } ] }, "BrowserPostRequest": { "type": "object", "allOf": [ { "$ref": "#/definitions/BrowserRequest" }, { "type": "object", "required": [ "uriTemplate", "form" ], "properties": { "uriTemplate": { "description": "Шаблон значения URL для отправки формы\n\nШаблон представлен согласно стандарту\n[RFC6570](https://tools.ietf.org/html/rfc6570).\n", "type": "string" }, "form": { "$ref": "#/definitions/UserInteractionForm" } } } ] }, "BrowserRequest": { "type": "object", "discriminator": "requestType", "required": [ "requestType" ], "properties": { "requestType": { "description": "Тип браузерной операции", "type": "string" } } }, "CardData": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentTool" }, { "type": "object", "description": "Банковская карта", "required": [ "cardNumber", "expDate", "cvv" ], "properties": { "cardNumber": { "description": "Номер банковской карты", "type": "string", "pattern": "^\\d{12,19}$" }, "expDate": { "description": "Срок действия банковской карты", "type": "string", "pattern": "^\\d{2}\\/(\\d{2}|\\d{4})$" }, "cvv": { "description": "Код верификации", "type": "string", "pattern": "^\\d{3,4}$" }, "cardHolder": { "description": "Имя держателя карты", "type": "string", "minLength": 1, "maxLength": 100 } } } ] }, "Category": { "type": "object", "required": [ "name", "categoryID" ], "properties": { "name": { "type": "string", "maxLength": 100 }, "categoryID": { "type": "integer", "format": "int32" }, "description": { "type": "string", "maxLength": 1000 } } }, "Claim": { "type": "object", "discriminator": "status", "required": [ "id", "revision", "createdAt", "status", "changeset" ], "properties": { "id": { "description": "Идентификатор заявки", "type": "integer", "format": "int64" }, "revision": { "description": "Версия заявки", "type": "integer", "format": "int32" }, "createdAt": { "description": "Дата создания", "type": "string", "format": "date-time" }, "updatedAt": { "description": "Дата изменения", "type": "string", "format": "date-time" }, "status": { "description": "Статус заявки", "type": "string" }, "changeset": { "$ref": "#/definitions/ClaimChangeset" } } }, "ClaimAccepted": { "type": "object", "allOf": [ { "$ref": "#/definitions/Claim" } ] }, "ClaimChangeset": { "description": "Набор изменений данных участника", "type": "array", "items": { "$ref": "#/definitions/PartyModification" } }, "ClaimDenied": { "type": "object", "allOf": [ { "$ref": "#/definitions/Claim" }, { "type": "object", "required": [ "reason" ], "properties": { "reason": { "description": "Причина отклонения заявки", "type": "string", "maxLength": 1000 } } } ] }, "ClaimPending": { "type": "object", "allOf": [ { "$ref": "#/definitions/Claim" } ] }, "ClaimRevoked": { "type": "object", "allOf": [ { "$ref": "#/definitions/Claim" }, { "type": "object", "required": [ "reason" ], "properties": { "reason": { "description": "Причина отзыва заявки", "type": "string", "maxLength": 1000 } } } ] }, "ClientInfo": { "description": "Данные клиентского устройства плательщика", "type": "object", "required": [ "fingerprint" ], "properties": { "ip": { "description": "IP-адрес плательщика", "type": "string", "format": "ip-address", "maxLength": 45, "readOnly": true }, "fingerprint": { "description": "Уникальный отпечаток user agent'а плательщика", "type": "string", "maxLength": 1000 } } }, "ContactInfo": { "description": "Контактные данные", "type": "object", "properties": { "email": { "description": "Адрес электронной почты", "type": "string", "format": "email", "maxLength": 100 }, "phoneNumber": { "description": "Номер мобильного телефона с международным префиксом согласно\n[E.164](https://en.wikipedia.org/wiki/E.164).\n", "type": "string", "format": "^\\+\\d{4,15}$" } } }, "Contract": { "description": "Данные договора с участником", "type": "object", "required": [ "id", "createdAt", "status", "contractor", "paymentInstitutionID" ], "properties": { "id": { "description": "Идентификатор договора", "type": "string" }, "createdAt": { "description": "Дата и время создания договора", "type": "string", "format": "date-time" }, "status": { "description": "Статус договора", "type": "string", "enum": [ "active", "terminated" ] }, "validSince": { "description": "Дата и время вступления договора в силу", "type": "string", "format": "date-time" }, "validUntil": { "description": "Дата и время прекращения силы договора", "type": "string", "format": "date-time" }, "terminatedAt": { "description": "Дата и время расторжения договора", "type": "string", "format": "date-time" }, "contractor": { "$ref": "#/definitions/Contractor" }, "legalAgreement": { "$ref": "#/definitions/LegalAgreement" }, "paymentInstitutionID": { "type": "integer", "format": "int32" }, "reportingPreferences": { "$ref": "#/definitions/ReportingPreferences" } } }, "ContractAdjustment": { "description": "Данные поправки к договору", "type": "object", "required": [ "id", "createdAt" ], "properties": { "id": { "description": "Идентификатор поправки", "type": "string" }, "createdAt": { "description": "Дата и время создания поправки", "type": "string", "format": "date-time" }, "validSince": { "description": "Дата и время вступления поправки в силу", "type": "string", "format": "date-time" }, "validUntil": { "description": "Дата и время прекращения силы поправки", "type": "string", "format": "date-time" } } }, "ContractAdjustmentCreation": { "description": "Создание поправки к договору", "type": "object", "allOf": [ { "$ref": "#/definitions/ContractModification" }, { "type": "object", "properties": { "adjustmentID": { "type": "string" } } } ] }, "ContractCreation": { "description": "Создание нового договора", "type": "object", "allOf": [ { "$ref": "#/definitions/ContractModification" }, { "type": "object", "required": [ "contractor" ], "properties": { "contractor": { "$ref": "#/definitions/Contractor" }, "paymentInstitutionID": { "type": "integer", "format": "int32" } } } ] }, "ContractLegalAgreementBinding": { "description": "Привязка юридического соглашения", "type": "object", "allOf": [ { "$ref": "#/definitions/ContractModification" }, { "type": "object", "required": [ "legalAgreement" ], "properties": { "legalAgreement": { "$ref": "#/definitions/LegalAgreement" } } } ] }, "ContractModification": { "description": "Изменение или создание договора", "type": "object", "allOf": [ { "$ref": "#/definitions/PartyModification" }, { "type": "object", "discriminator": "contractModificationType", "required": [ "contractID", "contractModificationType" ], "properties": { "contractID": { "description": "Идентификатор договора", "type": "string", "maxLength": 40, "minLength": 1 }, "contractModificationType": { "type": "string", "enum": [ "ContractCreation", "ContractTermination", "ContractLegalAgreementBinding", "ContractAdjustmentCreation", "ContractPayoutToolCreation", "ContractReportingPreferencesChange" ] } } } ] }, "Contractor": { "description": "Данные лица, выступающего стороной договора", "type": "object", "discriminator": "contractorType", "required": [ "contractorType" ], "properties": { "contractorType": { "description": "Тип лица, выступающего стороной договора", "type": "string", "enum": [ "LegalEntity", "PrivateEntity", "RegisteredUser" ] } } }, "ContractPayoutToolCreation": { "description": "Создание инструмента вывода в рамках договора", "type": "object", "allOf": [ { "$ref": "#/definitions/ContractModification" }, { "allOf": [ { "type": "object", "required": [ "payoutToolID" ], "properties": { "payoutToolID": { "description": "Идентификатор средства вывода", "type": "string", "maxLength": 40, "minLength": 1 } } }, { "$ref": "#/definitions/PayoutToolParams" } ] } ] }, "ContractReportingPreferencesChange": { "description": "Изменение настроек выгрузки автоматической отчетности", "type": "object", "allOf": [ { "$ref": "#/definitions/ContractModification" }, { "$ref": "#/definitions/ReportingPreferences" } ] }, "ContractTermination": { "description": "Расторжение договора", "type": "object", "allOf": [ { "$ref": "#/definitions/ContractModification" }, { "type": "object", "properties": { "reason": { "description": "Причина расторжения", "type": "string", "maxLength": 1000 } } } ] }, "CostAmountRange": { "type": "object", "required": [ "upperBound", "lowerBound" ], "properties": { "upperBound": { "description": "Верхняя (включительная) граница стоимости товаров или услуг.", "type": "integer", "format": "int64", "minimum": 1 }, "lowerBound": { "description": "Нижняя (включительная) граница стоимости товаров или услуг.", "type": "integer", "format": "int64", "minimum": 1 } } }, "CryptoCurrency": { "description": "Тип криптовалюты", "type": "string", "enum": [ "bitcoin", "litecoin", "bitcoinCash", "ripple", "ethereum", "zcash" ] }, "CryptoCurrencyTransferRequest": { "type": "object", "allOf": [ { "$ref": "#/definitions/UserInteraction" }, { "type": "object", "required": [ "cryptoAddress", "symbolicCode", "cryptoAmount" ], "properties": { "cryptoAddress": { "description": "Адрес криптовалютного кошелька", "type": "string", "example": "2NBjv8rkUViGXAQar7n2BsdZjNQgupKtdPJ" }, "symbolicCode": { "description": "Символьный код криптовалюты", "type": "string", "example": "BTC" }, "cryptoAmount": { "description": "Сумма денежных средств в криптовалюте", "type": "string", "example": "0.0012", "pattern": "^[0-9]+[.][0-9]+$" } } } ] }, "CryptoWallet": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentMethod" }, { "$ref": "#/definitions/CryptoWalletDetails" } ] }, "CryptoWalletData": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentTool" }, { "$ref": "#/definitions/CryptoWalletDetails" } ] }, "CryptoWalletDetails": { "required": [ "cryptoCurrency" ], "properties": { "cryptoCurrency": { "description": "Тип криптовалюты", "type": "string", "enum": [ "bitcoin", "litecoin", "bitcoinCash", "ripple", "ethereum", "zcash" ] } } }, "Currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "Customer": { "type": "object", "required": [ "shopID", "contactInfo", "metadata" ], "properties": { "id": { "description": "Идентификатор плательщика", "type": "string", "readOnly": true }, "shopID": { "description": "Идентификатор магазина", "type": "string" }, "contactInfo": { "$ref": "#/definitions/ContactInfo" }, "status": { "description": "Статус плательщика", "type": "string", "readOnly": true, "enum": [ "ready", "unready" ] }, "metadata": { "description": "Связанные с плательщиком метаданные", "type": "object" } } }, "CustomerAndToken": { "type": "object", "required": [ "customer", "customerAccessToken" ], "properties": { "customer": { "$ref": "#/definitions/Customer" }, "customerAccessToken": { "$ref": "#/definitions/AccessToken" } } }, "CustomerBinding": { "type": "object", "allOf": [ { "type": "object", "required": [ "id", "paymentResource" ], "properties": { "id": { "description": "Идентификатор привязки", "type": "string" }, "paymentResource": { "$ref": "#/definitions/PaymentResource" } } }, { "$ref": "#/definitions/CustomerBindingStatus" } ] }, "CustomerBindingError": { "description": "Описание ошибки, возникшей в процессе привязки", "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string" }, "message": { "type": "string" } } }, "CustomerBindingInteractionRequested": { "type": "object", "allOf": [ { "$ref": "#/definitions/CustomerChange" }, { "type": "object", "description": "Требование провести взаимодействие с плательщиком для продолжения процесса\nпривязки\n", "required": [ "customerBindingID", "userInteraction" ], "properties": { "customerBindingID": { "description": "Идентификатор привязки", "type": "string" }, "userInteraction": { "$ref": "#/definitions/UserInteraction" } } } ] }, "CustomerBindingParams": { "type": "object", "required": [ "paymentResource" ], "properties": { "paymentResource": { "$ref": "#/definitions/PaymentResource" } } }, "CustomerBindingStarted": { "type": "object", "allOf": [ { "$ref": "#/definitions/CustomerChange" }, { "type": "object", "required": [ "customerBinding" ], "properties": { "customerBinding": { "$ref": "#/definitions/CustomerBinding" } } } ] }, "CustomerBindingStatus": { "type": "object", "required": [ "status" ], "properties": { "status": { "description": "Статус привязки", "type": "string", "enum": [ "pending", "succeeded", "failed" ] }, "error": { "$ref": "#/definitions/CustomerBindingError" } } }, "CustomerBindingStatusChanged": { "type": "object", "allOf": [ { "$ref": "#/definitions/CustomerChange" }, { "$ref": "#/definitions/CustomerBindingStatus" }, { "type": "object", "required": [ "customerBindingID" ], "properties": { "customerBindingID": { "type": "string" } } } ] }, "CustomerChange": { "type": "object", "discriminator": "changeType", "required": [ "changeType" ], "properties": { "changeType": { "type": "string", "enum": [ "CustomerBindingStarted", "CustomerBindingStatusChanged", "CustomerBindingInteractionRequested" ] } } }, "CustomerEvent": { "type": "object", "required": [ "id", "createdAt", "changes" ], "properties": { "id": { "type": "integer" }, "createdAt": { "type": "string", "format": "date-time" }, "changes": { "type": "array", "items": { "$ref": "#/definitions/CustomerChange" } } } }, "CustomerPayer": { "type": "object", "allOf": [ { "$ref": "#/definitions/Payer" }, { "type": "object", "description": "Многоразовое платежное средство", "required": [ "customerID" ], "properties": { "customerID": { "description": "Идентификатор плательщика", "type": "string", "maxLength": 40, "minLength": 1 } } } ] }, "CustomersTopic": { "description": "Область охвата, включающая события по плательщикам в рамках определённого\nмагазина\n", "allOf": [ { "$ref": "#/definitions/WebhookScope" }, { "type": "object", "required": [ "shopID", "eventTypes" ], "properties": { "shopID": { "description": "Идентификатор магазина", "type": "string", "maxLength": 40, "minLength": 1 }, "eventTypes": { "description": "Набор типов событий плательщиков, о которых следует оповещать", "type": "array", "items": { "type": "string", "enum": [ "CustomerCreated", "CustomerDeleted", "CustomerReady", "CustomerBindingStarted", "CustomerBindingSucceeded", "CustomerBindingFailed" ] } } } } ] }, "DigitalWallet": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentMethod" }, { "type": "object", "required": [ "providers" ], "properties": { "providers": { "description": "Список провайдеров электронных денежных средств", "type": "array", "items": { "description": "Провайдер электронных денежных средств", "type": "string", "enum": [ "qiwi" ] } } } } ] }, "DigitalWalletData": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentTool" }, { "type": "object", "description": "Электронный кошелёк", "discriminator": "digitalWalletType", "properties": { "digitalWalletType": { "type": "string", "enum": [ "DigitalWalletQIWI" ] } } } ] }, "DigitalWalletDetails": { "discriminator": "digitalWalletDetailsType", "required": [ "digitalWalletDetailsType" ], "properties": { "digitalWalletDetailsType": { "type": "string", "enum": [ "DigitalWalletDetailsQIWI" ] } } }, "DigitalWalletDetailsQIWI": { "allOf": [ { "$ref": "#/definitions/DigitalWalletDetails" }, { "type": "object", "required": [ "phoneNumberMask" ], "properties": { "phoneNumberMask": { "type": "string", "description": "Маскированный номер телефона плательщика в международном формате, выступающий\nв роли идентификатора кошелька Visa QIWI Wallet.\n", "pattern": "^\\+\\d\\*{1,10}\\d{2,4}$", "example": "+7******3210" } } } ] }, "DigitalWalletProvider": { "description": "Провайдер электронных денежных средств", "type": "string", "enum": [ "qiwi" ] }, "DigitalWalletQIWI": { "allOf": [ { "$ref": "#/definitions/DigitalWalletData" }, { "type": "object", "required": [ "phoneNumber" ], "properties": { "phoneNumber": { "type": "string", "description": "Номер телефона плательщика в международном формате, выступающий в роли\nидентификатора кошелька Visa QIWI Wallet.\n", "pattern": "^\\+\\d{4,15}$", "example": "+79876543210" } } } ] }, "FileMeta": { "type": "object", "required": [ "id", "filename" ], "properties": { "id": { "description": "Идентификатор файла", "type": "string", "maxLength": 40, "minLength": 1 }, "filename": { "description": "Имя файла", "type": "string", "maxLength": 1000, "minLength": 1 }, "signatures": { "type": "object", "description": "Сигнатуры файла", "required": [ "md5", "sha256" ], "properties": { "md5": { "description": "MD5 содержимого файла", "type": "string", "maxLength": 32, "minLength": 32 }, "sha256": { "description": "SHA256 содержимого файла", "type": "string", "maxLength": 64, "minLength": 64 } } } } }, "GeneralError": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string" } } }, "GeoLocationInfo": { "description": "Информация о геопозиции", "type": "object", "required": [ "cityGeoID", "countryGeoID" ], "properties": { "cityGeoID": { "type": "integer", "format": "int32" }, "countryGeoID": { "type": "integer", "format": "int32" } } }, "GooglePay": { "type": "object", "allOf": [ { "$ref": "#/definitions/TokenizedCardData" }, { "type": "object", "description": "Платежные данные Google Pay", "required": [ "gatewayMerchantID", "paymentToken" ], "properties": { "gatewayMerchantID": { "description": "Идентификатор мерчанта в системе RBKmoney", "type": "string" }, "paymentToken": { "description": "Совокупность открытых и зашифрованных платежных данных", "type": "object" } } } ] }, "InternationalBankAccount": { "description": "Данные международного банковского счета", "type": "object", "required": [ "accountHolder", "bankName", "bankAddress", "iban", "bic" ], "properties": { "accountHolder": { "description": "Держатель счёта", "type": "string", "maxLength": 100 }, "bankName": { "description": "Наименование юридического лица банковской организации", "type": "string", "maxLength": 100 }, "bankAddress": { "description": "Адрес юридического лица банковской организации", "type": "string", "maxLength": 150 }, "iban": { "description": "International Bank Account Number [ISO 13616](https://en.wikipedia.org/wiki/International_Bank_Account_Number)\n", "type": "string", "pattern": "^[A-Z0-9]{3,34}$", "example": "GR1601101250000000012300695" }, "bic": { "description": "Business Identifier Code [ISO 9362](https://en.wikipedia.org/wiki/ISO_9362)\n", "type": "string", "pattern": "^([A-Z0-9]{8}|[A-Z0-9]{11})$", "example": "DEUTDEFF500" }, "localBankCode": { "description": "Национальный код банка", "type": "string", "maxLength": 100 } } }, "InternationalLegalEntity": { "description": "Международное юридическое лицо", "type": "object", "allOf": [ { "$ref": "#/definitions/LegalEntity" }, { "type": "object", "required": [ "legalName", "registeredOffice" ], "properties": { "legalName": { "description": "Наименование", "type": "string" }, "tradingName": { "description": "Торговое наименование (если применимо)", "type": "string" }, "registeredOffice": { "description": "Адрес места регистрации", "type": "string" }, "principalPlaceOfBusiness": { "description": "Адрес места нахождения (если отличается от регистрации)", "type": "string" }, "registeredNumber": { "description": "Регистрационный номер", "type": "string", "maxLength": 100 } } } ] }, "Invoice": { "type": "object", "allOf": [ { "type": "object", "required": [ "id", "shopID", "createdAt", "dueDate", "amount", "currency", "product", "metadata" ], "properties": { "id": { "description": "Идентификатор инвойса", "type": "string" }, "shopID": { "description": "Идентификатор магазина", "type": "string" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "dueDate": { "description": "Дата и время окончания действия", "type": "string", "format": "date-time" }, "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,\nнапример в копейках в случае указания российских рублей в качестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "product": { "description": "Наименование предлагаемых товаров или услуг", "type": "string", "maxLength": 100 }, "description": { "description": "Описание предлагаемых товаров или услуг", "type": "string", "maxLength": 1000 }, "invoiceTemplateID": { "description": "Идентификатор шаблона (для инвойсов, созданных по шаблону).", "type": "string" }, "cart": { "$ref": "#/definitions/InvoiceCart" }, "metadata": { "description": "Связанные с инвойсом метаданные", "type": "object" } } }, { "$ref": "#/definitions/InvoiceStatus" } ] }, "InvoiceAndToken": { "type": "object", "required": [ "invoice", "invoiceAccessToken" ], "properties": { "invoice": { "$ref": "#/definitions/Invoice" }, "invoiceAccessToken": { "$ref": "#/definitions/AccessToken" } } }, "InvoiceCart": { "description": "Корзина с набором позиций продаваемых товаров или услуг\n", "type": "array", "minItems": 1, "maxItems": 100, "items": { "$ref": "#/definitions/InvoiceLine" } }, "InvoiceChange": { "type": "object", "discriminator": "changeType", "required": [ "changeType" ], "properties": { "changeType": { "type": "string", "enum": [ "InvoiceCreated", "InvoiceStatusChanged", "PaymentStarted", "PaymentStatusChanged", "PaymentInteractionRequested", "RefundStarted", "RefundStatusChanged" ] } } }, "InvoiceCreated": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "type": "object", "required": [ "invoice" ], "properties": { "invoice": { "$ref": "#/definitions/Invoice" } } } ] }, "InvoiceEvent": { "type": "object", "required": [ "id", "createdAt", "changes" ], "properties": { "id": { "type": "integer" }, "createdAt": { "type": "string", "format": "date-time" }, "changes": { "type": "array", "items": { "$ref": "#/definitions/InvoiceChange" } } } }, "InvoiceLine": { "description": "Позиция товара или услуги", "type": "object", "required": [ "product", "quantity", "price" ], "properties": { "product": { "description": "Описание предлагаемого товара или услуги", "type": "string", "maxLength": 1000 }, "quantity": { "description": "Количество единиц товаров или услуг, предлагаемых на продажу в этой\nпозиции\n", "type": "integer", "format": "int64", "minimum": 1, "default": 1 }, "price": { "description": "Цена предлагаемого товара или услуги, в минорных денежных единицах, например\nв копейках в случае указания российских рублей в качестве валюты\n", "type": "integer", "format": "int64", "minimum": 1 }, "cost": { "description": "Суммарная стоимость позиции с учётом количества единиц товаров или услуг\n", "type": "integer", "format": "int64", "minimum": 1, "readOnly": true }, "taxMode": { "$ref": "#/definitions/InvoiceLineTaxMode" } } }, "InvoiceLineTaxMode": { "description": "Схема налогообложения предлагаемого товара или услуги.\n\nУказывается, только если предлагаемый товар или услуга облагается налогом.\n", "type": "object", "discriminator": "type", "required": [ "type" ], "properties": { "type": { "description": "Тип схемы налогообложения", "type": "string", "enum": [ "InvoiceLineTaxVAT" ] } } }, "InvoiceLineTaxVAT": { "allOf": [ { "$ref": "#/definitions/InvoiceLineTaxMode" }, { "description": "Налог на добавленную стоимость в юрисдикции РФ", "type": "object", "required": [ "rate" ], "properties": { "rate": { "description": "Ставка налога", "type": "string", "enum": [ "0%", "10%", "18%", "20%", "10/110", "18/118", "20/120" ] } } } ] }, "InvoiceParams": { "type": "object", "required": [ "shopID", "dueDate", "currency", "product", "metadata" ], "properties": { "shopID": { "description": "Идентификатор магазина", "type": "string", "maxLength": 40, "minLength": 1 }, "dueDate": { "description": "Дата и время окончания действия инвойса, после наступления которых его\nуже невозможно будет оплатить\n", "type": "string", "format": "date-time" }, "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,\nнапример в копейках в случае указания российских рублей в качестве валюты.\n\nЕсли стоимость не указана, то стоимостью инвойса будет считаться суммарная\nстоимость позиций в корзине.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "product": { "description": "Наименование предлагаемых товаров или услуг", "type": "string", "maxLength": 100 }, "description": { "description": "Описание предлагаемых товаров или услуг", "type": "string", "maxLength": 1000 }, "cart": { "$ref": "#/definitions/InvoiceCart" }, "metadata": { "description": "Метаданные, которые необходимо связать с инвойсом", "type": "object" } } }, "InvoiceParamsWithTemplate": { "type": "object", "properties": { "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,\nнапример в копейках в случае указания российских рублей в качестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "metadata": { "description": "Метаданные, которые необходимо связать с инвойсом", "type": "object" } } }, "InvoiceSearchResult": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceStatus" }, { "type": "object", "required": [ "id", "shopID", "createdAt", "dueDate", "amount", "currency", "product", "metadata" ], "properties": { "id": { "description": "Идентификатор инвойса", "type": "string" }, "shopID": { "description": "Идентификатор магазина", "type": "string" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "dueDate": { "description": "Дата и время окончания действия", "type": "string", "format": "date-time" }, "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных единицах, например в копейках в случае указания российских рублей в качестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "product": { "description": "Наименование предлагаемых товаров или услуг", "type": "string", "maxLength": 100 }, "description": { "description": "Описание предлагаемых товаров или услуг", "type": "string", "maxLength": 1000 }, "cart": { "$ref": "#/definitions/InvoiceCart" }, "metadata": { "description": "Связанные с инвойсом метаданные", "type": "object" } } } ] }, "InvoiceStatus": { "type": "object", "required": [ "status" ], "properties": { "status": { "description": "Статус инвойса", "type": "string", "enum": [ "unpaid", "cancelled", "paid", "fulfilled" ] }, "reason": { "description": "Причина отмены или погашения инвойса", "type": "string", "maxLength": 1000 } } }, "InvoiceStatusChanged": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "$ref": "#/definitions/InvoiceStatus" } ] }, "InvoicesTopic": { "description": "Область охвата, включающая события по инвойсам в рамках определённого\nмагазина\n", "allOf": [ { "$ref": "#/definitions/WebhookScope" }, { "type": "object", "required": [ "shopID", "eventTypes" ], "properties": { "shopID": { "description": "Идентификатор магазина", "type": "string", "maxLength": 40, "minLength": 1 }, "eventTypes": { "description": "Набор типов событий инвойсов, о которых следует оповещать", "type": "array", "items": { "type": "string", "enum": [ "InvoiceCreated", "InvoicePaid", "InvoiceCancelled", "InvoiceFulfilled", "PaymentStarted", "PaymentProcessed", "PaymentCaptured", "PaymentCancelled", "PaymentRefunded", "PaymentFailed" ] } } } } ] }, "InvoiceTemplate": { "type": "object", "required": [ "id", "shopID", "product", "lifetime", "cost" ], "properties": { "id": { "description": "Идентификатор шаблона инвойса", "type": "string" }, "shopID": { "description": "Идентификатор магазина", "type": "string", "maxLength": 40, "minLength": 1 }, "product": { "description": "Наименование предлагаемых товаров или услуг", "type": "string", "maxLength": 100 }, "description": { "description": "Описание предлагаемых товаров или услуг", "type": "string", "maxLength": 1000 }, "lifetime": { "$ref": "#/definitions/LifetimeInterval" }, "cost": { "$ref": "#/definitions/InvoiceTemplateCost" }, "metadata": { "description": "Метаданные, которые будут связаны с инвойсом, созданным по шаблону, в случае, если иные метаданные не указаны в запросе на создание инвойса.\n", "type": "object" } } }, "InvoiceTemplateAndToken": { "type": "object", "required": [ "invoiceTemplate", "invoiceTemplateAccessToken" ], "properties": { "invoiceTemplate": { "$ref": "#/definitions/InvoiceTemplate" }, "invoiceTemplateAccessToken": { "$ref": "#/definitions/AccessToken" } } }, "InvoiceTemplateCost": { "type": "object", "discriminator": "invoiceTemplateCostType", "description": "Ограничения на стоимость товаров и услуг для инвойсов, генерируемых по\nшаблону.\n", "required": [ "invoiceTemplateCostType" ], "properties": { "invoiceTemplateCostType": { "type": "string" } } }, "InvoiceTemplateCostFixed": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceTemplateCost" }, { "type": "object", "required": [ "currency", "amount" ], "properties": { "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,\nнапример в копейках в случае указания российских рублей в качестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 } } } ] }, "InvoiceTemplateCostRange": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceTemplateCost" }, { "type": "object", "required": [ "currency", "range" ], "properties": { "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "range": { "$ref": "#/definitions/CostAmountRange" } } } ] }, "InvoiceTemplateCostUnlim": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceTemplateCost" } ] }, "InvoiceTemplateCreateParams": { "type": "object", "required": [ "shopID", "product", "lifetime", "cost" ], "properties": { "shopID": { "description": "Идентификатор магазина", "type": "string", "maxLength": 40, "minLength": 1 }, "product": { "description": "Наименование предлагаемых товаров или услуг", "type": "string", "maxLength": 100 }, "description": { "description": "Описание предлагаемых товаров или услуг", "type": "string", "maxLength": 1000 }, "lifetime": { "$ref": "#/definitions/LifetimeInterval" }, "cost": { "$ref": "#/definitions/InvoiceTemplateCost" }, "metadata": { "description": "Метаданные, которые будут связаны с инвойсом, созданным по шаблону, в случае, если иные метаданные не указаны в запросе на создание инвойса.\n", "type": "object" } } }, "InvoiceTemplateUpdateParams": { "type": "object", "properties": { "product": { "description": "Наименование предлагаемых товаров или услуг", "type": "string", "maxLength": 100 }, "description": { "description": "Описание предлагаемых товаров или услуг", "type": "string", "maxLength": 1000 }, "lifetime": { "$ref": "#/definitions/LifetimeInterval" }, "cost": { "$ref": "#/definitions/InvoiceTemplateCost" }, "metadata": { "description": "Метаданные, которые будут связаны с инвойсом, созданным по шаблону, в случае, если иные метаданные не указаны в запросе на создание инвойса.\n", "type": "object" } } }, "LegalAgreement": { "description": "Ключевые данные юридического соглашения", "type": "object", "required": [ "id", "signedAt" ], "properties": { "id": { "description": "Идентификатор юридического соглашения, например номер договора", "type": "string" }, "signedAt": { "description": "Дата и время заключения юридического соглашения", "type": "string", "format": "date-time" }, "validUntil": { "description": "Дата и время окончания действия юридического соглашения", "type": "string", "format": "date-time" } } }, "LegalEntity": { "description": "Юридическое лицо", "allOf": [ { "$ref": "#/definitions/Contractor" }, { "type": "object", "discriminator": "entityType", "required": [ "entityType" ], "properties": { "entityType": { "description": "Тип юридического лица", "type": "string", "enum": [ "RussianLegalEntity", "InternationalLegalEntity" ] } } } ] }, "LifetimeInterval": { "type": "object", "description": "Время жизни инвойса с момента его создания.", "required": [ "days", "months", "years" ], "properties": { "days": { "type": "integer", "format": "int32", "minimum": 0 }, "months": { "type": "integer", "format": "int32", "minimum": 0 }, "years": { "type": "integer", "format": "int32", "minimum": 0 } } }, "LocationName": { "type": "object", "required": [ "geoID", "name" ], "properties": { "geoID": { "type": "integer", "format": "int32" }, "name": { "type": "string" } } }, "LogicError": { "description": "Описание ошибки, возникшей в процессе проведения платежа", "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string" }, "message": { "type": "string" } } }, "Party": { "type": "object", "required": [ "id", "isBlocked", "isSuspended" ], "properties": { "id": { "type": "string" }, "isBlocked": { "type": "boolean" }, "isSuspended": { "type": "boolean" } } }, "PartyModification": { "description": "Единичное изменение данных участника", "type": "object", "discriminator": "partyModificationType", "required": [ "partyModificationType" ], "properties": { "partyModificationType": { "type": "string", "enum": [ "ContractModification", "ShopModification" ] } } }, "Payer": { "type": "object", "discriminator": "payerType", "properties": { "payerType": { "description": "Тип платежного средства", "type": "string" } }, "required": [ "payerType" ] }, "Payment": { "type": "object", "allOf": [ { "type": "object", "required": [ "id", "invoiceID", "createdAt", "amount", "currency", "flow", "payer" ], "properties": { "id": { "description": "Идентификатор платежа", "type": "string" }, "invoiceID": { "description": "Идентификатор инвойса, в рамках которого был создан платеж", "type": "string" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,\nнапример в копейках в случае указания российских рублей в качестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "flow": { "$ref": "#/definitions/PaymentFlow" }, "payer": { "$ref": "#/definitions/Payer" } } }, { "$ref": "#/definitions/PaymentStatus" } ] }, "PaymentConversionStat": { "type": "object", "required": [ "offset", "successfulCount", "totalCount", "conversion" ], "properties": { "offset": { "description": "Смещение сегмента выборки", "type": "integer" }, "successfulCount": { "description": "Количество успешных платежей", "type": "integer" }, "totalCount": { "description": "Общее количество платежей", "type": "integer" }, "conversion": { "description": "Значение конверсии", "type": "number" } } }, "PaymentFlow": { "type": "object", "discriminator": "type", "default": { "type": "PaymentFlowInstant" }, "required": [ "type" ], "properties": { "type": { "description": "Тип процесса выполнения платежа", "type": "string", "enum": [ "PaymentFlowInstant", "PaymentFlowHold" ] } } }, "PaymentFlowHold": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentFlow" }, { "type": "object", "required": [ "onHoldExpiration" ], "properties": { "onHoldExpiration": { "description": "Политика управления удержанием денежных средств", "type": "string", "default": "cancel", "enum": [ "cancel", "capture" ] }, "heldUntil": { "description": "Дата и время, до которого происходит удержание денежных средств", "type": "string", "format": "date-time", "readOnly": true } } } ] }, "PaymentFlowInstant": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentFlow" } ] }, "PaymentGeoStat": { "type": "object", "required": [ "offset", "geoID", "currency", "profit", "revenue" ], "properties": { "offset": { "description": "Смещение сегмента выборки", "type": "integer" }, "geoID": { "description": "Идентификатор геопозиции плательщика", "type": "integer", "format": "int32" }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "profit": { "description": "Прибыль магазина", "type": "integer" }, "revenue": { "description": "Сумма платежей в магазине", "type": "integer" } } }, "PaymentInstitution": { "description": "Платёжная организация", "type": "object", "required": [ "id", "name", "realm", "residences" ], "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string", "maxLength": 200 }, "description": { "type": "string", "maxLength": 1000 }, "residences": { "type": "array", "items": { "description": "Резиденция, alpha-3 код по стандарту [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)", "type": "string", "pattern": "^[A-Z]{3}$", "example": "RUS" } }, "realm": { "type": "string", "enum": [ "test", "live" ] } } }, "PaymentInteractionRequested": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "type": "object", "description": "Требование провести взаимодействие с плательщиком для продолжения процесса\nплатежа\n", "required": [ "paymentID", "userInteraction" ], "properties": { "paymentID": { "description": "Идентификатор платежа", "type": "string" }, "userInteraction": { "$ref": "#/definitions/UserInteraction" } } } ] }, "PaymentMethod": { "type": "object", "discriminator": "method", "properties": { "method": { "description": "Метод оплаты", "type": "string", "enum": [ "BankCard", "PaymentTerminal", "DigitalWallet", "CryptoWallet" ] } } }, "PaymentMethodBankCardStat": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentMethodStat" }, { "type": "object", "required": [ "offset", "totalCount", "paymentSystem", "profit", "revenue" ], "properties": { "offset": { "description": "Смещение сегмента выборки", "type": "integer" }, "totalCount": { "description": "Общее количество плательщиков", "type": "integer" }, "paymentSystem": { "description": "Платежная система", "type": "string", "enum": [ "visa", "mastercard", "visaelectron", "maestro", "forbrugsforeningen", "dankort", "amex", "dinersclub", "discover", "unionpay", "jcb", "nspkmir", "elo", "rupay", "dummy" ] }, "profit": { "description": "Прибыль магазина", "type": "integer" }, "revenue": { "description": "Сумма платежей в магазине", "type": "integer" } } } ] }, "PaymentMethodStat": { "type": "object", "discriminator": "statType", "required": [ "statType" ], "properties": { "statType": { "description": "Тип статистики по методу оплаты", "type": "string" } } }, "PaymentParams": { "type": "object", "required": [ "flow", "payer" ], "properties": { "flow": { "$ref": "#/definitions/PaymentFlow" }, "payer": { "$ref": "#/definitions/Payer" } } }, "PaymentRateStat": { "type": "object", "required": [ "uniqueCount" ], "properties": { "uniqueCount": { "description": "Количество уникальных плательщиков", "type": "integer" } } }, "PaymentResource": { "type": "object", "description": "Данные одноразового платежного средства", "required": [ "paymentSession", "paymentToolToken" ], "properties": { "paymentToolToken": { "description": "Токен платежного средства, предоставленного плательщиком", "type": "string", "maxLength": 1000 }, "paymentSession": { "description": "Идентификатор платежной сессии", "type": "string", "maxLength": 1000 }, "paymentToolDetails": { "$ref": "#/definitions/PaymentToolDetails" }, "clientInfo": { "allOf": [ { "$ref": "#/definitions/ClientInfo" }, { "readOnly": true } ] } } }, "PaymentResourceParams": { "type": "object", "required": [ "paymentTool", "clientInfo" ], "properties": { "paymentTool": { "$ref": "#/definitions/PaymentTool" }, "clientInfo": { "$ref": "#/definitions/ClientInfo" } } }, "PaymentResourcePayer": { "type": "object", "description": "Одноразовое платежное средство", "allOf": [ { "$ref": "#/definitions/Payer" }, { "$ref": "#/definitions/PaymentResource" }, { "type": "object", "required": [ "contactInfo" ], "properties": { "contactInfo": { "$ref": "#/definitions/ContactInfo" } } } ] }, "PaymentResourceResult": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentResource" }, { "type": "object", "properties": { "validUntil": { "description": "Дата и время, до наступления которых токен платежного средства остается действительным", "type": "string", "format": "date-time", "readOnly": true } } } ] }, "PaymentRevenueStat": { "type": "object", "required": [ "offset", "currency", "profit", "revenue" ], "properties": { "offset": { "description": "Смещение сегмента выборки", "type": "integer" }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "profit": { "description": "Прибыль магазина", "type": "integer" }, "revenue": { "description": "Сумма платежей в магазине", "type": "integer" } } }, "PaymentSearchResult": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentStatus" }, { "type": "object", "required": [ "id", "invoiceID", "createdAt", "amount", "currency", "payer", "flow" ], "properties": { "id": { "description": "Идентификатор платежа", "type": "string" }, "shortID": { "description": "Cокращенный идентификатор платежа и инвойса (spid)", "type": "string" }, "invoiceID": { "description": "Идентификатор инвойса, в рамках которого был создан платеж", "type": "string" }, "shopID": { "description": "Идентификатор магазина, в рамках которого был создан платеж", "type": "string" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "amount": { "description": "Стоимость предлагаемых товаров или услуг, в минорных денежных\nединицах, например в копейках в случае указания российских рублей в\nкачестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "fee": { "description": "Комиссия системы, в минорных денежных единицах", "type": "integer", "format": "int64", "minimum": 0 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "payer": { "$ref": "#/definitions/Payer" }, "flow": { "$ref": "#/definitions/PaymentFlow" }, "geoLocationInfo": { "$ref": "#/definitions/GeoLocationInfo" }, "metadata": { "description": "Связанные с платежом метаданные", "type": "object" } } } ] }, "PaymentStarted": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "type": "object", "required": [ "payment" ], "properties": { "payment": { "$ref": "#/definitions/Payment" } } } ] }, "PaymentStatus": { "type": "object", "required": [ "status" ], "properties": { "status": { "description": "Статус платежа", "type": "string", "enum": [ "pending", "processed", "captured", "cancelled", "refunded", "failed" ] }, "error": { "$ref": "#/definitions/LogicError" } } }, "PaymentStatusChanged": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "$ref": "#/definitions/PaymentStatus" }, { "type": "object", "required": [ "paymentID" ], "properties": { "paymentID": { "type": "string" } } } ] }, "PaymentTerminal": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentMethod" }, { "type": "object", "required": [ "providers" ], "properties": { "providers": { "description": "Список провайдеров", "type": "array", "items": { "description": "Провайдер терминальной сети", "type": "string", "enum": [ "euroset" ] } } } } ] }, "PaymentTerminalData": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentTool" }, { "type": "object", "description": "Платежный терминал", "required": [ "provider" ], "properties": { "provider": { "description": "Провайдер терминальной сети", "type": "string", "enum": [ "euroset" ] } } } ] }, "PaymentTerminalDetails": { "required": [ "provider" ], "properties": { "provider": { "description": "Провайдер терминальной сети", "type": "string", "enum": [ "euroset" ] } } }, "PaymentTerminalProvider": { "description": "Провайдер терминальной сети", "type": "string", "enum": [ "euroset" ] }, "PaymentTerminalReceipt": { "type": "object", "allOf": [ { "$ref": "#/definitions/UserInteraction" }, { "type": "object", "required": [ "shortPaymentID", "dueDate" ], "properties": { "shortPaymentID": { "description": "Номер счета для оплаты через платежный терминал", "type": "string" }, "dueDate": { "description": "Дата и время окончания действия счета", "type": "string" } } } ] }, "PaymentTerms": { "type": "object", "properties": { "currencies": { "type": "array", "items": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" } }, "categories": { "type": "array", "items": { "description": "Идентификаторы доступных категорий", "type": "integer", "format": "int32" } } } }, "PaymentTool": { "type": "object", "discriminator": "paymentToolType", "properties": { "paymentToolType": { "description": "Тип платежного средства", "type": "string", "enum": [ "CardData", "PaymentTerminalData", "DigitalWalletData", "TokenizedCardData", "CryptoWalletData" ] } }, "required": [ "paymentToolType" ] }, "PaymentToolDetails": { "type": "object", "discriminator": "detailsType", "description": "Детали платежного средства", "readOnly": true, "required": [ "detailsType" ], "properties": { "detailsType": { "description": "Тип информации о платежном средстве", "type": "string" } } }, "PaymentToolDetailsBankCard": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentToolDetails" }, { "$ref": "#/definitions/BankCardDetails" } ] }, "PaymentToolDetailsCryptoWallet": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentToolDetails" }, { "$ref": "#/definitions/CryptoWalletDetails" } ] }, "PaymentToolDetailsDigitalWallet": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentToolDetails" }, { "$ref": "#/definitions/DigitalWalletDetails" } ] }, "PaymentToolDetailsPaymentTerminal": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentToolDetails" }, { "$ref": "#/definitions/PaymentTerminalDetails" } ] }, "Payout": { "type": "object", "required": [ "id", "shopID", "createdAt", "status", "amount", "fee", "currency", "payoutToolDetails" ], "properties": { "id": { "description": "Идентификатор выплаты", "type": "string" }, "shopID": { "description": "Идентификатор магазина", "type": "string" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "status": { "description": "Статус выплаты", "type": "string", "enum": [ "unpaid", "paid", "cancelled", "confirmed" ] }, "cancellationDetails": { "description": "Детали отмены выплаты", "type": "string", "maxLength": 1000 }, "amount": { "description": "Сумма выплаты в минорных денежных\nединицах, например в копейках в случае указания российских рублей в\nкачестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "fee": { "description": "Комиссия системы, в минорных денежных единицах", "type": "integer", "format": "int64", "minimum": 0 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "payoutToolDetails": { "$ref": "#/definitions/PayoutToolDetails" }, "payoutSummary": { "description": "Описание части суммы вывода, сгруппированное по типу операций над денежными средствами", "type": "array", "items": { "$ref": "#/definitions/PayoutSummaryItem" } } } }, "PayoutSummaryItem": { "type": "object", "description": "Описание суммы вывода по типу операций", "required": [ "amount", "fee", "currency", "count", "fromTime", "toTime", "type" ], "properties": { "amount": { "description": "Общая сумма по данному типу операций над денежными средствами в минорных денежных\nединицах, например в копейках в случае указания российских рублей в\nкачестве валюты.\n", "type": "integer", "format": "int64", "minimum": 0 }, "fee": { "description": "Общая комиссия по данному типу операций над денежными средствами в минорных денежных единицах", "type": "integer", "format": "int64", "minimum": 0 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "count": { "description": "Общее количество операций над денежными средствами по данному типу", "type": "integer", "format": "int32", "minimum": 0 }, "fromTime": { "description": "Дата и время первого подтверждения операции над денежными средствами", "type": "string", "format": "date-time" }, "toTime": { "description": "Дата и время последнего подтверждения операции над денежными средствами", "type": "string", "format": "date-time" }, "type": { "description": "Тип операций над денежными средствами", "type": "string", "enum": [ "payment", "refund" ] } } }, "PayoutTool": { "description": "Средство вывода", "allOf": [ { "type": "object", "required": [ "id" ], "properties": { "id": { "description": "Идентификатор средства вывода", "type": "string" } } }, { "$ref": "#/definitions/PayoutToolParams" } ] }, "PayoutToolDetails": { "description": "Данные средства вывода", "type": "object", "discriminator": "detailsType", "properties": { "detailsType": { "description": "Тип средства вывода", "type": "string" } }, "required": [ "detailsType" ] }, "PayoutToolDetailsBankAccount": { "type": "object", "allOf": [ { "$ref": "#/definitions/PayoutToolDetails" }, { "$ref": "#/definitions/BankAccount" } ] }, "PayoutToolDetailsBankCard": { "type": "object", "allOf": [ { "$ref": "#/definitions/PayoutToolDetails" }, { "$ref": "#/definitions/BankCardDetails" } ] }, "PayoutToolDetailsInternationalBankAccount": { "type": "object", "allOf": [ { "$ref": "#/definitions/PayoutToolDetails" }, { "$ref": "#/definitions/InternationalBankAccount" } ] }, "PayoutToolParams": { "type": "object", "required": [ "currency", "details" ], "properties": { "currency": { "description": "Валюта, в которой производится вывод", "type": "string" }, "details": { "$ref": "#/definitions/PayoutToolDetails" } } }, "PowerOfAttorney": { "type": "object", "allOf": [ { "$ref": "#/definitions/RepresentativeDocument" }, { "$ref": "#/definitions/LegalAgreement" } ] }, "PrivateEntity": { "description": "Физическое лицо", "allOf": [ { "$ref": "#/definitions/Contractor" }, { "type": "object", "discriminator": "entityType", "required": [ "entityType" ], "properties": { "entityType": { "description": "Тип физ. лица", "type": "string", "enum": [ "RussianPrivateEntity" ] } } } ] }, "Reason": { "type": "object", "required": [ "reason" ], "properties": { "reason": { "description": "Причина совершения операции", "type": "string", "maxLength": 1000 } } }, "Redirect": { "type": "object", "allOf": [ { "$ref": "#/definitions/UserInteraction" }, { "type": "object", "required": [ "request" ], "properties": { "request": { "$ref": "#/definitions/BrowserRequest" } } } ] }, "Refund": { "type": "object", "allOf": [ { "type": "object", "required": [ "id", "createdAt", "amount", "currency" ], "properties": { "id": { "description": "Идентификатор возврата", "type": "string" }, "createdAt": { "description": "Дата и время осуществления", "type": "string", "format": "date-time" }, "amount": { "description": "Сумма возврата, в минорных денежных единицах, например в копейках в случае указания российских рублей в качестве валюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "reason": { "description": "Причина осуществления возврата", "type": "string" } } }, { "$ref": "#/definitions/RefundStatus" } ] }, "RefundParams": { "type": "object", "properties": { "amount": { "description": "Сумма возврата, в минорных денежных единицах,\nнапример в копейках в случае указания российских рублей в качестве\nвалюты.\n", "type": "integer", "format": "int64", "minimum": 1 }, "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "reason": { "description": "Причина совершения возврата", "type": "string", "maxLength": 1000 } } }, "RefundStarted": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "type": "object", "required": [ "paymentID", "refund" ], "properties": { "paymentID": { "type": "string" }, "refund": { "$ref": "#/definitions/Refund" } } } ] }, "RefundStatus": { "type": "object", "required": [ "status" ], "properties": { "status": { "description": "Статус возврата", "type": "string", "enum": [ "pending", "succeeded", "failed" ] }, "error": { "description": "Данные ошибки, возникшей в процессе проведения возврата, в случае если\nвозврат был неуспешен\n", "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "Код ошибки, пригодный для обработки автоматическими системами", "type": "string" }, "message": { "description": "Описание ошибки, пригодное для восприятия человеком", "type": "string" } } } } }, "RefundStatusChanged": { "type": "object", "allOf": [ { "$ref": "#/definitions/InvoiceChange" }, { "type": "object", "required": [ "paymentID", "refundID" ], "properties": { "paymentID": { "type": "string" }, "refundID": { "type": "string" } } }, { "$ref": "#/definitions/RefundStatus" } ] }, "RegisteredUser": { "description": "Зарегистрированный пользователь системы", "allOf": [ { "$ref": "#/definitions/Contractor" }, { "type": "object", "required": [ "email" ], "properties": { "email": { "description": "Электронная почта, идентифицирующая пользователя", "type": "string" } } } ] }, "Report": { "type": "object", "allOf": [ { "type": "object", "required": [ "id", "createdAt", "fromTime", "toTime", "type", "files" ], "properties": { "id": { "description": "Идентификатор отчета", "type": "integer", "format": "int64" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "fromTime": { "description": "Дата и время начала периода", "type": "string", "format": "date-time" }, "toTime": { "description": "Дата и время конца периода", "type": "string", "format": "date-time" }, "type": { "description": "Тип отчета", "type": "string", "enum": [ "provisionOfService", "paymentRegistry" ] }, "files": { "type": "array", "items": { "$ref": "#/definitions/FileMeta" } } } } ] }, "ReportingPreferences": { "description": "Настройки выгрузки автоматической отчетности", "type": "object", "properties": { "serviceAcceptanceActPreferences": { "$ref": "#/definitions/ServiceAcceptanceActPreferences" } } }, "Representative": { "description": "ЕИО/Представитель", "type": "object", "required": [ "position", "fullName", "document" ], "properties": { "position": { "description": "Наименование должности ЕИО/представителя", "type": "string" }, "fullName": { "description": "ФИО ЕИО/представителя", "type": "string" }, "document": { "$ref": "#/definitions/RepresentativeDocument" } } }, "RepresentativeDocument": { "description": "Документ, на основании которого действует ЕИО/представитель", "type": "object", "discriminator": "representativeDocumentType", "required": [ "representativeDocumentType" ], "properties": { "representativeDocumentType": { "type": "string", "enum": [ "ArticlesOfAssociation", "PowerOfAttorney" ] } } }, "Residence": { "description": "Резиденция, alpha-3 код по стандарту [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)", "type": "string", "pattern": "^[A-Z]{3}$", "example": "RUS" }, "RussianLegalEntity": { "description": "Юридическое лицо, ведущее деятельность под юрисдикцией РФ", "type": "object", "allOf": [ { "$ref": "#/definitions/LegalEntity" }, { "type": "object", "required": [ "registeredName", "registeredNumber", "inn", "actualAddress", "postAddress", "representativePosition", "representativeFullName", "representativeDocument", "bankAccount" ], "properties": { "registeredName": { "description": "Зарегистрированное наименование юридического лица\n", "type": "string", "maxLength": 100 }, "registeredNumber": { "description": "Регистрационный номер,\n[ОГРН](https://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер) или\n[ОГРНИП](https://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер_индивидуального_предпринимателя)\n", "type": "string", "pattern": "^(\\d{13}|\\d{15})$" }, "inn": { "description": "[ИНН](https://ru.wikipedia.org/wiki/Идентификационный_номер_налогоплательщика)\n", "type": "string", "pattern": "^(\\d{10}|\\d{12})$" }, "actualAddress": { "description": "Почтовый адрес места нахождения\n", "type": "string", "maxLength": 1000 }, "postAddress": { "description": "Почтовый адрес для отправки корреспонденции\n", "type": "string", "maxLength": 1000 }, "representativePosition": { "description": "Наименование должности\n[ЕИО](https://ru.wikipedia.org/wiki/Исполнительный_орган_общества) или его представителя\n", "type": "string", "maxLength": 100 }, "representativeFullName": { "description": "ФИО [ЕИО](https://ru.wikipedia.org/wiki/Исполнительный_орган_общества) или его представителя\n", "type": "string", "maxLength": 100 }, "representativeDocument": { "description": "Идентификационные данные документа, на основании которого действует\n[ЕИО](https://ru.wikipedia.org/wiki/Исполнительный_орган_общества) или его представитель\n", "type": "string", "maxLength": 1000 }, "bankAccount": { "$ref": "#/definitions/BankAccount" } } } ] }, "RussianPrivateEntity": { "description": "Физическое лицо под юрисдикцией РФ", "type": "object", "allOf": [ { "$ref": "#/definitions/PrivateEntity" }, { "type": "object", "required": [ "firstName", "secondName", "middleName", "contactInfo" ], "properties": { "firstName": { "description": "Имя", "type": "string", "maxLength": 200 }, "secondName": { "description": "Фамилия", "type": "string", "maxLength": 200 }, "middleName": { "description": "Отчество", "type": "string", "maxLength": 200 }, "contactInfo": { "$ref": "#/definitions/ContactInfo" } } } ] }, "SamsungPay": { "type": "object", "allOf": [ { "$ref": "#/definitions/TokenizedCardData" }, { "type": "object", "description": "Платежные данные Samsung Pay", "required": [ "serviceID", "referenceID" ], "properties": { "serviceID": { "description": "Идентификатор сервиса в Samsung Pay", "type": "string" }, "referenceID": { "description": "Идентификатор токена в Samsung Pay", "type": "string" } } } ] }, "Schedule": { "description": "Расписание", "type": "object", "required": [ "name", "scheduleID" ], "properties": { "scheduleID": { "type": "integer", "format": "int32" }, "name": { "type": "string", "maxLength": 100 }, "description": { "type": "string", "maxLength": 1000 } } }, "ServiceAcceptanceActPreferences": { "description": "Настройки выгрузки актов", "type": "object", "required": [ "scheduleID", "signer" ], "properties": { "scheduleID": { "description": "Идентификатор расписания выгрузок", "type": "integer", "format": "int32" }, "signer": { "$ref": "#/definitions/Representative" } } }, "Shop": { "description": "Данные магазина", "type": "object", "required": [ "id", "createdAt", "isBlocked", "isSuspended", "location", "categoryID", "details", "contractID" ], "properties": { "id": { "description": "Идентификатор магазина", "type": "string" }, "createdAt": { "description": "Дата и время создания", "type": "string", "format": "date-time" }, "isBlocked": { "description": "Заблокирован ли магазин?", "type": "boolean" }, "isSuspended": { "description": "Приостановлены ли операции в рамках магазина?", "type": "boolean" }, "categoryID": { "description": "Идентификатор категории товаров и услуг, предлагаемых в этом магазине\n", "type": "integer", "format": "int32" }, "location": { "$ref": "#/definitions/ShopLocation" }, "details": { "$ref": "#/definitions/ShopDetails" }, "contractID": { "description": "Идентификатор договора, на основании которого производится обслуживание\nмагазина\n", "type": "string" }, "payoutToolID": { "description": "Идентификатор средства вывода в рамках контракта, используемое в процессе\nвывода по магазину\n", "type": "string" }, "scheduleID": { "description": "Идентификатор расписания выводов", "type": "integer", "format": "int32" }, "account": { "$ref": "#/definitions/ShopAccount" } } }, "ShopAccount": { "description": "Счета магазина", "type": "object", "required": [ "currency", "guaranteeID", "settlementID" ], "properties": { "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" }, "guaranteeID": { "type": "integer", "format": "int64" }, "settlementID": { "type": "integer", "format": "int64" } } }, "ShopAccountCreation": { "description": "Создание новых счетов в магазине", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "currency" ], "properties": { "currency": { "description": "Валюта, символьный код согласно [ISO 4217](http://www.iso.org/iso/home/standards/currency_codes.htm).", "type": "string", "pattern": "^[A-Z]{3}$" } } } ] }, "ShopCategoryChange": { "description": "Изменение категории магазина", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "categoryID" ], "properties": { "categoryID": { "description": "Идентификатор категории товаров и услуг, предлагаемых в этом магазине\n", "type": "integer", "format": "int32" } } } ] }, "ShopContractBinding": { "description": "Привязка магазина к указанному договору", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "contractID", "payoutToolID" ], "properties": { "contractID": { "description": "Идентификатор договора, на основании которого следует производить\nобслуживание магазина\n", "type": "string" }, "payoutToolID": { "description": "Идентификатор средства вывода в рамках указанного контракта\n", "type": "string" } } } ] }, "ShopCreation": { "description": "Создание нового магазина", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "location", "details", "contractID", "payoutToolID" ], "properties": { "location": { "$ref": "#/definitions/ShopLocation" }, "details": { "$ref": "#/definitions/ShopDetails" }, "contractID": { "description": "Идентификатор договора, на основании которого следует производить\nобслуживание создаваемого магазина\n", "type": "string" }, "payoutToolID": { "description": "Идентификатор средства вывода для создаваемого магазина в рамках\nуказанного контракта\n", "type": "string" } } } ] }, "ShopDetails": { "type": "object", "required": [ "name" ], "properties": { "name": { "description": "Название магазина", "type": "string", "maxLength": 100 }, "description": { "description": "Краткое описание", "type": "string", "maxLength": 1000 } } }, "ShopDetailsChange": { "description": "Изменение деталей магазина", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "details" ], "properties": { "details": { "$ref": "#/definitions/ShopDetails" } } } ] }, "ShopLocation": { "description": "Местоположение магазина, по которому можно его найти", "type": "object", "discriminator": "locationType", "required": [ "locationType" ], "properties": { "locationType": { "description": "Тип местоположения", "type": "string" } } }, "ShopLocationChange": { "description": "Изменение местоположения магазина", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "location" ], "properties": { "location": { "$ref": "#/definitions/ShopLocation" } } } ] }, "ShopLocationUrl": { "description": "Местоположение в Интернете", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopLocation" }, { "type": "object", "required": [ "url" ], "properties": { "url": { "description": "URL сайта магазина", "type": "string", "format": "uri", "maxLength": 1000 } } } ] }, "ShopModification": { "type": "object", "allOf": [ { "$ref": "#/definitions/PartyModification" }, { "type": "object", "discriminator": "shopModificationType", "required": [ "shopID", "shopModificationType" ], "properties": { "shopID": { "description": "Идентификатор магазина", "type": "string", "maxLength": 40, "minLength": 1 }, "shopModificationType": { "type": "string", "enum": [ "ShopCreation", "ShopAccountCreation", "ShopCategoryChange", "ShopLocationChange", "ShopDetailsChange", "ShopContractBinding", "ShopPayoutToolChange", "ShopPayoutScheduleChange" ] } } } ] }, "ShopPayoutScheduleChange": { "description": "Изменение расписания выводов магазина", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "properties": { "scheduleID": { "description": "Идентификатор расписания выводов", "type": "integer", "format": "int32" } } } ] }, "ShopPayoutToolChange": { "description": "Изменение средства вывода магазина", "type": "object", "allOf": [ { "$ref": "#/definitions/ShopModification" }, { "type": "object", "required": [ "payoutToolID" ], "properties": { "payoutToolID": { "description": "Идентификатор средства вывода в рамках текущего контракта магазина\n", "type": "string" } } } ] }, "TokenizedCardData": { "type": "object", "allOf": [ { "$ref": "#/definitions/PaymentTool" }, { "type": "object", "description": "Токенизированная банковская карта", "discriminator": "provider", "properties": { "provider": { "type": "string", "enum": [ "ApplePay", "GooglePay", "SamsungPay" ] } }, "required": [ "provider" ] } ] }, "UserInteraction": { "type": "object", "discriminator": "interactionType", "required": [ "interactionType" ], "properties": { "interactionType": { "description": "Тип взаимодействия с пользователем", "type": "string" } } }, "UserInteractionForm": { "description": "Форма для отправки средствами браузера", "type": "array", "items": { "type": "object", "required": [ "key", "template" ], "properties": { "key": { "description": "Значение ключа элемента формы, которую необходимо отправить средствами\nбраузера\n", "type": "string" }, "template": { "description": "Шаблон значения элемента формы\nШаблон представлен согласно стандарту\n[RFC6570](https://tools.ietf.org/html/rfc6570).\n", "type": "string" } } } }, "Webhook": { "type": "object", "required": [ "scope", "url" ], "properties": { "id": { "description": "Идентификатор webhook'а\n", "type": "string", "readOnly": true }, "active": { "description": "Включена ли в данный момент доставка оповещений?\n", "type": "boolean", "readOnly": true }, "scope": { "$ref": "#/definitions/WebhookScope" }, "url": { "description": "URL, на который будут поступать оповещения о произошедших событиях\n", "type": "string", "format": "uri", "maxLength": 1000 }, "publicKey": { "description": "Содержимое публичного ключа, служащего для проверки авторитативности\nприходящих на `url` оповещений\n", "type": "string", "format": "hexadecimal", "readOnly": true, "example": "MIGJAoGBAM1fmNUvezts3yglTdhXuqG7OhHxQtDFA+Ss//YuUGjw5ossDbEMoS+SIFuYZ/UL9Xg0rEHNRSbmf48OK+mz0FobEtbji8MADayzGfFopXsfRFa7MVy3Uhu5jBDpLsN3DyJapAkK0TAYINlZXxVjDwxRNheTvC+xub5WNdiwc28fAgMBAAE=" } } }, "WebhookScope": { "description": "Область охвата webhook'а, ограничивающая набор типов событий, по которым\nследует отправлять оповещения\n", "type": "object", "discriminator": "topic", "required": [ "topic" ], "properties": { "topic": { "description": "Предмет оповещений", "type": "string", "enum": [ "InvoicesTopic", "CustomersTopic" ] } } } } }