api/swagger.yaml
2020-11-23 09:20:52 +00:00

5756 lines
207 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

swagger: '2.0'
info:
version: 1.0.0
title: RBKmoney Platform API
description: |
## Описание
RBKmoney API является базовой и единственной точкой взаимодействия с платежной платформой. Все изменения состояний платформы осуществляются с помощью вызовов соответствующих методов API. Любые сторонние приложения, включая наши веб-сайты и другие UI-интерфейсы являются внешними приложениями-клиентами.
RBKmoney API работает поверх HTTP-протокола. Мы используем REST архитектуру, схема описывается в соответствии со [Swagger](http://swagger.io/). Коды возврата описываются соответствующими HTTP-статусами. Платформа принимает и возвращает JSON-структуры в HTTP body.
## Идемпотентные запросы
Любой вызов методов API обязан предваряться предоставлением уникального для участника в пределах платформы ID запроса. Данный ID передается в соответствующем заголовке HTTP-запроса:
```
X-Request-ID: oX5MWM2AQy
```
Для генерации ID запросов мы рекомендуем использовать алгоритмы генерации из стандарта [RFC-4122](https://www.ietf.org/rfc/rfc4122.txt). Платформа гарантирует идемпотентность запросов, отправленных с одинаковым ID.
## Тип содержимого и кодировка
Любой запрос к API должен выполняться в кодировке UTF-8 и с указанием содержимого в формате JSON
```
Content-Type: application/json; charset=utf-8
```
## Формат дат
Платформа принимает значения date-time в стандарте ISO 8601 с обязательным указанием UTC-оффсета, например:
```
2017-01-01T00:00:00Z
2017-01-01T00:00:01+00:00
```
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оответствующий ключ передается в заголовке.
```shell
Authorization: Bearer {TOKENIZATION|PRIVATE_JWT}
```
Посмотреть ваш API-ключ вы можете в [личном кабинете](https://dashboard.rbk.money/api/key).
Ключи не разделяются на тестовые и боевые, ваш API ключ открывает доступ ко всем функциям платформы. Для тестовых транзакций используйте ID тестовых магазинов.
Помните, что вы никому не должны передавать ваш API ключ!
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, использованный при регистрации. Если вы зарегистрировались впервые, то это учетная запись, с которой проводилась регистрация в личном кабинете.
- name: Claims
x-displayName: Заявки
description: |
Некоторая область данных может быть изменена только после премодерации на стороне платформы. Например, создание и активация новых магазинов, изменение финансовых данных вашего участника и т.п. требуют ручной проверки сотрудниками RBKmoney. Попытка изменить такие данные приводит к автоматическому созданию заявки на изменение данных. До тех пор, пока заявка не одобрена, вы можете добавлять изменения. После одобрения они будут применены к набору данных. В случае отказа по заявке данные останутся в неизменном состоянии. Ближайшим аналогом заявок можно представить Pull Request в распределенных системах контроля версий.
- name: Shops
x-displayName: Магазины
description: |
Магазин - это отображение вашего веб-сайта или точки продаж в платформе. К магазину привязываются финансовые условия, которые определяют, в частности, процент комиссии платформы. Каждый магазин в системе имеет привязанные счета, на которых аккумулируются отправленные плательщиками деньги. В каждой валюте может существовать только один счет. Категория магазина определяет группы товаров или услуг, которые в нем представлены. К магазину может быть привязан банковский терминал на стороне банка-эквайера. Любые изменения данных магазинов требуют верификации на стороне платформы.
Для тестовых платежей используются магазины, созданные в тестовой категории. Первый тестовый магазин платформа создает автоматически при регистрации участника.
Ваш веб-сайт или точка продаж могут иметь более одного магазина, ближайшим аналогом можно представить банковские POS-терминалы на точке продаж.
## Асинхронные уведомления
Для любого магазина можно указать URL для получения асинхронных оповещений об изменении состояния данных при помощи установки webhook'а. Например, если вы используете неперсистентные интерпретируемые языки разработки, такие как PHP, вы можете установить webhook, указав URL вашего приложения, на который платформа будет отправлять данных об изменении состояния инвойса. Для проверки подлинности присланных на URL вашего приложения данных используется соответствующий публичный ключ, который создаётся при установке этого webhook'а и получить который можно в вашем личном кабинете.
- name: Invoices
x-displayName: Инвойсы
description: |
Инвойс - это базовая часть работы с платформой по приему платежей. Перед рендерингом платежной формы, запуском транзакций на списание денег, холдированием средств на карте плательщика и запуском других подобных бизнес-процессов, необходимо создать инвойс и узнать его идентификатор.
В общем случае, инвойс является контейнером для платежей, данных о товарах и магазине. Инвойсы имеют настраиваемый ограниченный срок жизни. После истечения срока жизни состояние инвойса изменить невозможно.
## Состояния и статусы инвойса
Таблица состояний инвойса:
| | | |
| -- | -- | -- |
| Не оплачен | `unpaid` | Инвойс создан, но финансовые обязательства ещё не погашены. |
| Отменён | `cancelled` | Инвойс отменён с указанием причины, все обязательства по нему недействительны. |
| Оплачен | `paid` | Финансовые обязательства по инвойсу погашены, но товары или услуги плательщику ещё не предоставлены. |
| Погашен | `fulfilled` | Все обязательства, как плательщика, так и мерчанта, погашены. |
| Возмещён | `refunded` | Мерчанту не удалось выполнить свои обязательства, и финансовые обязательства плательщика были возмещены. |
В узлах диаграммы указаны статусы инвойса, стрелки помечены процессами, успешное завершение которых порождает переход из одного статуса в другой.
![Invoice State diagram](wsd/img/invoice.svg)
## Метаданные инвойса
Платформа предоставляет вам возможность заполнить и сохранить любые необходимые метаданные в структуре инвойса. Данные описываются массивом JSON. В дальнейшем платформа предоставит вам эти данные при запросе данных инвойса по его ID либо пришлет в асинхронном режиме на webhook, установленный для соответствующего магазине, если он есть.
## События инвойса
Мы используем event-based, или событийную архитектуру для любого изменения состояния данных в платформе. События, которые генерируют участники процесса привязываются к объектам системы, и таким образом позволяют узнать конечное состояние данных объекта. В системе можно получить как полный список событий, приведших к определенному состоянию данных, так и последнее событие, описывающее текущее состояние объекта. Например, для того, чтобы узнать состояние инвойса, и таким образом принять решение об отгрузке товара или предоставлении услуги плательщику, можно запросить у платформы все события, произошедшие в рамках указанного ID инвойса, либо самое последнее из них.
## Authorization
Операции:
* создания инвойса,
* отмены ивнвойса,
* погашения инвойса,
* получения *нового* токена доступа к инвойсу (уже после создания инвойса)
авторизуются вашим API-ключем.
### Токен доступа к инвойсу
Токен доступа к инвойсу авторизует ограниченное количество операций, необходимых для проведения [платежей](#tag/Payments) по указанному инвойсу, в частности:
* [токенизация](#tag/Tokens) платёжных инструментов,
* создание платежей по этому и только этому инвойсу,
* получение состояния и событий этого инвойса.
Срок действия токена составляет 3 суток от момента создания, после истечения которого использовать его для авторизации операций будет более невозможно.
- name: InvoiceTemplates
x-displayName: Шаблоны инвойсов
description: |
Шаблоны инвойсов позволяют упростить выставление инвойсов. Шаблон инвойса привязан к конкретному магазину и содержит спецификацию, по которой можно создавать инвойсы, указывая только конкретнyю стоимость товаров и услуг и/или метаданные инвойса. В случае, если шаблон содержит фиксированную стоимость, её также можно опустить при создании инвойса. Если при создании инвойса по шаблону не указать метаданные инвойса, они будут взяты из значения в шаблоне (если шаблон содержит метаданные).
Cоздание, модификация и удаление шаблона инвойса не требуют верификации на стороне платформы и заявок на эти изменения.
## Authorization
Создание, модификация и удаление шаблона инвойса авторизуются вашим API-ключем.
### Токен доступа к шаблону инвойса
Токен доступа к шаблону инвойса создается в результате операции создания шаблона. Он авторизует:
* получение шаблона инвойса по его идентификатору,
* создание инвойса по данному шаблону.
- name: Accounts
x-displayName: Счета
description: |
Каждый магазин в платформе имеет привязанные счета, на которых аккумулируются средства плательщиков. К магазину может быть привязан счет в любой валюте, если это описано в рамках договора с участником системы, однако не более одного счета в одинаковой валюте.
Счета разделяются на два основных типа - основной счет и счет гарантийного фонда.
Основной счет используется для оперативных взаиморасчетов между банковскими счетами RBKmoney и вашими банковскими счетами для вывода средств. Вывод средств предваряется суммированием всех средств со счетов ваших магазинов и последующим переводом с помощью банковских транзакций, либо других средств вывода денег из системы.
Счет гарантийного фонда используется для накопления определенных сумм средств от оборота магазина так, как это указано в договоре с участником.
- name: Payments
x-displayName: Платежи
description: |
Реальное списание денег с плательщиков осуществляется вызовом метода создания платежа. Перед запуском платежей необходимо создать инвойс, в рамках которого платформа будет проводить попытки списания, а также указать токен платежного средства плательщика. Таким образом, платформа предоставляет вам интерфейс, позволяющий со стороны вашего серверного кода инициировать и контролировать процесс списания денег. Данный процесс может быть, как синхронным, когда вы ожидаете ответа системы, так и асинхронным, когда после запуска платежа вы ожидаете уведомлений на установленный для соответствующего магазина webhook.
## Платежная сессия
Платформа обеспечивает идемпотентность списания денег с платежного средства, предоставляя уникальный идентификатор платежной сессии. Данный идентификатор предоставляется в процессе создания [токена платежного средства](#tag/Tokens) и гарантирует идемпотентность запросов на списание средств, обеспечивая защиту от ошибочных повторных списаний.
## Authorization
Запросы API платежей авторизуются либо токеном доступа к инвойсу, по которому создан платеж, либо вашим API-ключем.
- name: Tokens
x-displayName: Платежные токены
description: |
Платформа предоставляет вам возможность самостоятельно инициировать списание денег с платежных карт плательщиков и берет на себя процессы сертификации и соответствия стандартам PCS-DSS. Стандарт декларирует запрет на обработку и хранение данных держателей карт (ДДК) на стороне мерчанта. Используемые нами подходы к реализации интерфейса подразумевают возможность верстки и отдачи HTML формы для ввода ДДК на стороне вашего серверного кода. Чтобы обеспечить соответствие стандартам мы предоставляем разработанную нами JS-библиотеку, которая после встраивания в HTML-код вашей платежной формы в асинхронном режиме собирает ДДК и отправляет на интерфейс платформы для дальнейшего шифрования и токенизации. В ответ JS-библиотека возвращает на вашу платежную форму уникальный токен платежной карты, который в дальнейшем вы можете использовать для запуска платежей.
В процессе создания токена предоставляется [платежная сессия](#tag/Payments), обеспечивающая идемпотентность списания денег с платежного средства.
- name: Categories
x-displayName: Категории магазинов
description: |
Для описания групп товаров и услуг, предоставляемых магазинами, используются категории. Категории могут влиять на предоставление статистики, упорядочивание магазинов, а также на финансовые условия системы.
- name: Contracts
x-displayName: Договоры
description: |
Договор содержит данные юридического соглашения, на основе которого система предоставляет всевозможные услуги мерчанту. В договоре, в частности описывается набор условий, по которым предоставляются сервисы платформы, например, комиссии на проведение транзакций, условия вывода средств и данных юридического лица.
Любые изменения данных магазинов требуют верификации на стороне платформы путем создания заявок на изменение.
- name: Payouts
x-displayName: Вывод средств
description: |
Для получения автоматических выплат по принятым платежам на ваш банковский счет необходимо в рамках договора с системой указать данные для вывода средств. В дальнейшем по указанным данным система будет инициировать банковские переводы на основе суммы платежей, принятой по всем активным магазинам.
Любые изменения данных требуют верификации на стороне платформы путем создания заявок на изменение.
- name: Webhooks
x-displayName: Webhooks
description: |
## RBKmoney Webhooks Management API
В данном разделе описаны методы, позволяющие управлять Webhook'ами, или инструментами для получения асинхронных оповещений посредством HTTP-запросов при наступлении одного или группы интересующих вас событий, например, о том, что платеж в рамках созданного инвойса был успешно оплачен.
## RBKmoney Webhooks Events API
Внимание! Только Webhooks Management API является частью платформы RBKmoney, а следовательно и данной спецификации. Для реализации обработчика присылаемых уведомлений вам необходимо будет ознакомиться со Swagger-спецификацей [RBKmoney Webhooks Events API](https://rbkmoney.github.io/webhooks-events-api).
- name: Geo
x-displayName: Геопозиционирование
description: |
Для отображения геоданных плательщиков существуют вспомогательные операции, например, получение названия геопозиции по её идентификатору.
- name: Search
x-displayName: Поиск
description: |
Для получения списка всех инвойсов/платежей указанного магазина необходимо вызвать соответствующий метод платформы. Имеется возможность отфильтровать выборку по определенным статусам.
- name: Analytics
x-displayName: Аналитика
description: |
Платформа предоставляет возможность получения различных аналитических данных, полученных в рамках взаимодействия с ней. Аналитические отчеты подготовлены заранее и не подразумевают интерактивного изменения структуры данных.
- name: PaymentInstitutions
x-displayName: Платёжные организации
description: |
Платёжная организация - организация, осуществляющая услуги по обслуживанию финансовых операций, которые возникают в результате осуществления бизнес-процессов системой.
- name: Reports
x-displayName: Отчеты
description: |
Один раз в отчетный период платформа автоматически подготавливает и размещает документы в формате XLSX с разбиением по магазину активной категории. Также, каждый документ будет подписан [квалифицированной ЭЦП](http://minsvyaz.ru/ru/appeals/faq/31/). Данная подпись является юридически значимой и позволяет полностью отказаться от бумажного документооборота.
- name: Error Codes
x-displayName: Коды ошибок
description: |
## Ошибки бизнес-логики
Все ошибки бизнес-логики имеют следуюший вид:
```json
{
"code": "string",
"message": "string"
}
```
В поле `code` содержится тип ошибки, а в `message` - дополнительная информация по произошедшей ошибке.
На данный момент существуют следующие коды ошибок:
| Код | Описание |
| --- | -------- |
| **operationNotPermitted** | Недоступная в рамках действующего договора операция. |
| **invalidPartyStatus** | Ваш участник заблокирован или его операции приостановлены. В последнем случае вы можете их [возобновить](#operation/activateMyParty). |
| **invalidShopStatus** | Ваш магазин заблокирован или его операции приостановлены. В последнем случае вы можете их [возобновить](#operation/activateShop). |
| **invalidShopID** | Указан идентификатор несуществующего магазина. |
| **invalidInvoiceCost** | Стоимость инвойса не указана или неверна, в частности, не равна стоимости позиций в корзине. |
| **invalidInvoiceCart** | Некорректная корзина в инвойсе, Например, пустая. |
| **invalidInvoiceStatus** | Неверный [статус инвойса](#tag/Invoices). Например, при попытке [оплатить](#operation/createPayment) отменённый инвойс. |
| **invoiceTermsViolated** | Инвойс нарушает ограничения, установленные в рамках действующего договора. |
| **invoicePaymentPending** | Последний запущенный платёж по указанному инвойсу ещё не достиг финального статуса. |
| **invalidPaymentStatus** | Неверный [статус платежа](#tag/Payments). Например, при попытке [подтвердить](#operation/capturePayment) неуспешный платёж. |
| **invalidPaymentResource** | Не поддерживаемый системой или не подключенный в рамках действующего договора платежный инструмент. |
| **invalidPaymentToolToken** | Неверное содержимое токена платёжного инструмента. |
| **invalidPaymentSession** | Неверные содержимое платёжной сессии. |
| **insufficentAccountBalance** | Недостаточный объём денежных средств на счёте магазина, например, для проведения возврата. |
| **invoicePaymentAmountExceeded** | Попытка возврата сверх суммы платежа. |
| **inconsistentRefundCurrency** | Попытка возврата средств в валюте, отличной от валюты платежа. |
| **changesetConflict** | Попытка внести изменения участника, конфликтующие с изменениями в других заявках, ожидающих рассмотрения. |
| **invalidChangeset** | Неверные изменения участника, например, попытка создать магазин в валюте, недоступной в рамках договора. |
| **invalidClaimStatus** | Неверный статус заявки. Например, при попытке [отзыва](#operation/revokeClaimByID) уже принятой заявки. |
| **invalidClaimRevision** | Неверная ревизия заявки. Например, в случае если заявку одновременно с вами кто-то уже принял или отклонил. |
| **limitExceeded** | Превышен разумный лимит выборки. В этом случае лучше запросить менее объёмный набор данных. |
| **invalidRequest** | Прочие неверные данные запроса. |
## Общие ошибки
Ошибки возникающие при попытках совершения операций с незарегистрированными в системе объектами. Имеют вид
```json
{
"message": "string"
}
```
В поле `message` содержится информация по произошедшей ошибке. Например:
```json
{
"message": "Invoice not found"
}
```
## Ошибки обработки запросов
В процессе обработки запросов силами нашей платформы могут происходить различные непредвиденные ситуации. Об их появлении платформа сигнализирует по протоколу HTTP соответствующими [статусами][5xx], обозначающими ошибки сервера.
| Код | Описание |
| ------- | ---------- |
| **500** | В процессе обработки платформой запроса возникла непредвиденная ситуация. При получении подобного кода ответа мы рекомендуем обратиться в техническую поддержку. |
| **503** | Платформа временно недоступна и не готова обслуживать данный запрос. Запрос гарантированно не выполнен, при получении подобного кода ответа попробуйте выполнить его позднее, когда доступность платформы будет восстановлена. |
| **504** | Платформа превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. |
[5xx]: https://tools.ietf.org/html/rfc7231#section-6.6
paths:
'/analytics/shops/{shopID}/customers/stats/payment_method':
get:
description: |
Получить статистику по платежным средствам за определённое время.
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)
type: string
enum:
- invalidRequest
message:
description: Человекочитаемое описание ошибки
type: string
'404':
$ref: '#/responses/NotFound'
'/analytics/shops/{shopID}/customers/stats/rate':
get:
description: |
Получить статистику по уникальным плательщикам за определённое время.
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)
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)
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)
type: string
enum:
- invalidRequest
message:
description: Человекочитаемое описание ошибки
type: string
'404':
$ref: '#/responses/NotFound'
'/analytics/shops/{shopID}/payments/stats/conversion':
get:
description: |
Получить статистику конверсии платежей магазина за определённое время.
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)
type: string
enum:
- invalidRequest
message:
description: Человекочитаемое описание ошибки
type: string
'404':
$ref: '#/responses/NotFound'
'/analytics/shops/{shopID}/payments/stats/geo':
get:
description: |
Получить статистику по геопозициям плательщиков за определённое время.
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)
type: string
enum:
- invalidRequest
message:
description: Человекочитаемое описание ошибки
type: string
'404':
$ref: '#/responses/NotFound'
'/analytics/shops/{shopID}/payments/stats/revenue':
get:
description: |
Получить статистику по сумме платежей магазина за определенное время, в том
числе за вычетом комиссии системы.
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)
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)
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: |
Получить список заявок участника, при желании отфильтрованный по значению
статуса.
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: |
Создать новую заявку с заданным набором изменений и отправить её на
премодерацию.
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)
type: string
enum:
- changesetConflict
- invalidPartyStatus
- invalidChangeset
- invalidRequest
message:
description: Человекочитаемое описание ошибки
type: string
example: Changeset conflict
'/processing/claims/{claimID}':
get:
description: |
Получить заявку по её идентификатору.
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)
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)
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)
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: |
Создать новый токен для доступа к указанному плательщику.
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)
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: |
Идентификатор события.
Все события, возникшие в системе _после_ указанного, попадут в выборку.
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)
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)
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)
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)
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)
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)
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: |
Идентификатор события.
Все события, возникшие в системе _после_ указанного, попадут в выборку.
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)
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)
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)
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)
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)
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)
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)
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: |
Создать новый одноразовый токен платежного средства, предоставленного плательщиком, а
также новую уникальную платежную сессию.
Токен платежного средства и идентификатор сессии необходим для создания
платежа по инвойсу и имеет ограниченное время жизни.
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)
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: |
Приостановить действие магазина. Этот тип заявок обрабатывается платформой
автоматически и исполняется сразу же после отправки.
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)
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: |
Получить локализованные названия геопозиций плательщиков по их
идентификаторам.
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)
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)
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)
type: string
enum:
- invalidRequest
message:
description: Человекочитаемое описание ошибки
type: string
'404':
$ref: '#/responses/NotFound'
definitions:
AccessToken:
type: object
required:
- payload
properties:
payload:
description: |
Содержимое токена для доступа
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: |
Данные расчётного счёта в банковской организации, ведущей деятельность под
юрисдикцией РФ.
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 для перехода в браузере
Шаблон представлен согласно стандарту
[RFC6570](https://tools.ietf.org/html/rfc6570).
type: string
BrowserPostRequest:
type: object
allOf:
- $ref: '#/definitions/BrowserRequest'
- type: object
required:
- uriTemplate
- form
properties:
uriTemplate:
description: |
Шаблон значения URL для отправки формы
Шаблон представлен согласно стандарту
[RFC6570](https://tools.ietf.org/html/rfc6570).
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: |
Номер мобильного телефона с международным префиксом согласно
[E.164](https://en.wikipedia.org/wiki/E.164).
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: |
Требование провести взаимодействие с плательщиком для продолжения процесса
привязки
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: |
Область охвата, включающая события по плательщикам в рамках определённого
магазина
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: |
Маскированный номер телефона плательщика в международном формате, выступающий
в роли идентификатора кошелька Visa QIWI Wallet.
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: |
Номер телефона плательщика в международном формате, выступающий в роли
идентификатора кошелька Visa QIWI Wallet.
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)
type: string
pattern: '^[A-Z0-9]{3,34}$'
example: GR1601101250000000012300695
bic:
description: |
Business Identifier Code [ISO 9362](https://en.wikipedia.org/wiki/ISO_9362)
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: |
Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,
например в копейках в случае указания российских рублей в качестве валюты.
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: |
Корзина с набором позиций продаваемых товаров или услуг
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: |
Количество единиц товаров или услуг, предлагаемых на продажу в этой
позиции
type: integer
format: int64
minimum: 1
default: 1
price:
description: |
Цена предлагаемого товара или услуги, в минорных денежных единицах, например
в копейках в случае указания российских рублей в качестве валюты
type: integer
format: int64
minimum: 1
cost:
description: |
Суммарная стоимость позиции с учётом количества единиц товаров или услуг
type: integer
format: int64
minimum: 1
readOnly: true
taxMode:
$ref: '#/definitions/InvoiceLineTaxMode'
InvoiceLineTaxMode:
description: |
Схема налогообложения предлагаемого товара или услуги.
Указывается, только если предлагаемый товар или услуга облагается налогом.
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: |
Дата и время окончания действия инвойса, после наступления которых его
уже невозможно будет оплатить
type: string
format: date-time
amount:
description: |
Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,
например в копейках в случае указания российских рублей в качестве валюты.
Если стоимость не указана, то стоимостью инвойса будет считаться суммарная
стоимость позиций в корзине.
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: |
Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,
например в копейках в случае указания российских рублей в качестве валюты.
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: |
Стоимость предлагаемых товаров или услуг, в минорных денежных единицах, например в копейках в случае указания российских рублей в качестве валюты.
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: |
Область охвата, включающая события по инвойсам в рамках определённого
магазина
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: |
Метаданные, которые будут связаны с инвойсом, созданным по шаблону, в случае, если иные метаданные не указаны в запросе на создание инвойса.
type: object
InvoiceTemplateAndToken:
type: object
required:
- invoiceTemplate
- invoiceTemplateAccessToken
properties:
invoiceTemplate:
$ref: '#/definitions/InvoiceTemplate'
invoiceTemplateAccessToken:
$ref: '#/definitions/AccessToken'
InvoiceTemplateCost:
type: object
discriminator: invoiceTemplateCostType
description: |
Ограничения на стоимость товаров и услуг для инвойсов, генерируемых по
шаблону.
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: |
Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,
например в копейках в случае указания российских рублей в качестве валюты.
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: |
Метаданные, которые будут связаны с инвойсом, созданным по шаблону, в случае, если иные метаданные не указаны в запросе на создание инвойса.
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: |
Метаданные, которые будут связаны с инвойсом, созданным по шаблону, в случае, если иные метаданные не указаны в запросе на создание инвойса.
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: |
Стоимость предлагаемых товаров или услуг, в минорных денежных единицах,
например в копейках в случае указания российских рублей в качестве валюты.
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: |
Требование провести взаимодействие с плательщиком для продолжения процесса
платежа
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: |
Стоимость предлагаемых товаров или услуг, в минорных денежных
единицах, например в копейках в случае указания российских рублей в
качестве валюты.
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: |
Сумма выплаты в минорных денежных
единицах, например в копейках в случае указания российских рублей в
качестве валюты.
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: |
Общая сумма по данному типу операций над денежными средствами в минорных денежных
единицах, например в копейках в случае указания российских рублей в
качестве валюты.
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: |
Сумма возврата, в минорных денежных единицах, например в копейках в случае указания российских рублей в качестве валюты.
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: |
Сумма возврата, в минорных денежных единицах,
например в копейках в случае указания российских рублей в качестве
валюты.
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: |
Данные ошибки, возникшей в процессе проведения возврата, в случае если
возврат был неуспешен
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: |
Зарегистрированное наименование юридического лица
type: string
maxLength: 100
registeredNumber:
description: |
Регистрационный номер,
[ОГРН](https://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер) или
[ОГРНИП](https://ru.wikipedia.org/wiki/Основной_государственный_регистрационный_номер_индивидуального_предпринимателя)
type: string
pattern: '^(\d{13}|\d{15})$'
inn:
description: |
[ИНН](https://ru.wikipedia.org/wiki/Идентификационный_номералогоплательщика)
type: string
pattern: '^(\d{10}|\d{12})$'
actualAddress:
description: |
Почтовый адрес места нахождения
type: string
maxLength: 1000
postAddress:
description: |
Почтовый адрес для отправки корреспонденции
type: string
maxLength: 1000
representativePosition:
description: |
Наименование должности
[ЕИО](https://ru.wikipedia.org/wiki/Исполнительный_орган_общества) или его представителя
type: string
maxLength: 100
representativeFullName:
description: |
ФИО [ЕИО](https://ru.wikipedia.org/wiki/Исполнительный_орган_общества) или его представителя
type: string
maxLength: 100
representativeDocument:
description: |
Идентификационные данные документа, на основании которого действует
[ЕИО](https://ru.wikipedia.org/wiki/Исполнительный_орган_общества) или его представитель
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: |
Идентификатор категории товаров и услуг, предлагаемых в этом магазине
type: integer
format: int32
location:
$ref: '#/definitions/ShopLocation'
details:
$ref: '#/definitions/ShopDetails'
contractID:
description: |
Идентификатор договора, на основании которого производится обслуживание
магазина
type: string
payoutToolID:
description: |
Идентификатор средства вывода в рамках контракта, используемое в процессе
вывода по магазину
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: |
Идентификатор категории товаров и услуг, предлагаемых в этом магазине
type: integer
format: int32
ShopContractBinding:
description: Привязка магазина к указанному договору
type: object
allOf:
- $ref: '#/definitions/ShopModification'
- type: object
required:
- contractID
- payoutToolID
properties:
contractID:
description: |
Идентификатор договора, на основании которого следует производить
обслуживание магазина
type: string
payoutToolID:
description: |
Идентификатор средства вывода в рамках указанного контракта
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: |
Идентификатор договора, на основании которого следует производить
обслуживание создаваемого магазина
type: string
payoutToolID:
description: |
Идентификатор средства вывода для создаваемого магазина в рамках
указанного контракта
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: |
Идентификатор средства вывода в рамках текущего контракта магазина
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: |
Значение ключа элемента формы, которую необходимо отправить средствами
браузера
type: string
template:
description: |
Шаблон значения элемента формы
Шаблон представлен согласно стандарту
[RFC6570](https://tools.ietf.org/html/rfc6570).
type: string
Webhook:
type: object
required:
- scope
- url
properties:
id:
description: |
Идентификатор webhook'а
type: string
readOnly: true
active:
description: |
Включена ли в данный момент доставка оповещений?
type: boolean
readOnly: true
scope:
$ref: '#/definitions/WebhookScope'
url:
description: |
URL, на который будут поступать оповещения о произошедших событиях
type: string
format: uri
maxLength: 1000
publicKey:
description: |
Содержимое публичного ключа, служащего для проверки авторитативности
приходящих на `url` оповещений
type: string
format: hexadecimal
readOnly: true
example: MIGJAoGBAM1fmNUvezts3yglTdhXuqG7OhHxQtDFA+Ss//YuUGjw5ossDbEMoS+SIFuYZ/UL9Xg0rEHNRSbmf48OK+mz0FobEtbji8MADayzGfFopXsfRFa7MVy3Uhu5jBDpLsN3DyJapAkK0TAYINlZXxVjDwxRNheTvC+xub5WNdiwc28fAgMBAAE=
WebhookScope:
description: |
Область охвата webhook'а, ограничивающая набор типов событий, по которым
следует отправлять оповещения
type: object
discriminator: topic
required:
- topic
properties:
topic:
description: Предмет оповещений
type: string
enum:
- InvoicesTopic
- CustomersTopic